From 7110bd0783ebcc9feeee1d8ffaa8cac1f16ba48a Mon Sep 17 00:00:00 2001 From: Denis Bilenko Date: Wed, 8 Jul 2026 10:56:05 +0200 Subject: [PATCH 1/2] internal: Allow absence of field to mean "all fields" --- bundle/direct/dresources/all_test.go | 3 --- bundle/direct/dresources/resources.yml | 23 +---------------------- 2 files changed, 1 insertion(+), 25 deletions(-) diff --git a/bundle/direct/dresources/all_test.go b/bundle/direct/dresources/all_test.go index e47ccbe8451..950e8bca5b6 100644 --- a/bundle/direct/dresources/all_test.go +++ b/bundle/direct/dresources/all_test.go @@ -1149,9 +1149,6 @@ func TestNoUpdateResourcesCoverAllFields(t *testing.T) { t.Run(resourceType, func(t *testing.T) { err := structwalk.WalkType(adapter.StateType(), func(path *structpath.PatternNode, typ reflect.Type, _ *reflect.StructField) bool { - if path.IsRoot() { - return true - } if covered[path.String()] { // This field (or its enclosing object) is classified; the // whole subtree is covered, so stop descending. diff --git a/bundle/direct/dresources/resources.yml b/bundle/direct/dresources/resources.yml index 704635fd35b..10044e505dd 100644 --- a/bundle/direct/dresources/resources.yml +++ b/bundle/direct/dresources/resources.yml @@ -494,28 +494,7 @@ resources: # handles the read side (input-only and output-only fields) so no-op deploys # stay idempotent. Same pattern as postgres_synced_tables. recreate_on_changes: - - field: database_instance_name - reason: immutable - - field: logical_database_name - reason: immutable - - field: spec.source_table_full_name - reason: immutable - - field: spec.primary_key_columns - reason: immutable - - field: spec.timeseries_key - reason: immutable - - field: spec.scheduling_policy - reason: immutable - - field: spec.create_database_objects_if_missing - reason: immutable - - field: spec.new_pipeline_spec - reason: immutable - - field: spec.existing_pipeline_id - reason: immutable - - field: spec.accelerated_sync - reason: immutable - - field: spec.type_overrides - reason: immutable + - reason: immutable apps: provided_id_fields: From 78babbb54664056435f31bc556f546ed9a7c0083 Mon Sep 17 00:00:00 2001 From: Denis Bilenko Date: Wed, 8 Jul 2026 11:31:34 +0200 Subject: [PATCH 2/2] Add other resources --- bundle/direct/dresources/resources.yml | 35 +++----------------------- 1 file changed, 3 insertions(+), 32 deletions(-) diff --git a/bundle/direct/dresources/resources.yml b/bundle/direct/dresources/resources.yml index 10044e505dd..e5323c81cb4 100644 --- a/bundle/direct/dresources/resources.yml +++ b/bundle/direct/dresources/resources.yml @@ -476,12 +476,7 @@ resources: # handles the read side (create_database_if_not_exists is input-only, uid is # output-only) so no-op deploys stay idempotent. recreate_on_changes: - - field: database_instance_name - reason: immutable - - field: database_name - reason: immutable - - field: create_database_if_not_exists - reason: immutable + - reason: immutable synced_database_tables: provided_id_fields: @@ -678,10 +673,7 @@ resources: # requires delete+create. The OpenAPI spec only marks postgres_database # as IMMUTABLE (handled by autogen); branch and create_database_if_missing # need explicit entries here. - - field: branch - reason: immutable - - field: create_database_if_missing - reason: immutable + - reason: immutable postgres_synced_tables: # The Postgres API has no UpdateSyncedTable endpoint, so every settable @@ -695,28 +687,7 @@ resources: - field: synced_table_id reason: id_field recreate_on_changes: - - field: branch - reason: immutable - - field: postgres_database - reason: immutable - - field: source_table_full_name - reason: immutable - - field: primary_key_columns - reason: immutable - - field: timeseries_key - reason: immutable - - field: scheduling_policy - reason: immutable - - field: create_database_objects_if_missing - reason: immutable - - field: new_pipeline_spec - reason: immutable - - field: existing_pipeline_id - reason: immutable - - field: accelerated_sync - reason: immutable - - field: type_overrides - reason: immutable + - reason: immutable postgres_roles: recreate_on_changes: