# README
Authentication
Auth flow
sequenceDiagram
ClustersAPI->>+DatabricksClient: GET .../clusters/list
DatabricksClient->>+databricks.Config: Authenticate(HttpRequest)
databricks.Config-->>+DefaultCredentials: Configure(databricks.Config)
DefaultCredentials-->>+FirstCredentials: try configure
FirstCredentials-->>-DefaultCredentials: try next
DefaultCredentials->>+NextCredentials: try configure
NextCredentials->>RequestVisitor: configured auth
NextCredentials->>-DefaultCredentials: authenticated
DefaultCredentials->>-databricks.Config: set AuthType & request visitor
databricks.Config->>+RequestVisitor: visit HTTP request
RequestVisitor-->>+IdentityProvider: ensure fresh token
IdentityProvider-->>-RequestVisitor: access token
RequestVisitor->>-databricks.Config: added HTTP headers
databricks.Config->>-DatabricksClient: added HTTP headers
DatabricksClient->>+API: authenticated request
API->>-DatabricksClient: JSON payload
DatabricksClient->>-ClustersAPI: ClustersList or error
Client configuration
classDiagram
Loader "0..n" <-- Config: Configure(self)
Credentials "0..1" <-- Config: Configure(self)
RequestVisitor --* Config: configured auth
class Config {
* Host string
* Token string
* Profile string
* Username string
* Password string
* AzureResourceID string
* AzureEnvironment string
* AzureClientID string
* AzureSecretID string
* AzureTenantID string
* GoogleServiceAccount string
Credentials: DefaultCredentials
Loaders: Loader
Authenticate(HttpRequest) error
}
class Loader {
<<interface>>
Name() string
Configure(Config) error
}
KnownConfigLoader ..|> Loader
class KnownConfigLoader
ConfigAttributes ..|> Loader
class ConfigAttributes {
Configure(Config) error
DebugString(Config) string
Validate(Config) error
ResolveFromStringMap(Config, map) error
ResolveFromAnyMap(Config, map) error
}
Config --* DatabricksClient
class DatabricksClient {
Config
- retryPolicy
Get(path, query) T
Post(path, body) T
Put(path, body) T
Patch(path, body) T
Delete(path, query) T
}
Credentials --> "0..1" RequestVisitor: creates
class Credentials {
<<interface>>
Name() string
Configure(Config) RequestVisitor
}
class RequestVisitor {
<<interface>>
Visit(HttpRequest) error
}
AzureSpnCredentials --* authProviders
AzureSpnCredentials ..|> Credentials
class AzureSpnCredentials
AzureCliCredentials --* authProviders
AzureCliCredentials ..|> Credentials
GoogleCredentials --* authProviders
GoogleCredentials ..|> Credentials
class GoogleCredentials
DatabricksOauthCredentials --* authProviders
DatabricksOauthCredentials ..|> Credentials
class DatabricksOauthCredentials {
[]Scopes
}
PatCredentials --* authProviders
PatCredentials ..|> Credentials
class PatCredentials
BasicCredentials --* authProviders
BasicCredentials ..|> Credentials
class BasicCredentials
authProviders --> DefaultCredentials: for reach ConfigAttributes()
DefaultCredentials ..|> Credentials
class DefaultCredentials
# Functions
LoadFile loads the databrickscfg file at the specified path.
NewAzureCliTokenSource returns [oauth2.TokenSource] for a passwordless authentication via Azure CLI (`az login`).
NewAzureMsiTokenSource returns [oauth2.TokenSource] for a passwordless authentication via Azure Managed identity.
# Constants
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
# Variables
No description provided by the author
No description provided by the author
ErrCannotConfigureAuth (experimental) is returned when no auth is configured.
ErrNoHostConfigured is the error returned when a user tries to authenticate without a host configured.
# Structs
No description provided by the author
AuthDetails contains the details of the authentication configuration.
No description provided by the author
No description provided by the author
No description provided by the author
AzureGithubOIDCCredentials provides credentials for GitHub Actions that use an Azure Active Directory Federated Identity to authenticate with Azure.
No description provided by the author
No description provided by the author
Config represents configuration for Databricks Connectivity.
ConfigAttribute provides generic way to work with Config configuration attributes and parses `name`, `env`, and `auth` field tags.
No description provided by the author
No description provided by the author
File represents the contents of a databrickscfg file.
No description provided by the author
No description provided by the author
No description provided by the author
Credentials provider that fetches a token from a locally running HTTP server
The credentials provider will perform a GET request to the configured URL.
No description provided by the author
No description provided by the author
# Interfaces
CredentialsStrategy responsible for configuring static or refreshable authentication credentials for Databricks REST APIs.
No description provided by the author
# Type aliases
AuthConfiguration is a map of attribute name to its configuration.
No description provided by the author
No description provided by the author