Hey team,
I've been using Data Contract CLI for a while and wanted to flag a project I built that sits in an adjacent but distinct space — in case it's worth a mention in your ecosystem docs or opens a conversation about integration.
What the gap is
Data Contract CLI validates that live data matches a defined contract — post-deploy, warehouse-connected, runtime checks. What I kept running into was a different failure mode: a dbt model changes, the warehouse data looks fine, but the FastAPI service consuming it breaks because the schema no longer matches what Pydantic expects. That break happens in code, before deployment, and no amount of live data testing catches it at the right moment.
What I built
data-contract-validator — a CI boundary guard that statically validates dbt model outputs against FastAPI/Pydantic schemas (and recently, HubSpot CRM targets for reverse-ETL pipelines).
A few things worth noting:
Uses sqlglot for SQL parsing — handles CTEs, window functions, quoted identifiers correctly
Parses Pydantic/SQLModel from AST, no imports executed
Canonical type normalization so varchar vs str doesn't generate noise
Branch auto-matching across repos so a dbt PR checks against the right API branch automatically
Confidence-aware — warns rather than hard-failing when a model can't be fully resolved
Why these are complementary, not overlapping
Your tool answers: "Does the data in the warehouse match the contract?"
Mine answers: "Will the next dbt deploy break the API that depends on it?"
One is post-deploy monitoring. The other is pre-deploy static analysis. A team running both gets coverage at both boundaries.
What I'm proposing
A few things could make sense depending on your interest:
A mention in your "Comparison with Other Tools" page as a complementary tool covering the dbt→application layer boundary
A conversation about whether a bridge makes sense — e.g. your contract YAML as a validation target my tool checks against, or my validation results exported to your format
Nothing formal — just flagging it in case it's useful context for your roadmap
Happy to jump on a call or continue in this thread. No pressure either way — just thought the overlap was worth surfacing.
— Siji
github.com/OGsiji | data-contract-validator
Hey team,
I've been using Data Contract CLI for a while and wanted to flag a project I built that sits in an adjacent but distinct space — in case it's worth a mention in your ecosystem docs or opens a conversation about integration.
What the gap is
Data Contract CLI validates that live data matches a defined contract — post-deploy, warehouse-connected, runtime checks. What I kept running into was a different failure mode: a dbt model changes, the warehouse data looks fine, but the FastAPI service consuming it breaks because the schema no longer matches what Pydantic expects. That break happens in code, before deployment, and no amount of live data testing catches it at the right moment.
What I built
data-contract-validator — a CI boundary guard that statically validates dbt model outputs against FastAPI/Pydantic schemas (and recently, HubSpot CRM targets for reverse-ETL pipelines).
A few things worth noting:
Uses sqlglot for SQL parsing — handles CTEs, window functions, quoted identifiers correctly
Parses Pydantic/SQLModel from AST, no imports executed
Canonical type normalization so varchar vs str doesn't generate noise
Branch auto-matching across repos so a dbt PR checks against the right API branch automatically
Confidence-aware — warns rather than hard-failing when a model can't be fully resolved
Why these are complementary, not overlapping
Your tool answers: "Does the data in the warehouse match the contract?"
Mine answers: "Will the next dbt deploy break the API that depends on it?"
One is post-deploy monitoring. The other is pre-deploy static analysis. A team running both gets coverage at both boundaries.
What I'm proposing
A few things could make sense depending on your interest:
A mention in your "Comparison with Other Tools" page as a complementary tool covering the dbt→application layer boundary
A conversation about whether a bridge makes sense — e.g. your contract YAML as a validation target my tool checks against, or my validation results exported to your format
Nothing formal — just flagging it in case it's useful context for your roadmap
Happy to jump on a call or continue in this thread. No pressure either way — just thought the overlap was worth surfacing.
— Siji
github.com/OGsiji | data-contract-validator