Skip to content

[SSH] Make --environment-version flag public - #7310

Merged
rclarey merged 7 commits into
mainfrom
ssh-environment-version-flag-public
Nov 3, 2026
Merged

rclarey merged 7 commits into
mainfrom
ssh-environment-version-flag-public

Conversation

@rclarey

@rclarey rclarey commented Nov 3, 2026

Copy link
Copy Markdown
Contributor

Changes

  • ssh connect --environment-version now shows in help, with a description that is no longer AI-Runtime-only, and with an example.
  • Environment version is folded into the default connection name, as --base-environment already is. So two ssh connect commands with different environment versions start two different servers.
    • The default environment version is also folded into the connection name, so when the default version is bumped a running server on the old version is not reused
  • The flag is rejected together with --cluster, matching --base-environment and --usage-policy-id.

Why

CPU serverless environments 5 and 6 now work with the tunnel wherever the REPL sandbox's port forwarding is enabled. Users need a supported opt-in before the default moves off 4 once the rollout finishes. The IDE path already picks up the flag: ssh connect --ide vscode --environment-version 5 carries it in the generated ProxyCommand. ssh setup is dedicated-only, so it gets no flag.

Before this change the flag was hidden and ignored with --cluster, so rejecting that pair can only affect a hand-written invocation that never had any effect.

Tests

  • Unit tests cover the new validation and the connection-name hashing
  • go test ./acceptance -run TestAccept/ssh passes.
  • With a local build I checked the --help output and the --cluster rejection.

anton-107 and others added 3 commits October 30, 2026 15:35
Serverless environment versions 5 and 6 now work with the tunnel in the
regions where the driver's sandbox port forwarding is enabled, so users
need a supported way to opt in before the default moves off 4.

Make the flag visible, and close the two gaps a public flag would expose:

- Fold an explicit version into the default connection name, the same
  way --base-environment already is. Otherwise `ssh connect` followed by
  `ssh connect --environment-version 5` reuses the running version 4
  server.
- Reject the flag together with --cluster instead of silently ignoring it,
  matching --base-environment and --usage-policy-id.

Co-authored-by: Isaac <no-reply@databricks.com>
Co-authored-by: Isaac <no-reply@databricks.com>
@rclarey
rclarey requested review from a team as code owners November 3, 2026 12:27
@rclarey
rclarey requested review from anton-107, lennartkats-db and louis-johnston-db and removed request for louis-johnston-db November 3, 2026 12:27
@rclarey rclarey changed the title Ssh environment version flag public [SSH] Make --environment-version flag public Nov 3, 2026
@eng-dev-ecosystem-bot

eng-dev-ecosystem-bot commented Nov 3, 2026 •

Copy link
Copy Markdown
Collaborator

Integration test report

Commit: 6486b06

Run: 41649286660

Env 🔄​flaky ✅​pass 🙈​skip Time
✅​ aws linux-2core-8gb 271 15 10:29
🔄​ aws-windows-latest-4core-16gb 1 272 13 7:31
✅​ azure linux-2core-8gb 270 15 10:07
✅​ azure-windows-latest-4core-16gb 272 13 7:12
✅​ gcp linux-2core-8gb 271 15 9:09
✅​ gcp-windows-latest-4core-16gb 273 13 7:25
Test Name aws-windows-latest-4core-16gb
🔄​ TestSyncIncrementalSyncPythonNotebookDelete 🔄​f
Top 10 slowest tests (at least 2 minutes):
duration env testname
7:19 gcp-windows-latest-4core-16gb TestAccept
7:10 aws-windows-latest-4core-16gb TestAccept
7:05 azure-windows-latest-4core-16gb TestAccept
4:24 gcp linux-2core-8gb TestAccept
4:08 aws linux-2core-8gb TestAccept
4:07 azure linux-2core-8gb TestAccept
3:25 gcp linux-2core-8gb TestFilerWorkspaceFilesExtensionsReadDir
2:10 aws linux-2core-8gb TestFilerWorkspaceFilesExtensionsReadDir
2:07 aws-windows-latest-4core-16gb TestImportDir
2:07 gcp-windows-latest-4core-16gb TestSyncFullFileSync

@rclarey
rclarey requested a review from anton-107 November 3, 2026 12:53

@anton-107 anton-107 left a comment

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.

The changelog now covers the default-name change and the cleanup of the old secret scope and local files. LGTM.

@rclarey
rclarey added this pull request to the merge queue Nov 3, 2026
Merged via the queue into main with commit f9a6aa4 Nov 3, 2026
31 checks passed
@rclarey
rclarey deleted the ssh-environment-version-flag-public branch November 3, 2026 15:27
deco-sdk-tagging Bot added a commit that referenced this pull request Nov 4, 2026
## Release v1.24.0

### Notable Changes

 * A variable used as the value of a secret is now sensitive: referencing it from any other field, such as a job parameter or a secret's `comment`, is an error because the value would be used in plain text. Mark other secret-holding variables with `sensitive: true` to get the same protection. ([#7288](#7288))

### CLI

 * Fix `databricks auth login` and `databricks configure` overwriting the parent profile's host and token when saving a profile with a dotted name such as `team.prod` next to an existing `[team]`. ([#7266](#7266))
 * `databricks auth login` and `databricks auth token` now reject the name of an existing profile after "Create a new profile" instead of logging in to that profile. ([#7196](#7196))
 * `databricks auth login` and `databricks auth token` now reject a host that is not a URL with a hostname, such as `/`, `?o=123` or `https://`, instead of falling back to `DATABRICKS_HOST` or failing later. An empty host after "Enter a host URL manually" in the login profile picker no longer starts discovery login. ([#7195](#7195))
 * Prompts that validate their input, such as the `databricks configure` host prompt, no longer open with a red cross before anything is typed. ([#7314](#7314))
 * `databricks ssh connect` now documents `--environment-version` for choosing the serverless environment version, starts a separate default-named server for each version, and rejects the flag together with `--cluster`. Default connection names also include the environment version in their hash, so the default name when `--environment-version` is not specified changes with this release. Configuration associated with the old connection name (secret scope, SSH keys and known hosts in your local `.databricks` folder) will no longer be used and can be safely removed. ([#7310](#7310))

### AI Runtime

 * Show workspace-supported accelerator types in `databricks air run -h config.compute.accelerator_type`. ([#7275](#7275))
 * `air list` now reports `No active runs found.` for an empty active-only result. ([#7276](#7276))
 * Stop printing a retry notice on every `air run --watch`; retries are still reported when they happen. ([#7270](#7270))

### Bundles

 * Fix `bundle plan` reporting an update to an app's `config.env` values on every run, which also redeployed the app on every `bundle deploy`. The Apps API returns environment variable names only, so `value` and `value_from` are no longer compared against the remote deployment. ([#7326](#7326))
 * Add the `data_quality_monitors` resource for data quality monitors on Unity Catalog schemas and tables (direct engine only). ([#7094](#7094))
 * `bundle deploy` now asks for confirmation before recreating or deleting a Feature View, and `bundle deploy` and `bundle destroy` warn that FeatureSpecs using a Feature View are not checked. ([#7164](#7164))
 * Accept grant `privileges` values that the SDK enum does not list yet: `bundle validate` no longer warns (or errors under `--strict`) on them, and the PyDABs `Privilege` enum accepts unknown strings instead of raising. The JSON schema and PyDABs still advertise the known values for completion. ([#7315](#7315))
 * Add the `materialization_sets` resource, which materializes Feature Store Feature Views to offline and online stores. ([#7164](#7164))
 * Detect notebooks with the same rule as the workspace: a `.py`, `.sql`, `.scala` or `.r` file is a notebook when its first line contains `Databricks notebook source`, for example after a byte order mark. Previously such a file was tracked as a plain file, so removing it locally left the remote notebook behind. ([#7290](#7290))
 * Add `sensitive: true` for bundle variables. A variable used as the value of a secret is sensitive by default. `bundle validate -o json` redacts only sensitive variables instead of every string variable, and a sensitive variable can only be referenced from a sensitive resource field (such as a secret's `value`) or from another sensitive variable. ([#7288](#7288))

### Dependency Updates

 * Bump dependencies with known vulnerabilities. ([#7305](#7305))
 * Bump dependencies with known vulnerabilities. ([#7327](#7327))
 * Update the Go SDK to [v0.191.1](https://github.com/databricks/databricks-sdk-go/releases/tag/v0.191.1). ([#7277](#7277))
 * Update the Go SDK to [v0.193.0](https://github.com/databricks/databricks-sdk-go/releases/tag/v0.193.0). ([#7303](#7303))
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