Define data contracts for your data assets — the agreement between the team that produces a dataset and the teams that consume it. Captures schema, quality expectations, freshness commitments, ownership, lineage, and the business glossary terms that anchor the contract in your domain language.
An AgileDataGuides Pattern Template app.
This is the initial stubs version of the app, publishing it so I can collaborate with a few people on what the Data Contract app should actually look and behave like.
A Data Contract is an explicit, machine-readable agreement covering everything a consumer needs to depend on a dataset:
| Section | Purpose |
|---|---|
| Data Asset | The single dataset the contract governs |
| Schema / Columns | Every column with its data type, classification (PII / public / confidential), nullability, and primary-key status |
| Trust Rules | Data-quality expectations the producer commits to enforce — completeness, uniqueness, accuracy, freshness, validity, security |
| Data Sync | Service-level commitments — refresh frequency, latency, uptime, retention |
| Team | Producers (owner), stewards, and consumers — with role-tagged contact info |
| Personas | The roles who depend on this contract (e.g. CRO, CFO, Finance Analyst) |
| Glossary Terms | Business glossary terms anchored to the contract — keeps language consistent across domains |
| Delivery / Infrastructure | How the data is delivered — Snowflake, Kafka, REST API, dbt, … |
| Lineage | PROV-O aligned upstream sources (source systems, ingestion jobs, transformation steps) |
| Status / Domain / Information Product / Tags | Metadata tying the contract into the wider organisation |
Launch the Live Demo — no install required. The demo runs entirely in your browser. Your data is saved in localStorage and never leaves your device.
The demo includes three example contracts modelling the Stripe Customers, Stripe Subscriptions, and Stripe Invoices APIs — the SaaS revenue funnel from customer master through MRR/ARR to recognised revenue. They thread together via foreign keys so you can see how contracts cross-reference each other in a real dataset stack.
Run ./start-data-contract.sh from the terminal.
The app starts at http://localhost:5119.
Requires: Node.js (v18+) and pnpm (npm install -g pnpm).
frequency, latency, uptime, retention) with unitsentity / activity / agent) and upstream relationshipsdata/ for direct access by Claude or other toolsExport your contract as JSON / ODCS / OpenMetadata and use it with Claude Code or Claude Chat:
The Data Contract app speaks multiple data contract dialects via its Language Framework:
Languages are pure translation modules — your contract data stays in the AgileData-native model on disk; export/import re-emits it in the chosen dialect on demand.
Save writes contract files to the data/ folder as JSON. This only works in dev mode (pnpm dev) where the server can write to disk. Claude Code can then read these files directly.
Export downloads files to your browser's downloads folder for sharing or backup.
Auto-save persists the current state to browser localStorage automatically.
This app is designed to run locally on your own machine. Do not expose it to the internet or deploy it on a public server. The Save feature writes files directly to your filesystem. There is no user authentication, so anyone who can reach the server can read and overwrite your data.
If you need to share your work, use the Export buttons to download files and share them manually.