Quick Start

From zero to validated contract in 60 seconds.

1 Install

$ pip install datavow

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.

Next steps

📖 Full documentation on GitHub
🐛 Report a bug or request a feature
Star the repo to stay updated on new releases