Skip to content

Bump databricks-sdk-go to v0.132.0#5237

Merged
pietern merged 5 commits into
mainfrom
simonfaltum/sdk-bump-v0.132.0
May 13, 2026
Merged

Bump databricks-sdk-go to v0.132.0#5237
pietern merged 5 commits into
mainfrom
simonfaltum/sdk-bump-v0.132.0

Conversation

@simonfaltum
Copy link
Copy Markdown
Member

@simonfaltum simonfaltum commented May 11, 2026

Why

Pulls in four releases of the Go SDK (v0.129 through v0.132). It picks up new APIs (disaster recovery, secrets UC, supervisor agents, ingestion connectors), removes the file-backed OAuth token cache from the SDK (now owned by the CLI), and renames a handful of vector search fields. The Terraform provider already moved to this SDK in v1.115, so this also keeps the CLI close to the version Terraform users are running.

Changes

Before: CLI pinned databricks-sdk-go at v0.128.0 and OpenAPI spec at SHA 11ae6f9d.
Now: Pinned at v0.132.0 / OpenAPI SHA a499dda0.

Most of the diff is regenerated output from ./task generate (CLI command stubs, JSON schema, bundle docs, Python bindings, direct-engine YAML, acceptance goldens). The refreshed OpenAPI spec carries more launch-stage metadata, so generated commands now include Beta / Private Preview / GA warning text in help output, and the acceptance goldens update accordingly.

Hand-written changes:

  • Vector search: MinQps -> TargetQps and RequestedMinQps -> RequestedTargetQps in bundle/direct/dresources/vector_search_endpoint.go, libs/testserver/vector_search_endpoints.go, and the vector_search_endpoints/{update,drift}/min_qps acceptance tests (renamed to target_qps). Added a Notable Changes entry to NEXT_CHANGELOG.md calling this out for DABs config and the vector-search-endpoints commands.
  • Postgres: Create{Branch,Endpoint}Request gained ReplaceExisting, DeleteProjectRequest gained Purge, and Project gained DeleteTime/PurgeTime. Added explicit zero values where exhaustruct demands them.
  • Auth: SDK v0.130 removed the host-key fallback in PersistentAuth.loadToken. Deleted the cmd/auth/token_test case that exercised it. Open question on the thread: users who haven't logged in since CLI v0.290.0 (2026-02-26) have host-keyed-only cache entries and will need to re-login.
  • Deprecated serving.AutoCaptureConfig{Input,Output}: narrow //nolint:staticcheck annotations until the migration to AI Gateway inference tables.
  • Schema annotations: regenerated annotations_openapi.yml so the new compute.ConfidentialComputeType enum has descriptions; dropped the stale min_qps placeholder from annotations.yml.
  • Release tooling: genkit also regenerated .github/workflows/tagging.yml and internal/genkit/tagging.py. This is generated output, but it changes release workflow behavior (protected runner group, ref: main to force re-resolution on workflow_dispatch re-runs, package-scoped dispatch input, created-tags artifact). Inline reviewer notes on both files.

Merged origin/main to pick up #5240, which unsets the AI-agent env vars in acceptance instead of leaving them empty. Without that, the SDK v0.132 user-agent detector stamps agent/multiple onto every recorded request; with it merged in, the stamping stops and the goldens go back to their pre-bump state.

Test plan

  • ./task lint clean
  • ./task checks clean (tidy, whitespace, links, deadcode)
  • go test ./internal/build ./bundle/internal/schema ./bundle/direct/dresources ./bundle/config/resources
  • ./task test-update and go test ./acceptance clean after regeneration
  • ./task pydabs-codegen succeeds
  • After review feedback, re-ran affected acceptance tests (user_agent, auth/credentials, cmd/api, bundle/migrate, bundle/state, bundle/templates/telemetry, telemetry, workspace/jobs) to confirm goldens match
  • CI on this PR

This pull request and its description were written by Isaac.

Regenerates CLI command stubs, schemas, validation, and Python bindings
against the new SDK and its companion OpenAPI spec
(a499dda0f7802e37868d3f3076f62639165475d8).

Breaking SDK changes addressed:
- vectorsearch.{CreateEndpoint,PatchEndpointRequest}.MinQps renamed to TargetQps.
- vectorsearch.EndpointScalingInfo.RequestedMinQps renamed to RequestedTargetQps.
  Updated dresources and testserver; renamed bundle acceptance tests from
  min_qps to target_qps to match the new field name.
- apps.App.thumbnail_url added (server-managed); marked output_only in
  resources.yml so it stays out of the App Update mask.
- postgres adds ReplaceExisting (Create{Branch,Endpoint}Request),
  Purge (DeleteProjectRequest), and DeleteTime/PurgeTime (Project).
- compute.ConfidentialComputeType added; refreshed annotations_openapi.yml.
- credentials/u2m removed the host-key fallback in PersistentAuth.loadToken
  (per v0.130). Dropped the cmd/auth/token_test case that relied on it.

Co-authored-by: Isaac
runs-on:
group: databricks-deco-testing-runner-group
labels: ubuntu-latest-deco
group: databricks-protected-runner-group
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewer note: this file is generated by genkit, but this SDK bump also pulls in release workflow behavior changes such as the protected runner, explicit ref: main, package-scoped dispatch input, and created-tags artifact. Please give this release-tooling change an explicit review rather than treating it as routine command/schema regeneration.

@@ -29,6 +29,122 @@
"""


@dataclass(frozen=True)
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewer note: this is generated by genkit, but the release script behavior changes materially here: local-HEAD anchoring, semver/prerelease handling, dependency freshness checks, and created-tags manifest output. Please review the release semantics closely as part of this SDK bump.

Remove generated trailing whitespace that breaks task checks and drop an empty changelog section.
Copy link
Copy Markdown
Member Author

@simonfaltum simonfaltum left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Self-review with a few callouts inline. Update on the TF schema bullet I mentioned earlier: PR #5238 (Terraform provider bump to v1.115.0) renames requested_min_qps -> requested_target_qps in bundle/internal/tf/schema/resource_vector_search_endpoint.go, so that's handled there, not a follow-up.

One thing without a diff line to attach to: python/uv.lock and python/codegen/uv.lock show no change in this PR because I restored them from origin/main after pydabs-codegen leaked the internal PyPI proxy URL into them. If Python deps fail to resolve in CI, that's the likely culprit.

Comment thread cmd/auth/token_test.go
},
validateToken: validateToken,
},
{
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Worth a second look: this PR drops the test case that used to sit right here (host with one matching profile and host-key-only token found via SDK fallback) because SDK v0.130 removed the host-key fallback in PersistentAuth.loadToken.

User-facing consequence: anyone whose ~/.databricks/token-cache.json only has host-keyed entries (no profile key) will get cache: databricks OAuth is not configured for this host on the next databricks auth token and need to databricks auth login --profile <name> to re-store the token under the profile key. If we want to soften that, we'd need to mirror the fallback in libs/auth/storage/cache.go (or at minimum call it out in NEXT_CHANGELOG.md).

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since which version do we store the profile in the token cache?

If I understand correctly, users upgrading from a version before profiles were stored need to relogin?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We are doing dual-write if the auth_storage is plaintext, meaning we both store it as profile and as host. When the user refreshes the auth, it automatically writes to profile-based storage, and the user doesn't notice any disruption. With the secure storage, we are only storing profile based as the user will have to re-login anyway

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Profile-keyed cache entries became the standard in CLI v0.290.0 (released 2026-02-26), via #4562 (Wire profile name through CLI ToOAuthArgument for profile-based cache keys) plus #4574/#4591. Before that, entries were keyed by host only.

So yes, a user who hasn't done databricks auth login since before 2026-02-26 (~2.5 months ago) will have a token-cache.json with only host-keyed entries, and once we ship this SDK bump they'll get cache: databricks OAuth is not configured for this host from databricks auth token until they re-run databricks auth login --profile <name>. Anyone who's logged in since v0.290.0 has profile-keyed entries already and is unaffected.

We could call this out in the NEXT_CHANGELOG, or mirror the host-key fallback in libs/auth/storage/cache.go if we want to absorb the impact rather than make users re-login. Lean toward the changelog note since the audience is narrow.

Comment thread bundle/direct/dresources/resources.yml Outdated

title "Update min_qps"
trace update_file.py databricks.yml "min_qps: 1" "min_qps: 2"
title "Update target_qps"
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Heads-up on the rename: I moved the min_qps test dirs to target_qps and rewrote databricks.yml.tmpl and script to match the new SDK field name. Before the rename, running with -update against the new SDK silently regenerated output.txt with Warning: unknown field: min_qps and Plan: 0 to change — the test still passed because nothing asserted on those lines. Worth double-checking the new goldens cover the same intent (drift detection for target_qps updates).

"description": |-
PLACEHOLDER
github.com/databricks/databricks-sdk-go/service/pipelines.SourceConfig:
"google_ads_config":
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Auto-added by schema regen with PLACEHOLDER. Not blocking, but a future PR should give pipelines.SourceConfig.google_ads_config a real description.

var (
pathBudgetPolicyId = structpath.MustParsePath("budget_policy_id")
pathMinQps = structpath.MustParsePath("min_qps")
pathTargetQps = structpath.MustParsePath("target_qps")
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For reference: the Terraform provider schema in bundle/internal/tf/schema/resource_vector_search_endpoint.go still uses requested_min_qps. That's intentional here — TF schema is generated from the Terraform Provider, not the SDK — and the matching rename lands in #5238 (TF provider v1.115.0 bump).

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good to know. We don't have and don't plan terraform support for this resource, so it should be okay.

Comment thread acceptance/auth/credentials/basic/out.requests.txt Outdated
Comment thread bundle/direct/dresources/resources.yml Outdated
Comment thread NEXT_CHANGELOG.md
### Dependency updates

* Bump Go toolchain to 1.25.10 ([#5213](https://github.com/databricks/cli/pull/5213)).
* Bump `github.com/databricks/databricks-sdk-go` from v0.128.0 to v0.132.0.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should contain a note about breaking changes in Notable changes section (min_qps -> target_qps in DABs and commands).

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added a Notable Changes entry in ce28031 calling out the min_qps -> target_qps rename for both DABs config and the vector-search-endpoints commands.

resources.vector_search_endpoints.*.scaling_info.requested_min_qps int64 REMOTE
resources.vector_search_endpoints.*.scaling_info.requested_target_qps int64 REMOTE
resources.vector_search_endpoints.*.scaling_info.state vectorsearch.ScalingChangeState REMOTE
resources.vector_search_endpoints.*.target_qps int64 INPUT STATE
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(For later) we should move target_qps into ALL category, since we can populate remote value from requested_min_qps. Also, is there no effective_target_qps? cc @janniklasrose

- Drop duplicate thumbnail_url ignore_remote_changes from resources.yml
  (already covered by resources.generated.yml).
- Add Notable Changes entry calling out the min_qps -> target_qps
  breaking rename in vector_search_endpoints.
@simonfaltum simonfaltum temporarily deployed to test-trigger-is May 12, 2026 07:40 — with GitHub Actions Inactive
@simonfaltum simonfaltum temporarily deployed to test-trigger-is May 12, 2026 07:40 — with GitHub Actions Inactive
@simonfaltum simonfaltum requested a review from denik May 12, 2026 08:02
# at workflow_dispatch time — which means re-running a stale
# dispatch checks out an older main even when newer commits
# exist.
ref: main
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you have more background on this?

Copy link
Copy Markdown
Member Author

@simonfaltum simonfaltum May 12, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

tagging.yml is generated by internal/genkit/tagging.py (genkit), and this PR pulls in an upstream tooling refactor of both files. The same release-tooling overhaul ships into the other SDK repos at the same time. Net behavior changes:

  • ref: main (this hunk): pinning to github.sha froze re-runs of a workflow_dispatch to the SHA from the original dispatch, so a re-run after newer commits had landed kept checking out a stale main. Adding ref: main makes checkout re-resolve at step time.
  • protected runner group (databricks-protected-runner-group)
  • package-scoped workflow_dispatch input
  • new created_tags.json artifact, local-HEAD anchoring, semver/prerelease handling, dependency freshness checks in tagging.py

I flagged this earlier (self-review note on lines 39 and 32) so it gets a real review rather than getting treated as routine codegen drift. Happy to split it into its own follow-up PR if you'd rather keep the SDK bump narrow.

]
},
"method": "GET",
"path": "/api/2.0/preview/scim/v2/Me"
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you know where the extra call comes from?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, this is an intentional SDK behavior change in v0.131 (databricks/databricks-sdk-go#1650). WorkspaceClient.CurrentWorkspaceID used to short-circuit and return Config.WorkspaceID directly when set. It now always hits /api/2.0/preview/scim/v2/Me, passing the configured WorkspaceID as the X-Databricks-Org-Id request header so unified (SPOG) hosts can route the call. The CLI-side caller hasn't moved: bundle/config/mutator/initialize_urls.go calls CurrentWorkspaceID(ctx) for every bundle invocation, so the change surfaces in every bundle command.

The first /Me in the golden is the existing populate_current_user mutator; the new second /Me (with engine/direct or engine/terraform) is initialize_urls now that it's no longer short-circuited. If we want to drop it back to one call we'd need to cache the workspace ID across mutators in the CLI, but that's a separate change.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For reference, the previous SDK bump removed them (the short circuit), so it makes sense they come back now that the short circuit is gone again: https://github.com/databricks/cli/pull/5031/changes

Comment thread cmd/auth/token_test.go
},
validateToken: validateToken,
},
{
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since which version do we store the profile in the token cache?

If I understand correctly, users upgrading from a version before profiles were stored need to relogin?

Picks up #5240, which unsets AI-agent env vars in acceptance tests so
the SDK v0.132 user-agent detector stops stamping 'agent/multiple' on
recorded requests.
#5240 unsets the AI-agent env vars in acceptance instead of setting
them empty. The SDK v0.132 detector treats empty values as a match, so
recorded requests were stamped with agent/multiple after the SDK bump.
With #5240 merged in, the detector no longer fires; strip the suffix
from all affected goldens. Verified by re-running the affected tests.
@simonfaltum simonfaltum temporarily deployed to test-trigger-is May 12, 2026 11:55 — with GitHub Actions Inactive
@simonfaltum simonfaltum temporarily deployed to test-trigger-is May 12, 2026 11:55 — with GitHub Actions Inactive
@pietern pietern changed the title deps: bump databricks-sdk-go to v0.132.0 Bump databricks-sdk-go to v0.132.0 May 13, 2026
@pietern
Copy link
Copy Markdown
Contributor

pietern commented May 13, 2026

Integration tests look good (the failures are unrelated to this bump).

@pietern pietern merged commit 3570f9a into main May 13, 2026
40 of 44 checks passed
@pietern pietern deleted the simonfaltum/sdk-bump-v0.132.0 branch May 13, 2026 08:00
@pietern pietern mentioned this pull request May 13, 2026
4 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants