meta
- Models
- Sources
- Seeds
- Snapshots
- Tests
- Analyses
- Macros
- Exposures
- Semantic Models
- Metrics
- Saved queries
version: 2
models:
  - name: model_name
    config:
      meta: {<dictionary>}
    columns:
      - name: column_name
        meta: {<dictionary>}
The meta config can also be defined:
- under the modelsconfig block indbt_project.yml
- in a config()Jinja macro within a model's SQL file
See configs and properties for details.
version: 2
sources:
  - name: model_name
    config:
      meta: {<dictionary>}
    tables:
      - name: table_name
        config:
          meta: {<dictionary>}
        columns:
          - name: column_name
            meta: {<dictionary>}
version: 2
seeds:
  - name: seed_name
    config:
      meta: {<dictionary>}
    columns:
      - name: column_name
        meta: {<dictionary>}
The meta config can also be defined under the seeds config block in dbt_project.yml. See configs and properties for details.
version: 2
snapshots:
  - name: snapshot_name
    config:
      meta: {<dictionary>}
    columns:
      - name: column_name
        meta: {<dictionary>}
The meta config can also be defined:
- under the snapshotsconfig block indbt_project.yml
- in a config()Jinja macro within a snapshot's SQL block
See configs and properties for details.
You can't add YAML meta configs for generic tests. However, you can add meta properties to singular tests using config() at the top of the test file.
The meta config is not currently supported for analyses.
version: 2
macros:
  - name: macro_name
    meta: {<dictionary>}
    arguments:
      - name: argument_name
version: 2
exposures:
  - name: exposure_name
    meta: {<dictionary>}
semantic_models:
  - name: semantic_model_name
    config:
      meta: {<dictionary>}
The meta config can also be defined under the semantic-models config block in dbt_project.yml. See configs and properties for details.
saved_queries:
  - name: saved_query_name
    config:
      meta: {<dictionary>}
Definition
The meta field can be used to set metadata for a resource. This metadata is compiled into the manifest.json file generated by dbt, and is viewable in the auto-generated documentation.
Depending on the resource you're configuring, meta may be available within the config property, and/or as a top-level key. (For backwards compatibility, meta is often (but not always) supported as a top-level key, though without the capabilities of config inheritance.)
Examples
Designate a model owner
Additionally, indicate the maturity of a model using a model_maturity: key.
version: 2
models:
  - name: users
    meta:
      owner: "@alice"
      model_maturity: in dev
Designate a source column as containing PII
version: 2
sources:
  - name: salesforce
    tables:
      - name: account
        meta:
          contains_pii: true
        columns:
          - name: email
            meta:
              contains_pii: true
Configure one meta attribute for all seeds
seeds:
  +meta:
    favorite_color: red
Override one meta attribute for a single model
{{ config(meta = {
    'single_key': 'override'
}) }}
select 1 as id
Assign owner and favorite_color in the dbt_project.yml as a config property
models:
  jaffle_shop:
    +meta:
      owner: "@alice"
      favorite_color: red