Releases: databricks/cli
Release list
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)
Dependency updates
v1.1.0
Bundles
- The error reported when a direct-only resource (catalogs, external locations, vector search endpoints) is used with the terraform engine now also suggests setting
bundle.engine: directindatabricks.yml, in addition to theDATABRICKS_BUNDLE_ENGINEenvironment variable (#5295). - Added
vector_search_indexesas a bundle resource (direct engine only). Supports UC grants and prompts for confirmation on recreate or delete since both are destructive (#5123).
Dependency updates
- Bump Go toolchain to 1.26.3 (#5302).
- Bump
github.com/databricks/databricks-sdk-gofrom v0.132.0 to v0.136.0.
v1.0.0
The Databricks CLI is now generally available with version v1.0.0 as the first major release 🚀.
From this version on, the CLI follows semantic versioning (see README).
This change does not impact DABs or other existing commands beyond the changes listed below.
The 0.299.x line continues to receive security-critical patches through May 20, 2027; see SECURITY for the support policy.
Notable Changes
- Starting with v1.0.0, the CLI will use immutable release tags to increase security against supply chain attacks.
- Breaking change: OAuth tokens for interactive logins (
auth_type = databricks-cli) are now stored in the OS-native secure store by default (Keychain on macOS, Credential Manager on Windows, Secret Service on Linux) instead of~/.databricks/token-cache.json. After upgrading, rundatabricks auth loginonce per profile to re-authenticate; cached tokens from older versions are not migrated. To keep the previous file-backed storage, setDATABRICKS_AUTH_STORAGE=plaintextor addauth_storage = plaintextunder[__settings__]in~/.databrickscfg(the env var takes precedence over the config setting), then re-rundatabricks auth login. On systems where the OS keyring is not reachable (e.g. Linux containers without a D-Bus session bus), the CLI transparently falls back to the file cache when reading tokens so legacytoken-cache.jsonentries remain accessible without manual configuration.
CLI
- Added
databricks aitoolscommand group for installing Databricks skills into your coding agents (Claude Code, Cursor, Codex CLI, OpenCode, GitHub Copilot, Antigravity). Skills are fetched from github.com/databricks/databricks-agent-skills and either symlinked into each agent's skills directory or copied into the current project. Usedatabricks aitools installto set up,updateto pull newer versions,listto see what's available, anduninstallto remove them. Pick where they go with--scope=project|global(--scope=bothis accepted onupdateandlist). [__settings__].default_profileis now consulted as a fallback bydatabricks api,databricks auth token, and bundle commands when neither--profilenorDATABRICKS_CONFIG_PROFILEis set.databricks auth tokencontinues to give precedence toDATABRICKS_HOSToverdefault_profile. For bundle commands,default_profileonly applies when the bundle does not pin its ownworkspace.host.- Fixed bug where auth commands did not load the DEFAULT profile properly during auth where type is
databricks-cli. databricks workspace import-dirnow skips.git,.databricks, andnode_modulesdirectories during recursive imports. To import one of these directories deliberately, pass it asSOURCE_PATH(#5118).databricks postgres create-role --helpnow documents the--jsonbody shape and rejects the common mistake of wrapping the body in{"role": ...}client-side with a hint pointing at the correct shape (#5111).databricks aitools listhonors--output json, emitting a structured{release, skills[...], summary{}}document so coding agents and CI can consume the skill/version/installation matrix without scraping the tabular text output (#5233).
Bundles
- Make sure warnings asking for approval are understood by agents (#5239)
- Support
replace_existing: trueonpostgres_branchesandpostgres_endpointsso bundles can manage the implicitly-created production branch and primary read-write endpoint of a Lakebase project. - Add
postgres_catalogsresource to bind a Unity Catalog catalog to a Postgres database on a Lakebase Autoscaling branch (#5265). - Add
postgres_synced_tablesresource to sync a Unity Catalog Delta table into a Postgres table on a Lakebase Autoscaling branch (#5268). - engine/direct: Changes to state file now persisted to .wal file right away instead of being saved in the end (#5149)
v0.299.2
Release v0.299.2 (2026-05-13)
Notable Changes
- Breaking change:
vector_search_endpointsrenamedmin_qpstotarget_qpsin DABs configuration and thevector-search-endpointscommands, following the SDK rename in v0.131.0. Update anydatabricks.ymlusingmin_qps:totarget_qps:and any CLI invocations using--min-qpsto--target-qps.
CLI
auth loginno longer falls back to plaintext when the OS keyring is reachable but locked. The unlock prompt shown by the probe now runs in parallel with the OAuth flow, and the token is stored in the keyring once the user has typed their password.databricks auth describenow reports where U2M (databricks-cli) tokens are stored:plaintext(~/.databricks/token-cache.json) orsecure(OS keyring), and the source of the choice (env var, config setting, or default).- Marked the default profile in the interactive pickers shown by
databricks auth switch,databricks auth logout,databricks auth token, anddatabricks auth login, and moved it to the top of the list.databricks auth loginanddatabricks auth logoutnow offer the same selectors asdatabricks auth tokenanddatabricks auth switchrespectively. - The interactive auth profile pickers now start in search mode so typing immediately filters the list, and the action entries (
+ Create a new profile,→ Enter a host URL manually) are visually distinct from real profiles and stay visible regardless of the search query. - Shortened the host prompt label shown after
→ Enter a host URL manuallyindatabricks auth loginso the prompt no longer leaves stale lines on screen when typing or pasting a host URL.
Bundles
-
Stop applying
presets.name_prefix(and the dev-mode[dev <user>]rename) tovector_search_endpoints(#5209). -
Fix
bundle generatejob to preserve nested notebook directory structure (#4596) -
Propagate authentication environment (including
DATABRICKS_CONFIG_PROFILE) to theexperimental.pythonsubprocess so bundle validate/deploy no longer fails with a multi-profile host ambiguity error when several profiles in~/.databrickscfgshare the same host. -
Fixed
--force-pullonbundle summaryandbundle openso the flag bypasses the local state cache and reads state from the workspace.
Dependency updates
- Bump Go toolchain to 1.25.10 (#5213).
- Bump
github.com/databricks/databricks-sdk-gofrom v0.128.0 to v0.132.0. - Bump Terraform provider to v1.115.0.