CLI Specification¶
Binary:
odcs
Commands:
odcs validate <path>
odcs validate <path> --dep <path> [--dep ...] [--include <dir>] [--registry <dir>]
odcs inspect <path>
odcs diagnostics <path>
odcs diff <old> <new>
odcs registry index <dir>
odcs registry lookup <dir> <id> [--version <ver>]
odcs registry list <dir>
odcs schema
odcs version
Output modes:
odcs validate contract.yaml
odcs validate contract.yaml --json
odcs schema
odcs schema --json
odcs schema --url-only
Exit codes:
0valid / no breaking diff changes1validation errors / breaking diff changes2parse or IO failure
Cross-file validation (0.8.0+)¶
odcs validate consumer.yaml --dep provider.yaml --include ./contracts/
odcs validate consumer.yaml --registry ./contracts/
Requires odcs registry index ./contracts/ before --registry validation.
Local registry (0.9.0+)¶
odcs registry index ./contracts/
odcs registry lookup ./contracts/ provider-contract
odcs registry list ./contracts/
Compatibility diff (0.8.0+)¶
odcs diff old.yaml new.yaml
odcs diff old.yaml new.yaml --json
Exit 0 when no breaking changes; 1 when breaking changes are detected.
Validation (0.4.0+)¶
Default validate runs the Rust pipeline plus pinned ODCS v3.1.0 JSON Schema validation.
parse_strict() (library API) parses and validates in one step, returning Result<DataContract, DiagnosticReport>.
odcs schema¶
| Flag | Output |
|---|---|
| (default) | Full pinned JSON Schema to stdout |
--json |
{"schemaVersion","upstreamUrl","schema"} wrapper |
--url-only |
Upstream repository URL line only |
User-facing CLI documentation: ../user/cli.md.