You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Fix CLI token source --profile fallback with version detection
Replace the broken error-based --profile detection with version-based
CLI detection at init time. The --profile flag is a global Cobra flag
that old CLIs (< v0.207.1) silently accept instead of reporting
"unknown flag: --profile", making the previous --host fallback dead code.
The SDK now runs `databricks version` at init time, parses the semver,
and uses it to decide between --profile and --host. If version detection
fails, the SDK falls back to --host (most conservative command).
This also simplifies CliTokenSource to hold a single cmd with no
runtime fallback logic, and enables future version-gated flags
(e.g. --force-refresh) without additional subprocess calls.
See: databricks/cli#855
* Add support for unified hosts. A single configuration profile can now be used for both account-level and workspace-level operations when the host supports it and both `account_id` and `workspace_id` are available. The `experimental_is_unified_host` flag has been removed; unified host detection is now automatic.
7
-
* Accept `DATABRICKS_OIDC_TOKEN_FILEPATH` environment variable for consistency with other Databricks SDKs (Go, CLI, Terraform). The previous `DATABRICKS_OIDC_TOKEN_FILE` is still supported as an alias.
8
6
9
7
### Security
10
8
11
9
### Bug Fixes
10
+
* Fixed Databricks CLI `--profile` fallback by detecting the CLI version at init time. The previous error-based detection was broken because `--profile` is a global Cobra flag silently accepted by old CLIs.
12
11
13
12
### Documentation
14
13
15
14
### Breaking Changes
16
-
* Drop support for Python 3.8 and 3.9. The minimum supported Python version is now 3.10, in line with the oldest supported Databricks Runtime LTS (DBR 13.3).
17
15
18
16
### Internal Changes
19
-
* Replace the async-disabling mechanism on token refresh failure with a 1-minute retry backoff. Previously, a single failed async refresh would disable proactive token renewal until the token expired. Now, the SDK waits a short cooldown period and retries, improving resilience to transient errors.
20
-
* Extract `_resolve_profile` to simplify config file loading and improve `__settings__` error messages.
17
+
* Detect Databricks CLI version at init time via `databricks version`, enabling version-gated flag support (e.g. `--force-refresh`) without additional subprocess calls.
21
18
22
19
### API Changes
23
-
* Add `create_catalog()`, `create_synced_table()`, `delete_catalog()`, `delete_synced_table()`, `get_catalog()` and `get_synced_table()` methods for [w.postgres](https://databricks-sdk-py.readthedocs.io/en/latest/workspace/postgres/postgres.html) workspace-level service.
24
-
* Add `effective_file_event_queue` field for `databricks.sdk.service.catalog.CreateExternalLocation`.
25
-
* Add `effective_file_event_queue` field for `databricks.sdk.service.catalog.ExternalLocationInfo`.
26
-
* Add `effective_file_event_queue` field for `databricks.sdk.service.catalog.UpdateExternalLocation`.
27
-
* Add `column_selection` field for `databricks.sdk.service.ml.Function`.
28
-
* Add `cascade` field for `databricks.sdk.service.pipelines.DeletePipelineRequest`.
29
-
* Add `default_branch` field for `databricks.sdk.service.postgres.ProjectSpec`.
30
-
* Add `default_branch` field for `databricks.sdk.service.postgres.ProjectStatus`.
31
-
* Add `ingress` and `ingress_dry_run` fields for `databricks.sdk.service.settings.AccountNetworkPolicy`.
0 commit comments