Highlightdbt Labs

Data tests are select queries that must return zero failing rows

Guide to asserting uniqueness, non-null, relationships, and custom logic on dbt models and related resources.

Data tests are assertions about models and other project resources; dbt test reports pass or fail for each. Built-in checks cover non-null, unique, referential correspondence, and accepted values, and any select that returns failing records can become a test. Generic tests are defined with test blocks; zero failing rows means pass. The tests key remains an alias for data_tests.

Based on: Add data tests to your DAG | dbt Developer Hub · dbt Labs

Highlightdbt Labs

dbt-core 1.5 ships model contracts, groups, and access controls

GitHub release notes for dbt-core v1.5.0 listing breaking changes and features such as contracts, groups, and access.

dbt-core 1.5.0, released 27 April 2023, adds native data type constraints, model contracts for tables, views, and incremental models, group resources, access attributes, and selection by group. It also deprecates log-path and target-path in dbt_project.yml and allows --select and --exclude multiple times. Private models cannot be ref'd across groups.

Based on: Release dbt-core v1.5.0 · dbt-labs/dbt · dbt Labs

Highlightdbt Labs

Cross-project refs treat public models as a stable API, not a package

dbt Labs documentation on packages versus project dependencies that resolve public models through a metadata service.

dbt long supported installing other projects as packages, which pulls in full source code for macros and models. It also supports project dependencies that resolve on-the-fly refs to public models via a metadata service, so downstream teams do not parse or run upstream models. Those models are treated as an API whose maintainer guarantees quality and stability, with Enterprise prerequisites including public access and a production manifest.

Based on: Project dependencies | dbt Developer Hub · dbt Labs

Highlightdbt Labs

dbt Mesh is a multi-project pattern for governed cross-team data products

2023 docs introducing dbt Mesh: cross-project refs, Catalog, groups, access, versions, and contracts for independent yet aligned teams.

The page says a single dbt project struggles at scale to coordinate stakeholders, and Mesh addresses multi-project dependencies, governance, and workflows. Mesh is a pattern, not one product: Enterprise cross-project ref, Catalog lineage, governance, groups, access, model versions, and contracts. It recommends treating models as stable APIs when coordinating across teams and outlines when multi-project architecture becomes appropriate.

Based on: About dbt Mesh | dbt Developer Hub · dbt Labs

Highlightdbt Labs

dbt constraints validate table data only when contracts are enforced

Reference on platform constraints in dbt: validation on write, contract prerequisite, and uneven enforcement across warehouses.

Constraints are platform features that validate data as tables are created or updated; failed validation rolls back the operation. In dbt they apply only to table and incremental models that declare and enforce a contract with explicit column data types. Enforcement varies: some constraints block builds, some are metadata-only, and some platforms cannot define certain types at all.

Based on: constraints | dbt Developer Hub · dbt Labs

Highlightdbt Labs

dbt model access is group-scoped visibility, not user permissions

Docs distinguishing model access from user access, and explaining groups that mark models private or public for ref boundaries.

The page separates “model access” from dbt user permissions: developers in a project see private models; others may depend only on public ones. Groups give models a shared owner and make interface boundaries explicit. Private access restricts which models other groups may ref; public models are the intended dependency surface, including for future multi-project collaboration.

Based on: Model access | dbt Developer Hub · dbt Labs

Highlightdbt Labs

dbt model contracts enforce YAML column names, types, and constraints

Reference docs for dbt’s contract config: enforced schema match for supported SQL materializations, with type aliasing notes.

When a contract is enforced, dbt requires the model’s returned dataset to match YAML-defined column names, data types, and supported constraints. The goal is predictable columns for downstream users inside and outside dbt, because even a boolean-to-integer type shift can break queries. Support is limited to certain SQL materializations and platforms; Python models, ephemeral models, and several other resource types are excluded.

Based on: contract | dbt Developer Hub · dbt Labs

Highlightdbt Labs

dbt model governance covers access, contracts, versions, and mesh refs

Overview of dbt model governance: public/private access, contracts, versions, namespaces, and Enterprise cross-project dependencies.

The page says model governance controls who can access models, what they contain, how they change, and how they are referenced across projects. Features include public/private access, contracts on column shape, versions for breaking changes, namespaces for ownership, and Enterprise project dependencies via cross-project ref. It also mentions freshness SLAs with State and lag_tolerance, plus caveats about adopting governance too early.

Based on: About model governance | dbt Developer Hub · dbt Labs

Highlightdbt Labs

Model versions treat shared dbt models like versioned APIs

dbt Mesh docs explaining model versioning versus other “version” meanings, and why producers and consumers need graceful change.

The page separates model versions (a Mesh governance feature) from dbt_project.yml and YAML property-file version fields. It compares shared dbt models to APIs where producers must change logic while consumers need stable queries. Model versioning is offered as a deliberate way to handle breaking changes without pretending the tension disappears. It also warns that governance features can harden rollbacks if adopted too early.

Based on: Model versions | dbt Developer Hub · dbt Labs

HighlightOpenMetadata

OpenMetadata docs cover discovery, lineage, contracts, and MCP for agents

OpenMetadata documentation hub for metadata discovery, lineage, governance, data contracts, and AI/MCP integrations.

OpenMetadata’s docs present a platform to document, discover, and govern data assets, with quick start, production, and upgrade paths. Guides span discovery, lineage, observability, data contracts, and governance; highlights include Context Center, MCP server and AI SDK for agents, new connectors, and dimensional data-quality validation.

Based on: OpenMetadata Documentation - OpenMetadata Documentation · OpenMetadata

HighlightBitol (LF AI & Data)

ODCS v3.2.0 standardizes the sections of a producer–consumer data contract

Bitol’s Open Data Contract Standard defines a YAML-oriented structure for agreements between data producers and consumers.

The Open Data Contract Standard (ODCS) v3.2.0, under Apache 2.0 from Bitol at LF AI & Data, describes how to structure a data contract. Contracts cover schema, quality, SLA, roles, infrastructure, and related sections, with JSON Schema for YAML validation and media type application/odcs+yaml;version=3.2.0.

Based on: GitHub - bitol-io/open-data-contract-standard: Home of the Open Data Contract Standard (ODCS). · Bitol (LF AI & Data)

Highlightmartinfowler.com

Data mesh: domain-owned data products instead of a central lake monolith

Zhamak Dehghani’s 2019 essay on moving from monolithic data lakes to a distributed data mesh.

Dehghani argues enterprise data lakes often fail at scale through centralization, coupled pipelines, and siloed ownership. The proposed shift treats domains as first-class, applies platform thinking for self-serve infrastructure, and treats data as a product with discoverability, addressability, trust, self-describing semantics, interoperability, and secure access.

Based on: How to Move Beyond a Monolithic Data Lake to a Distributed Data Mesh · martinfowler.com