Inspiration
A column rename can quietly cross warehouses, transformations, dashboards, feature stores, and production models. The code change may be small while the organizational blast radius is not. DataHub already knows the schemas, lineage, owners, governance labels, and downstream consumers. ChangeGuard gives that context an operational job: decide how a proposed schema change can ship safely and preserve the decision for the next person or agent.
What it does
ChangeGuard accepts a concrete schema proposal, such as renaming country_code to market_code. It uses the DataHub MCP Server to verify the current schema, trace field-aware downstream lineage, identify owners and configured governance signals, calculate an inspectable risk decision, and generate a reversible rollout with platform-aware validation SQL.
In authorized private live mode, ChangeGuard can write the final passport back through save_document. The public demo uses synthetic fixtures and simulates this operation without changing DataHub.
Missing column-level lineage remains explicitly unknown instead of being invented. Invalid fields, semantic no-ops, failed writes, and dialect-incompatible types fail closed.
How we built it
React, TypeScript, Vite, and React Flow for the responsive control room. Express and Zod for the validated API. The official @modelcontextprotocol/sdk streamable HTTP client. DataHub MCP tools: get_entities, list_schema_fields, get_lineage, and gated private save_document. A deterministic policy engine so every decision is inspectable and testable. An original synthetic cross-platform catalog covering PostgreSQL, Snowflake/dbt, Looker, Power BI, Feast, and MLflow. A private live MCP mode plus an honestly labeled no-credential simulated public demo.
Why DataHub is essential
The plan changes with the catalog graph. Available column mappings determine field impact; ownership controls routing; configured tag signals affect policy; lineage depth controls rollout order; and the private live integration can preserve the final record in the graph. Without DataHub, ChangeGuard loses its source of truth, coordination graph, and durable memory.
Challenges and safeguards
The hard part was keeping the agent useful without letting it invent context. The official MCP response containers are parsed explicitly, live failures never fall back to fixtures, public deployment is forced into simulated mode, and live writes require a private deployment plus explicit mutation opt-in. PostgreSQL, Snowflake, and BigQuery physical names and target types are validated separately.
Accomplishments
End-to-end no-credential public demo with meaningful cross-platform lineage. Implements and separately validates an official DataHub MCP integration and gated private save_document write-back. The public demo uses synthetic fixtures and saves only a process-local simulated receipt. Reversible five-phase rollout, owner routing, and concrete validation SQL. 42 tests covering MCP contracts, lineage mapping, unknown fields, SQL dialects, no-op rejection, failed writes, CORS, and public Lambda isolation. Public Apache-2.0 source, Docker packaging, architecture notes, and sample output.
What we learned
Metadata becomes more valuable when agents do more than retrieve it. DataHub's context graph can operate as a control plane: schemas constrain what the agent may propose, lineage orders work, ownership creates the coordination map, governance signals influence policy, and write-back gives the next person or agent durable context.
Project provenance
ChangeGuard was created from scratch during the July 6-August 10, 2026 submission period. OpenAI Codex assisted with implementation, adversarial review, validation, and media preparation. No pre-existing project code was incorporated; third-party open-source dependencies are listed in package.json and package-lock.json.
Built with
DataHub OSS, DataHub MCP Server, Model Context Protocol, TypeScript, React, Vite, Express, Zod, React Flow, Vitest, Docker, AWS Lambda.
Built With
- aws-lambda
- datahub
- datahub-mcp-server
- docker
- express.js
- model-context-protocol
- react
- react-flow
- typescript
- vite
- vitest
- zod
Log in or sign up for Devpost to join the conversation.