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 dbt Cloud, with some differences in the features available across environments/plans.
- Use model governance to define model structure and visibility in dbt Core and dbt Cloud.
- dbt Cloud builds on this with features like cross-project ref that enable collaboration at scale across multiple projects, powered by its metadata service and dbt Explorer. Available in dbt Cloud Enterprise plans.
All of the following features are available in dbt Core and dbt Cloud, except project dependencies, which is only available to dbt Cloud Enterprise 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. Enterprise
Model governance features like model access, contracts, and versions strengthen trust and stability in your dbt project. Because they add structure, it can make it harder to roll changes back later (for example, removing model access) and increases maintenance if adopted too early.
Before adding governance features, consider whether your dbt project is ready to benefit from them. Introducing them too soon can make future changes harder if your models are still changing/evolving.