Route certify release¶
dpone ops route-certify-release builds one release-level go/no-go report from
immutable per-route certification bundles.
Use it after Route certify has produced
route_certification_bundle.json for every first-class route that the release
claims as certified. The command is a control-plane gate: it reads existing
artifacts, verifies route/profile identity, and writes release review files.
Use Route release finalize when the release also
needs bundle discovery, freshness, provenance, regression, and history checks.
It does not run route tests, Docker, database services, or route-certify.
Required first-class routes¶
The default release matrix requires these route bundles:
| Route case id | Expected bundle |
|---|---|
postgres_to_mssql__incremental_merge |
Postgres -> MSSQL incremental_merge route certification bundle. |
mssql_to_clickhouse__incremental_merge |
MSSQL -> ClickHouse incremental_merge route certification bundle. |
Pass --route one or more times to override the required matrix for a custom
release train.
OSS-safe mode¶
OSS-safe mode is credential-free and suitable for ordinary CI. It accepts certified route bundles created with local or OSS profiles.
uv run dpone ops route-certify-release \
--release v0.9.0-rc1 \
--profile oss_ci \
--output-dir test_artifacts/route_certification_release \
--route-bundle postgres_to_mssql__incremental_merge=test_artifacts/route_certify/postgres_to_mssql/route_certification_bundle.json \
--route-bundle mssql_to_clickhouse__incremental_merge=test_artifacts/route_certify/mssql_to_clickhouse/route_certification_bundle.json \
--format json
vendor-live mode¶
vendor-live mode is opt-in and stricter. Every required bundle must have been
created with profile=vendor_live; otherwise the release report fails with a
<route>.profile_mismatch blocker.
uv run dpone ops route-certify-release \
--release v0.9.0-rc1 \
--profile vendor_live \
--output-dir test_artifacts/route_certification_release/vendor_live \
--route-bundle postgres_to_mssql__incremental_merge=test_artifacts/route_certify/postgres_to_mssql/route_certification_bundle.json \
--route-bundle mssql_to_clickhouse__incremental_merge=test_artifacts/route_certify/mssql_to_clickhouse/route_certification_bundle.json \
--format json
Outputs¶
| File | Description |
|---|---|
route_certification_release.json |
Stable schema dpone.route_certification_release.v1 for CI, release gates, and automation. |
route_certification_release.md |
Human-readable route matrix, blockers, warnings, artifact index, and Operator runbook. |
route_certification_release_notes.md |
Short release-note fragment for GitHub releases or release reviews. |
Policy¶
The release fails closed when any required route bundle is missing, malformed,
not certified, profile-mismatched for vendor_live, or embeds a different route
identity than the route key passed on the CLI.
Optional bundles are included in the report. A blocked optional route creates a warning rather than a blocker.
Operator runbook¶
Failure: <route>.missing.
- Run
dpone ops route-certifyfor the missing route. - Attach the generated
route_certification_bundle.jsonwith--route-bundle <route>=<path>. - Re-run
dpone ops route-certify-release.
Failure: <route>.not_certified.
- Open the route bundle and inspect its
blockers. - Fix upstream route readiness, live evidence, refresh verification, state promotion, or release evidence issues.
- Regenerate the route bundle; do not edit generated JSON manually.
Failure: <route>.profile_mismatch.
- Re-run the route certification with the same profile requested by this release gate.
- Use
vendor_liveonly for opt-in Docker-live or vendor-live release candidates.
Failure: <route>.route_mismatch.
- Confirm the CLI route key matches the embedded
route.case_id. - Reattach the correct route bundle before tagging the release.