Generators Release - 2.4.0
21/10/2026
New Snowflake dbt generator
The new dbt generator for Data Vault on Snowflake covers Stage, Raw Vault and Business Vault.
The Snowflake dbt Data Mart and combined VaultAndMart generators will follow in a later release.
General
- Restored validation for conflicting target object names within the same layer. This check was temporarily disabled in 2.3.1.
- Custom template errors now appear in Show as Code and custom template previews. Generation also reports them as validation errors and identifies the affected model object and part.
- Generated foreign-key scripts, SQL Server deployment-validation scripts and Databricks dbt source declarations now keep a consistent order between runs. This makes changes easier to review.
- Fixed invalid notebooks on Databricks, Fabric Spark and Fabric Warehouse when source code contains mixed line endings, tabs or other control characters. Empty notebooks also generate correctly.
- Fixed deployment failures caused by views or loaders being created before the tables and views they use. This covers row condensing, self-referencing lookups and delete detection, including projects with result views disabled.
- Fixed generation of the data quality check for outdated versions on historized objects when result views are disabled and Persist Validity is enabled. The required before-load action now generates and deploys correctly.
Data Vault
- Added Non-Historized Satellite and Non-Historized Business Satellite model object types for attributes that do not need version history.
- Added the Excluded from Delta Detection property to Raw Vault and Business Vault satellites, including dbt on Databricks. You can exclude technical attributes, such as a source modification timestamp, from change detection. These attributes remain stored, but changes to them alone do not create a new version.
- Optimized satellite loading by restricting reads of existing data to keys in the current batch. No configuration is required. This applies to regular, link, business, multi-active and effectivity satellites on SQL Server, Oracle, Snowflake, Databricks Spark, Fabric Spark and Fabric Warehouse. dbt and record-tracking satellites are excluded.
- Fixed Multi-Active Satellite change detection and validity handling. A new, changed or missing sequence now replaces the complete active set for the hub and closes the previous set. Unchanged sets no longer create unnecessary versions.
- Fixed validity closing for Link Satellites on Driving Key Links when Persist Validity is enabled. A change of relationship now closes the previous relationship's satellite row.
- Fixed Multi Version Load handling for satellites. Source versions are now skipped if their validity start timestamp is at or before the newest stored start timestamp for the key. This prevents late-arriving versions from changing previously loaded history.
- Fixed deployment ordering for Business Driving Key Links so source views are created before the views and loaders that use them.
- Fixed data types of default values in Point-in-Time source views. This prevents timestamp contract errors when running Data Vault dbt projects on Databricks SQL warehouses.
Data Store
- Fixed delete detection with a separate delete-detection source. Deleted Set and Full Set now identify the intended deletion candidates consistently across platforms, including Oracle.
Snowflake
- Changed the default Hash Algorithm to
SHA2-256. Hash columns now default toBINARY(32).MD5is available as a binary alternative, and the existingHASHoption remains available. Review the upgrade guidance below before changing an existing project's hash settings.
Databricks
- Added the project property Use Unique Constraints for Unity Catalog projects, including dbt. It controls unique constraint generation and allows a unique constraint instead of a primary key when key columns are nullable. The property is enabled by default.
dbt on Databricks
- Fixed constraint creation in generated dbt projects. Custom materializations now apply declared
NOT NULL, primary key, unique and foreign key constraints when supported by Databricks and enabled in the project settings. - Fixed execution of pre-hooks and post-hooks with dbt 2, including the post-hook that closes validity periods for historized records.
- Fixed data types in generated dbt tables. Calculated and aggregated values now use the modeled type, precision and scale, including decimal rounding.
Databricks and Microsoft Fabric
- Fixed inserted-row counts in generated loader notebooks. Update-only operations no longer overwrite the count from the preceding insert.
- Fixed Hierarchy Flatten loaders ignoring the dataflow filter for starting rows. Only the selected starting rows now produce hierarchy paths, while related rows remain available for traversal. This applies to Data Vault and Data Mart notebooks.
Oracle
- Made Partition Clause available for Mart Dimensions and Mart Facts in the combined VaultAndMart generator, as well as the standalone Data Mart generator.
- Fixed timestamp values for singleton records so they include hours, minutes and seconds.
Before you upgrade
These notes apply to existing generators. Review the sections relevant to your project before regenerating and deploying.
Snowflake hashing
Check your project's hash algorithm and hash-column data types. To retain existing keys, keep HASH with the existing numeric hash columns.
Switching to SHA2-256 or MD5 requires compatible binary columns, a planned redeployment and a full reload of affected tables. Use BINARY(32) for SHA2-256 and BINARY(16) for MD5. The new defaults do not migrate existing data.
Data Vault history and reloads
- Multi-Active Satellites. Each delivery must contain the complete set of active sequences for every hub it includes. Delivering only some sequences closes the missing ones. A hub omitted entirely keeps its current set. Reload affected tables to repair data loaded with the previous logic; regenerating the code alone does not repair it.
- Driving Key Link Satellites. Regenerating the code fixes future validity closing but does not repair extra open rows left by the previous logic. Reload affected tables to repair that history.
- Multi Version Load. Review sources that deliver backdated satellite versions. Versions whose validity start timestamp is at or before the newest stored start timestamp for the key are skipped without a warning.
Databricks constraints and dbt tables
- Runtime requirements. Unique constraints require Unity Catalog and are a preview feature in Databricks SQL and Databricks Runtime 18.2 or later. Disable Use Unique Constraints on earlier runtimes. The generated dbt statement that applies
NOT NULLto several columns requires Databricks SQL or Databricks Runtime 16.3 or later. - Null values in existing dbt tables. On incremental runs, columns that contain nulls keep those values and produce a warning. They do not receive
NOT NULLor dependent key constraints. Correct the data before a full refresh, which enforces non-nullability and can fail if nulls remain. - dbt column types. Existing tables retain their previous physical column types until a
--full-refresh. New loads use the modeled precision and scale. Plan a full refresh if existing column types or previously loaded values need to match the model.
Oracle satellite loads
Review satellite statistics before the first load after deployment or truncation, and before large catch-up loads. Statistics that describe an empty or much smaller table can cause a slow execution plan with the new restriction to keys in the current batch.