ImportEarly access
dbt logo

Publish governed meaning into dbt

Govern a column's meaning once, and let dbt carry it to the warehouse column comment.

Start with this recipe →

Just manifest.json. No warehouse credential, no dbt Cloud token, no writes to your repo.

Opens the CoreModels app at this recipe. Sign in with Google or Microsoft.

For agents, no sign-in: /recipe/publication-contract.json · /recipe/publication-contract.md

dbt emits one artifact class — tables in one warehouse — and gives governed meaning nowhere to live: description is free text, meta is unvalidated, and accepted_values is a string list duplicated into every model that touches the field. This recipe closes that loop. Import the artifacts dbt already produces, govern meaning on top (descriptions, a named vocabulary behind an enum, an ontology term a human binds), then generate the contracts back as one property file per model, colocated beside each model's own .sql. One governed vocabulary generates accepted_values in every model that uses that field; a bound ontology term rides out both structurally (meta.coremodels.maps_to) and in the column description, which persist_docs carries into the warehouse column comment. Generation is deterministic, so a re-run with no meaning change is an empty diff. CoreModels returns files — your own PR flow lands them.

What you do

  1. Govern the meaning in the grid; generate one property file per model, colocated beside its .sql.
  2. The bound term rides in the column description (the field persist_docs pushes to the warehouse comment) and in meta.
  3. Every run hands you a loss report. No meaning change means no diff.