Hightouch provides two separate features to monitor your dbt models as they relate to Hightouch syncs:
You can use either one or both of these features together. Both require that you've set up dbt-based models in Hightouch.
dbt CI checks is in open beta.
You can use Hightouch's dbt CI checks to validate changes in your dbt project Git repository. This feature checks your GitHub pull requests to ensure they don't break any existing dbt-based syncs in Hightouch.
To enable this, toggle on GitHub Pull Request checks from your dbt connected source's configuration page and then select Save. You need to do this for every connected source you want to enable CI checking on.
Once enabled, Hightouch runs a CI check on any pull request made to the dbt project's Git repository. If a breaking change is detected—for example, deleting, renaming, or moving a model used in a sync—the check fails.
Clicking into the details of a failed CI check shows which sync the breaking change effects.
The CI check passes if the pull request doesn't affect any Hightouch syncs.
Though dbt CI checks work similarly to version control with Git Sync, these are separate features and aren't dependent on one another.
Hightouch exposure sync lets you see which Hightouch syncs are using your dbt models via your dbt docs and lineage graph.
Exposure sync works by defining and updating exposures in your chosen dbt repository anytime a Hightouch sync that uses a dbt model is added or modified.
You can enable exposure sync by navigating to dbt Models on the Extensions page and selecting your dbt Connected Source. From there, activate the dbt Exposures Sync toggle and click Save.
You should see exposures starting to sync within a few minutes.
In your dbt repository, you should see a new file called
hightouch_sync_exposures.yml. This file updates every time a Hightouch sync that uses a dbt model is added, modified or disabled.
If your Git credentials are out of date, you won't be able to connect your dbt models and analyses. We recommend using Hightouch's GitHub app for your credentials if you're using GitHub.
The Hightouch GitHub app must have commit access to your chosen dbt branch to create exposures. If Hightouch is unable to push to your branch you may have to update your branch protection rules in your dbt GitHub repository.
The Hightouch exposures file is intended to stop you from breaking Hightouch syncs as a result of deleted dbt models. If you need to delete a model defined in the Hightouch exposures file, you can remove the Hightouch exposures file at any point—Hightouch will automatically recreate it.