Releases: databricks/cli
Releases · databricks/cli
Release list
v1.10.0
Release v1.10.0 (2026-07-29)
CLI
ssh connectnow supports specifying a serverless usage policy with--usage-policy-id
Bundles
- Fixed
bundle deploy/bundle destroyfailing when an app enters the transient DELETING state between plan and apply (e.g. with a saved plan); the delete is now treated as complete instead of erroring (direct engine only). - Fixed
bundle deploy/bundle destroyfailing when an app is still in the transient DELETING state; the delete is now treated as complete instead of erroring (direct engine only). bundle destroy --force-locknow proceeds without a deployment lock when the workspace directory is at its child-node limit and cannot accept the lock file, so a deployment can still be torn down when the workspace is full.- Empty-string values on optional (omitempty) resource fields are now dropped before deployment instead of being sent to the backend. This fixes deploys failing with errors like
'' is not a valid cluster policy IDwhen a field such aspolicy_idwas set to""(often via a variable that resolved to an empty string). The behavior now matches between the terraform and direct engines and is reflected inbundle validate -o json. bundle validateandbundle deploynow reject a grant that is missing aprincipalwith an error instead of a warning. Previously the deploy would start and, on the direct engine, create the securable before the grants PATCH failed (400 INVALID_PARAMETER_VALUE), leaving a partially-applied deployment.bundle validateandbundle deploynow reject a grant with an emptyprivilegeslist with an error. Previously, on the direct engine, such a grant never converged: the backend drops principals with no privileges, so every subsequentbundle planreported the grant as a perpetual update.- Fixes #6030: spurious
updateon catalog/schema/volume grants (direct engine); a principal grantedALL_PRIVILEGESno longer drifts when the backend also reports the concrete privileges it implies (#6064). - Use vector search endpoint permission types that are supported by the backend (#6022).
Dependency Updates
- Bump
github.com/databricks/databricks-sdk-gofrom v0.160.0 to v0.165.0. - Upgrade Terraform provider to 1.123.0
v1.9.0
CLI
databricks auth profilesno longer stalls on an unreachable workspace and instead fails validation after 5 seconds per host (#5928).- Fixed
databricks fs rm -rfailing on UC Volumes backed by GCS when a directory becomes empty during recursive deletion (#5958). - You can now ask questions about your data directly from the CLI with
databricks genie ask "...". Genie answers natural-language questions ("what were total sales last month?", "which tables are in the sales catalog?"), runs the query inside Databricks, and renders the answer in the terminal. This promotes the formerdatabricks experimental genie askcommand; the experimental alias still works but is deprecated and will be removed in a future release (#6010).
Bundles
bundle validatenow reports a clear error when asql_warehouseis missing aname(including whitespace-only names), and a warning when a grant is missing aprincipal(#5818).- Bundle templates now scaffold an
AGENTS.mdthat points coding agents at Databricks AI Tools, alongside a minimalCLAUDE.mdthat includes it via@AGENTS.md(#5996). bundle generate jobcan now download workspace files referenced byspark_python_task, rewriting them to a relative path like it already does for notebooks. This is opt-in via the--download-spark-python-filesflag (#5799).- Simplified the
default-minimalbundle template and added an aliasdatabricks bundle init empty(#5899). - Add support for the
instance_poolsresource type in Declarative Automation Bundles. Instance pools are only supported in direct deployment mode. - Do not emit "unknown field" warnings for YAML anchors grouped in a list or map, matching the existing suppression for standalone anchors (#5975).
- Provide an actionable error message if databricks.yml is missing or DATABRICKS_BUNDLE_ROOT is invalid (#5953).
Dependency Updates
v1.8.0
Release v1.8.0 (2026-07-15)
Notable Changes
- Auto-migrate a bundle from terraform to the direct engine when
bundle.engineis"direct"(orDATABRICKS_BUNDLE_ENGINE=direct) and the post-deploy dry-run migration is clean; a warning is emitted if the dry-run surfaces errors or warnings so the automatic migration is skipped.
CLI
- experimental
ssh connect: barepython/pipin an interactive session now resolve to the environment interpreter ($DATABRICKS_VIRTUAL_ENV) instead of the system or cluster-libraries interpreter, so packages installed in the environment are importable without extra setup. The interactive shell is now non-login (bash -i) and the server seeds a~/.bashrcsnippet that re-prepends the environment's bin directory toPATH(#5888). - When Claude Code runs the CLI without the Databricks AI tooling installed, the CLI now prints a one-line recommendation on stderr to run
databricks aitools install. The recommendation is shown at most once per hour per Claude session, and never for human callers oraitoolscommands. - Fixed
databricks auth describemisattributing a profile selected viaDATABRICKS_CONFIG_PROFILEas(from bundle)when run inside a bundle root (#5904).
Bundles
bundle generatenow warns when the generated configuration file is not matched by any pattern in theincludesection ofdatabricks.yml(#5868).- direct: Match UC Auto Upgrade managed property defaults with a wildcard pattern instead of enumerating each key (#5877).
- Recognize
ssh://template URLs indatabricks bundle init(#5891). databricks bundle initnow reports an actionable error when given a template URL with an unsupported protocol (http://,git://,ftp://,ftps://) instead of failing with a confusing "not a bundle template" message (#5902).- Added an
env:section toscripts.<name>for declaring environment variables that may reference${bundle.*},${workspace.*}, and${var.*}(#4179, #5299).
v1.7.0
CLI
- An explicitly selected profile (
--profileor a bundle'sworkspace.profile) now takes precedence over auth environment variables (DATABRICKS_HOST,DATABRICKS_TOKEN, etc.) instead of being silently shadowed by them; env vars still fill auth fields the profile leaves empty (#5096). - Fix intermittent crashes when processing pages from API calls (#5815).
Bundles
- direct: add basic version of job_runs resource (experimental) (#5603).
- Fix permissions added to a job or pipeline by a Python (PyDABs) mutator failing to deploy with "must have exactly one owner"; the deploying identity is now set as owner, matching resources whose permissions are declared in YAML (#5821).
- Remove duplicate enum values for jsonschema.json (#5839).
- direct: volumes: support
volume_pathproperty (#5550). - direct: Fix deploy bug when a
postgres_projects,postgres_branches, orpostgres_endpointsfield is set to its zero value (e.g.enable_pg_native_login: false,replace_existing: false) (#5782). bundle run --onlyhelp now documents the+modifier syntax: prefix a task key with+to also run its upstream tasks, or suffix it with+for downstream tasks (#5760).- direct: Recognize UC-managed catalog and schema property defaults to avoid unnecessary drift (#5865 & #5870).
- Fix
bundle deploy --select <resource>skipping the resource's grants and permissions; they are now applied as part of the selected resource (#5852). - Support
purge_on_delete: trueonpostgres_branchesso bundles can hard-delete a Lakebase branch on destroy (skipping the soft-delete retention window) (#5801). - Support
replace_existing: trueonpostgres_databasesandpostgres_rolesso bundles can take over a database or role that already exists on a Lakebase branch instead of failing withALREADY_EXISTS(#5803).
Dependency updates
- Bump databricks-sdk-go to v0.154.0 (#5855).
- Bump terraform-provider to 1.121.0 (#5857).
- Bump OpenTelemetry dependencies to v1.44.0 to address CVE-2026-41178 (#5873).
v1.6.0
Release v1.6.0
CLI
ssh connectnow accepts a--base-environmentflag to run a serverless session on a custom base environment. It takes anenv.yamlpath, aworkspace-base-environments/...resource ID, or a base environment display name, and is rejected together with--environment-versionor--cluster(#5706).databricks aitools installis now plugin-first: it installs the Databricks plugin through each agent's own CLI (Claude Code, Codex, GitHub Copilot) instead of copying raw skill files. Agents without a plugin (OpenCode, Antigravity) still get skill files, and Cursor prints the/add-plugin databricksstep. Use--skills-onlyto force raw skill files for every agent, or--path <dir>to write skills to a directory (#5738).databricks labs listnow only shows projects that can be installed (#5560).
Bundles
- direct: Fixed persistent drift on
model_serving_endpointscaused by thetraffic_configfield (#5708). - direct: Fix spurious update when
apply_policy_default_values: trueis set on job task, for-each-task, or job cluster new_cluster (#5731). Also fix spurious updates for for-each-task clusters due to missing backend defaults fordata_security_mode,node_type_id,driver_node_type_id,driver_instance_pool_id,enable_elastic_disk, andenable_local_disk_encryption. - direct: Cluster resize now falls back to regular update if resize fails due to
INVALID_STATE(#5716). bundle generate dashboardnow honors the--keyflag when naming the generated resource, and rejects combining--existing-path,--existing-id, and--resourceinstead of silently ignoring all but one (#5492).- Fixed
bundle deployment migratefailing onmodel_serving_endpoints/database_instanceswith permissions (regression since v1.5.0) (#5775). - After a terraform deploy, the CLI now dry-runs a migration to the direct engine (writing nothing locally or remotely) and reports the outcome via telemetry, warning if the migration could not be completed (#5797).
Dependency updates
v1.5.0
CLI
workspace export-dirno longer aborts when a workspace object's name is not a legal local filename (e.g. a notebook namedNew Notebook 2026-05-04 13:54:24whose:is illegal on Windows). Such files are now exported under a sanitized name with a warning and the export completes (#5171).ssh connectnow opens an interactivebashlogin shell by default instead of the compute image's default/bin/sh, falling back gracefully whenbashis unavailable. Passing an explicit remote command (-- <cmd>) is unaffected (#5687).ssh connectinteractive sessions now start in the user's workspace home folder (/Workspace/Users/<email>) instead of the OS home directory, falling back to the OS home when that folder is unavailable (#5688).
Bundles
- Add documentation for the common bundle resource fields
permissions,lifecycle, andgrantsin the JSON schema, so they surface in editor completions and the docs. bundle runnow prints the modern job run URL (/jobs/<id>/runs/<id>) so that non-admin users permitted to view the run are taken to the run instead of the workspace homepage.- References to a registered model's
registered_model_idnow resolve under the direct engine, matching Terraform behavior (#5621). - Fix missing field descriptions in the bundle JSON schema for fields whose upstream API docs arrived after the field was first annotated (e.g.
vector_search_endpoints.*.target_qps); stale placeholder markers no longer hide them (#5588). - Fix
bundle deploy --plandropping apostgres_role'srole_id, which caused the role to be recreated on the next deploy (#5672). - direct: Fix spurious cluster recreate when
apply_policy_default_values: trueis set (#5693). - direct: New 'deployment migrate' implementation that parses terraform state instead of fetching resources state from the backend (#5399).
Dependency updates
v1.4.0
CLI
- Improved error messages for
ssh connect: when an SSH connection attempt fails, the client now fetches and prints the server's recent error logs (#5555). - Increase the SSH server startup timeout from 10 to 45 minutes when a GPU accelerator is requested via
databricks ssh connect --accelerator(#5569). - Fix authentication falling back to the default profile in
.databrickscfgwhen a host is already configured via the environment (e.g.DATABRICKS_HOSTwithDATABRICKS_TOKEN) (#5616). - ssh: fix opening remote environment in Cursor, which previously hung on default-extension install and never opened the editor (#5619).
- Improve the error shown when
databricks labs installcannot find a project'slabs.yml: the message now explains that either the requested version does not exist or the project is not installable with the CLI, and links to the repository (#5559).
Bundles
- Remove API enum values and types that are still in development from the
databricks-bundlesPython package; these were never accepted by the backend (#5484). - direct: Fix resolving a resource reference that is used more than once within the same field (#5558).
- Bundle variable references now accept Unicode letters in path segments (e.g.
${var.变量}). (#5532) - Ignore remote changes for vector search direct_access_index_spec.schema_json to prevent drift when the backend normalizes the schema (#5481).
- Remove hidden, never-functional
--existing-dashboard-id,--existing-dashboard-path,--existing-alert-id, and--existing-genie-space-idalias flags frombundle generate; use the documented--existing-id/--existing-pathflags instead (#5591). - engine/direct: Fix WAL corruption after two consecutive failed deploys (#5606).
- engine/direct: Don't open the deployment state WAL when a deploy's plan fails (#5607).
- Ignore unity catalog managed schema property defaults to avoid unnecessary drift (#5195).
- Add
postgres_rolesandpostgres_databasesresources to create Postgres roles and databases on a Lakebase branch (#5467, #5627). - direct: Stop spurious recreate/rename on redeploy when the backend normalizes a resource's name-based ID (e.g. Unity Catalog lowercasing a schema or volume name) (#5599).
- Fix the generated pipeline README to suggest
databricks bundle run <pipeline> --refresh <table>for running a single transformation; the previously documented--selectflag is not supported bybundle run(#5252).
v1.3.0
Notable Changes
- The
directdeployment engine is now Generally Available and the default for new deployments. To opt out, setengine: terraformunderbundlein yourdatabricks.ymlor setDATABRICKS_BUNDLE_ENGINE=terraform. Existing deployments keep their current engine; see https://docs.databricks.com/aws/en/dev-tools/bundles/direct to migrate.
CLI
- Added the
databricks quickstartcommand, a short introduction to the CLI that prints a human-friendly guide interactively and an agent-oriented version when run non-interactively (#5464). - Add
databricks version --checkto report whether a newer CLI version is available and print the upgrade command for the detected install method (#5469). databricks auth describenow verifies credentials against both the workspace and account endpoints before reporting a failure, fixing false "Unable to authenticate" errors for account console profiles (#5479).databricks auth loginno longer prompts for workspace selection when logging in to an account console host (https://accounts.*). Pass--workspace-idexplicitly to store a workspace ID on such a profile (#5504).databricks auth profiles --skip-validateno longer makes any network calls; the host metadata fetch is skipped along with validation (#5530).
Bundles
- Set the default
data_security_modetoDATA_SECURITY_MODE_AUTOin bundle templates (#5452). - Mark vector search index index_subtype as backend_default to prevent drift after deployment (#5454).
bundle deployment migrate: handle resources added to or removed fromdatabricks.ymlsince the last Terraform deploy (#5463).- Add the
genie_spacesbundle resource for managing Databricks Genie spaces as code, plusbundle generate genie-spaceto import an existing space. Direct deployment engine only (#5282). - Fix spurious recreate of schemas and volumes whose names use mixed case (#5531).
v1.2.1
v1.2.0
CLI
experimental opennow opens every DABs resource type that has a workspace URL, picking upcatalogs,schemas,volumes,database_instances,database_catalogs,synced_database_tables,postgres_catalogs,postgres_synced_tables,quality_monitors,vector_search_endpoints, andvector_search_indexes(#5346).
Bundles
- Retry transient HTTP 5xx and 408 errors in direct deployment engine (#5349, #5364).
- Preserve
.designer.ipynbsuffix when translating notebook task paths so Lakeflow Designer files referenced from anotebook_taskresolve correctly in the workspace (#5370). - Fix script output dropping last line without trailing newline (#4995).
- engine/direct: Add
--selectflag tobundle planandbundle deployto plan/deploy a subset of resources (e.g.--select my_jobor--select jobs.my_job); resources referenced by the selection are included transitively (#5413). - Support
purge_on_delete: trueonpostgres_projectsso bundles can hard-delete a Lakebase project on destroy (skipping the soft-delete retention window) (#5414). - Support terraform references in direct engine (#5392)
- Support lifecycle.started for SQL warehouses (#5348)