Skip to content

Add postgres_data_apis bundle resource - #7160

Open
ruslantalpa wants to merge 17 commits into
mainfrom
ruslantalpa/postgres-data-apis
Open

ruslantalpa wants to merge 17 commits into
mainfrom
ruslantalpa/postgres-data-apis

Conversation

@ruslantalpa

@ruslantalpa ruslantalpa commented Oct 22, 2026 •

Copy link
Copy Markdown
Member

Changes

Add the postgres_data_apis resource (Private Preview). It enables and configures the Data API (PostgREST) of a Lakebase Postgres database:

resources:
  postgres_data_apis:
    app:
      parent: ${resources.postgres_databases.app_db.name}
      db_schemas: [public]
      db_max_rows: 1000
      jwt_cache_max_lifetime: 300s
  • One Data API per database. Its ID is {parent}/data-api; changing parent recreates it. Removing the resource turns the Data API off; the database and its data are unaffected.
  • The serving URL is status.url; reference it as ${resources.postgres_data_apis.<key>.status.url}. It is a stable output field: it is built from the read-write endpoint host, the workspace and the database name, so an in-place update of the Data API cannot change it, and the reference resolves without planning a no-op update of the resources that use it.
  • Durations such as jwt_cache_max_lifetime use the protobuf seconds format, for example 300s.
  • Create, update and delete wait on long-running operations. Update sends the configured spec with update_mask=spec.
  • spec is INPUT_ONLY, so GET does not return it. DoRead fills the remote spec from status, which reports every setting in effect, so bundle plan detects out-of-band changes and bundle deployment bind applies the configured spec on the next deploy. The generated spec:input_only rules are dropped (apitypes.yml: postgres_data_apis: null) and every spec field is a hand-written backend_default, so a field the config omits is left to the server.
  • Status omits a bool that is false and was never set, so the bool fields are forced on the remote side.
  • A field removed from the config keeps its last value on the server: update_mask=spec merges, and per-field clearing is not used because clearing some fields currently leaves the Data API unable to serve requests. The removal plans one no-op update; the next plan is clean.
  • Labelled Private Preview to match the API's launch stage (the other postgres_* resources are Beta), so the JSON schema marks it doNotSuggest. Like its Beta siblings, it is not generated in PyDABs yet, which only covers GA and Public Preview resources.

Why

Lakebase users already manage projects, branches and databases with bundles and want to manage the Data API alongside them. The API is at Private Preview.
Notes for reviewers:

  • Like every other postgres_* resource, this one waits on its operation inline in create, update and delete, because the operation ID isn't persisted.
  • Registering the new type with the deployment metadata service is a separate server-side change. Until it is deployed, deploys with experimental.deployment_history enabled reject this resource type, so the DMS=true acceptance variants are excluded for this resource (as for features) and the test server's DMS fake does not accept the prefix yet. Both get re-enabled once the server change ships.
  • Cloud coverage: the resource acceptance tests run on cloud (AWS only, like the siblings); the invariant and bind tests are local-only, like the siblings. A manual live run against a dev workspace covered the full lifecycle.
  • jwt_role_claim_key and jwt_cache_max_lifetime are exposed because the API accepts them. Their runtime behaviour is still evolving at Private Preview; happy to hide them if you prefer.

Tests

  • Acceptance tests against the local test server: basic, update, recreate, out-of-band, bind, and url_reference (a job parameter that references status.url resolves on the first deploy, and an in-place update of the Data API plans no update of the job). The test server's Data API fake mirrors the real API's defaults, status.url, merge-on-update semantics, and error codes and messages.
  • Invariant config covering lists, an integer, bools (true and an explicit false), a duration and an enum: no drift, removal of every optional field converges, delete/destroy idempotent.
  • Unit tests for the status-to-spec mapping and the fake.
  • Manual run against a dev workspace with a CLI built from this branch: deploy, serving through the Data API URL with a service principal token, a job parameter referencing status.url resolved on the first deploy, update (row cap applied, job not updated, next plan clean), removed field (value kept), out-of-band change detected and reverted, bind of an existing Data API applied on deploy, destroy (Data API off, data intact).
    This pull request and its description were written by Isaac.

@github-actions github-actions Bot added the DABs DABs related issues label Oct 22, 2026
ruslantalpa added a commit that referenced this pull request Oct 22, 2026
Co-authored-by: Isaac <no-reply@databricks.com>
@github-actions

github-actions Bot commented Oct 22, 2026 •

Copy link
Copy Markdown
Contributor

Commit: ab7d1a865 | Workflow run

Regression test report

Selected 14 changed tests (limit=20, 0 not selected)

650 tests: regression=10 unreleased=0 coverage=640 failing=0

test branch main (c0e1859) latest (v1.23.0)
TestAccept/bundle/deployment/bind/postgres_data_api/DMS= ✅ ❌ ❌
TestAccept/bundle/invariant/auto-migrate/DMS=/INPUT_CONFIG=alert.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/auto-migrate/DMS=/INPUT_CONFIG=app.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/auto-migrate/DMS=/INPUT_CONFIG=cluster.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/auto-migrate/DMS=/INPUT_CONFIG=cluster_apply_policy_default_values.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/auto-migrate/DMS=/INPUT_CONFIG=dashboard.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/auto-migrate/DMS=/INPUT_CONFIG=database_catalog.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/auto-migrate/DMS=/INPUT_CONFIG=database_instance.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/auto-migrate/DMS=/INPUT_CONFIG=experiment.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/auto-migrate/DMS=/INPUT_CONFIG=job.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/auto-migrate/DMS=/INPUT_CONFIG=job_apply_policy_default_values_for_each_task.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/auto-migrate/DMS=/INPUT_CONFIG=job_apply_policy_default_values_job_cluster.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/auto-migrate/DMS=/INPUT_CONFIG=job_apply_policy_default_values_task_cluster.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/auto-migrate/DMS=/INPUT_CONFIG=job_escaped_refs.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/auto-migrate/DMS=/INPUT_CONFIG=job_pydabs_10_tasks.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/auto-migrate/DMS=/INPUT_CONFIG=job_run_job_ref.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/auto-migrate/DMS=/INPUT_CONFIG=job_table_update_trigger.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/auto-migrate/DMS=/INPUT_CONFIG=job_with_depends_on.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/auto-migrate/DMS=/INPUT_CONFIG=job_with_task.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/auto-migrate/DMS=/INPUT_CONFIG=model.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/auto-migrate/DMS=/INPUT_CONFIG=model_serving_endpoint.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/auto-migrate/DMS=/INPUT_CONFIG=model_with_permissions.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/auto-migrate/DMS=/INPUT_CONFIG=pipeline.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/auto-migrate/DMS=/INPUT_CONFIG=pipeline_allow_duplicate_names.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/auto-migrate/DMS=/INPUT_CONFIG=pipeline_apply_policy_default_values.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/auto-migrate/DMS=/INPUT_CONFIG=pipeline_config_dots.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/auto-migrate/DMS=/INPUT_CONFIG=postgres_branch.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/auto-migrate/DMS=/INPUT_CONFIG=postgres_catalog.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/auto-migrate/DMS=/INPUT_CONFIG=postgres_database.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/auto-migrate/DMS=/INPUT_CONFIG=postgres_endpoint.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/auto-migrate/DMS=/INPUT_CONFIG=postgres_project.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/auto-migrate/DMS=/INPUT_CONFIG=postgres_role.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/auto-migrate/DMS=/INPUT_CONFIG=postgres_synced_table.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/auto-migrate/DMS=/INPUT_CONFIG=registered_model.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/auto-migrate/DMS=/INPUT_CONFIG=schema_empty_grants.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/auto-migrate/DMS=/INPUT_CONFIG=schema_tf_compat.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/auto-migrate/DMS=/INPUT_CONFIG=schema_uppercase_name.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/auto-migrate/DMS=/INPUT_CONFIG=secret_scope.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/auto-migrate/DMS=/INPUT_CONFIG=secret_scope_default_backend_type.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/auto-migrate/DMS=/INPUT_CONFIG=synced_database_table.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/auto-migrate/DMS=/INPUT_CONFIG=volume.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/auto-migrate/DMS=/INPUT_CONFIG=volume_external.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/auto-migrate/DMS=/INPUT_CONFIG=volume_path_job_ref.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=alert.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=app.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=catalog.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=catalog_optional_fields.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=cluster.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=cluster_apply_policy_default_values.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=dashboard.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=database_catalog.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=database_instance.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=experiment.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=external_location.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=feature.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=job.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=job_apply_policy_default_values_for_each_task.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=job_apply_policy_default_values_job_cluster.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=job_apply_policy_default_values_task_cluster.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=job_pydabs_10_tasks.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=job_run_job_ref.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=job_table_update_trigger.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=job_with_depends_on.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=job_with_task.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=model.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=model_service.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=model_serving_endpoint.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=model_serving_endpoint_telemetry.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=pipeline.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=pipeline_allow_duplicate_names.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=pipeline_apply_policy_default_values.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=postgres_branch.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=postgres_catalog.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=postgres_database.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=postgres_endpoint.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=postgres_project.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=postgres_role.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=postgres_synced_table.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=registered_model.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=schema.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=schema_empty_grants.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=schema_tf_compat.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=schema_uppercase_name.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=secret_scope.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=secret_scope_default_backend_type.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=sql_warehouse.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=synced_database_table.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=uc_trailing_slash.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=volume.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=volume_external.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=volume_uppercase_name.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=alert.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=alert.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=app.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=app.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=catalog.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=catalog.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=catalog_optional_fields.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=catalog_optional_fields.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=cluster.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=cluster.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=cluster_apply_policy_default_values.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=cluster_apply_policy_default_values.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=cluster_libraries.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=cluster_libraries.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=cluster_policy.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=cluster_policy.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=dashboard.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=dashboard.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=database_catalog.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=database_catalog.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=database_instance.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=database_instance.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=experiment.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=experiment.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=external_location.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=external_location.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=feature.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=feature.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=genie_space.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=genie_space.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=instance_pool.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=instance_pool.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=job.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=job.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=job_apply_policy_default_values_for_each_task.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=job_apply_policy_default_values_for_each_task.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=job_apply_policy_default_values_job_cluster.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=job_apply_policy_default_values_job_cluster.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=job_apply_policy_default_values_task_cluster.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=job_apply_policy_default_values_task_cluster.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=job_cross_resource_ref.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=job_cross_resource_ref.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=job_escaped_refs.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=job_escaped_refs.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=job_permission_ref.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=job_permission_ref.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=job_pydabs_1000_tasks.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=job_pydabs_1000_tasks.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=job_pydabs_10_tasks.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=job_pydabs_10_tasks.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=job_run.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=job_run.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=job_run_job_ref.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=job_run_job_ref.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=job_table_update_trigger.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=job_table_update_trigger.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=job_with_depends_on.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=job_with_depends_on.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=job_with_task.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=job_with_task.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=model.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=model.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=model_service.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=model_service.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=model_serving_endpoint.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=model_serving_endpoint.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=model_serving_endpoint_telemetry.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=model_serving_endpoint_telemetry.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=model_with_permissions.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=model_with_permissions.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=pipeline.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=pipeline.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=pipeline_allow_duplicate_names.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=pipeline_allow_duplicate_names.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=pipeline_apply_policy_default_values.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=pipeline_apply_policy_default_values.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=pipeline_config_dots.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=pipeline_config_dots.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=postgres_branch.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=postgres_branch.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=postgres_catalog.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=postgres_catalog.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=postgres_data_api.yml.tmpl/READPLAN= ✅ ✅ ✅
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=postgres_data_api.yml.tmpl/READPLAN=1 ✅ ✅ ✅
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=postgres_database.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=postgres_database.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=postgres_endpoint.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=postgres_endpoint.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=postgres_project.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=postgres_project.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=postgres_role.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=postgres_role.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=postgres_synced_table.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=postgres_synced_table.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=registered_model.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=registered_model.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=schema.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=schema.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=schema_empty_grants.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=schema_empty_grants.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=schema_grant_ref.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=schema_grant_ref.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=schema_tf_compat.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=schema_tf_compat.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=schema_uppercase_name.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=schema_uppercase_name.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=secret.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=secret.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=secret_scope.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=secret_scope.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=secret_scope_default_backend_type.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=secret_scope_default_backend_type.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=sql_warehouse.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=sql_warehouse.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=synced_database_table.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=synced_database_table.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=uc_trailing_slash.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=uc_trailing_slash.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=vector_search_endpoint.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=vector_search_endpoint.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=vector_search_index.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=vector_search_index.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=volume.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=volume.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=volume_external.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=volume_external.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=volume_path_job_ref.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=volume_path_job_ref.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=volume_uppercase_name.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=volume_uppercase_name.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=alert.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=alert.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=app.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=app.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=catalog.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=catalog.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=catalog_optional_fields.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=catalog_optional_fields.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=cluster.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=cluster.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=cluster_apply_policy_default_values.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=cluster_apply_policy_default_values.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=cluster_libraries.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=cluster_libraries.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=cluster_policy.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=cluster_policy.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=dashboard.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=dashboard.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=database_catalog.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=database_catalog.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=database_instance.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=database_instance.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=experiment.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=experiment.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=external_location.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=external_location.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=feature.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=feature.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=genie_space.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=genie_space.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=instance_pool.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=instance_pool.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=job.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=job.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=job_apply_policy_default_values_for_each_task.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=job_apply_policy_default_values_for_each_task.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=job_apply_policy_default_values_job_cluster.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=job_apply_policy_default_values_job_cluster.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=job_apply_policy_default_values_task_cluster.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=job_apply_policy_default_values_task_cluster.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=job_cross_resource_ref.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=job_cross_resource_ref.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=job_escaped_refs.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=job_escaped_refs.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=job_permission_ref.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=job_permission_ref.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=job_pydabs_1000_tasks.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=job_pydabs_1000_tasks.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=job_pydabs_10_tasks.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=job_pydabs_10_tasks.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=job_run.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=job_run.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=job_run_job_ref.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=job_run_job_ref.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=job_table_update_trigger.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=job_table_update_trigger.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=job_with_depends_on.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=job_with_depends_on.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=job_with_task.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=job_with_task.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=model.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=model.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=model_service.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=model_service.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=model_serving_endpoint.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=model_serving_endpoint.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=model_serving_endpoint_telemetry.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=model_serving_endpoint_telemetry.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=model_with_permissions.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=model_with_permissions.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=pipeline.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=pipeline.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=pipeline_allow_duplicate_names.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=pipeline_allow_duplicate_names.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=pipeline_apply_policy_default_values.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=pipeline_apply_policy_default_values.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=pipeline_config_dots.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=pipeline_config_dots.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=postgres_branch.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=postgres_branch.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=postgres_catalog.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=postgres_catalog.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=postgres_data_api.yml.tmpl/READPLAN= ✅ ✅ ✅
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=postgres_data_api.yml.tmpl/READPLAN=1 ✅ ✅ ✅
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=postgres_database.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=postgres_database.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=postgres_endpoint.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=postgres_endpoint.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=postgres_project.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=postgres_project.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=postgres_role.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=postgres_role.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=postgres_synced_table.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=postgres_synced_table.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=registered_model.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=registered_model.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=schema.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=schema.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=schema_empty_grants.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=schema_empty_grants.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=schema_grant_ref.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=schema_grant_ref.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=schema_tf_compat.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=schema_tf_compat.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=schema_uppercase_name.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=schema_uppercase_name.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=secret.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=secret_scope.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=secret_scope.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=secret_scope_default_backend_type.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=secret_scope_default_backend_type.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=sql_warehouse.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=sql_warehouse.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=synced_database_table.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=synced_database_table.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=uc_trailing_slash.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=uc_trailing_slash.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=vector_search_endpoint.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=vector_search_endpoint.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=vector_search_index.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=vector_search_index.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=volume.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=volume.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=volume_external.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=volume_external.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=volume_path_job_ref.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=volume_path_job_ref.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=volume_uppercase_name.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=volume_uppercase_name.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/migrate/DMS=/INPUT_CONFIG=alert.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/migrate/DMS=/INPUT_CONFIG=app.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/migrate/DMS=/INPUT_CONFIG=cluster.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/migrate/DMS=/INPUT_CONFIG=cluster_apply_policy_default_values.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/migrate/DMS=/INPUT_CONFIG=dashboard.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/migrate/DMS=/INPUT_CONFIG=database_catalog.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/migrate/DMS=/INPUT_CONFIG=database_instance.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/migrate/DMS=/INPUT_CONFIG=experiment.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/migrate/DMS=/INPUT_CONFIG=job.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/migrate/DMS=/INPUT_CONFIG=job_apply_policy_default_values_for_each_task.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/migrate/DMS=/INPUT_CONFIG=job_apply_policy_default_values_job_cluster.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/migrate/DMS=/INPUT_CONFIG=job_apply_policy_default_values_task_cluster.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/migrate/DMS=/INPUT_CONFIG=job_escaped_refs.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/migrate/DMS=/INPUT_CONFIG=job_pydabs_10_tasks.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/migrate/DMS=/INPUT_CONFIG=job_run_job_ref.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/migrate/DMS=/INPUT_CONFIG=job_table_update_trigger.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/migrate/DMS=/INPUT_CONFIG=job_with_depends_on.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/migrate/DMS=/INPUT_CONFIG=job_with_task.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/migrate/DMS=/INPUT_CONFIG=model.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/migrate/DMS=/INPUT_CONFIG=model_serving_endpoint.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/migrate/DMS=/INPUT_CONFIG=model_with_permissions.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/migrate/DMS=/INPUT_CONFIG=pipeline.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/migrate/DMS=/INPUT_CONFIG=pipeline_allow_duplicate_names.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/migrate/DMS=/INPUT_CONFIG=pipeline_apply_policy_default_values.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/migrate/DMS=/INPUT_CONFIG=pipeline_config_dots.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/migrate/DMS=/INPUT_CONFIG=postgres_branch.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/migrate/DMS=/INPUT_CONFIG=postgres_catalog.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/migrate/DMS=/INPUT_CONFIG=postgres_database.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/migrate/DMS=/INPUT_CONFIG=postgres_endpoint.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/migrate/DMS=/INPUT_CONFIG=postgres_project.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/migrate/DMS=/INPUT_CONFIG=postgres_role.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/migrate/DMS=/INPUT_CONFIG=postgres_synced_table.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/migrate/DMS=/INPUT_CONFIG=registered_model.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/migrate/DMS=/INPUT_CONFIG=schema_empty_grants.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/migrate/DMS=/INPUT_CONFIG=schema_tf_compat.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/migrate/DMS=/INPUT_CONFIG=schema_uppercase_name.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/migrate/DMS=/INPUT_CONFIG=secret_scope.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/migrate/DMS=/INPUT_CONFIG=secret_scope_default_backend_type.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/migrate/DMS=/INPUT_CONFIG=synced_database_table.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/migrate/DMS=/INPUT_CONFIG=volume.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/migrate/DMS=/INPUT_CONFIG=volume_external.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/migrate/DMS=/INPUT_CONFIG=volume_path_job_ref.yml.tmpl ✅ ✅ ✅
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=alert.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=alert.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=app.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=app.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=catalog.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=catalog.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=catalog_optional_fields.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=catalog_optional_fields.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=cluster.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=cluster.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=cluster_apply_policy_default_values.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=cluster_apply_policy_default_values.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=cluster_libraries.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=cluster_libraries.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=cluster_policy.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=cluster_policy.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=dashboard.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=dashboard.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=database_catalog.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=database_catalog.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=database_instance.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=database_instance.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=experiment.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=experiment.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=external_location.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=external_location.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=feature.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=feature.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=genie_space.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=genie_space.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=instance_pool.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=instance_pool.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=job.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=job.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=job_apply_policy_default_values_for_each_task.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=job_apply_policy_default_values_for_each_task.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=job_apply_policy_default_values_job_cluster.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=job_apply_policy_default_values_job_cluster.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=job_apply_policy_default_values_task_cluster.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=job_apply_policy_default_values_task_cluster.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=job_cross_resource_ref.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=job_cross_resource_ref.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=job_escaped_refs.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=job_escaped_refs.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=job_permission_ref.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=job_permission_ref.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=job_pydabs_1000_tasks.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=job_pydabs_1000_tasks.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=job_pydabs_10_tasks.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=job_pydabs_10_tasks.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=job_run.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=job_run.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=job_run_job_ref.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=job_run_job_ref.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=job_table_update_trigger.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=job_table_update_trigger.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=job_with_depends_on.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=job_with_depends_on.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=job_with_task.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=job_with_task.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=model.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=model.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=model_service.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=model_service.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=model_serving_endpoint.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=model_serving_endpoint.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=model_serving_endpoint_telemetry.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=model_serving_endpoint_telemetry.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=model_with_permissions.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=model_with_permissions.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=pipeline.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=pipeline.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=pipeline_allow_duplicate_names.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=pipeline_allow_duplicate_names.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=pipeline_apply_policy_default_values.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=pipeline_apply_policy_default_values.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=pipeline_config_dots.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=pipeline_config_dots.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=postgres_branch.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=postgres_branch.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=postgres_catalog.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=postgres_catalog.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=postgres_data_api.yml.tmpl/READPLAN= ✅ ❌ ❌
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=postgres_data_api.yml.tmpl/READPLAN=1 ✅ ✅ ✅
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=postgres_database.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=postgres_database.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=postgres_endpoint.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=postgres_endpoint.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=postgres_project.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=postgres_project.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=postgres_role.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=postgres_role.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=postgres_synced_table.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=postgres_synced_table.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=registered_model.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=registered_model.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=schema.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=schema.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=schema_empty_grants.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=schema_empty_grants.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=schema_grant_ref.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=schema_grant_ref.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=schema_tf_compat.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=schema_tf_compat.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=schema_uppercase_name.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=schema_uppercase_name.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=secret.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=secret_scope.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=secret_scope.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=secret_scope_default_backend_type.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=secret_scope_default_backend_type.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=sql_warehouse.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=sql_warehouse.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=synced_database_table.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=synced_database_table.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=uc_trailing_slash.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=uc_trailing_slash.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=vector_search_endpoint.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=vector_search_endpoint.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=vector_search_index.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=vector_search_index.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=volume.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=volume.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=volume_external.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=volume_external.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=volume_path_job_ref.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=volume_path_job_ref.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=volume_uppercase_name.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=volume_uppercase_name.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=alert.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=alert.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=app.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=app.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=catalog.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=catalog.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=catalog_optional_fields.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=catalog_optional_fields.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=cluster.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=cluster.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=cluster_apply_policy_default_values.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=cluster_apply_policy_default_values.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=cluster_libraries.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=cluster_libraries.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=cluster_policy.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=cluster_policy.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=dashboard.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=dashboard.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=database_catalog.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=database_catalog.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=database_instance.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=database_instance.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=experiment.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=experiment.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=external_location.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=external_location.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=genie_space.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=genie_space.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=instance_pool.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=instance_pool.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=job.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=job.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=job_apply_policy_default_values_for_each_task.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=job_apply_policy_default_values_for_each_task.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=job_apply_policy_default_values_job_cluster.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=job_apply_policy_default_values_job_cluster.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=job_apply_policy_default_values_task_cluster.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=job_apply_policy_default_values_task_cluster.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=job_cross_resource_ref.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=job_cross_resource_ref.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=job_escaped_refs.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=job_escaped_refs.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=job_permission_ref.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=job_permission_ref.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=job_pydabs_10_tasks.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=job_pydabs_10_tasks.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=job_run.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=job_run.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=job_run_job_ref.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=job_run_job_ref.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=job_table_update_trigger.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=job_table_update_trigger.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=job_with_depends_on.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=job_with_depends_on.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=job_with_task.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=job_with_task.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=model.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=model.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=model_service.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=model_service.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=model_serving_endpoint.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=model_serving_endpoint.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=model_serving_endpoint_telemetry.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=model_serving_endpoint_telemetry.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=model_with_permissions.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=model_with_permissions.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=pipeline.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=pipeline.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=pipeline_allow_duplicate_names.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=pipeline_allow_duplicate_names.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=pipeline_apply_policy_default_values.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=pipeline_apply_policy_default_values.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=pipeline_config_dots.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=pipeline_config_dots.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=postgres_branch.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=postgres_branch.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=postgres_catalog.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=postgres_catalog.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=postgres_database.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=postgres_database.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=postgres_endpoint.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=postgres_endpoint.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=postgres_project.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=postgres_project.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=postgres_role.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=postgres_role.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=postgres_synced_table.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=postgres_synced_table.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=registered_model.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=registered_model.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=schema.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=schema.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=schema_grant_ref.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=schema_grant_ref.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=schema_tf_compat.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=schema_tf_compat.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=schema_uppercase_name.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=schema_uppercase_name.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=secret.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=secret_scope.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=secret_scope.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=secret_scope_default_backend_type.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=secret_scope_default_backend_type.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=sql_warehouse.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=sql_warehouse.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=synced_database_table.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=synced_database_table.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=uc_trailing_slash.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=uc_trailing_slash.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=vector_search_endpoint.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=vector_search_endpoint.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=vector_search_index.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=vector_search_index.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=volume.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=volume.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=volume_external.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=volume_external.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=volume_path_job_ref.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=volume_path_job_ref.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=volume_uppercase_name.yml.tmpl/READPLAN= ⏭️ ⏭️ ⏭️
TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=volume_uppercase_name.yml.tmpl/READPLAN=1 ⏭️ ⏭️ ⏭️
TestAccept/bundle/refschema/DMS= ✅ ❌ ❌
TestAccept/bundle/refschema/DMS=true ✅ ❌ ❌
TestAccept/bundle/resources/postgres_data_apis/basic/DMS= ✅ ❌ ❌
TestAccept/bundle/resources/postgres_data_apis/out-of-band/DMS= ✅ ❌ ❌
TestAccept/bundle/resources/postgres_data_apis/parent_only/DMS= ✅ ❌ ❌
TestAccept/bundle/resources/postgres_data_apis/recreate/DMS= ✅ ❌ ❌
TestAccept/bundle/resources/postgres_data_apis/update/DMS= ✅ ❌ ❌
TestAccept/bundle/resources/postgres_data_apis/url_reference/DMS= ✅ ❌ ❌

10 more failure details omitted, see the full report in the run.

ruslantalpa added a commit that referenced this pull request Oct 22, 2026
Co-authored-by: Isaac <no-reply@databricks.com>
@ruslantalpa
ruslantalpa force-pushed the ruslantalpa/postgres-data-apis branch from 3be15c5 to 1a763c3 Compare October 22, 2026 11:14
@eng-dev-ecosystem-bot

eng-dev-ecosystem-bot commented Oct 22, 2026 •

Copy link
Copy Markdown
Collaborator

Integration test report

Commit: ab7d1a8

Run: 41653244189

Env ✅​pass 🙈​skip Time
✅​ aws linux-2core-8gb 315 379 19:32
✅​ aws-windows-latest-4core-16gb 317 377 18:41
✅​ azure linux-2core-8gb 304 384 15:47
✅​ azure-windows-latest-4core-16gb 306 382 15:52
✅​ gcp linux-2core-8gb 305 384 17:09
✅​ gcp-windows-latest-4core-16gb 307 382 14:42
Top 46 slowest tests (at least 2 minutes):
duration env testname
4:18 azure linux-2core-8gb TestAccept
4:16 gcp linux-2core-8gb TestAccept
4:15 aws linux-2core-8gb TestAccept
3:32 gcp linux-2core-8gb TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=pipeline_apply_policy_default_values.yml.tmpl
3:15 gcp linux-2core-8gb TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=model.yml.tmpl
3:06 gcp linux-2core-8gb TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=app.yml.tmpl
3:03 azure-windows-latest-4core-16gb TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=model_serving_endpoint.yml.tmpl
3:01 azure-windows-latest-4core-16gb TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=pipeline_allow_duplicate_names.yml.tmpl
3:01 aws linux-2core-8gb TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=volume.yml.tmpl
3:00 gcp-windows-latest-4core-16gb TestAccept
2:59 aws linux-2core-8gb TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=job_apply_policy_default_values_task_cluster.yml.tmpl
2:58 aws-windows-latest-4core-16gb TestAccept/bundle/resources/postgres_data_apis/update/DMS=
2:56 azure-windows-latest-4core-16gb TestAccept
2:56 aws-windows-latest-4core-16gb TestAccept
2:52 aws-windows-latest-4core-16gb TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=schema_tf_compat.yml.tmpl
2:52 aws-windows-latest-4core-16gb TestAccept/bundle/resources/postgres_data_apis/out-of-band/DMS=
2:51 gcp-windows-latest-4core-16gb TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=cluster.yml.tmpl
2:50 aws-windows-latest-4core-16gb TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=job.yml.tmpl
2:49 aws-windows-latest-4core-16gb TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=pipeline.yml.tmpl
2:48 aws linux-2core-8gb TestAccept/bundle/resources/postgres_data_apis/url_reference/DMS=
2:42 gcp linux-2core-8gb TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=experiment.yml.tmpl
2:42 azure linux-2core-8gb TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=job.yml.tmpl
2:41 aws-windows-latest-4core-16gb TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=app.yml.tmpl
2:31 aws linux-2core-8gb TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=pipeline.yml.tmpl
2:31 aws-windows-latest-4core-16gb TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=catalog.yml.tmpl
2:25 gcp-windows-latest-4core-16gb TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=schema_tf_compat.yml.tmpl
2:23 aws linux-2core-8gb TestAccept/bundle/resources/postgres_data_apis/out-of-band/DMS=
2:21 gcp linux-2core-8gb TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=secret_scope.yml.tmpl
2:21 azure-windows-latest-4core-16gb TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=app.yml.tmpl
2:16 gcp linux-2core-8gb TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=model_serving_endpoint.yml.tmpl
2:15 aws linux-2core-8gb TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=job_pydabs_10_tasks.yml.tmpl
2:15 aws-windows-latest-4core-16gb TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=volume_uppercase_name.yml.tmpl
2:15 azure-windows-latest-4core-16gb TestFilerWorkspaceFilesExtensionsDelete
2:14 aws linux-2core-8gb TestAccept/bundle/resources/postgres_data_apis/basic/DMS=
2:13 aws-windows-latest-4core-16gb TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=secret_scope_default_backend_type.yml.tmpl
2:10 azure linux-2core-8gb TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=schema_tf_compat.yml.tmpl
2:08 aws linux-2core-8gb TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=job.yml.tmpl
2:08 azure linux-2core-8gb TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=schema_uppercase_name.yml.tmpl
2:08 azure-windows-latest-4core-16gb TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=cluster.yml.tmpl
2:06 azure-windows-latest-4core-16gb TestFilerWorkspaceFilesExtensionsReadDir
2:05 azure-windows-latest-4core-16gb TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=dashboard.yml.tmpl
2:04 azure-windows-latest-4core-16gb TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=job_pydabs_10_tasks.yml.tmpl
2:02 azure linux-2core-8gb TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=pipeline.yml.tmpl
2:00 aws linux-2core-8gb TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=job_table_update_trigger.yml.tmpl
2:00 aws-windows-latest-4core-16gb TestAccept/bundle/invariant/continue_293/DMS=/INPUT_CONFIG=registered_model.yml.tmpl
2:00 aws-windows-latest-4core-16gb TestAccept/bundle/resources/postgres_data_apis/basic/DMS=

@ruslantalpa
ruslantalpa marked this pull request as ready for review October 23, 2026 13:26
@ruslantalpa
ruslantalpa requested review from a team as code owners October 23, 2026 13:26
ruslantalpa and others added 14 commits November 2, 2026 13:43
Add the `postgres_data_apis` resource, which enables and configures the
Data API (PostgREST) of a Lakebase Postgres database.

The Data API is a per-database singleton with no ID of its own: its
resource name is "{parent}/data-api", and `parent` is a provided id
field, so changing it recreates. Create, update, and delete are
long-running operations. Updates send the full spec with
update_mask=spec, so a field removed from the config resets to its
server default.

spec is INPUT_ONLY in the API, so GET does not return it and remote
spec changes are not detected (ignore_remote_changes spec:input_only,
generated). Deleting the resource turns the Data API off; the database
and its data are unaffected.

The resource is labelled Private Preview, matching the API's launch
stage, rather than the Beta its postgres_* siblings are pinned to.

Co-authored-by: Isaac <no-reply@databricks.com>
Observed against a real workspace:

- status reports the configuration in effect, server defaults included:
  db_aggregates_enabled=true, db_schemas=["public"],
  jwt_role_claim_key=".sub", openapi_mode=OPEN_API_MODE_DISABLED and
  server_cors_allowed_origins=["none"]. A bool that was never set and is
  false is omitted; once set it is reported, false included.
- update_mask=spec keeps the current value of a field the request omits;
  it does not reset it to the default.
- Errors: 400 INVALID_PARAMETER_VALUE "Field 'data_api' is required and
  must contain at least one subfield with a non-default value!" for an
  empty spec, 409 ALREADY_EXISTS "Data API is already enabled for this
  database", and 404 NOT_FOUND "Data API is not enabled for this
  database" for get, update and delete when it is not enabled.

The acceptance tests now also print server_cors_allowed_origins, and the
update test shows that a field removed from the config keeps its value.

Co-authored-by: Isaac <no-reply@databricks.com>
GET does not return spec (it is INPUT_ONLY), so the plan could not see a
remote spec change, and a bound Data API kept its old configuration until
the bundle config changed. status reports every spec field in effect, so
DoRead now fills the remote spec from it.

The generated spec:input_only rules no longer apply, so apitypes.yml drops
the type for postgres_data_apis and the field rules are hand-written:
every spec field is a backend_default with no allowed values. A field the
config omits is left to the server: create applies the server default, and
update_mask=spec keeps the current value of an omitted field, so a field
removed from the config keeps its last value. Leaf update masks would reset
it, but resetting db_max_rows or jwt_role_claim_key that way leaves the
Data API unable to serve requests, so the mask stays at spec.

Status omits a false bool that was never set, so the remote spec forces
db_aggregates_enabled and server_timing_enabled: an explicit false in the
config compares against false, not against an unknown value.

With this, binding an existing Data API plans an update that applies the
configured spec, and an out-of-band spec change shows up in the plan.

Co-authored-by: Isaac <no-reply@databricks.com>
Co-authored-by: Isaac <no-reply@databricks.com>
The real API reports the serving URL in status.url:
https://{read-write endpoint host}/api/2.0/workspace/{workspace_id}/rest/{postgres_database}.
The fake now fills it in GET and in the create and update operation
responses, from the branch's read-write endpoint host, the fake
workspace ID and the database's Postgres name.

The new url_reference acceptance test has a job parameter that references
${resources.postgres_data_apis.<key>.status.url} and shows it resolves on
the first deploy. It also records that an in-place update of the Data API
currently plans an update of the job too.

Co-authored-by: Isaac <no-reply@databricks.com>
status.url is built from the read-write endpoint host, the workspace and
the database's Postgres name. An update of the Data API changes none of
them, but without this the reference resolver delays any
${resources.postgres_data_apis.<key>.status.url} reference during an
in-place update, so every dependent got a no-op update planned too.

The url_reference acceptance test now shows that changing db_max_rows
plans an update of the Data API only, and the next plan is clean.

Co-authored-by: Isaac <no-reply@databricks.com>
The invariant config now also sets db_aggregates_enabled: false,
server_timing_enabled: true, jwt_cache_max_lifetime: 300s and
openapi_mode: OPEN_API_MODE_IGNORE_PRIVILEGES, so no_drift checks the
status readback for a forced false bool, a true bool, a duration and an
enum.

Every optional field is tagged CAN_REMOVE, the bools included. Removing
either bool on its own plans an update and converges: the server keeps
the last value, status reports it, and the field is a backend default.

Co-authored-by: Isaac <no-reply@databricks.com>
The resource's schema description was inherited from the embedded SDK
spec type ("Desired PostgREST configuration (input)."). Override it to
say what the resource is, that a database has at most one Data API,
where the serving URL is (status.url) and how durations are written
(300s).

Also override the postgres.OpenApiMode description, which mentioned a
value that may be added later, with what the two supported values do.

Co-authored-by: Isaac <no-reply@databricks.com>
The comment above the PostgresDataApi entry split gofmt's alignment
block, which re-indented the unrelated PostgresBranch and
PostgresCatalog lines. Make it a trailing comment, so the diff against
main is only the added entry.

Co-authored-by: Isaac <no-reply@databricks.com>
Co-authored-by: Isaac <no-reply@databricks.com>
Co-authored-by: Isaac <no-reply@databricks.com>
The Integration Tests failed on AWS for every postgres_data_apis test in the
DMS=true variant. Deployment history rejects the new resource-key prefix:

  failed to create deployment version: operations.resource_key must have a
  known resource type prefix (e.g. 'jobs.', 'pipelines.'):
  postgres_data_apis.my_data_api (400 INVALID_PARAMETER_VALUE)

The testserver's dmsResourceTypes is meant to mirror the real service, so
listing postgres_data_apis there hid the failure locally. Remove it, so the
fake rejects the prefix the same way the real service does, and exclude
DMS=true for the postgres_data_apis resource tests and the invariant config.
This matches how the features resource handles the same gap.

Co-authored-by: Isaac <no-reply@databricks.com>
Main split the refschema output per resource type and added
lifecycle.depends_on, so add output/postgres_data_apis.txt and the
lifecycle.depends_on required field for postgres_data_apis.

Co-authored-by: Isaac <no-reply@databricks.com>
Main dropped the bind-wide DMS=[""] matrix now that bind works with
deployment history, so the bind test started running with DMS=true.
Deployment history does not accept the postgres_data_apis prefix yet,
so exclude DMS=true here as the resource tests already do.

Co-authored-by: Isaac <no-reply@databricks.com>
@ruslantalpa
ruslantalpa force-pushed the ruslantalpa/postgres-data-apis branch from 300f4d8 to b83bc7f Compare November 2, 2026 14:06
@ruslantalpa
ruslantalpa added this pull request to the merge queue Nov 3, 2026
@ruslantalpa
ruslantalpa removed this pull request from the merge queue due to a manual request Nov 3, 2026

# The Data API needs a read-write endpoint on the branch; the "production"
# branch created with the project comes with one.
postgres_roles:

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.

This is an implicit dep on the branch; please include it in the config with replace_existing to pull it in.

Same for the other acc tests.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Done in a07dc42: all the Data API acceptance tests (basic, update, out-of-band, recreate, url_reference) and the invariant config now declare postgres_branches.production with replace_existing: true (mirroring postgres_branches/replace_existing), and the role and database reference it. The bind test keeps its literal parent, since its setup script creates the project outside the bundle.

// so a field removed from the config keeps its last value. Leaf paths would
// reset an omitted field instead, but resetting db_max_rows or
// jwt_role_claim_key that way leaves the Data API unable to serve requests.
var dataApiUpdateMask = []string{"spec"}

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.

(found by my agent) Once a field has been set, removing it from the config never takes effect. The plan still shows update and the deploy prints Updated, but the PATCH leaves the field as it was, and the next plan is clean (update/output.txt shows exactly this for server_cors_allowed_origins). For fields whose default is "unset", such as db_max_rows, jwt_cache_max_lifetime and db_extra_search_path, the user also can't write the default back (the fake ignores db_max_rows: 0 even when it is force-sent), so a row cap can never be removed through the bundle. Is that acceptable for Private Preview, or should the plan at least not report an update that does nothing?

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.

cc @denik

This is the same as the update mask issue with other Postgres resources. Omitting a field from the request payload (on removal) conflicts with the "presence based" update mask interpretation.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Yes, this is intentional for Private Preview. A leaf mask would reset the field, but resetting db_max_rows or jwt_role_claim_key currently breaks serving because of a known backend issue, so we mask spec and accept that removing a field keeps its last value. I added a Badness note to the update test (ab7d1a8), like postgres_endpoints/remove_suspend_timeout. Happy to switch to whatever approach comes out of the general Postgres update-mask discussion.

waiter, err := r.client.Postgres.CreateDataApi(ctx, postgres.CreateDataApiRequest{
Parent: config.Parent,
DataApi: postgres.DataApi{
Spec: &config.DataApiDataApiSpec,

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.

(found by my agent) parent is the only required field, so a config that only sets parent (that is, "enable it with defaults") passes validate and then fails at deploy with "Field 'data_api' is required and must contain at least one subfield with a non-default value!" (libs/testserver/postgres.go mirrors this). Every test config sets db_schemas, so this case isn't covered. Should validation or the schema description say that at least one setting is needed, or should create send something by default?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Good catch. Fixed in 46d77f5: bundle validate now rejects a Data API that sets only parent (it fails before anything is deployed), the schema description says at least one setting is required, and there's a parent_only acceptance test. The check reads the dynamic config, so a setting given as a ${...} reference counts and lifecycle doesn't. I'd rather not send a default from the CLI, since that would hard-code a server default.

# database's Postgres name, none of which a Data API update can change, so a
# ${resources.postgres_data_apis.<key>.status.url} reference resolves during
# an in-place update instead of planning a no-op update of its dependents.
- field: status.url

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.

(found by my agent) Unlike every other stable output field, status.url is not built from this resource's ID. It comes from the endpoint host and the database's postgres_database, and postgres_databases updates postgres_database in place (DoUpdate builds the mask from the changes). If someone renames it, the URL changes without any Data API update. A job referencing status.url would then get the URL read during plan, which is the old one. Is that case handled somewhere, or should the comment at least say the URL is stable only with respect to this resource's own updates?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Not handled, but the stable_output_fields entry isn't what causes it. When only the database is renamed, the Data API itself is unchanged (Skip), and a Skip target's fields are already read from the plan-time remote (canReadRemoteCache in LookupReferencePreDeploy), so a dependent job gets the old URL either way and picks up the new one on the next deploy. Reworded the comment in ab7d1a8 to say the URL is stable only with respect to the Data API's own updates. (I haven't checked a rename against a live workspace.)

ruslantalpa and others added 3 commits November 3, 2026 14:01
The roles and databases used to hard-code `.../branches/production`, an
implicit dependency on the branch the project creates. Take over that branch
with `replace_existing: true` (as in postgres_branches/replace_existing) in
every Data API acceptance test and in the invariant config, and reference it
from the role and database parents.

The bind test is unchanged: its parent is a literal created by the setup
script, so there is no bundle dependency.

Co-authored-by: Isaac <no-reply@databricks.com>
The Data API create call requires at least one setting with a non-default
value, so a config with only `parent` passed `bundle validate` and then
failed at deploy. Add a validate-time check that rejects such an entry
before anything is deployed, and say in the schema description that a
setting besides `parent` is required.

The check reads the dynamic config, so a setting given as a `${...}`
reference counts as set and `lifecycle` does not. The new local-only
`parent_only` acceptance test shows the error for validate and deploy.

Co-authored-by: Isaac <no-reply@databricks.com>
Add a Badness note to the update acceptance test: removing a previously
set field plans an update, but update_mask=spec merges, so the server
keeps the last value and the next plan is clean.

Reword the status.url stable_output_fields comment: the URL is stable
only with respect to the Data API's own updates. Renaming the database's
postgres_database changes it, and a reference resolved in that same
deploy keeps the old URL until the next deploy.

Co-authored-by: Isaac <no-reply@databricks.com>

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

DABs DABs related issues

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants