Metacenta

Ownership & accountability · rule exposure-owner-unreachable

dbt exposures with no contactable owner

A Metacenta review checks this under the rule Exposures carry a contactable owner. Everything below applies whether or not you ever commission one.

What this rule checks

This rule flags dbt exposures with no owner, or an owner with no email address. A name alone does not count, because nobody can be sent a name.

Why it matters

An exposure is a consumer outside the project, such as a dashboard or a downstream job. When a model behind it breaks, the owner is who the breakage should be announced to, and there is nobody to tell.

How to fix it

Give every exposure an owner who can be told when it breaks. Add owner: {email: …} to each exposure, naming whoever answers for the dashboard or job.

Before:

exposures:
  - name: weekly_revenue
    type: dashboard
    depends_on:
      - ref('fct_orders')

After:

exposures:
  - name: weekly_revenue
    type: dashboard
    owner:
      email: finance-data@jaffle.example
    depends_on:
      - ref('fct_orders')

When it is fine to leave

An exposure for a retired dashboard should be deleted rather than given an owner. Otherwise there is rarely a good reason: a team inbox is enough.

What we need to check it

manifest.json from a project that declares exposures. A project with none is not judged.