Data Contract CLI — Defines, validates, and enforces data contracts across databases and data pipelines.
Analyzed by Sai Pavan Gopularam · Data Engineering · Data Quality · View on GitHub
- Stars: 1075
- Forks: 290
- Commits last 30 days: 100
- Health: Active (100 commits this month)
- Language: JavaScript
- License: MIT
What It Is
Imagine a blueprint for your data: a data contract specifies its structure, expected values, and quality rules, much like an API specification defines how to interact with a service. The Data Contract CLI is a tool that reads these blueprints and checks if your actual data matches them.
This matters because unreliable data breaks dashboards, machine learning models, and business decisions. The CLI automates checking if your data product is compliant, catching issues before they cause downstream problems and ensuring data consumers can trust the data they receive.
License Verdict
MIT License — Build and Sell Freely — Commercial Use Approved • No Copyleft Restrictions
The MIT License allows you to use, modify, and distribute this software for any purpose, including commercial use, without requiring you to release your source code. You can build proprietary products and services on top of it.
How to Use It
Install the CLI using uv or pip, then define your data contract in a YAML file. The tool can then lint your contract, test your data against it, and export schemas to various formats.
Prerequisites:
- Python 3.11+
- uv (optional, recommended)
Estimated setup time: 5 minutes.
uv tool install --python python3.11 --upgrade 'datacontract-cli[all]'
datacontract init my_contract.odcs.yaml
datacontract lint my_contract.odcs.yaml
What I'd Build With This
Data Contract Validator API (micro-saas)
Build a simple web API that accepts a data contract YAML and returns validation results. Data teams could integrate this into their CI/CD pipelines as a pre-commit hook or a merge request check, ensuring contracts are valid before deployment. Charge per API call or per contract linted.
Effort: 1 Week Build Time · Target: Data Engineers, DevOps Teams · Pricing: $29/mo for 1000 validations
Automated Data Quality Monitoring Platform (saas)
Develop a SaaS platform that allows users to upload data contracts and configure connections to their data sources (Snowflake, BigQuery, Postgres, etc.). The platform would continuously run data quality and schema tests using the CLI, alerting users to any deviations. Offer dashboards and historical trend analysis.
Effort: 3 Months Build Time · Target: Data Platform Teams, Data Stewards · Pricing: $199/mo per data source
Managed Data Contract Governance & Implementation (enterprise)
Offer a professional service to large enterprises struggling with data quality and governance. This service would involve helping them define, implement, and integrate data contracts across their complex data ecosystems using the Data Contract CLI. Provide custom integrations, training, and ongoing support for data contract lifecycle management.
Effort: Ongoing Service · Target: Large Enterprises, Data Governance Offices · Pricing: $10,000+ / project
Sai Pavan Gopularam's Take
This CLI is a solid foundation for data governance, offering robust data quality and schema validation. I'd lean into the automated data quality monitoring SaaS, charging $199/month per data source. The value proposition of catching data issues before they impact business decisions is huge for data-driven companies.
Watch Out For
- Windows Compatibility: Some tests fail on Windows; the recommended workaround is to run in WSL. This might indicate potential issues for native Windows users.
- Proprietary HANA Dependency: The 'hana' extra is not included in '[all]' because 'hdbcli' is proprietary. Users connecting to SAP HANA will need to handle this dependency separately.
- Docker Output Limitations: When using the Docker image, direct output to files is not recommended due to formatting issues (limited to 80 columns, line breaks). Use the '--output' option instead for exports.
I break down trending repos like Data Contract CLI every week — join the newsletter.