Skip to content

Update Databricks CLI to v1.25.0 - #2292

Open
eng-dev-ecosystem-bot wants to merge 1 commit into
mainfrom
update-cli-v1.25.0
Open

eng-dev-ecosystem-bot wants to merge 1 commit into
mainfrom
update-cli-v1.25.0

Conversation

@eng-dev-ecosystem-bot

Copy link
Copy Markdown
Collaborator

Update Databricks CLI to v1.25.0

@github-actions

github-actions Bot commented Nov 9, 2026

Copy link
Copy Markdown
Contributor

If integration tests don't run automatically, an authorized user can run them manually by following the instructions below:

Trigger:
go/deco-tests-run/vscode

Inputs:

  • PR number: 2292
  • Commit SHA: 5606594e6e45f5f61dba6fab5d07a00a52c408b1

Checks will be approved automatically on success.

@rugpanov

rugpanov commented Nov 9, 2026

Copy link
Copy Markdown
Contributor

Executive summary — Databricks CLI v1.24.0 → v1.25.0

CLI

  • aitools install --output json now returns more specific error_category values (MANIFEST_NOT_FOUND, PERMISSION_DENIED, FILESYSTEM) for some failures that it used to report as UNCATEGORIZED. (#7380)
  • auth docker commands suggest databricks auth logout --profile <name> --delete when several profiles match the same workspace. (#7363)
  • Fix: %pip in Jupyter notebooks opened over databricks ssh connect now uses the Databricks magic on serverless env v5/v6 and on recent DBR dedicated clusters. (#7263)

AI Runtime

  • air run validates the config on the server while it uploads, so submission is faster. (#7368)
  • CRITICAL is no longer a valid compute.priority_class value. (#7371)

Bundles

  • Workspace-aware templates for hosts shared by several workspaces:
    • Templates get .workspace (Hostname, ID, URL) from the selected profile. (#7349)
    • Templates get .workspace.URLID. (#7388)
    • Built-in templates add ?w=<id> to workspace.host when the profile or an env var sets the workspace ID. dbt-sql also adds ?o=<id> to the HTTP path it suggests. (#7350)
  • --include-locations output from bundle validate / bundle summary now includes variable declarations and the source of each resolved value. (#7351)
  • New resource: postgres_data_apis (Private Preview), which enables and configures the Data API of a Lakebase Postgres database. (#7160)
  • Registered model aliases are now applied in UC on deploy. Before this, the CLI silently ignored them. If you omit aliases, aliases set outside the bundle stay. aliases: [] removes them. (#7163, fixes #4012)
  • Fixes for a bundle plan that kept proposing the same change again:
    • Grants on renamed or recreated UC resources were still recorded under the old name. (#7345)
    • Permissions on recreated pipelines, apps, dashboards, serving endpoints and similar resources were still recorded under the old ID. (#7361)

Dependency updates

  • Dependencies with known vulnerabilities bumped. (#7394)
  • go-runewidth v0.0.31 removes about 30 ms of startup time from every command. (#7391)
  • Go SDK updated to v0.194.0 (#7371) and then v0.195.0 (#7384).

What could be integrated into the VS Code extension experience

Ranked roughly by effort-to-value. Line numbers are from origin/main and are relative to packages/databricks-vscode/.

Free with the bump (no code change)

  1. Workspace-aware bundle init on shared hosts. Both init paths already pass the profile and workspace ID to the CLI:

    • ProfileAuthProvider.toEnv() sets DATABRICKS_CONFIG_PROFILE, and sets DATABRICKS_WORKSPACE_ID when the profile has one (src/configuration/auth/AuthProvider.ts:256-265, cached at :289).
    • getBundleInitEnvVars() spreads authProvider.toEnv() (src/cli/CliWrapper.ts:1162-1170).
    • The interactive wizard runs in a terminal with that same env (src/bundle/BundleInitWizard.ts:181-205). The non-interactive bundleInit() also uses it (src/cli/CliWrapper.ts:1173-1195).

    Result: projects created from the extension on a host shared by several workspaces now get workspace.host: …?w=<id> automatically. This matches the ?w= handling the extension already does for login (src/configuration/auth/DatabricksCliCheck.ts:142-143). Worth adding a line in the release notes.

  2. YAML autocomplete/validation for postgres_data_apis and registered-model aliases. The schema used for YAML validation comes from the bundled CLI at runtime: CliWrapper.getBundleSchema() (src/cli/CliWrapper.ts:802), registered via registerBundleAutocompleteProvider (src/extension.ts:2003). New fields appear when the binary changes. Note that the checked-in src/bundle/BundleSchema.ts is only used for TS types, and it is already stale (it has no postgres_data_apis or aliases, see :300-337). Regenerating it with package:bundle-schema:write (package.json:1994) is optional cleanup unless code needs the types.

  3. postgres_data_apis in the Bundle Resource Explorer. It is not in KNOWN_RESOURCE_TYPES or KNOWN_ICON_RESOURCE_TYPES (src/ui/bundle-resource-explorer/types.ts:36-52). It therefore renders through the generic UnknownResourceTreeNode (src/ui/bundle-resource-explorer/UnknownResourceTreeNode.ts:26-98). That is acceptable for a Private Preview resource. A dedicated icon would be a one-line change later.

  4. Better aitools install telemetry. The extension copies error_category as-is into the AITOOLS_INSTALL event (src/aitools/aiToolsInstallOutput.ts:43-60 → src/aitools/AiToolsManager.ts:531-535, schema at src/telemetry/constants.ts:384-412). Nothing branches on UNCATEGORIZED. The finer-grained values therefore reach telemetry with no change. Dashboards that group by category should expect the new values.

Small, net-new UX on existing plumbing

  1. Actionable aitools install failure messages (small, net-new). Today the failure text is the CLI's free-form error/message (describeAiToolsInstallFailure, src/aitools/aiToolsInstallOutput.ts:16-33). With PERMISSION_DENIED and FILESYSTEM now reliable, the extension could map them to a specific hint, for example "check write access to the agent's config directory". This is a few lines in the same module plus tests. The value is moderate, and it depends on how often these failures occur in telemetry.

  2. "Go to definition" for bundle variables (medium, net-new on existing plumbing). The extension already runs bundle summary --include-locations (src/cli/CliWrapper.ts:1071-1081). It already parses __locations (src/bundle/models/BundleRemoteStateModel.ts:32-38) and resolves resources.<key> entries to a vscode.Location (src/ui/bundle-resource-explorer/utils/SourceLocationUtils.ts:4-31). Only resource tree nodes use that today (JobTreeNode.ts:41, PipelineTreeNode.ts:31, TaskTreeNode.ts:51, UnknownResourceTreeNode.ts:34).

    • The Bundle Variables view builds its state from validate / pre-validate config, not from summary locations (src/bundle/models/BundleVariableModel.ts:162-178). Its tree nodes have no source location (src/ui/bundle-variables/VariableTreeNode.ts).
    • With #7351, the work is:
      • Make getSourceLocation accept a key prefix, not only resources..
      • Feed __locations into BundleVariableModel.
      • Add a source-location action to VariableTreeNode.
    • The new "source of each resolved value" data could also show where a target value comes from (target override vs default vs --var/env) next to the value the view already shows.
    • Before you scope this, confirm the exact key format that #7351 emits under locations. I have not checked it against a real binary.

No-op for the extension

  • %pip fix over ssh connect (#7263): the extension only starts databricks ssh connect (src/cli/CliWrapper.ts:152-165, used from src/ssh/SshCommands.ts). The fix is in the remote-side setup, so users of the SSH tunnel get it automatically. No code change. It is a good item for the release notes.
  • auth docker logout hint (#7363): the extension never runs auth docker or auth logout. databricks.connection.logout is extension-side only (src/configuration/ConnectionManager.ts:535-536).
  • AI Runtime air run / priority_class (#7368, #7371): the extension has no air usage.
  • Grants/permissions bundle plan fixes (#7345, #7361): the extension does not run bundle plan. The fixes are in deploy state, so the extension's deploys and the modified_status badges in the resource explorer (src/ui/bundle-resource-explorer/JobTreeNode.ts:66-74) just benefit.
  • Registered-model aliases on deploy (#7163): this changes deploy behavior only. The UC explorer already displays aliases (src/ui/unity-catalog/nodeRenderer.ts:348-349, src/ui/unity-catalog/mappers.ts:236-252), so bundle-managed aliases now show up there after deploy. One caveat for users: aliases: [] now removes aliases set outside the bundle.
  • Template .workspace / .workspace.URLID (#7349, #7388): these only matter to template authors. The extension ships no templates of its own (see item 1 for the built-in-template effect).
  • Dependency updates: transparent. The ~30 ms startup gain per command adds up in the extension, which spawns the CLI often (validate, summary, sync, auth checks).

🤖 Auto-generated executive summary of the CLI v1.24.0 → v1.25.0 changelog. Integration notes are opportunities, not commitments — verify before acting.

This branch was successfully deployed

1 active deployment
test-trigger-is — 5606594e Deployed Nov 9, 2026 by eng-dev-ecosystem-bot via Trigger Tests #2495
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.

2 participants