There are two interfaces that need to be implemented by CSPs BlobStorageClient and BaseCredentials. I see currently BaseCredentials is being used to generate token. What is the purpose of adding BlobStorageClient and by when CSPs need to implement this interface?
Designs
Child items ...
Show closed items
Linked items 0
Link issues together to show that they're related or that one is blocking others.
Learn more.
@kibattul sorry if something was not clear in README files.
Basically, we have types.py module where hold all types (interfaces).
You're right, BaseCredentials type is responsible for the interface of work with token.
BlobStorageClient is a basic interface for providers to implement own logic to work with stored files. For GCP implementation we hold, for instance, service account file in GCS Bucket. This SA file involved in Refresh token logic. Any of vendor can follow this approach and store their SA files (if any) in cloud storage service on the provider side, for instance, AWS can store files in S3.
I'd say we had a transitional phase and during the providing vendor agnostic approach we move from hardcoded part to separate class.
(!) Please, keep in mind that we will provide some updates for M4. We moved part of the logic to Python SDK. Because of the code freezing we not published yet.
@Siarhei_Khaletski Is the BlobStorageClient is used in context of token generation only? I wanted to understand the usecase so that we can decide whether to implement this or not. For example, In authentication flows azure doesn't need this BlobStorageClient implementation. I am trying to understand are there any other flows where this class needs to be implemented from azure side
@Siarhei_Khaletski Ok it makes sense. If it is used internally then why should it be exposed as part of types? If we can keep clear distinction between what are the interfaces that are needed by all CSPs and what are specific to one CSP