dbt-databricks 1.12.1 (June 10, 2026)
Features
- Expose
job_id,job_run_id, andtask_run_idfrom the Databricks Jobsdbt_taskruntime inadapter_response, enabling correlation between dbt runs and Databricks workflow executions viarun_results.jsonby @sd-db in #1451, closes #722 - Add support for SPOG (Single Point of Gateway) hosts: account-level vanity URLs with
?o=<workspace-id>inhttp_pathroute correctly for both data-plane (SQL) and control-plane (REST/Jobs/Workspace API) traffic. Requiresdatabricks-sql-connector >= 4.2.6anddatabricks-sdk >= 0.76.0. by @sd-db in #1479
Fixes
- Ignore the server-set
delta.parquet.compression.codectblproperty when diffing relation configs, so streaming tables and materialized views are not flagged as changed after the backend started stamping it automatically by @sd-db in #1489 - Fix missing f-string prefix in
JobRunsApi.submitdebug log by @Dev-X25874 in #1471 - Fix capability-branching macros falling through to their legacy path at parse/compile time on SQL warehouses. The parse-time stub of
has_dbr_capabilitynow returnsTrueon warehouse profiles for capabilities flaggedsql_warehouse_supported, so macros select the modern branch during compilation instead of the legacy fallback. by @sd-db in #1449, closes #1331 - Fix snapshots not applying
databricks_tagson columns by @themattmorris in #1442, closes #1441 - Skip
DESCRIBE TABLE EXTENDED ... AS JSONfor foreign/federated tables inget_columns_in_relation, avoiding repeated failures and extra latency on those sources by @willweld in #1472 EXTRACT_CLUSTER_ID_FROM_HTTP_PATH_REGEXnow stops the capture at?/&, so any trailing query string onhttp_pathno longer corrupts the extracted cluster id. Latent issue on legacy hosts; the fix unblocks SPOG cluster paths. by @sd-db in #1479- Gate column-level constraints on
contract.enforcedto match the existing model-level gate, ensuring column-level NOT NULL / PK / FK / CHECK constraints are only applied whencontract.enforced: trueunderuse_materialization_v2: trueby @sd-db in #1470, closes #1381 - Fix managed Iceberg incremental models configured with
partition_bysilently losing their clustering after the first incremental run. Managed Iceberg storespartition_byas liquid clustering server-side, so the reconciler now treatspartition_byas the desired clustering and no longer issues a spuriousALTER TABLE ... CLUSTER BY NONEby @sd-db in #1496, closes #1495
Under the Hood
- Defer SDK
Configconstruction to connection-open time so offline paths (dbt parse/list/compile) don't trigger the host-metadata probe introduced indatabricks-sdk>=0.103; as a side effect, auth errors now surface at first connection rather than during profile parsing. by @sd-db in #1474 - Bump ceilings on
databricks-sdk(now<0.105.0) anddatabricks-sql-connector[pyarrow](now<4.3.0) to admit newer releases; floors unchanged. by @sd-db in #1474 - BREAKING: users who relied on column-level constraints (NOT NULL, primary key, foreign key, check) being applied under
use_materialization_v2: truewithoutcontract.enforced: truemust now setcontract.enforced: trueexplicitly on the model. by @sd-db in #1470 - Bump upper bound of dbt-core to
<1.11.12to include dbt-core 1.11.9, 1.11.10, and 1.11.11 by @sd-db in #1505
Full Changelog: v1.12.0...v1.12.1