Skip to content

Update Databricks CLI to v1.10.0 - #2064

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

Update Databricks CLI to v1.10.0#2064
eng-dev-ecosystem-bot wants to merge 1 commit into
mainfrom
update-cli-v1.10.0

Conversation

@eng-dev-ecosystem-bot

Copy link
Copy Markdown
Collaborator

Update Databricks CLI to v1.10.0

@github-actions

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: 2064
  • Commit SHA: 51153349afd17a7dbacea147c30309af60783570

Checks will be approved automatically on success.

@rugpanov

Copy link
Copy Markdown
Contributor

Executive summary — Databricks CLI v1.9.0 → v1.10.0

CLI

  • ssh connect gains --usage-policy-id to pin a serverless usage policy.

Bundles (mostly deploy/destroy correctness; several are direct-engine only)

  • Transient DELETING app state during bundle deploy/destroy is now treated as complete instead of erroring — two fixes covering the between-plan-and-apply and still-deleting cases (direct engine only).
  • bundle destroy --force-lock now proceeds when the workspace dir is at its child-node limit and can't hold a lock file, so a full workspace can still be torn down.
  • Empty-string values on optional (omitempty) resource fields are dropped before deploy instead of sent to the backend — fixes failures like '' is not a valid cluster policy ID when a field (e.g. policy_id) resolves to "" via a variable. Now consistent across terraform/direct engines and in bundle validate -o json.
  • bundle validate/deploy now error (not warn) on a grant missing principal, and error on a grant with an empty privileges list — both previously caused partial or perpetually-drifting deployments on the direct engine.
  • #6064: fixes spurious update on catalog/schema/volume grants when a principal has ALL_PRIVILEGES (direct engine, #6030).
  • #6022: use backend-supported vector-search endpoint permission types.

Dependency updates

  • databricks-sdk-go v0.160.0 → v0.165.0.
  • Terraform provider → 1.123.0.

What could be integrated into the VS Code extension experience

Ordered lowest-effort/highest-certainty first. The extension always drives the terraform engine (extension.ts:202 — "We always use bundled terraform and databricks provider", wired via DATABRICKS_TF_* in utils/envVarGenerators.ts:172-186) and never opts into the direct engine (no --engine/bundle_engine reference exists in src), so every fix flagged direct engine only is a no-op for the extension as shipped.

  1. Terraform provider → 1.123.0 — automatic, verify only (no code). The extension doesn't hardcode the provider version; the packaging script queries the CLI (bundle debug terraform --output json) and writes the version into package.json terraformMetadata (scripts/setupCLIDependencies.ts:52,99-108), which is then fed to the CLI at runtime as DATABRICKS_TF_PROVIDER_VERSION (utils/envVarGenerators.ts:181). Re-running the packaging step as part of this bump picks up 1.123.0 with no source change — just confirm terraformMetadata regenerated in the built VSIX.

  2. bundle destroy --force-lock full-workspace fix — existing plumbing already benefits (no code). The extension exposes databricks.bundle.forceDestroyforceDestroyCommand()destroy(true) (ui/bundle-resource-explorer/BundleCommands.ts:361-364), which routes into bundleDestroy(..., force=true) and already appends --force-lock (cli/CliWrapper.ts:657). This bump simply makes that command succeed in the child-node-limit case it used to fail on. No flag-flip needed; the plumbing is already there.

  3. Empty-string omitempty drop — directly de-risks extension-driven deploys (transparent, no code). This is the one "engine-consistency" fix that reaches the extension, because the extension can itself emit "": BundleVariableModel.getFileContent() maps variable values through value ?? "" (bundle/models/BundleVariableModel.ts:217), and empty overrides flow into getEnvVariables()/BUNDLE_VAR_* (:202-208). Previously an empty override landing in a field like policy_id could fail bundle deploy (cli/CliWrapper.ts:600-635); now it's dropped. It also flows into parsed validate state — BundleValidateModel JSON-parses bundle validate stdout (:73-91, invoked via cli/CliWrapper.ts:501-525), so the reflected validate -o json behavior keeps that state cleaner. Transparent win; optionally net-new work would be a UI hint when an override is blank.

  4. Stricter grant validation — clearer errors via existing surfacing (transparent; optional net-new). Bundle grants are modeled in the schema (GrantClass with principal/privileges, bundle/BundleSchema.ts:4663-4670) and validated for editing via the redhat.vscode-yaml schema hookup (extension.ts:1135), but the extension does no semantic grant validation of its own — it relies on the CLI. A missing principal or empty privileges now fails validate/deploy as an error, and that message surfaces through the existing ProcessError.showErrorMessage("Error deploying bundle.") path (ui/bundle-resource-explorer/BundleCommands.ts:155-161) instead of a silent partial apply. No change required. Net-new (only if desired): promote these into pre-deploy diagnostics in the bundle resource explorer rather than a post-hoc error toast.

  5. Vector-search permission types ([#6022]) — transparent. Affects deploys of bundles containing vector-search endpoints; it flows through the same bundleDeploy path (cli/CliWrapper.ts:600-635) with no extension code aware of the permission-type detail. No action.

Explicit no-ops for the extension:

  • ssh connect --usage-policy-id — the extension never invokes ssh connect. Its only ssh touchpoints are cluster ssh_public_keys in the generated schema (bundle/BundleSchema.ts:677,1717,4033) and detecting when it's running inside a Databricks Remote-SSH session (extension.ts:246). Nothing to integrate.
  • databricks-sdk-go v0.160.0 → v0.165.0 — internal to the CLI binary. The extension talks to Databricks through the JS SDK @databricks/sdk-experimental (e.g. extension.ts:24, ui/unity-catalog/detailLoader.ts:2); there is no databricks-sdk-go reference in src. No-op.
  • DELETING-transient-state fixes and the ALL_PRIVILEGES drift fix ([#6064]) — all marked direct engine only; the extension runs the terraform engine (see intro), so these don't change its behavior.

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

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