Skip to content

Complementary tool for dbt→API contract validation at CI boundary — potential ecosystem cross-reference #1490

Description

@OGsiji

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    waiting-for-decisionWaiting for a decision of the maintainers.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions