Skip to content

Don't fall back to the default profile when a host is set via the environment - #5616

Merged
simonfaltum merged 5 commits into
mainfrom
simonfaltum/default-profile-env-host-guard
Jun 16, 2026
Merged

Don't fall back to the default profile when a host is set via the environment#5616
simonfaltum merged 5 commits into
mainfrom
simonfaltum/default-profile-env-host-guard

Conversation

@simonfaltum

@simonfaltumsimonfaltum commented Jun 16, 2026

Copy link
Copy Markdown
Member

Why

When DATABRICKS_HOST and DATABRICKS_TOKEN are set in the environment, the CLI was still falling back to the default profile from .databrickscfg and merging its credentials with the environment config, so commands could fail with more than one authorization method configured.

This surfaced on #5612: a cloud proxy run lost DATABRICKS_CONFIG_FILE, the CLI subprocess read the developer's real ~/.databrickscfg, and because that file had [__settings__].default_profile set, auth broke even though host and token were provided.

Why it happens

The Go SDK's config-file loader already ignores .databrickscfg when a host is configured and no profile is selected, but only while cfg.Profile is empty (configFileLoader.Configure). The CLI's resolveDefaultProfile pins cfg.Profile to the default profile before the SDK runs, which defeats that skip-guard: the SDK then loads the profile and merges its credentials with the environment config, producing the conflict.

Changes

Before: resolveDefaultProfile (used by MustWorkspaceClient and MustAccountClient) pinned cfg.Profile to the resolved default profile whenever no profile was requested via --profile / DATABRICKS_CONFIG_PROFILE, regardless of the environment.

Now: it returns early when DATABRICKS_HOST is set. Authentication is then fully determined by the environment, so an explicit host and token win and the default profile is not pinned. This mirrors the SDK's own behavior. Pinning was only ever needed to keep cfg.Profile in sync for the OAuth cache key when the SDK actually reads a profile, which is exactly the case where no host is set in the environment.

User-visible effect: auth describe with DATABRICKS_HOST set now reports profile: default instead of the configured default_profile, since the environment, not the profile, determines auth. The cmd/auth/describe/default-profile acceptance test is updated to reflect this.

cmd/api/api.go pins the default profile inline with the same gap; that is left for a separate change to keep this PR focused. cmd/auth/token.go is intentionally excluded since it resolves which profile to mint a token for.

Test plan

  • New unit test TestMustWorkspaceClientEnvHostSkipsDefaultProfile: with DATABRICKS_HOST + DATABRICKS_TOKEN set and a same-host default profile that uses basic auth, the profile is not pinned and auth succeeds. Verified it fails without the fix (more than one authorization method configured: basic and pat).
  • Existing default-profile tests still pass (cmd/auth/..., auth/..., cmd/api/...); cmd/auth/describe/default-profile output regenerated.
  • ./task fmt-q, ./task checks, ./task lint-q clean.

This pull request and its description were written by Isaac.

resolveDefaultProfile pinned cfg.Profile to [__settings__].default_profile
(or [DEFAULT]) even when DATABRICKS_HOST was already set in the environment.
That defeats the SDK config-file loader's skip-guard, which ignores
.databrickscfg only while cfg.Profile is empty, so the profile's credentials
get merged with the environment config and auth fails with "more than one
authorization method configured".
Skip default-profile resolution when DATABRICKS_HOST is set, mirroring the
SDK behavior so an explicitly configured host and token win.
Co-authored-by: Isaac
Co-authored-by: Isaac
The first version skipped default-profile resolution whenever DATABRICKS_HOST
was set. That was too broad: it also disabled pinning when the default profile
targets the same host as the environment, which is the case `auth describe`
relies on (acceptance test cmd/auth/describe/default-profile) and which #5280
intentionally pins to keep the OAuth cache key correct.
Skip pinning only when DATABRICKS_HOST is set and differs from the resolved
default profile's host. A profile pointing at a different host is for another
workspace, so pinning it merges conflicting credentials. When the hosts match
there is no conflict and the profile is still pinned.
Adds databrickscfg.SameHost and databrickscfg.ProfileHost helpers.
Co-authored-by: Isaac
@eng-dev-ecosystem-bot

eng-dev-ecosystem-bot commented Jun 16, 2026

Copy link
Copy Markdown
Collaborator

Integration test report

Commit: 57ffbd4

Run: 27618692955

Env🟨​KNOWN🔄​flaky💚​RECOVERED🙈​SKIP✅​pass🙈​skipTime
🟨​aws linux7152649827:20
🔄​aws windows431526698013:15
💚​aws-ucws linux7153608967:04
💚​aws-ucws windows7153628949:09
💚​azure linux1172679805:54
💚​azure windows1172699788:27
💚​azure-ucws linux1173658927:29
💚​azure-ucws windows11736789010:59
💚​gcp linux1172639835:45
💚​gcp windows11726598110:02
22 interesting tests: 15 SKIP, 7 KNOWN
Test Nameaws linuxaws windowsaws-ucws linuxaws-ucws windowsazure linuxazure windowsazure-ucws linuxazure-ucws windowsgcp linuxgcp windows
🟨​TestAccept🟨​K💚​R💚​R💚​R💚​R💚​R💚​R💚​R💚​R💚​R
🙈​TestAccept/bundle/invariant/no_drift🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S
🙈​TestAccept/bundle/resources/permissions🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S
🟨​TestAccept/bundle/resources/permissions/jobs/destroy_without_mgmtperms/with_permissions🟨​K💚​R💚​R💚​R🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S
🟨​TestAccept/bundle/resources/permissions/jobs/destroy_without_mgmtperms/with_permissions/DATABRICKS_BUNDLE_ENGINE=direct🟨​K🔄​f💚​R💚​R
🟨​TestAccept/bundle/resources/permissions/jobs/destroy_without_mgmtperms/with_permissions/DATABRICKS_BUNDLE_ENGINE=terraform🟨​K🔄​f💚​R💚​R
🟨​TestAccept/bundle/resources/permissions/jobs/destroy_without_mgmtperms/without_permissions🟨​K💚​R💚​R💚​R🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S
🟨​TestAccept/bundle/resources/permissions/jobs/destroy_without_mgmtperms/without_permissions/DATABRICKS_BUNDLE_ENGINE=direct🟨​K🔄​f💚​R💚​R
🟨​TestAccept/bundle/resources/permissions/jobs/destroy_without_mgmtperms/without_permissions/DATABRICKS_BUNDLE_ENGINE=terraform🟨​K🔄​f💚​R💚​R
🙈​TestAccept/bundle/resources/postgres_branches/basic🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S
🙈​TestAccept/bundle/resources/postgres_branches/recreate🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S
🙈​TestAccept/bundle/resources/postgres_branches/replace_existing🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S
🙈​TestAccept/bundle/resources/postgres_branches/update_protected🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S
🙈​TestAccept/bundle/resources/postgres_branches/without_branch_id🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S
🙈​TestAccept/bundle/resources/postgres_endpoints/basic🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S
🙈​TestAccept/bundle/resources/postgres_endpoints/recreate🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S
🙈​TestAccept/bundle/resources/postgres_projects/update_display_name🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S
🙈​TestAccept/bundle/resources/synced_database_tables/basic🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S
🙈​TestAccept/bundle/resources/vector_search_endpoints/drift/recreated_same_name🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S
🙈​TestAccept/bundle/resources/vector_search_indexes/basic🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S
🙈​TestAccept/bundle/resources/vector_search_indexes/grants/select🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S
🙈​TestAccept/ssh/connection🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S
Top 24 slowest tests (at least 2 minutes):
durationenvtestname
4:40gcp windowsTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=direct
4:37gcp windowsTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=terraform
4:01gcp linuxTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=direct
3:41azure-ucws windowsTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=terraform
3:40gcp linuxTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=terraform
3:37gcp windowsTestAccept
3:29aws-ucws windowsTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=direct
3:25aws windowsTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=terraform
3:11azure windowsTestAccept
3:09azure-ucws windowsTestAccept
3:09aws-ucws windowsTestAccept
3:01azure linuxTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=direct
3:00aws linuxTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=terraform
2:58azure-ucws windowsTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=direct
2:57aws-ucws linuxTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=direct
2:55azure linuxTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=terraform
2:55aws-ucws windowsTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=terraform
2:51azure windowsTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=terraform
2:50azure-ucws linuxTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=terraform
2:41azure windowsTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=direct
2:38aws-ucws linuxTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=terraform
2:37azure-ucws linuxTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=direct
2:27aws linuxTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=direct
2:26aws windowsTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=direct

Replaces the host-comparison guard with the simpler rule from the SDK and PR
review: when DATABRICKS_HOST is configured in the environment, never pin a
default profile. The host-comparison approach still merged conflicting auth when
a same-host default profile used a different auth method (e.g. basic or oauth vs
the env PAT), which the GPT review flagged.
- resolveDefaultProfile: return early when DATABRICKS_HOST is set.
- Remove the now-unused SameHost and ProfileHost helpers and their tests.
- auth describe: with DATABRICKS_HOST set, the default profile is no longer
pinned; regenerate cmd/auth/describe/default-profile output accordingly.
Co-authored-by: Isaac
@@ -1,5 +1,5 @@

=== Describe without --profile (should use default)
=== Describe without --profile (DATABRICKS_HOST takes precedence over default_profile)

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.

do we also have one where DATABRICKS_HOST is unset?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good call. Added a second scenario to this test (57ffbd4): with DATABRICKS_HOST unset, auth describe resolves and uses the default profile (profile: my-workspace, host/token sourced "from the config file").

Add a second scenario to cmd/auth/describe/default-profile showing that the
default profile is resolved and used when DATABRICKS_HOST is not set in the
environment, complementing the precedence case where it is set.
Co-authored-by: Isaac
@simonfaltum
simonfaltum enabled auto-merge June 16, 2026 12:55
@simonfaltum
simonfaltum added this pull request to the merge queueJun 16, 2026
Merged via the queue into main with commit bc4ac2fJun 16, 2026
27 checks passed
@simonfaltum
simonfaltum deleted the simonfaltum/default-profile-env-host-guard branch June 16, 2026 13:56
@eng-dev-ecosystem-bot

Copy link
Copy Markdown
Collaborator

Integration test report

Commit: bc4ac2f

Run: 27622845458

Env💥​PANIC❌​FAIL🟨​KNOWN🤯​MISS🔄​flaky💚​RECOVERED🙈​SKIP✅​pass🙈​skipTime
🔄​aws linux10315539915110:06
🟨​aws windows71551192585:04
💥​aws-ucws linux18203352722739120:00
💥​aws-ucws windows18176352700754120:05
❌​azure linux41617544911292:46
❌​azure windows81617506921345:33
💥​azure-ucws linux1281227712646747120:00
💥​azure-ucws windows12022412616762120:05
❌​gcp linux4117532919280:24
❌​gcp windows2517498927120:05
473 interesting tests: 390 MISS, 43 FAIL, 21 RECOVERED, 8 KNOWN, 5 flaky, 4 PANIC, 2 SKIP
Test Nameaws linuxaws windowsaws-ucws linuxaws-ucws windowsazure linuxazure windowsazure-ucws linuxazure-ucws windowsgcp linuxgcp windows
🟨​TestAccept💚​R🟨​K🤯​M🤯​M🟨​K🟨​K🤯​M🤯​M🟨​K🤯​M
🤯​TestAccept/bundle/apps/job_permissions🙈​s🙈​s🤯​M🤯​M🙈​s🙈​s🤯​M✅​p🙈​s🙈​s
🤯​TestAccept/bundle/apps/job_permissions/DATABRICKS_BUNDLE_ENGINE=direct🤯​M🤯​M🤯​M✅​p
🤯​TestAccept/bundle/apps/job_permissions/DATABRICKS_BUNDLE_ENGINE=terraform🤯​M🤯​M🤯​M✅​p
🤯​TestAccept/bundle/artifacts/artifact_path_with_volume/volume_doesnot_exist🙈​s🙈​s🤯​M🤯​M🙈​s🙈​s🤯​M✅​p🙈​s🙈​s
🤯​TestAccept/bundle/artifacts/artifact_path_with_volume/volume_doesnot_exist/DATABRICKS_BUNDLE_ENGINE=direct🤯​M🤯​M🤯​M✅​p
🤯​TestAccept/bundle/artifacts/artifact_path_with_volume/volume_doesnot_exist/DATABRICKS_BUNDLE_ENGINE=terraform🤯​M🤯​M🤯​M✅​p
🤯​TestAccept/bundle/artifacts/artifact_path_with_volume/volume_not_deployed🙈​s🙈​s🤯​M🤯​M🙈​s🙈​s🤯​M✅​p🙈​s🙈​s
🤯​TestAccept/bundle/artifacts/artifact_path_with_volume/volume_not_deployed/DATABRICKS_BUNDLE_ENGINE=direct🤯​M🤯​M🤯​M✅​p
🤯​TestAccept/bundle/artifacts/artifact_path_with_volume/volume_not_deployed/DATABRICKS_BUNDLE_ENGINE=terraform🤯​M🤯​M🤯​M✅​p
🤯​TestAccept/bundle/config-remote-sync/cli_defaults✅​p🙈​s🤯​M🙈​s✅​p🙈​s🤯​M🙈​s✅​p🙈​s
🤯​TestAccept/bundle/config-remote-sync/cli_defaults/DATABRICKS_BUNDLE_ENGINE=direct✅​p🤯​M✅​p🤯​M✅​p
🤯​TestAccept/bundle/config-remote-sync/cli_defaults/DATABRICKS_BUNDLE_ENGINE=terraform✅​p🤯​M✅​p🤯​M✅​p
🤯​TestAccept/bundle/config-remote-sync/config_edits✅​p🙈​s🤯​M🙈​s✅​p🙈​s🤯​M🙈​s✅​p🙈​s
🤯​TestAccept/bundle/config-remote-sync/config_edits/DATABRICKS_BUNDLE_ENGINE=direct✅​p🤯​M✅​p🤯​M✅​p
🤯​TestAccept/bundle/config-remote-sync/config_edits/DATABRICKS_BUNDLE_ENGINE=terraform✅​p🤯​M✅​p🤯​M✅​p
🤯​TestAccept/bundle/config-remote-sync/dashboard_etag✅​p🙈​s🤯​M🙈​s✅​p🙈​s🤯​M🙈​s✅​p🙈​s
🤯​TestAccept/bundle/config-remote-sync/dashboard_etag/DATABRICKS_BUNDLE_ENGINE=direct✅​p🤯​M✅​p🤯​M✅​p
🤯​TestAccept/bundle/config-remote-sync/dashboard_etag/DATABRICKS_BUNDLE_ENGINE=terraform✅​p🤯​M✅​p🤯​M✅​p
🤯​TestAccept/bundle/config-remote-sync/flushed_cache✅​p🙈​s🤯​M🙈​s✅​p🙈​s🤯​M🙈​s✅​p🙈​s
🤯​TestAccept/bundle/config-remote-sync/flushed_cache/DATABRICKS_BUNDLE_ENGINE=direct✅​p🤯​M✅​p🤯​M✅​p
🤯​TestAccept/bundle/config-remote-sync/flushed_cache/DATABRICKS_BUNDLE_ENGINE=terraform✅​p🤯​M✅​p🤯​M✅​p
🤯​TestAccept/bundle/config-remote-sync/formatting_preserved✅​p🙈​s🤯​M🙈​s✅​p🙈​s🤯​M🙈​s✅​p🙈​s
🤯​TestAccept/bundle/config-remote-sync/formatting_preserved/DATABRICKS_BUNDLE_ENGINE=direct✅​p🤯​M✅​p🤯​M✅​p
🤯​TestAccept/bundle/config-remote-sync/formatting_preserved/DATABRICKS_BUNDLE_ENGINE=terraform✅​p🤯​M✅​p🤯​M✅​p
🤯​TestAccept/bundle/config-remote-sync/job_fields🙈​s🙈​s🤯​M🙈​s🙈​s🙈​s🤯​M🙈​s🙈​s🙈​s
🤯​TestAccept/bundle/config-remote-sync/job_fields/DATABRICKS_BUNDLE_ENGINE=direct🤯​M🤯​M
🤯​TestAccept/bundle/config-remote-sync/job_fields/DATABRICKS_BUNDLE_ENGINE=terraform🤯​M🤯​M
🤯​TestAccept/bundle/config-remote-sync/job_multiple_tasks✅​p🙈​s🤯​M🙈​s✅​p🙈​s🤯​M🙈​s✅​p🙈​s
🤯​TestAccept/bundle/config-remote-sync/job_multiple_tasks/DATABRICKS_BUNDLE_ENGINE=direct✅​p🤯​M✅​p🤯​M✅​p
🤯​TestAccept/bundle/config-remote-sync/job_multiple_tasks/DATABRICKS_BUNDLE_ENGINE=terraform✅​p🤯​M✅​p🤯​M✅​p
🤯​TestAccept/bundle/config-remote-sync/job_params_variables🙈​s🙈​s🤯​M🙈​s🙈​s🙈​s🤯​M🙈​s🙈​s🙈​s
🤯​TestAccept/bundle/config-remote-sync/job_params_variables/DATABRICKS_BUNDLE_ENGINE=direct🤯​M🤯​M
🤯​TestAccept/bundle/config-remote-sync/job_params_variables/DATABRICKS_BUNDLE_ENGINE=terraform🤯​M🤯​M
🤯​TestAccept/bundle/config-remote-sync/job_pipeline_task✅​p🙈​s🤯​M🙈​s✅​p🙈​s🤯​M🙈​s✅​p🙈​s
🤯​TestAccept/bundle/config-remote-sync/job_pipeline_task/DATABRICKS_BUNDLE_ENGINE=direct✅​p🤯​M✅​p🤯​M✅​p
🤯​TestAccept/bundle/config-remote-sync/job_pipeline_task/DATABRICKS_BUNDLE_ENGINE=terraform✅​p🤯​M✅​p🤯​M✅​p
🤯​TestAccept/bundle/config-remote-sync/multiple_files✅​p🙈​s🤯​M🙈​s✅​p🙈​s🤯​M🙈​s✅​p🙈​s
🤯​TestAccept/bundle/config-remote-sync/multiple_files/DATABRICKS_BUNDLE_ENGINE=direct✅​p🤯​M✅​p🤯​M✅​p
🤯​TestAccept/bundle/config-remote-sync/multiple_files/DATABRICKS_BUNDLE_ENGINE=terraform✅​p🤯​M✅​p🤯​M✅​p
🤯​TestAccept/bundle/config-remote-sync/multiple_resources🙈​s🙈​s🤯​M🙈​s🙈​s🙈​s🤯​M🙈​s🙈​s🙈​s
🤯​TestAccept/bundle/config-remote-sync/multiple_resources/DATABRICKS_BUNDLE_ENGINE=direct🤯​M🤯​M
🤯​TestAccept/bundle/config-remote-sync/multiple_resources/DATABRICKS_BUNDLE_ENGINE=terraform🤯​M🤯​M
🤯​TestAccept/bundle/config-remote-sync/output_json✅​p🙈​s🤯​M🙈​s✅​p🙈​s🤯​M🙈​s✅​p🙈​s
🤯​TestAccept/bundle/config-remote-sync/output_json/DATABRICKS_BUNDLE_ENGINE=direct✅​p🤯​M✅​p🤯​M✅​p
🤯​TestAccept/bundle/config-remote-sync/output_json/DATABRICKS_BUNDLE_ENGINE=terraform✅​p🤯​M✅​p🤯​M✅​p
🤯​TestAccept/bundle/config-remote-sync/output_no_changes✅​p🙈​s🤯​M🙈​s✅​p🙈​s🤯​M🙈​s✅​p🙈​s
🤯​TestAccept/bundle/config-remote-sync/output_no_changes/DATABRICKS_BUNDLE_ENGINE=direct✅​p🤯​M✅​p🤯​M✅​p
🤯​TestAccept/bundle/config-remote-sync/output_no_changes/DATABRICKS_BUNDLE_ENGINE=terraform✅​p🤯​M✅​p🤯​M✅​p
🤯​TestAccept/bundle/config-remote-sync/pipeline_fields🙈​s🙈​s🤯​M🙈​s🙈​s🙈​s🤯​M🙈​s🙈​s🙈​s
🤯​TestAccept/bundle/config-remote-sync/pipeline_fields/DATABRICKS_BUNDLE_ENGINE=direct🤯​M🤯​M
🤯​TestAccept/bundle/config-remote-sync/pipeline_fields/DATABRICKS_BUNDLE_ENGINE=terraform🤯​M🤯​M
🤯​TestAccept/bundle/config-remote-sync/resolve_variables🙈​s🙈​s🤯​M🙈​s🙈​s🙈​s🤯​M🙈​s🙈​s🙈​s
🤯​TestAccept/bundle/config-remote-sync/resolve_variables/DATABRICKS_BUNDLE_ENGINE=direct🤯​M🤯​M
🤯​TestAccept/bundle/config-remote-sync/resolve_variables/DATABRICKS_BUNDLE_ENGINE=terraform🤯​M🤯​M
🤯​TestAccept/bundle/config-remote-sync/target_override✅​p🙈​s🤯​M🙈​s✅​p🙈​s🤯​M🙈​s✅​p🙈​s
🤯​TestAccept/bundle/config-remote-sync/target_override/DATABRICKS_BUNDLE_ENGINE=direct✅​p🤯​M✅​p🤯​M✅​p
🤯​TestAccept/bundle/config-remote-sync/target_override/DATABRICKS_BUNDLE_ENGINE=terraform✅​p🤯​M✅​p🤯​M✅​p
🤯​TestAccept/bundle/config-remote-sync/task_rename_revert✅​p🙈​s🤯​M🙈​s✅​p🙈​s🤯​M🙈​s✅​p🙈​s
🤯​TestAccept/bundle/config-remote-sync/task_rename_revert/DATABRICKS_BUNDLE_ENGINE=direct✅​p🤯​M✅​p🤯​M✅​p
🤯​TestAccept/bundle/config-remote-sync/task_rename_revert/DATABRICKS_BUNDLE_ENGINE=terraform✅​p🤯​M✅​p🤯​M✅​p
🤯​TestAccept/bundle/deploy/empty-bundle✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deploy/empty-bundle/DATABRICKS_BUNDLE_ENABLE_EXPERIMENTAL_YAML_SYNC=/DATABRICKS_BUNDLE_ENGINE=direct✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deploy/empty-bundle/DATABRICKS_BUNDLE_ENABLE_EXPERIMENTAL_YAML_SYNC=/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deploy/empty-bundle/DATABRICKS_BUNDLE_ENABLE_EXPERIMENTAL_YAML_SYNC=true/DATABRICKS_BUNDLE_ENGINE=direct✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deploy/empty-bundle/DATABRICKS_BUNDLE_ENABLE_EXPERIMENTAL_YAML_SYNC=true/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deploy/files/no-snapshot-sync✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deploy/files/no-snapshot-sync/DATABRICKS_BUNDLE_ENGINE=direct✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deploy/files/no-snapshot-sync/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deploy/mlops-stacks✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deploy/mlops-stacks/DATABRICKS_BUNDLE_ENGINE=direct✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deploy/mlops-stacks/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deploy/snapshot-comparison✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deploy/snapshot-comparison/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deploy/spark-jar-task🔄​f✅​p🤯​M🤯​M✅​p✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deploy/spark-jar-task/DATABRICKS_BUNDLE_ENGINE=direct🔄​f✅​p🤯​M🤯​M✅​p✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deploy/spark-jar-task/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/alert🙈​s🙈​s🙈​s🙈​s✅​p✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/alert/DATABRICKS_BUNDLE_ENGINE=direct✅​p✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/alert/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/catalog🙈​s🙈​s🤯​M🤯​M🙈​s🙈​s🤯​M✅​p🙈​s🙈​s
🤯​TestAccept/bundle/deployment/bind/catalog/DATABRICKS_BUNDLE_ENGINE=direct🤯​M🤯​M🤯​M✅​p
🤯​TestAccept/bundle/deployment/bind/cluster✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/cluster/DATABRICKS_BUNDLE_ENGINE=direct✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/cluster/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/dashboard✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/dashboard/DATABRICKS_BUNDLE_ENGINE=direct✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/dashboard/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/dashboard/recreation✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/dashboard/recreation/DATABRICKS_BUNDLE_ENGINE=direct✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/dashboard/recreation/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/experiment✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/experiment/DATABRICKS_BUNDLE_ENGINE=direct✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/experiment/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/job/generate-and-bind✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/job/generate-and-bind/DATABRICKS_BUNDLE_ENGINE=direct✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/job/generate-and-bind/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/job/job-abort-bind✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/job/job-abort-bind/DATABRICKS_BUNDLE_ENGINE=direct✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/job/job-abort-bind/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/job/job-spark-python-task✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/job/job-spark-python-task/DATABRICKS_BUNDLE_ENGINE=direct✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/job/job-spark-python-task/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/model-serving-endpoint✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/model-serving-endpoint/DATABRICKS_BUNDLE_ENGINE=direct✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/model-serving-endpoint/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/pipelines/recreate✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/pipelines/recreate/DATABRICKS_BUNDLE_ENGINE=direct✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/pipelines/recreate/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/registered-model🙈​s🙈​s🤯​M🤯​M🙈​s🙈​s🤯​M✅​p🙈​s🙈​s
🤯​TestAccept/bundle/deployment/bind/registered-model/DATABRICKS_BUNDLE_ENGINE=direct🤯​M🤯​M🤯​M✅​p
🤯​TestAccept/bundle/deployment/bind/registered-model/DATABRICKS_BUNDLE_ENGINE=terraform🤯​M🤯​M🤯​M✅​p
🤯​TestAccept/bundle/deployment/bind/schema🙈​s🙈​s🤯​M🤯​M🙈​s🙈​s🤯​M✅​p🙈​s🙈​s
🤯​TestAccept/bundle/deployment/bind/schema/DATABRICKS_BUNDLE_ENGINE=direct🤯​M🤯​M🤯​M✅​p
🤯​TestAccept/bundle/deployment/bind/schema/DATABRICKS_BUNDLE_ENGINE=terraform🤯​M🤯​M🤯​M✅​p
🤯​TestAccept/bundle/deployment/bind/secret-scope🙈​s🙈​s🤯​M🤯​M🙈​s🙈​s🤯​M✅​p🙈​s🙈​s
🤯​TestAccept/bundle/deployment/bind/secret-scope/DATABRICKS_BUNDLE_ENGINE=direct🤯​M🤯​M🤯​M✅​p
🤯​TestAccept/bundle/deployment/bind/secret-scope/DATABRICKS_BUNDLE_ENGINE=terraform🤯​M🤯​M🤯​M✅​p
🤯​TestAccept/bundle/deployment/bind/vector_search_endpoint🙈​s🙈​s🤯​M🤯​M🙈​s🙈​s🤯​M✅​p🙈​s🙈​s
🤯​TestAccept/bundle/deployment/bind/vector_search_endpoint/DATABRICKS_BUNDLE_ENGINE=direct🤯​M🤯​M🤯​M✅​p
🤯​TestAccept/bundle/deployment/bind/vector_search_index🙈​s🙈​s🤯​M🤯​M🙈​s🙈​s🤯​M✅​p🙈​s🙈​s
🤯​TestAccept/bundle/deployment/bind/vector_search_index/DATABRICKS_BUNDLE_ENGINE=direct🤯​M🤯​M🤯​M✅​p
🤯​TestAccept/bundle/deployment/bind/volume🙈​s🙈​s🤯​M🤯​M🙈​s🙈​s✅​p✅​p🙈​s🙈​s
🤯​TestAccept/bundle/deployment/bind/volume/DATABRICKS_BUNDLE_ENGINE=direct🤯​M🤯​M✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/volume/DATABRICKS_BUNDLE_ENGINE=terraform🤯​M🤯​M✅​p✅​p
🤯​TestAccept/bundle/deployment/unbind/grants🙈​s🙈​s🤯​M🤯​M🙈​s🙈​s🤯​M✅​p🙈​s🙈​s
🤯​TestAccept/bundle/deployment/unbind/grants/DATABRICKS_BUNDLE_ENGINE=direct🤯​M🤯​M🤯​M✅​p
🤯​TestAccept/bundle/deployment/unbind/grants/DATABRICKS_BUNDLE_ENGINE=terraform🤯​M🤯​M🤯​M✅​p
🤯​TestAccept/bundle/deployment/unbind/permissions✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deployment/unbind/permissions/DATABRICKS_BUNDLE_ENGINE=direct✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deployment/unbind/permissions/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/destroy/jobs-and-pipeline✅​p✅​p🤯​M✅​p✅​p✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/destroy/jobs-and-pipeline/DATABRICKS_BUNDLE_ENGINE=direct✅​p✅​p🤯​M✅​p✅​p✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/destroy/jobs-and-pipeline/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p🤯​M✅​p✅​p✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/generate/alert✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/generate/alert/DATABRICKS_BUNDLE_ENGINE=direct✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/generate/alert/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/generate/auto-bind✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/generate/auto-bind/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M✅​p✅​p✅​p
Top 50 slowest tests (at least 2 minutes):
durationenvtestname
33:12aws-ucws linuxTestAccept/bundle/resources/vector_search_indexes/grants/select/DATABRICKS_BUNDLE_ENGINE=direct
32:03aws-ucws windowsTestAccept/bundle/resources/vector_search_indexes/grants/select/DATABRICKS_BUNDLE_ENGINE=direct
30:59aws-ucws linuxTestAccept/bundle/resources/vector_search_indexes/recreate/embedding_dimension/DATABRICKS_BUNDLE_ENGINE=direct
30:43aws-ucws windowsTestAccept/bundle/resources/vector_search_indexes/basic/DATABRICKS_BUNDLE_ENGINE=direct
29:09aws-ucws linuxTestAccept/bundle/resources/vector_search_indexes/basic/DATABRICKS_BUNDLE_ENGINE=direct
28:49gcp linuxTestAccept/bundle/integration_whl/interactive_single_user/DATABRICKS_BUNDLE_ENGINE=terraform
26:41aws linuxTestAccept/bundle/resources/sql_warehouses/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
26:13aws-ucws windowsTestAccept/bundle/resources/vector_search_indexes/recreate/embedding_dimension/DATABRICKS_BUNDLE_ENGINE=direct
21:40azure windowsTestAccept/bundle/integration_whl/base/DATABRICKS_BUNDLE_ENGINE=terraform
21:36azure-ucws windowsTestAccept/bundle/integration_whl/interactive_cluster_dynamic_version/DATABRICKS_BUNDLE_ENGINE=terraform/DATA_SECURITY_MODE=SINGLE_USER
20:09aws-ucws windowsTestAccept/bundle/resources/sql_warehouses/lifecycle-started-toggle/DATABRICKS_BUNDLE_ENGINE=direct
18:37azure-ucws windowsTestAccept/bundle/resources/vector_search_indexes/recreate/embedding_dimension/DATABRICKS_BUNDLE_ENGINE=direct
18:31azure-ucws linuxTestAccept/bundle/resources/vector_search_indexes/grants/select/DATABRICKS_BUNDLE_ENGINE=direct
18:01aws windowsTestAccept/bundle/integration_whl/base/DATABRICKS_BUNDLE_ENGINE=terraform
17:55gcp windowsTestAccept/bundle/integration_whl/interactive_cluster_dynamic_version/DATABRICKS_BUNDLE_ENGINE=terraform/DATA_SECURITY_MODE=SINGLE_USER
16:25azure-ucws linuxTestAccept/bundle/resources/vector_search_indexes/basic/DATABRICKS_BUNDLE_ENGINE=direct
16:18gcp windowsTestAccept/bundle/integration_whl/interactive_single_user/DATABRICKS_BUNDLE_ENGINE=terraform
16:02aws-ucws linuxTestAccept/bundle/resources/sql_warehouses/lifecycle-started-toggle/DATABRICKS_BUNDLE_ENGINE=direct
16:00azure windowsTestAccept/bundle/integration_whl/interactive_cluster_dynamic_version/DATABRICKS_BUNDLE_ENGINE=direct/DATA_SECURITY_MODE=SINGLE_USER
15:57gcp windowsTestAccept/bundle/integration_whl/base/DATABRICKS_BUNDLE_ENGINE=direct
15:18azure-ucws linuxTestAccept/bundle/resources/clusters/deploy/update-after-create/DATABRICKS_BUNDLE_ENGINE=terraform
15:08aws-ucws linuxTestAccept/bundle/resources/sql_warehouses/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
14:53gcp windowsTestAccept/bundle/integration_whl/base/DATABRICKS_BUNDLE_ENGINE=terraform
14:45aws windowsTestAccept/bundle/resources/sql_warehouses/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
14:24azure-ucws windowsTestAccept/bundle/resources/clusters/deploy/update-after-create/DATABRICKS_BUNDLE_ENGINE=direct
14:14gcp windowsTestAccept/bundle/resources/apps/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
14:07aws-ucws linuxTestAccept/bundle/resources/clusters/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
13:15azure windowsTestAccept/bundle/integration_whl/base/DATABRICKS_BUNDLE_ENGINE=direct
13:03gcp linuxTestAccept/bundle/resources/apps/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
11:45aws linuxTestAccept/bundle/resources/clusters/deploy/update-after-create/DATABRICKS_BUNDLE_ENGINE=direct
11:37aws linuxTestAccept/bundle/resources/sql_warehouses/lifecycle-started-toggle/DATABRICKS_BUNDLE_ENGINE=direct
11:36aws linuxTestAccept/bundle/integration_whl/interactive_cluster_dynamic_version/DATABRICKS_BUNDLE_ENGINE=terraform/DATA_SECURITY_MODE=SINGLE_USER
11:30gcp windowsTestAccept/bundle/integration_whl/interactive_single_user/DATABRICKS_BUNDLE_ENGINE=direct
11:11gcp windowsTestAccept/bundle/integration_whl/interactive_cluster_dynamic_version/DATABRICKS_BUNDLE_ENGINE=terraform/DATA_SECURITY_MODE=USER_ISOLATION
11:04aws windowsTestAccept/bundle/integration_whl/base/DATABRICKS_BUNDLE_ENGINE=direct
11:01aws-ucws linuxTestAccept/bundle/resources/model_serving_endpoints/running-endpoint/DATABRICKS_BUNDLE_ENGINE=terraform
10:50azure windowsTestAccept/bundle/integration_whl/interactive_cluster/DATABRICKS_BUNDLE_ENGINE=direct
10:45azure-ucws windowsTestAccept/bundle/integration_whl/interactive_cluster_dynamic_version/DATABRICKS_BUNDLE_ENGINE=direct/DATA_SECURITY_MODE=SINGLE_USER
10:38aws windowsTestAccept/bundle/integration_whl/interactive_single_user/DATABRICKS_BUNDLE_ENGINE=terraform
10:33aws linuxTestAccept/bundle/integration_whl/interactive_single_user/DATABRICKS_BUNDLE_ENGINE=terraform
10:24aws-ucws windowsTestAccept/bundle/resources/clusters/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
10:05azure windowsTestAccept/bundle/integration_whl/interactive_cluster_dynamic_version/DATABRICKS_BUNDLE_ENGINE=direct/DATA_SECURITY_MODE=USER_ISOLATION
10:05azure linuxTestAccept/bundle/integration_whl/interactive_single_user/DATABRICKS_BUNDLE_ENGINE=terraform
9:46gcp linuxTestAccept/bundle/run/app-with-job/DATABRICKS_BUNDLE_ENGINE=direct
9:24azure-ucws windowsTestAccept/bundle/resources/apps/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
9:23gcp windowsTestAccept/bundle/run/app-with-job/DATABRICKS_BUNDLE_ENGINE=terraform
8:56aws-ucws windowsTestAccept/bundle/resources/apps/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
8:49gcp linuxTestAccept/bundle/integration_whl/base/DATABRICKS_BUNDLE_ENGINE=terraform
8:47gcp linuxTestAccept/bundle/integration_whl/interactive_cluster_dynamic_version/DATABRICKS_BUNDLE_ENGINE=direct/DATA_SECURITY_MODE=USER_ISOLATION
8:46aws-ucws linuxTestAccept/bundle/resources/model_serving_endpoints/running-endpoint/DATABRICKS_BUNDLE_ENGINE=direct
(334 table rows omitted to keep the report under 60000 bytes)

deco-sdk-taggingBot added a commit that referenced this pull request Jun 17, 2026
## Release 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](#5555)).
* Increase the SSH server startup timeout from 10 to 45 minutes when a GPU accelerator is requested via `databricks ssh connect --accelerator` ([#5569](#5569)).
* Fix authentication falling back to the default profile in `.databrickscfg` when a host is already configured via the environment (e.g. `DATABRICKS_HOST` with `DATABRICKS_TOKEN`) ([#5616](#5616)).
* ssh: fix opening remote environment in Cursor, which previously hung on default-extension install and never opened the editor ([#5619](#5619)).
* Improve the error shown when `databricks labs install` cannot find a project's `labs.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](#5559)).
### Bundles
* Remove API enum values and types that are still in development from the `databricks-bundles` Python package; these were never accepted by the backend ([#5484](#5484)).
* direct: Fix resolving a resource reference that is used more than once within the same field ([#5558](#5558)).
* Bundle variable references now accept Unicode letters in path segments (e.g. `${var.变量}`). ([#5532](#5532))
* Ignore remote changes for vector search direct_access_index_spec.schema_json to prevent drift when the backend normalizes the schema ([#5481](#5481)).
* Remove hidden, never-functional `--existing-dashboard-id`, `--existing-dashboard-path`, `--existing-alert-id`, and `--existing-genie-space-id` alias flags from `bundle generate`; use the documented `--existing-id` / `--existing-path` flags instead ([#5591](#5591)).
* engine/direct: Fix WAL corruption after two consecutive failed deploys ([#5606](#5606)).
* engine/direct: Don't open the deployment state WAL when a deploy's plan fails ([#5607](#5607)).
* Ignore unity catalog managed schema property defaults to avoid unnecessary drift ([#5195](#5195)).
* Add `postgres_roles` and `postgres_databases` resources to create Postgres roles and databases on a Lakebase branch ([#5467](#5467), [#5627](#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](#5599)).
* Fix the generated pipeline README to suggest `databricks bundle run <pipeline> --refresh <table>` for running a single transformation; the previously documented `--select` flag is not supported by `bundle run` ([#5252](#5252)).
radakam added a commit that referenced this pull request Jul 2, 2026
The no---profile branch in `databricks api` pinned
[__settings__].default_profile unconditionally, so a conflicting default
profile could be merged with env auth (DATABRICKS_HOST/DATABRICKS_TOKEN),
failing with "more than one authorization method configured" (the #5616
class already fixed for MustWorkspaceClient).
Share the guard: export resolveDefaultProfile as ResolveDefaultProfile and
call it from cmd/api, so the default profile is skipped when DATABRICKS_HOST
is set. Adds an acceptance case with env PAT + conflicting default_profile.
radakam added a commit that referenced this pull request Jul 2, 2026
The no---profile branch in `databricks api` pinned
[__settings__].default_profile unconditionally, so a conflicting default
profile could be merged with env auth (DATABRICKS_HOST/DATABRICKS_TOKEN),
failing with "more than one authorization method configured" (the #5616
class already fixed for MustWorkspaceClient).
Share the guard: export resolveDefaultProfile as ResolveDefaultProfile and
call it from cmd/api, so the default profile is skipped when DATABRICKS_HOST
is set. Adds an acceptance case with env PAT + conflicting default_profile.
radakam added a commit that referenced this pull request Jul 2, 2026
The no---profile branch in `databricks api` pinned
[__settings__].default_profile unconditionally, so a conflicting default
profile could be merged with env auth (DATABRICKS_HOST/DATABRICKS_TOKEN),
failing with "more than one authorization method configured" (the #5616
class already fixed for MustWorkspaceClient).
Share the guard: export resolveDefaultProfile as ResolveDefaultProfile and
call it from cmd/api, so the default profile is skipped when DATABRICKS_HOST
is set. Adds an acceptance case with env PAT + conflicting default_profile.
radakam added a commit that referenced this pull request Jul 2, 2026
The no---profile branch in `databricks api` pinned
[__settings__].default_profile unconditionally, so a conflicting default
profile could be merged with env auth (DATABRICKS_HOST/DATABRICKS_TOKEN),
failing with "more than one authorization method configured" (the #5616
class already fixed for MustWorkspaceClient).
Share the guard: export resolveDefaultProfile as ResolveDefaultProfile and
call it from cmd/api, so the default profile is skipped when DATABRICKS_HOST
is set. Adds an acceptance case with env PAT + conflicting default_profile.
@radakamradakam mentioned this pull request Jul 3, 2026
afberg pushed a commit to afberg/cli that referenced this pull request Jul 3, 2026
…ment variables (databricks#5702)
### Why
With an explicit profile (`--profile` or a bundle's
`workspace.profile`), auth env vars (`DATABRICKS_HOST`,
`DATABRICKS_TOKEN`, ...) silently shadowed it: the SDK reads env before
the config file and never overwrites an already-set field.
Separately, `databricks api` without `--profile` pinned
`[__settings__].default_profile` unconditionally, so a conflicting
default profile could still be merged with env auth and fail with "more
than one authorization method configured" (the same `databricks#5616` class
already fixed for `MustWorkspaceClient`).
### Changes
Fixesdatabricks#5096
When a profile is selected explicitly, use a shared loader chain
(`databrickscfg.ProfileAuthLoaders`) so the profile wins for
host/auth/routing, while env still gap-fills only the auth fields the
profile leaves empty (e.g. host-only profile + `DATABRICKS_TOKEN`).
Non-auth env vars (e.g. `cluster_id`) stay env-first via a small
`ResolveNonAuthFromEnv` loader. Wired into `MustWorkspaceClient`,
`MustAccountClient`, `Workspace.Client`, and `databricks api`.
For `databricks api` without `--profile`, share the `databricks#5616`
default-profile guard instead of duplicating it: `resolveDefaultProfile`
is exported as `ResolveDefaultProfile` and called from `cmd/api`, so a
`default_profile` is skipped when `DATABRICKS_HOST` is set (single
source of truth with `MustWorkspaceClient`, no drift).
Explicit design choices:
- **Scope:** only an *explicit* profile changes behavior.
`DATABRICKS_CONFIG_PROFILE` keeps the SDK's env-first precedence.
- **Conflicting auth method:** a *complete* auth method in env (e.g.
profile PAT + env OAuth client id/secret) still errors with "more than
one authorization method configured".
- **SPOG query params:** for an explicit profile we skip
`NormalizeDatabricksConfigFromEnv`, so a SPOG-style `DATABRICKS_HOST`
(`?o=`/`?a=`) no longer overrides the profile; the profile's host is
authoritative.
### Tests
- Unit + acceptance: `--profile`/`workspace.profile` wins over auth env;
`DATABRICKS_CONFIG_PROFILE` stays env-first; host-only profile fills its
token from env; conflicting-method error.
- Acceptance: `databricks api` without `--profile` uses env auth and
ignores a conflicting `default_profile` when `DATABRICKS_HOST` is set
(fails pre-fix with "more than one authorization method configured").
- Guard test that fails if an SDK bump adds a new internal (`auth:"-"`)
env-backed attribute that hasn't been classified as auth-steering vs.
env-first.
Sign up for freeto 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

@simonfaltum@eng-dev-ecosystem-bot@janniklasrose