Skip to content

direct: ignore remote-only changes on name-based ID fields - #5599

Merged
denik merged 12 commits into
mainfrom
denik/named-id-fields
Jun 17, 2026
Merged

direct: ignore remote-only changes on name-based ID fields#5599
denik merged 12 commits into
mainfrom
denik/named-id-fields

Conversation

@denik

@denikdenik commented Jun 14, 2026

Copy link
Copy Markdown
Contributor

In #5531 we fixed spurious recreation of schemas/volumes due to backend lowercasing fields that are part of the id/name. This was fixed by making comparison for those fields case-insensitive.

This is more general fix for all resources that have ID fields configured in bundle config based on the following: if we can fetch the resource by ID, then even if fields come back changed, we should not recreate, because change can only be attributed to normalization, not replacement.

@denik
denikforce-pushed the denik/named-id-fields branch from de92903 to 380841eCompareJune 14, 2026 22:26
@denik
deniktemporarily deployed to test-trigger-is June 14, 2026 22:26 — with GitHub Actions Inactive
@denik
deniktemporarily deployed to test-trigger-is June 14, 2026 22:26 — with GitHub Actions Inactive
@denik
deniktemporarily deployed to test-trigger-is June 14, 2026 22:50 — with GitHub Actions Inactive
@denik
deniktemporarily deployed to test-trigger-is June 14, 2026 22:50 — with GitHub Actions Inactive
@eng-dev-ecosystem-bot

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

Copy link
Copy Markdown
Collaborator

Integration test report

Commit: ffb887f

Run: 27658827910

Env🔄​flaky💚​RECOVERED🙈​SKIP✅​pass🙈​skipTime
💚​aws linux7152649945:44
💚​aws windows7152669927:52
💚​aws-ucws linux7153609086:26
💚​aws-ucws windows7153629067:58
💚​azure linux1172679925:29
💚​azure windows1172699907:39
💚​azure-ucws linux1173659046:42
🔄​azure-ucws windows11173669029:49
💚​gcp linux1172639955:48
💚​gcp windows1172659938:54
23 interesting tests: 15 SKIP, 7 RECOVERED, 1 flaky
Test Nameaws linuxaws windowsaws-ucws linuxaws-ucws windowsazure linuxazure windowsazure-ucws linuxazure-ucws windowsgcp linuxgcp windows
💚​TestAccept💚​R💚​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💚​R💚​R💚​R💚​R🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S
💚​TestAccept/bundle/resources/permissions/jobs/destroy_without_mgmtperms/with_permissions/DATABRICKS_BUNDLE_ENGINE=direct💚​R💚​R💚​R💚​R
💚​TestAccept/bundle/resources/permissions/jobs/destroy_without_mgmtperms/with_permissions/DATABRICKS_BUNDLE_ENGINE=terraform💚​R💚​R💚​R💚​R
💚​TestAccept/bundle/resources/permissions/jobs/destroy_without_mgmtperms/without_permissions💚​R💚​R💚​R💚​R🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S
💚​TestAccept/bundle/resources/permissions/jobs/destroy_without_mgmtperms/without_permissions/DATABRICKS_BUNDLE_ENGINE=direct💚​R💚​R💚​R💚​R
💚​TestAccept/bundle/resources/permissions/jobs/destroy_without_mgmtperms/without_permissions/DATABRICKS_BUNDLE_ENGINE=terraform💚​R💚​R💚​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
🔄​TestSyncIncrementalFileOverwritesFolder✅​p✅​p✅​p✅​p✅​p✅​p✅​p🔄​f✅​p✅​p
Top 25 slowest tests (at least 2 minutes):
durationenvtestname
4:18gcp linuxTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=terraform
4:08gcp windowsTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=direct
4:05gcp windowsTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=terraform
4:00gcp linuxTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=direct
3:34azure-ucws windowsTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=terraform
3:26azure-ucws windowsTestAccept
3:23azure windowsTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=direct
3:14azure windowsTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=terraform
3:09aws-ucws linuxTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=terraform
3:04azure linuxTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=terraform
3:01aws-ucws linuxTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=direct
2:57aws windowsTestAccept
2:55aws windowsTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=terraform
2:51aws-ucws windowsTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=direct
2:47azure-ucws linuxTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=terraform
2:47aws-ucws windowsTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=terraform
2:43aws windowsTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=direct
2:42azure windowsTestAccept
2:41gcp windowsTestAccept
2:40aws linuxTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=direct
2:36azure-ucws windowsTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=direct
2:35aws-ucws windowsTestAccept
2:33azure-ucws linuxTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=direct
2:33aws linuxTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=terraform
2:31azure linuxTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=direct

@denik
denikforce-pushed the denik/named-id-fields branch from 4f7b7ab to b99237bCompareJune 15, 2026 13:43
@denik
deniktemporarily deployed to test-trigger-is June 15, 2026 13:43 — with GitHub Actions Inactive
@denik
deniktemporarily deployed to test-trigger-is June 15, 2026 13:43 — with GitHub Actions Inactive
@denik
denikforce-pushed the denik/named-id-fields branch from f99e1b4 to 042a58eCompareJune 15, 2026 16:38
@denik
deniktemporarily deployed to test-trigger-is June 15, 2026 16:38 — with GitHub Actions Inactive
@denik
deniktemporarily deployed to test-trigger-is June 15, 2026 16:38 — with GitHub Actions Inactive
@denik
deniktemporarily deployed to test-trigger-is June 15, 2026 16:46 — with GitHub Actions Inactive
@denik
deniktemporarily deployed to test-trigger-is June 15, 2026 16:46 — with GitHub Actions Inactive
@denik
deniktemporarily deployed to test-trigger-is June 15, 2026 16:52 — with GitHub Actions Inactive
@denik
deniktemporarily deployed to test-trigger-is June 15, 2026 16:52 — with GitHub Actions Inactive
@denik
deniktemporarily deployed to test-trigger-is June 15, 2026 16:55 — with GitHub Actions Inactive
@denik
deniktemporarily deployed to test-trigger-is June 15, 2026 16:55 — with GitHub Actions Inactive
@denik
deniktemporarily deployed to test-trigger-is June 15, 2026 18:10 — with GitHub Actions Inactive
@denik
deniktemporarily deployed to test-trigger-is June 15, 2026 18:10 — with GitHub Actions Inactive
@denik
deniktemporarily deployed to test-trigger-is June 15, 2026 18:33 — with GitHub Actions Inactive
@denik
deniktemporarily deployed to test-trigger-is June 15, 2026 18:33 — with GitHub Actions Inactive
}
}
for _, p := range a.resourceConfig.ProvidedIDFields {
if path.HasPatternPrefix(p.Field) {

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.

Q: why prefix and not exact match?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

We always use prefix for declarative fields config. Does not matter for top level scalar fields of course.

func (a *Adapter) IsFieldInRecreateOnChanges(path *structpath.PathNode) bool {
// FieldTriggersRecreate reports whether a local change to the field forces a
// delete + create. Both recreate_on_changes and provided_id_fields do this, so a
// caller that knows the ID is preserved can conclude the field is unchanged.

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.

Sentence is hard to parse. How would a caller know the ID is preserved?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Caller is bundle_plan.go which knows action

bundle/direct/bundle_plan.go: if targetAction.KeepsID() {
bundle/direct/bundle_plan.go: canReadRemoteCache := targetAction == deployplan.Skip || (targetAction.KeepsID() && adapter.FieldTriggersRecreate(fieldPath))

Comment threadbundle/direct/dresources/config.go Outdated
// A change is skipped when local and remote differ only by case.
NormalizeCase []FieldRule `yaml:"normalize_case,omitempty"`
// ProvidedIDFields: field patterns that compose the resource's ID — a name the
// user provides (not a server-generated id), which DoRead fetches by. Local

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.

Note: DoRead never fetches by these fields, only by the ID.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Right, it's not directly used right now. We typically use ID from the response even when we have it in request. I think we should change it and actually use ID from the config. But for now I'll fix the comment.

schemas:
recreate_on_changes:
provided_id_fields:
# UC lowercases identifier names; remote returns "myschema" for config "MySchema".

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.

Inline comment still relevant?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

yes, it gives specific example why this matters.

denik added 4 commits June 16, 2026 18:04
Resources fetched by a name-based ID (schemas, volumes, registered models,
apps, secret scopes, postgres resources, etc.) cannot exhibit real remote
drift on the fields composing that ID: a successful get-by-ID means a
differing remote value can only be backend normalization (e.g. UC
lowercasing), since an out-of-band rename would 404 and is already handled
as resource-gone. Reacting with recreate or rename is therefore never
correct for remote-only diffs on these fields.
Encode this declaratively:
- named_id_fields: ID components; local changes recreate, remote-only
diffs are skipped. Replaces their recreate_on_changes entries.
- update_id_on_local_changes (renamed from update_id_on_changes): same
skip for remote-only diffs; local changes still rename via DoUpdateWithID.
normalize_case is unchanged: it covers local case-only edits, which the
get-by-ID argument does not, and which would otherwise recreate a resource
UC considers unchanged.
Co-authored-by: Isaac
Revert the cosmetic update_id_on_changes -> update_id_on_local_changes rename
to minimize the diff (catalogs, external_locations, volumes,
secret_scopes.permissions keep their existing key). The semantics shift is
explained in comments instead: update_id_on_changes now only governs local
changes, since remote-only diffs on these ID fields are skipped by
shouldSkipIDField.
Co-authored-by: Isaac
The fields hold a user-provided name that forms the resource ID (as opposed to
a server-generated id); "provided" makes clear why a remote-only difference can
only be backend normalization. Source-only rename; reason strings (id_field)
are unchanged.
Also regenerate volumes/uppercase-name/out.deploy.direct.txt, whose id_field
reasons were reverted to the stale uc_case by the rebase auto-merge.
Co-authored-by: Isaac
provided_id_fields already skips the remote-only diffs that normalize_case was
added for (the no-op-redeploy bug), so normalize_case only guarded a local
case-only edit — an untested corner, gated by the destructive-action prompt for
schemas/volumes, and inconsistent with the other provided_id_fields resources
that never had it. Remove the field, its shouldSkipNormalized branch, and the
schemas/volumes yaml blocks. normalize_slash is unaffected.
Also regenerate model_serving_endpoints/basic/out.second-plan.direct.json
(immutable -> id_field), a cloud-only golden carrying the reason change from
moving name to provided_id_fields; local task test skips it, so CI integration
caught it.
Co-authored-by: Isaac
denik added 8 commits June 16, 2026 18:04
The method now also covers provided_id_fields (both categories recreate on a
local change), so the recreate_on_changes-specific name was inaccurate.
Co-authored-by: Isaac
The provided_id_fields / update_id_on_changes logic was split across
shouldSkipIDField (remote-only -> skip) and shouldUpdateOrRecreate (local ->
recreate/rename), so correctness depended on the first running before the second
in the ladder. Fold both into classifyIDField, which decides skip vs
recreate/UpdateWithID in one place from Old==New. The leftover
shouldUpdateOrRecreate then only matched recreate_on_changes, so inline it as a
direct findMatchingRule call (cfg is never nil here). Pure refactor; no behavior
or golden changes.
Co-authored-by: Isaac
recreate_on_changes, provided_id_fields, and update_id_on_changes each decide a
field's action, and classifyIDField runs before recreate_on_changes in the
ladder, so a field in more than one would have dead entries and the categories
disagree on remote-only diffs. Add a test that a field appears in at most one.
Co-authored-by: Isaac
Pairs with provided_id_fields: both compose the resource's user-provided ID and
are handled by classifyIDField (remote-only diffs skipped), differing only in the
local-change action — provided_id_fields recreates, updatable_id_fields renames
via UpdateWithID. The *_id_fields naming makes the family explicit and is more
accurate than "update_id_on_changes", which post-refactor also governs the
remote-only skip. Source-only; the per-field reason (id_changes) is unchanged so
no golden churn.
Co-authored-by: Isaac
Co-authored-by: Isaac
Co-authored-by: Isaac
The comment said DoRead fetches by these config fields. It actually fetches by
the ID recorded in state (the value the backend returned, e.g. a lowercased
full_name). Clarify that the get-by-ID invariant rests on the stored ID, not the
config fields: the resource is found at its ID, so a remote-only difference is
backend normalization, and a real rename changes the ID and 404s.
Co-authored-by: Isaac
@denik
denikforce-pushed the denik/named-id-fields branch from 66684c6 to ffb887fCompareJune 17, 2026 01:06
@denik
deniktemporarily deployed to test-trigger-is June 17, 2026 01:07 — with GitHub Actions Inactive
@denik
deniktemporarily deployed to test-trigger-is June 17, 2026 01:07 — with GitHub Actions Inactive
@denik
denik enabled auto-merge June 17, 2026 01:08
@denik
denik added this pull request to the merge queueJun 17, 2026
Merged via the queue into main with commit a4a2560Jun 17, 2026
23 checks passed
@denik
denik deleted the denik/named-id-fields branch June 17, 2026 02:00
@eng-dev-ecosystem-bot

Copy link
Copy Markdown
Collaborator

Integration test report

Commit: a4a2560

Run: 27660772303

Env💥​PANIC❌​FAIL🟨​KNOWN🤯​MISS🔄​flaky💚​RECOVERED🙈​SKIP✅​pass🙈​skipTime
💚​aws linux71554592777:24
💥​aws-ucws linux1161153362773747120:00
❌​azure linux1911753592373:40
❌​azure-ucws linux818612885761226:06
❌​gcp linux21417530931200:51
232 interesting tests: 152 MISS, 35 FAIL, 32 RECOVERED, 8 flaky, 2 KNOWN, 2 SKIP, 1 PANIC
Test Nameaws linuxaws-ucws linuxazure linuxazure-ucws linuxgcp linux
🟨​TestAccept💚​R🤯​M🟨​K🟨​K🟨​K
🤯​TestAccept/bundle/apps/job_permissions🙈​s🤯​M🙈​s✅​p🙈​s
🤯​TestAccept/bundle/apps/job_permissions/DATABRICKS_BUNDLE_ENGINE=direct🤯​M✅​p
🤯​TestAccept/bundle/apps/job_permissions/DATABRICKS_BUNDLE_ENGINE=terraform🤯​M✅​p
🤯​TestAccept/bundle/artifacts/artifact_path_with_volume/volume_doesnot_exist🙈​s🤯​M🙈​s✅​p🙈​s
🤯​TestAccept/bundle/artifacts/artifact_path_with_volume/volume_doesnot_exist/DATABRICKS_BUNDLE_ENGINE=direct🤯​M✅​p
🤯​TestAccept/bundle/artifacts/artifact_path_with_volume/volume_doesnot_exist/DATABRICKS_BUNDLE_ENGINE=terraform🤯​M✅​p
🤯​TestAccept/bundle/artifacts/artifact_path_with_volume/volume_not_deployed🙈​s🤯​M🙈​s✅​p🙈​s
🤯​TestAccept/bundle/artifacts/artifact_path_with_volume/volume_not_deployed/DATABRICKS_BUNDLE_ENGINE=direct🤯​M✅​p
🤯​TestAccept/bundle/artifacts/artifact_path_with_volume/volume_not_deployed/DATABRICKS_BUNDLE_ENGINE=terraform🤯​M✅​p
🤯​TestAccept/bundle/config-remote-sync/cli_defaults✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/config-remote-sync/cli_defaults/DATABRICKS_BUNDLE_ENGINE=direct✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/config-remote-sync/cli_defaults/DATABRICKS_BUNDLE_ENGINE=terraform✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/config-remote-sync/config_edits✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/config-remote-sync/config_edits/DATABRICKS_BUNDLE_ENGINE=direct✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/config-remote-sync/config_edits/DATABRICKS_BUNDLE_ENGINE=terraform✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/config-remote-sync/dashboard_etag✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/config-remote-sync/dashboard_etag/DATABRICKS_BUNDLE_ENGINE=direct✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/config-remote-sync/dashboard_etag/DATABRICKS_BUNDLE_ENGINE=terraform✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/config-remote-sync/flushed_cache✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/config-remote-sync/flushed_cache/DATABRICKS_BUNDLE_ENGINE=direct✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/config-remote-sync/flushed_cache/DATABRICKS_BUNDLE_ENGINE=terraform✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/config-remote-sync/formatting_preserved✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/config-remote-sync/formatting_preserved/DATABRICKS_BUNDLE_ENGINE=direct✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/config-remote-sync/formatting_preserved/DATABRICKS_BUNDLE_ENGINE=terraform✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/config-remote-sync/job_fields🙈​s🤯​M🙈​s✅​p🙈​s
🤯​TestAccept/bundle/config-remote-sync/job_fields/DATABRICKS_BUNDLE_ENGINE=direct🤯​M✅​p
🤯​TestAccept/bundle/config-remote-sync/job_fields/DATABRICKS_BUNDLE_ENGINE=terraform🤯​M✅​p
🤯​TestAccept/bundle/config-remote-sync/job_multiple_tasks✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/config-remote-sync/job_multiple_tasks/DATABRICKS_BUNDLE_ENGINE=direct✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/config-remote-sync/job_multiple_tasks/DATABRICKS_BUNDLE_ENGINE=terraform✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/config-remote-sync/job_params_variables🙈​s🤯​M🙈​s✅​p🙈​s
🤯​TestAccept/bundle/config-remote-sync/job_params_variables/DATABRICKS_BUNDLE_ENGINE=direct🤯​M✅​p
🤯​TestAccept/bundle/config-remote-sync/job_params_variables/DATABRICKS_BUNDLE_ENGINE=terraform🤯​M✅​p
🤯​TestAccept/bundle/config-remote-sync/job_pipeline_task✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/config-remote-sync/job_pipeline_task/DATABRICKS_BUNDLE_ENGINE=direct✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/config-remote-sync/job_pipeline_task/DATABRICKS_BUNDLE_ENGINE=terraform✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/config-remote-sync/multiple_files✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/config-remote-sync/multiple_files/DATABRICKS_BUNDLE_ENGINE=direct✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/config-remote-sync/multiple_files/DATABRICKS_BUNDLE_ENGINE=terraform✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/config-remote-sync/multiple_resources🙈​s🤯​M🙈​s✅​p🙈​s
🤯​TestAccept/bundle/config-remote-sync/multiple_resources/DATABRICKS_BUNDLE_ENGINE=direct🤯​M✅​p
🤯​TestAccept/bundle/config-remote-sync/multiple_resources/DATABRICKS_BUNDLE_ENGINE=terraform🤯​M✅​p
🤯​TestAccept/bundle/config-remote-sync/output_json✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/config-remote-sync/output_json/DATABRICKS_BUNDLE_ENGINE=direct✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/config-remote-sync/output_json/DATABRICKS_BUNDLE_ENGINE=terraform✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/config-remote-sync/output_no_changes✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/config-remote-sync/output_no_changes/DATABRICKS_BUNDLE_ENGINE=direct✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/config-remote-sync/output_no_changes/DATABRICKS_BUNDLE_ENGINE=terraform✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/config-remote-sync/pipeline_fields🙈​s🤯​M🙈​s✅​p🙈​s
🤯​TestAccept/bundle/config-remote-sync/pipeline_fields/DATABRICKS_BUNDLE_ENGINE=direct🤯​M✅​p
🤯​TestAccept/bundle/config-remote-sync/pipeline_fields/DATABRICKS_BUNDLE_ENGINE=terraform🤯​M✅​p
🤯​TestAccept/bundle/config-remote-sync/resolve_variables🙈​s🤯​M🙈​s✅​p🙈​s
🤯​TestAccept/bundle/config-remote-sync/resolve_variables/DATABRICKS_BUNDLE_ENGINE=direct🤯​M✅​p
🤯​TestAccept/bundle/config-remote-sync/resolve_variables/DATABRICKS_BUNDLE_ENGINE=terraform🤯​M✅​p
🤯​TestAccept/bundle/config-remote-sync/target_override✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/config-remote-sync/target_override/DATABRICKS_BUNDLE_ENGINE=direct✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/config-remote-sync/target_override/DATABRICKS_BUNDLE_ENGINE=terraform✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/config-remote-sync/task_rename_revert✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/config-remote-sync/task_rename_revert/DATABRICKS_BUNDLE_ENGINE=direct✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/config-remote-sync/task_rename_revert/DATABRICKS_BUNDLE_ENGINE=terraform✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deploy/empty-bundle✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deploy/empty-bundle/DATABRICKS_BUNDLE_ENABLE_EXPERIMENTAL_YAML_SYNC=/DATABRICKS_BUNDLE_ENGINE=direct✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deploy/empty-bundle/DATABRICKS_BUNDLE_ENABLE_EXPERIMENTAL_YAML_SYNC=/DATABRICKS_BUNDLE_ENGINE=terraform✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deploy/empty-bundle/DATABRICKS_BUNDLE_ENABLE_EXPERIMENTAL_YAML_SYNC=true/DATABRICKS_BUNDLE_ENGINE=direct✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deploy/empty-bundle/DATABRICKS_BUNDLE_ENABLE_EXPERIMENTAL_YAML_SYNC=true/DATABRICKS_BUNDLE_ENGINE=terraform✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deploy/files/no-snapshot-sync✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deploy/files/no-snapshot-sync/DATABRICKS_BUNDLE_ENGINE=direct✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deploy/files/no-snapshot-sync/DATABRICKS_BUNDLE_ENGINE=terraform✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deploy/mlops-stacks✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deploy/mlops-stacks/DATABRICKS_BUNDLE_ENGINE=direct✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deploy/mlops-stacks/DATABRICKS_BUNDLE_ENGINE=terraform✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deploy/snapshot-comparison✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deploy/snapshot-comparison/DATABRICKS_BUNDLE_ENGINE=terraform✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deploy/spark-jar-task✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deploy/spark-jar-task/DATABRICKS_BUNDLE_ENGINE=direct✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deploy/spark-jar-task/DATABRICKS_BUNDLE_ENGINE=terraform✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/catalog🙈​s🤯​M🙈​s✅​p🙈​s
🤯​TestAccept/bundle/deployment/bind/catalog/DATABRICKS_BUNDLE_ENGINE=direct🤯​M✅​p
🤯​TestAccept/bundle/deployment/bind/cluster✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/cluster/DATABRICKS_BUNDLE_ENGINE=direct✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/cluster/DATABRICKS_BUNDLE_ENGINE=terraform✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/dashboard/recreation✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/dashboard/recreation/DATABRICKS_BUNDLE_ENGINE=direct✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/dashboard/recreation/DATABRICKS_BUNDLE_ENGINE=terraform✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/experiment✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/experiment/DATABRICKS_BUNDLE_ENGINE=direct✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/experiment/DATABRICKS_BUNDLE_ENGINE=terraform✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/job/generate-and-bind✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/job/generate-and-bind/DATABRICKS_BUNDLE_ENGINE=direct✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/job/generate-and-bind/DATABRICKS_BUNDLE_ENGINE=terraform✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/job/job-abort-bind✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/job/job-abort-bind/DATABRICKS_BUNDLE_ENGINE=direct✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/job/job-abort-bind/DATABRICKS_BUNDLE_ENGINE=terraform✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/job/job-spark-python-task✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/job/job-spark-python-task/DATABRICKS_BUNDLE_ENGINE=direct✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/job/job-spark-python-task/DATABRICKS_BUNDLE_ENGINE=terraform✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/model-serving-endpoint✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/model-serving-endpoint/DATABRICKS_BUNDLE_ENGINE=direct✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/model-serving-endpoint/DATABRICKS_BUNDLE_ENGINE=terraform✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/pipelines/recreate✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/pipelines/recreate/DATABRICKS_BUNDLE_ENGINE=direct✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/pipelines/recreate/DATABRICKS_BUNDLE_ENGINE=terraform✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/registered-model🙈​s🤯​M🙈​s✅​p🙈​s
🤯​TestAccept/bundle/deployment/bind/registered-model/DATABRICKS_BUNDLE_ENGINE=direct🤯​M✅​p
🤯​TestAccept/bundle/deployment/bind/registered-model/DATABRICKS_BUNDLE_ENGINE=terraform🤯​M✅​p
🤯​TestAccept/bundle/deployment/bind/schema🙈​s🤯​M🙈​s✅​p🙈​s
🤯​TestAccept/bundle/deployment/bind/schema/DATABRICKS_BUNDLE_ENGINE=direct🤯​M✅​p
🤯​TestAccept/bundle/deployment/bind/schema/DATABRICKS_BUNDLE_ENGINE=terraform🤯​M✅​p
🤯​TestAccept/bundle/deployment/bind/secret-scope🙈​s🤯​M🙈​s✅​p🙈​s
🤯​TestAccept/bundle/deployment/bind/secret-scope/DATABRICKS_BUNDLE_ENGINE=direct🤯​M✅​p
🤯​TestAccept/bundle/deployment/bind/secret-scope/DATABRICKS_BUNDLE_ENGINE=terraform🤯​M✅​p
🤯​TestAccept/bundle/deployment/bind/vector_search_endpoint🙈​s🤯​M🙈​s✅​p🙈​s
🤯​TestAccept/bundle/deployment/bind/vector_search_endpoint/DATABRICKS_BUNDLE_ENGINE=direct🤯​M✅​p
🤯​TestAccept/bundle/deployment/bind/vector_search_index🙈​s🤯​M🙈​s✅​p🙈​s
🤯​TestAccept/bundle/deployment/bind/vector_search_index/DATABRICKS_BUNDLE_ENGINE=direct🤯​M✅​p
🤯​TestAccept/bundle/deployment/bind/volume🙈​s🤯​M🙈​s✅​p🙈​s
🤯​TestAccept/bundle/deployment/bind/volume/DATABRICKS_BUNDLE_ENGINE=direct🤯​M✅​p
🤯​TestAccept/bundle/deployment/bind/volume/DATABRICKS_BUNDLE_ENGINE=terraform🤯​M✅​p
🤯​TestAccept/bundle/deployment/unbind/grants🙈​s🤯​M🙈​s✅​p🙈​s
🤯​TestAccept/bundle/deployment/unbind/grants/DATABRICKS_BUNDLE_ENGINE=direct🤯​M✅​p
🤯​TestAccept/bundle/deployment/unbind/grants/DATABRICKS_BUNDLE_ENGINE=terraform🤯​M✅​p
🤯​TestAccept/bundle/deployment/unbind/permissions✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deployment/unbind/permissions/DATABRICKS_BUNDLE_ENGINE=direct✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/deployment/unbind/permissions/DATABRICKS_BUNDLE_ENGINE=terraform✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/destroy/jobs-and-pipeline✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/destroy/jobs-and-pipeline/DATABRICKS_BUNDLE_ENGINE=direct✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/destroy/jobs-and-pipeline/DATABRICKS_BUNDLE_ENGINE=terraform✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/generate/alert✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/generate/alert/DATABRICKS_BUNDLE_ENGINE=direct✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/generate/alert/DATABRICKS_BUNDLE_ENGINE=terraform✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/generate/auto-bind✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/generate/auto-bind/DATABRICKS_BUNDLE_ENGINE=terraform✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/generate/pipeline_and_deploy✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/generate/pipeline_and_deploy/DATABRICKS_BUNDLE_ENGINE=direct✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/generate/pipeline_and_deploy/DATABRICKS_BUNDLE_ENGINE=terraform✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/generate/python_job_and_deploy✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/generate/python_job_and_deploy/DATABRICKS_BUNDLE_ENGINE=direct✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/generate/python_job_and_deploy/DATABRICKS_BUNDLE_ENGINE=terraform✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/integration_whl/base✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/integration_whl/base/DATABRICKS_BUNDLE_ENGINE=direct✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/integration_whl/base/DATABRICKS_BUNDLE_ENGINE=terraform✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/integration_whl/custom_params✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/integration_whl/custom_params/DATABRICKS_BUNDLE_ENGINE=direct✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/integration_whl/custom_params/DATABRICKS_BUNDLE_ENGINE=terraform✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/integration_whl/interactive_cluster✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/integration_whl/interactive_cluster/DATABRICKS_BUNDLE_ENGINE=direct✅​p🤯​M✅​p✅​p✅​p
💥​TestAccept/bundle/integration_whl/interactive_cluster/DATABRICKS_BUNDLE_ENGINE=terraform✅​p💥​P✅​p✅​p✅​p
🤯​TestAccept/bundle/integration_whl/interactive_cluster_dynamic_version✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/integration_whl/interactive_cluster_dynamic_version/DATABRICKS_BUNDLE_ENGINE=direct/DATA_SECURITY_MODE=SINGLE_USER✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/integration_whl/interactive_cluster_dynamic_version/DATABRICKS_BUNDLE_ENGINE=direct/DATA_SECURITY_MODE=USER_ISOLATION✅​p🤯​M✅​p✅​p✅​p
🤯​TestAccept/bundle/integration_whl/interactive_cluster_dynamic_version/DATABRICKS_BUNDLE_ENGINE=terraform/DATA_SECURITY_MODE=SINGLE_USER✅​p🤯​M✅​p✅​p✅​p
❌​TestAccept/bundle/invariant/continue_293🙈​s❌​F🙈​s✅​p🙈​s
❌​TestAccept/bundle/invariant/continue_293/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=vector_search_index.yml.tmpl❌​F✅​p
💚​TestAccept/bundle/invariant/no_drift🙈​S💚​R🙈​S💚​R🙈​S
💚​TestAccept/bundle/invariant/no_drift/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=vector_search_index.yml.tmpl💚​R💚​R
🔄​TestAccept/bundle/resources/clusters/lifecycle-started✅​p✅​p✅​p✅​p🔄​f
🔄​TestAccept/bundle/resources/clusters/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct✅​p✅​p✅​p✅​p🔄​f
❌​TestAccept/bundle/resources/dashboards/change-name✅​p✅​p❌​F✅​p✅​p
❌​TestAccept/bundle/resources/dashboards/change-name/DATABRICKS_BUNDLE_ENGINE=direct✅​p✅​p❌​F✅​p✅​p
🙈​TestAccept/bundle/resources/permissions🙈​S🙈​S🙈​S🙈​S🙈​S
❌​TestAccept/bundle/resources/permissions/jobs/current_can_manage_run✅​p✅​p❌​F✅​p🙈​s
❌​TestAccept/bundle/resources/permissions/jobs/current_can_manage_run/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p❌​F✅​p
💚​TestAccept/bundle/resources/permissions/jobs/destroy_without_mgmtperms/with_permissions💚​R💚​R🙈​S🙈​S🙈​S
💚​TestAccept/bundle/resources/permissions/jobs/destroy_without_mgmtperms/with_permissions/DATABRICKS_BUNDLE_ENGINE=direct💚​R💚​R
💚​TestAccept/bundle/resources/permissions/jobs/destroy_without_mgmtperms/with_permissions/DATABRICKS_BUNDLE_ENGINE=terraform💚​R💚​R
💚​TestAccept/bundle/resources/permissions/jobs/destroy_without_mgmtperms/without_permissions💚​R💚​R🙈​S🙈​S🙈​S
💚​TestAccept/bundle/resources/permissions/jobs/destroy_without_mgmtperms/without_permissions/DATABRICKS_BUNDLE_ENGINE=direct💚​R💚​R
💚​TestAccept/bundle/resources/permissions/jobs/destroy_without_mgmtperms/without_permissions/DATABRICKS_BUNDLE_ENGINE=terraform💚​R💚​R
❌​TestAccept/bundle/resources/pipelines/allow-duplicate-names✅​p✅​p❌​F✅​p✅​p
❌​TestAccept/bundle/resources/pipelines/allow-duplicate-names/DATABRICKS_BUNDLE_ENGINE=direct✅​p✅​p❌​F✅​p✅​p
❌​TestAccept/bundle/resources/pipelines/allow-duplicate-names/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p❌​F✅​p✅​p
❌​TestAccept/bundle/resources/pipelines/auto-approve✅​p✅​p❌​F✅​p✅​p
❌​TestAccept/bundle/resources/pipelines/auto-approve/DATABRICKS_BUNDLE_ENGINE=direct✅​p✅​p❌​F✅​p✅​p
❌​TestAccept/bundle/resources/pipelines/auto-approve/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p❌​F✅​p✅​p
❌​TestAccept/bundle/resources/pipelines/lakeflow-pipeline✅​p✅​p❌​F✅​p✅​p
❌​TestAccept/bundle/resources/pipelines/lakeflow-pipeline/DATABRICKS_BUNDLE_ENGINE=direct✅​p✅​p❌​F✅​p✅​p
❌​TestAccept/bundle/resources/pipelines/recreate🙈​s❌​F🙈​s❌​F🙈​s
❌​TestAccept/bundle/resources/pipelines/recreate/DATABRICKS_BUNDLE_ENGINE=direct❌​F❌​F
❌​TestAccept/bundle/resources/pipelines/recreate/DATABRICKS_BUNDLE_ENGINE=terraform❌​F❌​F
💚​TestAccept/bundle/resources/postgres_branches/basic🙈​S💚​R🙈​S🙈​S🙈​S
💚​TestAccept/bundle/resources/postgres_branches/basic/DATABRICKS_BUNDLE_ENGINE=direct💚​R
💚​TestAccept/bundle/resources/postgres_branches/basic/DATABRICKS_BUNDLE_ENGINE=terraform💚​R
💚​TestAccept/bundle/resources/postgres_branches/recreate🙈​S💚​R🙈​S🙈​S🙈​S
💚​TestAccept/bundle/resources/postgres_branches/recreate/DATABRICKS_BUNDLE_ENGINE=direct💚​R
💚​TestAccept/bundle/resources/postgres_branches/recreate/DATABRICKS_BUNDLE_ENGINE=terraform💚​R
💚​TestAccept/bundle/resources/postgres_branches/replace_existing🙈​S💚​R🙈​S🙈​S🙈​S
💚​TestAccept/bundle/resources/postgres_branches/replace_existing/DATABRICKS_BUNDLE_ENGINE=direct💚​R
💚​TestAccept/bundle/resources/postgres_branches/replace_existing/DATABRICKS_BUNDLE_ENGINE=terraform💚​R
💚​TestAccept/bundle/resources/postgres_branches/update_protected🙈​S💚​R🙈​S🙈​S🙈​S
💚​TestAccept/bundle/resources/postgres_branches/update_protected/DATABRICKS_BUNDLE_ENGINE=direct💚​R
💚​TestAccept/bundle/resources/postgres_branches/update_protected/DATABRICKS_BUNDLE_ENGINE=terraform💚​R
💚​TestAccept/bundle/resources/postgres_branches/without_branch_id🙈​S💚​R🙈​S🙈​S🙈​S
💚​TestAccept/bundle/resources/postgres_branches/without_branch_id/DATABRICKS_BUNDLE_ENGINE=direct💚​R
💚​TestAccept/bundle/resources/postgres_branches/without_branch_id/DATABRICKS_BUNDLE_ENGINE=terraform💚​R
💚​TestAccept/bundle/resources/postgres_endpoints/basic🙈​S💚​R🙈​S🙈​S🙈​S
💚​TestAccept/bundle/resources/postgres_endpoints/basic/DATABRICKS_BUNDLE_ENGINE=terraform💚​R
💚​TestAccept/bundle/resources/postgres_endpoints/recreate🙈​S💚​R🙈​S🙈​S🙈​S
💚​TestAccept/bundle/resources/postgres_endpoints/recreate/DATABRICKS_BUNDLE_ENGINE=direct💚​R
💚​TestAccept/bundle/resources/postgres_projects/update_display_name🙈​S💚​R🙈​S🙈​S🙈​S
💚​TestAccept/bundle/resources/postgres_projects/update_display_name/DATABRICKS_BUNDLE_ENGINE=terraform💚​R
❌​TestAccept/bundle/resources/schemas/auto-approve🙈​s❌​F🙈​s❌​F🙈​s
❌​TestAccept/bundle/resources/schemas/auto-approve/DATABRICKS_BUNDLE_ENGINE=direct❌​F❌​F
Top 50 slowest tests (at least 2 minutes):
durationenvtestname
30:04aws-ucws linuxTestAccept/bundle/resources/vector_search_indexes/recreate/embedding_dimension/DATABRICKS_BUNDLE_ENGINE=direct
24:48aws-ucws linuxTestAccept/bundle/invariant/no_drift/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=vector_search_index.yml.tmpl
23:43aws-ucws linuxTestAccept/bundle/resources/vector_search_indexes/grants/select/DATABRICKS_BUNDLE_ENGINE=direct
23:43gcp linuxTestAccept/bundle/resources/sql_warehouses/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
22:42aws-ucws linuxTestAccept/bundle/resources/vector_search_indexes/basic/DATABRICKS_BUNDLE_ENGINE=direct
20:32azure-ucws linuxTestAccept/bundle/invariant/no_drift/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=vector_search_index.yml.tmpl
16:35azure-ucws linuxTestAccept/bundle/resources/vector_search_indexes/basic/DATABRICKS_BUNDLE_ENGINE=direct
15:32aws linuxTestAccept/bundle/resources/clusters/lifecycle-started-toggle/DATABRICKS_BUNDLE_ENGINE=direct
15:20aws-ucws linuxTestAccept/bundle/resources/model_serving_endpoints/running-endpoint/DATABRICKS_BUNDLE_ENGINE=terraform
15:06gcp linuxTestAccept/bundle/resources/apps/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
14:54azure-ucws linuxTestAccept/bundle/resources/vector_search_indexes/recreate/embedding_dimension/DATABRICKS_BUNDLE_ENGINE=direct
14:54azure-ucws linuxTestAccept/bundle/invariant/continue_293/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=vector_search_index.yml.tmpl
14:29azure-ucws linuxTestAccept/bundle/resources/vector_search_indexes/grants/select/DATABRICKS_BUNDLE_ENGINE=direct
13:45aws-ucws linuxTestAccept/bundle/resources/model_serving_endpoints/running-endpoint/DATABRICKS_BUNDLE_ENGINE=direct
12:52gcp linuxTestAccept/bundle/resources/clusters/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
12:33aws linuxTestAccept/bundle/integration_whl/base/DATABRICKS_BUNDLE_ENGINE=terraform
12:13aws linuxTestAccept/bundle/resources/clusters/run/spark_python_task/DATABRICKS_BUNDLE_ENGINE=terraform
11:57azure linuxTestAccept/bundle/resources/clusters/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
11:54gcp linuxTestAccept/bundle/integration_whl/interactive_single_user/DATABRICKS_BUNDLE_ENGINE=terraform
11:50aws-ucws linuxTestAccept/bundle/resources/clusters/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
10:31aws linuxTestAccept/bundle/resources/sql_warehouses/lifecycle-started-toggle/DATABRICKS_BUNDLE_ENGINE=direct
10:19aws linuxTestAccept/bundle/integration_whl/interactive_single_user/DATABRICKS_BUNDLE_ENGINE=terraform
10:17aws linuxTestAccept/bundle/resources/clusters/run/spark_python_task/DATABRICKS_BUNDLE_ENGINE=direct
9:49aws-ucws linuxTestAccept/bundle/integration_whl/interactive_single_user/DATABRICKS_BUNDLE_ENGINE=terraform
9:24azure-ucws linuxTestAccept/bundle/resources/sql_warehouses/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
9:13gcp linuxTestAccept/bundle/integration_whl/interactive_cluster_dynamic_version/DATABRICKS_BUNDLE_ENGINE=terraform/DATA_SECURITY_MODE=USER_ISOLATION
9:12azure-ucws linuxTestAccept/bundle/integration_whl/interactive_single_user/DATABRICKS_BUNDLE_ENGINE=terraform
9:09gcp linuxTestAccept/bundle/integration_whl/interactive_cluster_dynamic_version/DATABRICKS_BUNDLE_ENGINE=direct/DATA_SECURITY_MODE=USER_ISOLATION
8:31gcp linuxTestAccept/bundle/run/app-with-job/DATABRICKS_BUNDLE_ENGINE=terraform
8:29azure linuxTestAccept/bundle/integration_whl/interactive_cluster_dynamic_version/DATABRICKS_BUNDLE_ENGINE=terraform/DATA_SECURITY_MODE=SINGLE_USER
8:29gcp linuxTestAccept/bundle/integration_whl/interactive_single_user/DATABRICKS_BUNDLE_ENGINE=direct
8:13aws linuxTestAccept/bundle/integration_whl/interactive_cluster_dynamic_version/DATABRICKS_BUNDLE_ENGINE=terraform/DATA_SECURITY_MODE=USER_ISOLATION
8:12aws linuxTestAccept/bundle/resources/clusters/deploy/simple/DATABRICKS_BUNDLE_ENGINE=direct
8:05aws-ucws linuxTestAccept/bundle/integration_whl/interactive_cluster_dynamic_version/DATABRICKS_BUNDLE_ENGINE=terraform/DATA_SECURITY_MODE=USER_ISOLATION
8:02gcp linuxTestAccept/bundle/integration_whl/base/DATABRICKS_BUNDLE_ENGINE=direct
7:58aws linuxTestAccept/bundle/integration_whl/interactive_cluster/DATABRICKS_BUNDLE_ENGINE=terraform
7:51gcp linuxTestAccept/bundle/run/app-with-job/DATABRICKS_BUNDLE_ENGINE=direct
7:46aws-ucws linuxTestAccept/bundle/resources/apps/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
7:36aws linuxTestAccept/bundle/resources/sql_warehouses/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
7:36azure linuxTestAccept/bundle/resources/apps/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
7:33aws-ucws linuxTestAccept/bundle/resources/sql_warehouses/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
7:31azure-ucws linuxTestAccept/bundle/resources/sql_warehouses/lifecycle-started-toggle/DATABRICKS_BUNDLE_ENGINE=direct
7:26gcp linuxTestAccept/bundle/integration_whl/base/DATABRICKS_BUNDLE_ENGINE=terraform
7:22aws linuxTestAccept/bundle/resources/apps/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
7:22azure-ucws linuxTestAccept/bundle/resources/apps/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
7:20aws linuxTestAccept/bundle/integration_whl/base/DATABRICKS_BUNDLE_ENGINE=direct
7:16aws linuxTestAccept/bundle/resources/clusters/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
7:09gcp linuxTestAccept/bundle/integration_whl/interactive_cluster_dynamic_version/DATABRICKS_BUNDLE_ENGINE=terraform/DATA_SECURITY_MODE=SINGLE_USER
6:59gcp linuxTestAccept/bundle/resources/clusters/deploy/update-after-create/DATABRICKS_BUNDLE_ENGINE=terraform
6:54gcp linuxTestAccept/bundle/resources/clusters/deploy/local_ssd_count/DATABRICKS_BUNDLE_ENGINE=direct
(29 table rows omitted to keep the report under 60000 bytes)

pietern added a commit that referenced this pull request Jun 17, 2026
Only NEXT_CHANGELOG.md conflicted (kept the postgres_databases entry alongside
main's #5599 entry). main's #5599 added provided_id_fields/updatable_id_fields
for name-based IDs to schemas/volumes only — postgres resources keep
recreate_on_changes, so no realignment was needed. Generated schema artifacts
(#5611 codegen change) are consistent; regeneration produced no drift.
Co-authored-by: Isaac
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)).
@denik

Copy link
Copy Markdown
ContributorAuthor

When users do bind, this can result in wrong object being fetched, see #6050 (comment)

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

@denik@eng-dev-ecosystem-bot@pietern