Replace server_side_default with backend_default#4490
Merged
Conversation
Collaborator
|
Commit: aa91788
15 interesting tests: 7 KNOWN, 7 SKIP, 1 RECOVERED
Top 20 slowest tests (at least 2 minutes):
|
70c35f1 to
2fb9d43
Compare
88e8d44 to
4aaf27c
Compare
4aaf27c to
3dc1550
Compare
ilyakuz-db
approved these changes
Feb 11, 2026
denik
added a commit
that referenced
this pull request
Feb 11, 2026
…#4491) ## Changes New "empty" reason in plan triggers when old/new & remote values are all either nil or zero or empty slice/map. ## Why Ignoring differences like nil vs "" and nil vs 0 reduces drift when backend has preferred representation. For example, model_serving_endpoints.description is converted from nil to "" by backend. jobs.timeout_seconds has a default 0. This supports removing server_side_default rule which currently marks this changes as "skip". #4490 ## Tests Existing tests.
e2ec42e to
7626cbd
Compare
8795ceb to
614ee77
Compare
614ee77 to
c31e636
Compare
c31e636 to
2d50de6
Compare
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…efaults The generic catch-all rule that marked all remote-only fields as server_side_default is replaced with explicit backend_defaults entries for each resource type. This makes field handling explicit and auditable. New backend_defaults entries: - jobs: timeout_seconds, tasks[*].timeout_seconds, tasks[*].notebook_task.source, tasks[*].new_cluster.data_security_mode, job_clusters[*].new_cluster.data_security_mode - pipelines: storage, root_path - model_serving_endpoints: route_optimized - registered_models: storage_location, owner, full_name, metastore_id (plus ignore_remote_changes for created_at/by, updated_at/by) - volumes: storage_location Also removes the server_side_default special case in configsync/diff.go (per existing TODO) and the ReasonServerSideDefault constant. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…aults
Cross-referenced terraform-provider-databricks source (SetComputed,
SetSuppressDiff, SetForceNew) against resources.yml to fix gaps.
Added backend_defaults (SetComputed/SetSuppressDiff — backend-set fields):
- clusters: enable_local_disk_encryption, node_type_id, driver_node_type_id,
driver_instance_pool_id
- jobs: run_as, spark_python_task.source, sql_task.file.source,
dbt_task.source (+ for_each_task variants for all), new_cluster computed
fields matching clusters
- pipelines: event_log.catalog, event_log.schema, cluster computed fields
- sql_warehouses: enable_serverless_compute
- experiments: artifact_location
Added ignore_remote_changes:
- sql_warehouses: min_num_clusters (SetSuppressDiff)
- quality_monitors: skip_builtin_dashboard (not returned by API)
Added recreate_on_changes:
- pipelines: gateway_definition.{connection_id,connection_name,
gateway_storage_catalog,gateway_storage_schema},
ingestion_definition.ingest_from_uc_foreign_catalog
Removed dead backend_defaults — these are TF client-side SetDefault()
values already applied by resource_mutator.go, so the field is never nil
and backend_defaults (which triggers on old=nil AND new=nil) never fires:
- jobs: max_concurrent_runs, schedule/trigger/continuous.pause_status
- pipelines: edition, channel
- dashboards: embed_credentials (also had wrong value: yml said true,
mutator sets false)
- clusters: autotermination_minutes
- sql_warehouses: auto_stop_mins, enable_photon, max_num_clusters,
spot_instance_policy
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…t have default for data_security_mode
4611e58 to
dfe0736
Compare
pietern
approved these changes
Feb 18, 2026
| # skip_builtin_dashboard is input-only, not returned by the Get API. | ||
| # TF preserves it from state; see resource_quality_monitor.go. | ||
| - field: skip_builtin_dashboard | ||
| reason: not_returned_by_api |
Contributor
There was a problem hiding this comment.
Not ignore_remote_changes with reason: input_only?
Contributor
Author
There was a problem hiding this comment.
Makes sense, not sure why have not_returned_by_api at all. Replaced.
| ~ edition: null -> "ADVANCED" | ||
| ~ libraries: [{"glob":{"include":"/Workspace/Users/[USERNAME]/lakeflow_pipeline/transformations/**"}},{"glob":{"include":"/Workspace/Users/foo@databricks.com/another/**"}}] -> [{"notebook":{"path":"/Workspace/Users/[USERNAME]/.bundle/test-pipeline-recreate/default/files/nb"}}] | ||
| ~ name: "lakeflow-pipeline" -> "test-pipeline" | ||
| ~ root_path: "/Workspace/Users/[USERNAME]/lakeflow_pipeline" -> null |
Contributor
Author
There was a problem hiding this comment.
This is real change in this test (it was set on remote but not in the config), but it was NOT noticed before because server_side_default applied.
deco-sdk-tagging bot
added a commit
that referenced
this pull request
Feb 19, 2026
## Release v0.289.0 ### CLI * Make auth profiles respect DATABRICKS_CLI_PATH env var (([#4467](#4467))) * Fix arrow key navigation in prompts on Windows (([#4501](#4501))) ### Bundles * Log artifact build output in debug mode ([#4208](#4208)) * Fix bundle init not working in Azure Government ([#4286](#4286)) * Allow single and double quotes in environment dependencies (([#4511](#4511))) * Use purge option when deleting alerts (([#4505](#4505))) * engine/direct: Replace server_side_default with more precise backend_default rule in bundle plan ([#4490](#4490)) * engine/direct: Extend pipelines recreate_on_changes configuration (([#4499](#4499))) * engine/direct: Added support for UC external locations (direct only) ([#4484](#4484)) ### Dependency updates * Upgrade Go SDK to v0.106.0 (([#4486](#4486))) * Upgrade Terraform provider to v1.106.0 (([#4542](#4542))) * Upgrade Go to 1.25.7 (([#4547](#4547)))
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Changes
Why
The "server_side_default" assumes that any setting appearing in the remote state that is not in the config should be ignored. This works when resources are only updated via DABs "bundle deploy" but it can miss real drift.
Tests
Existing tests.