Skip to content

Commit 87e5849

Browse files
authored
Merge branch 'main' into fix-indefinite-retry
2 parents 969720e + c8ca970 commit 87e5849

28 files changed

+377
-230
lines changed

.codegen/_openapi_sha

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
ed8b5e7ec1f143395503eebae9fbc74cf8c309bc
1+
9c14189832570a8bb6f55441db02b49f04c15a1d

.github/workflows/tagging.yml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,13 @@ jobs:
2121
# Only run the tag job if the trigger is manual (workflow_dispatch) or
2222
# the repository has been approved for automated releases.
2323
#
24-
# To disable release for a repository, simply exclude it from the if
24+
# To disable release for a repository, simply exclude it from the if
2525
# condition.
2626
if: >-
2727
github.event_name == 'workflow_dispatch' ||
28-
github.repository == 'databricks/databricks-sdk-go'
28+
github.repository == 'databricks/databricks-sdk-go' ||
29+
github.repository == 'databricks/databricks-sdk-py' ||
30+
github.repository == 'databricks/databricks-sdk-java'
2931
environment: "release-is"
3032
runs-on:
3133
group: databricks-deco-testing-runner-group

.release_metadata.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
"timestamp": "2026-01-15 07:46:58+0000"
2+
"timestamp": "2026-01-22 20:29:25+0000"
33
}

CHANGELOG.md

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,63 @@
11
# Version changelog
22

3+
## Release v0.80.0 (2026-01-22)
4+
5+
### Internal Changes
6+
7+
* Support CLI Profiles for Unified Host.
8+
9+
10+
## Release v0.79.0 (2026-01-22)
11+
12+
### API Changes
13+
* Add `full_refresh_window` field for `databricks.sdk.service.pipelines.IngestionPipelineDefinition`.
14+
* Add `auto_full_refresh_policy` field for `databricks.sdk.service.pipelines.TableSpecificConfig`.
15+
* Add `hosts` field for `databricks.sdk.service.postgres.EndpointStatus`.
16+
* Add `owner` field for `databricks.sdk.service.postgres.ProjectStatus`.
17+
* Add `validity_check_configurations` field for `databricks.sdk.service.qualitymonitorv2.QualityMonitor`.
18+
* Add `burst_scaling_enabled` field for `databricks.sdk.service.serving.PtServedModel`.
19+
* Add `system_managed` enum value for `databricks.sdk.service.jobs.JobDeploymentKind`.
20+
* Add `endpoint_type_read_write` and `endpoint_type_read_only` enum values for `databricks.sdk.service.postgres.EndpointType`.
21+
* Add `deleted` enum value for `databricks.sdk.service.vectorsearch.EndpointStatusState`.
22+
* [Breaking] Remove `host`, `last_active_time`, `start_time` and `suspend_time` fields for `databricks.sdk.service.postgres.EndpointStatus`.
23+
* [Breaking] Remove `compute_last_active_time` field for `databricks.sdk.service.postgres.ProjectStatus`.
24+
* [Breaking] Remove `read_write` and `read_only` enum values for `databricks.sdk.service.postgres.EndpointType`.
25+
* Add `create_default_warehouse_override()`, `delete_default_warehouse_override()`, `get_default_warehouse_override()`, `list_default_warehouse_overrides()` and `update_default_warehouse_override()` methods for [w.warehouses](https://databricks-sdk-py.readthedocs.io/en/latest/workspace/sql/warehouses.html) workspace-level service.
26+
* Add `driver_node_type_flexibility` and `worker_node_type_flexibility` fields for `databricks.sdk.service.compute.ClusterAttributes`.
27+
* Add `driver_node_type_flexibility` and `worker_node_type_flexibility` fields for `databricks.sdk.service.compute.ClusterDetails`.
28+
* Add `driver_node_type_flexibility` and `worker_node_type_flexibility` fields for `databricks.sdk.service.compute.ClusterSpec`.
29+
* Add `driver_node_type_flexibility` and `worker_node_type_flexibility` fields for `databricks.sdk.service.compute.CreateCluster`.
30+
* Add `node_type_flexibility` field for `databricks.sdk.service.compute.CreateInstancePool`.
31+
* Add `driver_node_type_flexibility` and `worker_node_type_flexibility` fields for `databricks.sdk.service.compute.EditCluster`.
32+
* Add `node_type_flexibility` field for `databricks.sdk.service.compute.EditInstancePool`.
33+
* Add `node_type_flexibility` field for `databricks.sdk.service.compute.GetInstancePool`.
34+
* Add `node_type_flexibility` field for `databricks.sdk.service.compute.InstancePoolAndStats`.
35+
* Add `driver_node_type_flexibility` and `worker_node_type_flexibility` fields for `databricks.sdk.service.compute.UpdateClusterResource`.
36+
* Add `expire_time` and `ttl` fields for `databricks.sdk.service.postgres.BranchSpec`.
37+
* Add `expire_time` field for `databricks.sdk.service.postgres.BranchStatus`.
38+
* [Breaking] Change `create_branch()`, `create_endpoint()` and `create_project()` methods for [w.postgres](https://databricks-sdk-py.readthedocs.io/en/latest/workspace/postgres/postgres.html) workspace-level service with new required argument order.
39+
* [Breaking] Change `branch_id` field for `databricks.sdk.service.postgres.CreateBranchRequest` to be required.
40+
* [Breaking] Change `endpoint_id` field for `databricks.sdk.service.postgres.CreateEndpointRequest` to be required.
41+
* [Breaking] Change `project_id` field for `databricks.sdk.service.postgres.CreateProjectRequest` to be required.
42+
* [Breaking] Remove `default` field for `databricks.sdk.service.postgres.BranchSpec`.
43+
* [Breaking] Remove `settings` field for `databricks.sdk.service.postgres.ProjectSpec`.
44+
* [Breaking] Remove `settings` field for `databricks.sdk.service.postgres.ProjectStatus`.
45+
* Add `generate_database_credential()` method for [w.postgres](https://databricks-sdk-py.readthedocs.io/en/latest/workspace/postgres/postgres.html) workspace-level service.
46+
* Add `get_public_account_user_preference()`, `list_account_user_preferences_metadata()` and `patch_public_account_user_preference()` methods for [a.account_settings_v2](https://databricks-sdk-py.readthedocs.io/en/latest/account/settingsv2/account_settings_v2.html) account-level service.
47+
* Add `stderr` field for `databricks.sdk.service.compute.InitScriptInfoAndExecutionDetails`.
48+
* Add `no_expiry` field for `databricks.sdk.service.postgres.BranchSpec`.
49+
* Add `outputs` field for `databricks.sdk.service.serving.QueryEndpointResponse`.
50+
* Add `session_id` field for `databricks.sdk.service.sql.QueryInfo`.
51+
* Add `principal_id` field for `databricks.sdk.service.workspace.CreateCredentialsRequest`.
52+
* Add `principal_id` field for `databricks.sdk.service.workspace.DeleteCredentialsRequest`.
53+
* Add `principal_id` field for `databricks.sdk.service.workspace.GetCredentialsRequest`.
54+
* Add `principal_id` field for `databricks.sdk.service.workspace.ListCredentialsRequest`.
55+
* Add `principal_id` field for `databricks.sdk.service.workspace.UpdateCredentialsRequest`.
56+
* Add `force` field for `databricks.sdk.service.pipelines.DeletePipelineRequest`.
57+
* Add `no_suspension` field for `databricks.sdk.service.postgres.EndpointSpec`.
58+
* Add `no_suspension` field for `databricks.sdk.service.postgres.ProjectDefaultEndpointSettings`.
59+
60+
361
## Release v0.78.0 (2026-01-15)
462

563
### New Features and Improvements

NEXT_CHANGELOG.md

Lines changed: 4 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# NEXT CHANGELOG
22

3-
## Release v0.79.0
3+
## Release v0.81.0
44

55
### New Features and Improvements
66

@@ -17,46 +17,6 @@
1717
### Internal Changes
1818

1919
### API Changes
20-
* Add `full_refresh_window` field for `databricks.sdk.service.pipelines.IngestionPipelineDefinition`.
21-
* Add `auto_full_refresh_policy` field for `databricks.sdk.service.pipelines.TableSpecificConfig`.
22-
* Add `hosts` field for `databricks.sdk.service.postgres.EndpointStatus`.
23-
* Add `owner` field for `databricks.sdk.service.postgres.ProjectStatus`.
24-
* Add `validity_check_configurations` field for `databricks.sdk.service.qualitymonitorv2.QualityMonitor`.
25-
* Add `burst_scaling_enabled` field for `databricks.sdk.service.serving.PtServedModel`.
26-
* Add `system_managed` enum value for `databricks.sdk.service.jobs.JobDeploymentKind`.
27-
* Add `endpoint_type_read_write` and `endpoint_type_read_only` enum values for `databricks.sdk.service.postgres.EndpointType`.
28-
* Add `deleted` enum value for `databricks.sdk.service.vectorsearch.EndpointStatusState`.
29-
* [Breaking] Remove `host`, `last_active_time`, `start_time` and `suspend_time` fields for `databricks.sdk.service.postgres.EndpointStatus`.
30-
* [Breaking] Remove `compute_last_active_time` field for `databricks.sdk.service.postgres.ProjectStatus`.
31-
* [Breaking] Remove `read_write` and `read_only` enum values for `databricks.sdk.service.postgres.EndpointType`.
32-
* Add `create_default_warehouse_override()`, `delete_default_warehouse_override()`, `get_default_warehouse_override()`, `list_default_warehouse_overrides()` and `update_default_warehouse_override()` methods for [w.warehouses](https://databricks-sdk-py.readthedocs.io/en/latest/workspace/sql/warehouses.html) workspace-level service.
33-
* Add `driver_node_type_flexibility` and `worker_node_type_flexibility` fields for `databricks.sdk.service.compute.ClusterAttributes`.
34-
* Add `driver_node_type_flexibility` and `worker_node_type_flexibility` fields for `databricks.sdk.service.compute.ClusterDetails`.
35-
* Add `driver_node_type_flexibility` and `worker_node_type_flexibility` fields for `databricks.sdk.service.compute.ClusterSpec`.
36-
* Add `driver_node_type_flexibility` and `worker_node_type_flexibility` fields for `databricks.sdk.service.compute.CreateCluster`.
37-
* Add `node_type_flexibility` field for `databricks.sdk.service.compute.CreateInstancePool`.
38-
* Add `driver_node_type_flexibility` and `worker_node_type_flexibility` fields for `databricks.sdk.service.compute.EditCluster`.
39-
* Add `node_type_flexibility` field for `databricks.sdk.service.compute.EditInstancePool`.
40-
* Add `node_type_flexibility` field for `databricks.sdk.service.compute.GetInstancePool`.
41-
* Add `node_type_flexibility` field for `databricks.sdk.service.compute.InstancePoolAndStats`.
42-
* Add `driver_node_type_flexibility` and `worker_node_type_flexibility` fields for `databricks.sdk.service.compute.UpdateClusterResource`.
43-
* Add `expire_time` and `ttl` fields for `databricks.sdk.service.postgres.BranchSpec`.
44-
* Add `expire_time` field for `databricks.sdk.service.postgres.BranchStatus`.
45-
* [Breaking] Change `create_branch()`, `create_endpoint()` and `create_project()` methods for [w.postgres](https://databricks-sdk-py.readthedocs.io/en/latest/workspace/postgres/postgres.html) workspace-level service with new required argument order.
46-
* [Breaking] Change `branch_id` field for `databricks.sdk.service.postgres.CreateBranchRequest` to be required.
47-
* [Breaking] Change `endpoint_id` field for `databricks.sdk.service.postgres.CreateEndpointRequest` to be required.
48-
* [Breaking] Change `project_id` field for `databricks.sdk.service.postgres.CreateProjectRequest` to be required.
49-
* [Breaking] Remove `default` field for `databricks.sdk.service.postgres.BranchSpec`.
50-
* [Breaking] Remove `settings` field for `databricks.sdk.service.postgres.ProjectSpec`.
51-
* [Breaking] Remove `settings` field for `databricks.sdk.service.postgres.ProjectStatus`.
52-
* Add `generate_database_credential()` method for [w.postgres](https://databricks-sdk-py.readthedocs.io/en/latest/workspace/postgres/postgres.html) workspace-level service.
53-
* Add `get_public_account_user_preference()`, `list_account_user_preferences_metadata()` and `patch_public_account_user_preference()` methods for [a.account_settings_v2](https://databricks-sdk-py.readthedocs.io/en/latest/account/settingsv2/account_settings_v2.html) account-level service.
54-
* Add `stderr` field for `databricks.sdk.service.compute.InitScriptInfoAndExecutionDetails`.
55-
* Add `no_expiry` field for `databricks.sdk.service.postgres.BranchSpec`.
56-
* Add `outputs` field for `databricks.sdk.service.serving.QueryEndpointResponse`.
57-
* Add `session_id` field for `databricks.sdk.service.sql.QueryInfo`.
58-
* Add `principal_id` field for `databricks.sdk.service.workspace.CreateCredentialsRequest`.
59-
* Add `principal_id` field for `databricks.sdk.service.workspace.DeleteCredentialsRequest`.
60-
* Add `principal_id` field for `databricks.sdk.service.workspace.GetCredentialsRequest`.
61-
* Add `principal_id` field for `databricks.sdk.service.workspace.ListCredentialsRequest`.
62-
* Add `principal_id` field for `databricks.sdk.service.workspace.UpdateCredentialsRequest`.
20+
* Add `postgres_role` field for `databricks.sdk.service.postgres.RoleRoleSpec`.
21+
* Add `postgres_role` field for `databricks.sdk.service.postgres.RoleRoleStatus`.
22+
* Add `purge` field for `databricks.sdk.service.sql.TrashAlertV2Request`.

databricks/sdk/client_types.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
from enum import Enum
2+
3+
4+
class HostType(Enum):
5+
"""Enum representing the type of Databricks host."""
6+
7+
ACCOUNTS = "accounts"
8+
WORKSPACE = "workspace"
9+
UNIFIED = "unified"
10+
11+
12+
class ClientType(Enum):
13+
"""Enum representing the type of client configuration."""
14+
15+
ACCOUNT = "account"
16+
WORKSPACE = "workspace"

databricks/sdk/config.py

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,13 @@
77
import re
88
import sys
99
import urllib.parse
10-
from enum import Enum
1110
from typing import Dict, Iterable, List, Optional
1211

1312
import requests
1413

1514
from . import useragent
1615
from ._base_client import _fix_host_if_needed
16+
from .client_types import ClientType, HostType
1717
from .clock import Clock, RealClock
1818
from .credentials_provider import (CredentialsStrategy, DefaultCredentials,
1919
OAuthCredentialsProvider)
@@ -26,21 +26,6 @@
2626
logger = logging.getLogger("databricks.sdk")
2727

2828

29-
class HostType(Enum):
30-
"""Enum representing the type of Databricks host."""
31-
32-
ACCOUNTS = "accounts"
33-
WORKSPACE = "workspace"
34-
UNIFIED = "unified"
35-
36-
37-
class ClientType(Enum):
38-
"""Enum representing the type of client configuration."""
39-
40-
ACCOUNT = "account"
41-
WORKSPACE = "workspace"
42-
43-
4429
class ConfigAttribute:
4530
"""Configuration attribute metadata and descriptor protocols."""
4631

databricks/sdk/credentials_provider.py

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
from google.oauth2 import service_account # type: ignore
2222

2323
from . import azure, oauth, oidc, oidc_token_supplier
24+
from .client_types import ClientType
2425

2526
CredentialsProvider = Callable[[], Dict[str, str]]
2627

@@ -430,9 +431,9 @@ def _oidc_credentials_provider(
430431

431432
# Determine the audience for token exchange
432433
audience = cfg.token_audience
433-
if audience is None and cfg.is_account_client:
434+
if audience is None and cfg.client_type == ClientType.ACCOUNT:
434435
audience = cfg.account_id
435-
if audience is None and not cfg.is_account_client:
436+
if audience is None and cfg.client_type != ClientType.ACCOUNT:
436437
audience = cfg.oidc_endpoints.token_endpoint
437438

438439
# Try to get an OIDC token. If no supplier returns a token, we cannot use this authentication mode.
@@ -589,7 +590,7 @@ def token() -> oauth.Token:
589590
def refreshed_headers() -> Dict[str, str]:
590591
credentials.refresh(request)
591592
headers = {"Authorization": f"Bearer {credentials.token}"}
592-
if cfg.is_account_client:
593+
if cfg.client_type == ClientType.ACCOUNT:
593594
gcp_credentials.refresh(request)
594595
headers["X-Databricks-GCP-SA-Access-Token"] = gcp_credentials.token
595596
return headers
@@ -630,7 +631,7 @@ def token() -> oauth.Token:
630631
def refreshed_headers() -> Dict[str, str]:
631632
id_creds.refresh(request)
632633
headers = {"Authorization": f"Bearer {id_creds.token}"}
633-
if cfg.is_account_client:
634+
if cfg.client_type == ClientType.ACCOUNT:
634635
gcp_impersonated_credentials.refresh(request)
635636
headers["X-Databricks-GCP-SA-Access-Token"] = gcp_impersonated_credentials.token
636637
return headers
@@ -852,7 +853,14 @@ class DatabricksCliTokenSource(CliTokenSource):
852853

853854
def __init__(self, cfg: "Config"):
854855
args = ["auth", "token", "--host", cfg.host]
855-
if cfg.is_account_client:
856+
if cfg.experimental_is_unified_host:
857+
# For unified hosts, pass account_id, workspace_id, and experimental flag
858+
args += ["--experimental-is-unified-host"]
859+
if cfg.account_id:
860+
args += ["--account-id", cfg.account_id]
861+
if cfg.workspace_id:
862+
args += ["--workspace-id", str(cfg.workspace_id)]
863+
elif cfg.client_type == ClientType.ACCOUNT:
856864
args += ["--account-id", cfg.account_id]
857865

858866
cli_path = cfg.databricks_cli_path

databricks/sdk/service/catalog.py

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

databricks/sdk/service/pipelines.py

Lines changed: 20 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)