DataContractGate
Infer, dry-run, deploy, and inspect DataContractGate semantic data contracts.
ماذا يمكنك أن تفعل مع DataContractGate؟
- Semantic YAML Contracts — entities, types, patterns, enums, required fields, glossary, and computed metrics
- Real-time Validation — at ingestion (Kafka, HTTP, batch) with sub-millisecond per-event validation
- Visual Contract Builder — intuitive UI + live YAML preview (Cloud)
- AI-Powered Inference — paste sample JSON → instantly generates a full contract (Cloud)
- Quarantine + Replay — automatically hold and replay violating events (Cloud)
- Versioned Contracts — draft → stable → deprecated with compliance mode (Cloud)
- High Performance — Rust + Axum core, 86k+ events/sec/core
- Polyglot — Rust engine, Python SDK, CLI, Kafka Connect, Zapier, Next.js dashboard
التثبيت
أضف هذا إلى إعدادات MCP في عميلك (Claude Desktop: claude_desktop_config.json، وCursor: .cursor/mcp.json، ويستخدم VS Code وغيره الصيغة نفسها «mcpServers»).
@nightmoose/contractgate-mcp-serverclaude mcp add datacontractgate -e 'CONTRACTGATE_API_KEY=<your contractgate_api_key>' -e 'CONTRACTGATE_BASE_URL=<CONTRACTGATE_BASE_URL>' -- npx -y @nightmoose/contractgate-mcp-server@0.4.0
{
"mcpServers": {
"datacontractgate": {
"command": "npx",
"args": [
"-y",
"@nightmoose/contractgate-mcp-server@0.4.0"
],
"env": {
"CONTRACTGATE_API_KEY": "<your contractgate_api_key>",
"CONTRACTGATE_BASE_URL": "<CONTRACTGATE_BASE_URL>"
}
}
}
}
متغيرات البيئة
CONTRACTGATE_API_KEYإلزامي سري DataContractGate API key (cg_live_...). Create one at https://app.datacontractgate.com/accountCONTRACTGATE_BASE_URLGateway base URL. Defaults to https://api.datacontractgate.com
التوثيق
مأخوذ من ملف README للمشروع على GitHub ويُحدَّث أسبوعيًا. تفتح الروابط على GitHub.
المحتويات
DataContractGate
Semantic Contract Enforcement at Ingestion — Patent Pending
Stop bad data before it reaches your warehouse, lakehouse, or ML pipeline.
DataContractGate is a high-performance validation gateway that enforces rich semantic data contracts in real time. Built in Rust for sub-millisecond per-event validation (86k+ events/sec/core), it goes far beyond JSON Schema or basic type checks — ontology, glossary, patterns, enums, computed metrics, and automatic inference.
The same contract can gate what leaves your system. POST /egress/{contract_id} runs the identical engine on any outbound payload — a reverse-ETL row, a notebook export, a state object headed to a decision model. Failing records are blocked, declared PII is masked, and the caller forwards only the returned payload. See docs/egress-validation-reference.md.
Validating LLM output? The same engine powers AISchemaGate (pip install aischemagate / npm install @nightmoose/aischemagate). One-line wrapper over OpenAI / Anthropic / vLLM / Ollama responses — extracts the structured JSON, validates against your contract, optionally re-prompts on violation. Non-streaming only in v1. See docs/llm-output-validation.md, docs/llm-sdk-reference.md, and the copy-paste guides in docs/integrations/ (Vercel AI SDK, structured outputs, LangGraph). Ingest recipes: examples/recipes/.
Live demo → app.datacontractgate.com/stream-demo
Using Claude, Cursor, or Codex? Paste this
https://app.datacontractgate.com/llm-integration.md
https://github.com/nightmoose/contractgate
implement this in my repo
Your agent reads the integration playbook
(source), finds your event shape, infers a contract
from real samples, deploys it, wires your producer to /v1/ingest, and verifies
with a dry run before anything is written. Machine index:
/llms.txt.
MCP (Cursor, Claude Desktop, Windsurf, Copilot, Codex):
{
"mcpServers": {
"contractgate": {
"command": "npx",
"args": ["-y", "@nightmoose/contractgate-mcp-server"],
"env": {
"CONTRACTGATE_API_KEY": "${CONTRACTGATE_API_KEY}"
}
}
}
}
Tools and auth: docs/mcp-reference.md.
Claude Code / Cursor plugin:
/plugin marketplace add nightmoose/contractgate
/plugin install contractgate@contractgate
Redpanda Connect (HTTP processor, no custom plugin): docs/examples/redpanda-connect/.
Zapier — validate the record a Zap just pulled, before the next step writes it. A failure is quarantined and the Zap stops. A pass continues with the payload DataContractGate returned. Setup and the zapier-platform push commands: docs/zapier.md. Source: zapier/.
Try it in 10 minutes (Self-Hosted Free)
No Supabase account. No API keys. No sign-up.
git clone https://github.com/nightmoose/contractgate.git
cd contractgate
make demo
Opens at **http://localhost:3000** — dashboard pre-loaded with three starter contracts and a live event stream. First build ~3 min, subsequent runs instant (Docker layer cache).
make demo-reset # wipe + reseed (clean slate)
make demo-down # stop and remove volumes
make demo-logs # follow all service logs
Self-Hosted Free (
make demo) runs the real gateway binary with auth off. Unlimited local events, full YAML editor, playground, audit log. Feature comparison below ↓
Real login (self-host)
Auth on, dashboard sign-up, and every paid feature unlocked. From a fresh clone:
git clone https://github.com/nightmoose/contractgate.git
cd contractgate
docker compose -f docker-compose.yml -f docker-compose.selfhost.yml up --build
Sign up at http://localhost:3000/auth/signup, then sign in at http://localhost:3000/auth/login. Mail is not configured; confirmation is automatic. Do not combine this with --profile demo. First boot generates keys and binds ports to 127.0.0.1. Exact steps: docs/self-host-reference.md.
The comparison table below is the zero-auth demo. With CONTRACTGATE_SELF_HOSTED=true the stored plan stays free and paid gates open.
Key Features
- Semantic YAML Contracts — entities, types, patterns, enums, required fields, glossary, and computed metrics
- Real-time Validation — at ingestion (Kafka, HTTP, batch) with sub-millisecond per-event validation
- Visual Contract Builder — intuitive UI + live YAML preview (Cloud)
- AI-Powered Inference — paste sample JSON → instantly generates a full contract (Cloud)
- Quarantine + Replay — automatically hold and replay violating events (Cloud)
- Versioned Contracts — draft → stable → deprecated with compliance mode (Cloud)
- High Performance — Rust + Axum core, 86k+ events/sec/core
- Polyglot — Rust engine, Python SDK, CLI, Kafka Connect, Zapier, Next.js dashboard
Self-Hosted Free vs Cloud
| Capability | Self-Hosted Free | Cloud (Free / Pro / Enterprise) |
|---|---|---|
| Validation engine | ✅ Unlimited (local) | ✅ 100K / 25M / Unlimited events/month |
| Starter contracts | ✅ 3 | ✅ 3 / Unlimited / Unlimited |
| Playground | ✅ | ✅ |
| Audit log | ✅ Local Postgres | ✅ 7 / 90 / Custom days retention |
| Live event stream | ✅ | ✅ |
| Auth & API keys | ❌ | ✅ |
| Multi-tenancy | ❌ Single org | ✅ |
| Visual contract builder | ❌ | ✅ Growth+ |
| AI inference (JSON → YAML) | ❌ | ✅ Growth+ |
| Quarantine + replay | ❌ | ✅ Growth+ |
| PII transform rules | ❌ | ✅ Growth+ |
| Semantic versioning UI | ❌ | ✅ Growth+ |
| GitHub sync | ❌ | ✅ Growth+ |
| Team invites & roles | ❌ | ✅ Growth+ |
| SSO / SAML | ❌ | ✅ Enterprise |
| Managed hosting + SLA | ❌ Self-hosted | ✅ |
→ Full pricing → Talk to sales
Other Quickstarts
Docker (gateway + Postgres only):
docker compose up
Python SDK:
pip install contractgate
from contractgate import Client
client = Client(api_url="http://localhost:8080", api_key="cg_demo_key")
client.validate(contract_id="...", event={"user_id": "u1", "event_type": "click"})
CLI:
cargo install --git https://github.com/nightmoose/contractgate contractgate
contractgate validate --contract examples/nested-order.yaml events.json
GitHub Action (compile every YAML under contracts/ on PRs):
- uses: nightmoose/contractgate/actions/validate@main
with:
path: contracts
pre-commit (same compile, no network):
# .pre-commit-config.yaml
repos:
- repo: https://github.com/nightmoose/contractgate
rev: main # pin to a git sha
hooks:
- id: contractgate-validate
Architecture
| Layer | Tech |
|---|---|
| Validation engine | Rust + Axum (sub-millisecond per-event, see note) |
| Dashboard | Next.js 15 + TypeScript + Tailwind |
| Storage | Supabase (Postgres + Auth) |
| Connectors | Kafka Connect, HTTP, batch, Python SDK, CLI |
| Observability | Prometheus + Grafana |
Full RFCs and design docs live in docs/rfcs/. For a quick shipped-vs-draft view, see docs/STATUS.md.
Comparison
| Feature | DataContractGate | Great Expectations | Soda | Monte Carlo | dbt |
|---|---|---|---|---|---|
| Validation timing | At ingestion | Post-hoc / batch | Mix (mostly batch) | Observability | During dbt runs |
| Performance | Sub-ms per-event, 86k+ ev/s (Rust, see note) | Python-based | Varies | Not a validator | Not real-time |
| Semantic depth | Ontology + glossary + metrics | Basic expectations | Checks + rules | No contracts | Basic schema |
| Visual builder | Yes + live YAML | Partial | Limited | No | YAML only |
| Inference from sample data | One-click JSON → YAML | Profiler (basic) | Limited | No | No |
| Quarantine + replay | Built-in | No | No | No | No |
| Versioning | Draft → stable → deprecated | Manual | Basic | No | Basic |
| Self-hosted OSS | Yes (make demo) | Yes | Open core | Commercial | Yes |
| License | MIT | Apache 2.0 | Open core | Commercial | Apache 2.0 |
Contributing
PRs welcome. See CONTRIBUTING.md and the reference docs in docs/.
Active RFCs: docs/rfcs/ · RFC status index: docs/STATUS.md
License
MIT — see LICENSE. Free to use, fork, and build on top (commercial use welcome).
The semantic contract enforcement algorithm is the subject of a pending patent.
The patent covers the invention — your right to use, modify, and distribute the
code under the MIT license is unaffected. See NOTICE for details.
Built with ❤️ in Florida by NightMoose
الأسئلة الشائعة
ما هو DataContractGate؟
Infer, dry-run, deploy, and inspect DataContractGate semantic data contracts.
كيف أثبّت DataContractGate؟
يعمل على جهازك. في Claude Code: claude mcp add datacontractgate -e 'CONTRACTGATE_API_KEY=<your contractgate_api_key>' -e 'CONTRACTGATE_BASE_URL=<CONTRACTGATE_BASE_URL>' -- npx -y @nightmoose/contractgate-mcp-server@0.4.0. وفي العملاء الآخرين، الصق إعداد JSON من هذه الصفحة في إعدادات MCP الخاصة بهم.
هل يحتاج DataContractGate إلى مفتاح API؟
نعم. يتطلب CONTRACTGATE_API_KEY، وتضبطها في إعداداته.
هل DataContractGate مفتوح المصدر؟
نعم. شيفرته متاحة على GitHub بترخيص MIT.
من يصون DataContractGate؟
ينشره nightmoose. يدرجه AI.tn لكنه لا يصونه ولا يوصي به.
من سجل MCP الرسمي. الإدراج ليس توصية: راجع شيفرة الخادم وصلاحياته قبل منحه الوصول إلى بياناتك.