Skip to main content
dbt exposures document the downstream consumers of your dbt models, like dashboards or applications. Omni can generate exposure files from your published dashboards and push them to your dbt repository, providing visibility into how dbt models are consumed by Omni.

Common questions

When you push exposures from Omni, each published dashboard generates an exposure file containing:
  • The dashboard name and URL
  • The dbt models that the dashboard depends on
  • Metadata about the exposure (owner, type)
Exposure files are created in the models/omni_exposures/ directory of your dbt repository. This file path is not currently customizable.
Omni generates exposure names from dashboard titles. If a dashboard title contains special characters or emoji, the resulting exposure name may trigger dbt deprecation warnings about invalid naming conventions.
While the Push to dbt action in the UI is a manual process, you can automate this using the Omni API.You can set up a script — using GitHub Actions, a cron job, or orchestration tools like Dagster or Airflow — to fetch exposure metadata and generate the dbt YAML on a regular cadence. This ensures your dbt lineage stays synchronized with the dashboards your team is building without requiring manual intervention.
Check out our community guide for a script template to help you get started with this workflow.
Currently, exposure generation focuses on the final, governed dashboards that serve as the primary consumption point for data.
  • Published dashboards: Only dashboards in the shared space are included in exposure generation.
  • Private content: Dashboards in your personal space and workbooks are not supported.

Requirements

To follow the steps in this guide, you’ll need:
  • An Omni connection with a configured dbt integration
  • Connection Admin permissions for the connection in Omni
  • Write access on the deploy key used to connect dbt to Omni. See deploy key setup for more information.

Pushing exposures to dbt

1
In Omni, click Develop to open the list of models in your instance.
2
Click the model you want to work with to open the model IDE.
3
Click Model > Push to dbt.
4
In the dialog, check the Sync exposures setting. Omni will generate exposure YAML files and push them to your repository.
5
Click Create pull request.
6
Review and merge the pull request in your Git provider.

Troubleshooting

Exposures rely on explicit references to map dependencies. If Omni cannot determine the connection between a query and a dbt model, the exposure will not generate correctly.
  • Use ${model_name} syntax. Your SQL must use Omni’s mustache-style references (e.g., ${fct_orders}) for Omni to detect the dependency.
  • Avoid direct table references. Referencing database tables directly (e.g., FROM production.orders) bypasses the mapping layer, and Omni cannot currently map these raw strings to dbt exposures.
    If you have a large number of direct table references, use the Content Validator to bulk-swap them for ${...} model references to re-link your content to the dbt integration.
  • Check the publication status of the dashboard. Omni expects dashboards to be moved to the shared space to be captured in a generated exposure.

Next steps

  • Create and edit dbt models — Author new dbt models from Omni queries or edit existing models and push changes back to your dbt repository.