dbt package for DataVow — on-run-end hook with Vow Score reporting.
Add to your packages.yml:
packages:
- git: "https://github.com/ludovicschmetz-stack/datavow-dbt"
revision: v1.0.0Then:
dbt depspip install datavow
datavow dbt sync --contracts contracts/ --dbt-project .This generates:
tests/datavow/*.sql— singular teststests/datavow/_<model>__datavow.yml— generic tests (not_null, unique, etc.)
In your dbt_project.yml:
on-run-end:
- "{{ datavow.datavow_summary(results) }}"# Option A: dbt build (runs models + tests, including datavow tests)
dbt build
# Option B: dbt test only
dbt test --select tag:datavow
# Option C: full DataVow CI pipeline
datavow dbt ci --dbt-project .After dbt build completes, the on-run-end hook displays:
╔══════════════════════════════════════════════════╗
║ DataVow — A solemn vow on your data ║
╠══════════════════════════════════════════════════╣
║ ✅ Vow Kept — Score: 100/100 ║
║ Passed: 12 Failed: 0 Warned: 0 Total: 12 ║
╚══════════════════════════════════════════════════╝
In dbt_project.yml:
vars:
# Block pipeline on test failures (default: "error")
# Options: "error" (block on failures), "warn" (block on failures + warnings), "none" (never block)
datavow_fail_on: "error"datavow dbt syncconverts DataVow YAML contracts into dbt-native tests- All generated tests are tagged with
datavow dbt buildordbt testexecutes them in your warehouse (any adapter)- The on-run-end macro collects results, computes a Vow Score, and gates the pipeline
Works with any dbt adapter: PostgreSQL, Snowflake, BigQuery, Redshift, DuckDB, SQL Server, Databricks, etc.
Apache 2.0