Skip to main content

About model governance

dbt supports model governance to help you control who can access models, what data they contain, how they change over time, and reference them across projects. dbt supports model governance in dbt Core and the dbt platform, with some differences in the features available across environments/plans.

  • Use model governance to define model structure and visibility in dbt Core and the dbt platform.
  • dbt builds on this with features like cross-project ref that enable collaboration at scale across multiple projects, powered by its metadata service and Catalog. Available in dbt Enterprise or Enterprise+ plans.

All of the following features are available in dbt Core and the dbt platform, except project dependencies, which is only available to dbt Enterprise-tier plans.

  • Model access — Mark models as "public" or "private" to distinguish between mature data products and implementation details — and to control who can ref each.
  • Model contracts —Guarantee the shape of a model (column names, data types, constraints) before it builds, to prevent surprises for downstream data consumers.
  • Model versions — When a breaking change is unavoidable, provide a smoother upgrade pathway and deprecation window for downstream data consumers.
  • Model namespaces — Organize models into groups and packages to delineate ownership boundaries. Models in different packages can share the same name, and the ref function can take the project/package namespace as its first argument.
  • Project dependencies — Resolve references to public models in other projects ("cross-project ref") using an always-on stateful metadata service, instead of importing all models from those projects as packages. Each project serves data products (public model references) while managing its own implementation details, enabling an enterprise data mesh. EnterpriseEnterprise +

Considerations

There are some considerations to keep in mind when using model governance features:

  • Model governance features like model access, contracts, and versions strengthen trust and stability in your dbt project. Because they add structure, they can make rollbacks harder (for example, removing model access) and increase maintenance if adopted too early. Before adding governance features, consider whether your dbt project is ready to benefit from them. Introducing governance while models are still changing can complicate future changes.

  • Governance features are model-specific. They don't apply to other resource types, including snapshots, seeds, or sources. This is because these objects can change structure over time (for example, snapshots capture evolving historical data) and aren't suited to guarantees like contracts, access, or versioning.

Was this page helpful?

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

0