Documentation
Quick Start
From zero to validated contract in 60 seconds.
1
Install
Requires Python 3.10+. No other dependencies needed.
2
Initialize
$ datavow init my-project
✓ Created datavow.yaml
✓ Created contracts/example.yaml
DataVow initialized for "my-project"
This creates a configuration file and an example contract you can customize.
3
Define your contract
# contracts/orders.yaml
apiVersion: datavow/v1
kind: DataContract
metadata:
name: orders
domain: sales
owner: data-team@company.com
schema:
fields:
- name: order_id
type: integer
required: true
unique: true
- name: total_amount
type: decimal
required: true
min: 0
quality:
rules:
- name: no_negative_totals
type: sql
query: "SELECT COUNT(*) FROM {table} WHERE total_amount < 0"
threshold: 0
severity: CRITICAL
Contracts are YAML files. Define schemas, quality rules, SLAs, and ownership. Version them in git alongside your code.
4
Validate
$ datavow validate contracts/orders.yaml --data data/orders.parquet
⚖ DataVow — Validating contract: orders
✓ PASS order_id: unique constraint satisfied
✓ PASS total_amount: all values ≥ 0
✓ PASS no_negative_totals: 0 violations
Vow Score: 100/100
Verdict: ✅ Vow Kept — fully compliant
5
Generate a report
$ datavow report contracts/orders.yaml --format html
✓ Report saved to reports/orders-report.html
Share the HTML report with your team, attach it to a PR, or include it in client deliveries.
⚡
Use in CI/CD
# .github/workflows/data-contracts.yml
name: Data Contract Validation
on: [push, pull_request]
jobs:
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.12'
- run: pip install datavow
- run: datavow ci
# Exit code 1 if any CRITICAL violation
datavow ci validates all contracts in your project. Exit code 0 if all pass, 1 if any CRITICAL violation. Plug into any CI system.