How lucheeseng827/covenant works
Covenant compiles YAML data contracts once and enforces them at file, stream, and in-process Arrow boundaries. Its merge-time workflow classifies contract changes and checks declared consumer impact; consumer manifests can also scope validation and be checked for staleness. Sampled code supports the CLI, row/Arrow engines, inference, and frontend boot behavior; serve endpoints and some CLI wiring are represented only at the documented subsystem level.
Main entry points: cli.rs Covenant CLI · serve.rs HTTP API · sources.rs File checks · spec.rs Contract parser
Components 18
Contract lifecycle
- Contract parser
src/spec.rs - Contract compiler
src/compile.rs - Sample inference
src/infer.rs
Data enforcement
- File checks
src/sources.rs - Record engine
src/engine/row.rs - Arrow engine
src/engine/arrow.rs - Stream gate
src/gate.rs - Check reports
src/report.rs
Change impact
- Contract diff
src/diff.rs - Consumer manifests
src/consumers.rs
API and console
- HTTP API
src/serve.rs - Web console
frontend/src/App.tsx - Console API client
frontend/src/api.ts
Runtime core
- Covenant CLI
src/cli.rs - Engine coordination
src/engine/mod.rs - Binary entry
src/main.rs
Other components
- Contract author
- Data files or stream
Connections 27
- Contract author → Contract parser: authors YAML
- Data files or stream → Sample inference: samples records
- Data files or stream → File checks: provides files
- Binary entry → Covenant CLI: dispatches
- Covenant CLI → Contract parser: loads contracts
- Covenant CLI → Sample inference: runs inference
- Sample inference → Contract parser: drafts contract
- Covenant CLI → Contract compiler: compiles contract
- Contract parser → Contract compiler: provides spec
- Covenant CLI → File checks: checks files
- File checks → Engine coordination: validates records
- Engine coordination → Record engine: coordinates row checks
- Engine coordination → Arrow engine: coordinates batch checks
- File checks → Check reports: produces report
- Covenant CLI → Stream gate: runs stream gate
- Stream gate → Record engine: validates records
- Stream gate → Check reports: emits violations
- Covenant CLI → Contract diff: classifies changes
- Covenant CLI → Consumer manifests: checks manifests
- Contract diff → Consumer manifests: matches impact
- Covenant CLI → HTTP API: starts API
- Web console → Console API client: uses client
- Console API client → HTTP API: requests endpoints
- HTTP API → Contract compiler: uses compiled contract
- HTTP API → File checks: runs checks
- HTTP API → Contract diff: runs diff
- HTTP API → Consumer manifests: verifies consumers