enhance AzureBaseHook to return newer credential object that supports get_token method #52182
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Databases like Snowflake and Azure Postgres Flex support connection using Azure OAUTH token. Newer Azure Identity credential objects like
ClientSecretCredential
andDefaultAzureCredential
supportget_token
method which can be used to generate OAUTH token. SnowflakeHook and PostgresHook can leverage AzureBaseHook to retrieve required token.In this PR:
get_credential
method and makesdk_client
argument optional so that the credential object can be retrieved without needing sdk_client. eg.AzureBaseHook().get_credential()
use_azure_identity_object
in connection for backward compatibility. When set to true,get_credential
method will return newer credential object of typeClientSecretCredential
orDefaultAzureCredential
instead of currentServicePrincipalCredentials
orAzureIdentityCredentialAdapter
. Current credential object doesn't supportget_token
method. eg.AzureBaseHook().get_credential().get_token()
I am ok with not making
sdk_client
argument optional if there is any concern.^ Add meaningful description above
Read the Pull Request Guidelines for more information.
In case of fundamental code changes, an Airflow Improvement Proposal (AIP) is needed.
In case of a new dependency, check compliance with the ASF 3rd Party License Policy.
In case of backwards incompatible changes please leave a note in a newsfragment file, named
{pr_number}.significant.rst
or{issue_number}.significant.rst
, in airflow-core/newsfragments.