Developer Route RC Executor¶
The route RC executor is the execution layer for
route_rc_orchestration.json. It keeps route release-candidate execution
separate from runtime connectors and from the orchestration service that
generates the command train.
Module boundaries¶
| Module | Responsibility |
|---|---|
dpone.ops.route_rc_executor |
RouteReleaseCandidateExecutorService facade. Loads orchestration JSON, normalizes steps, executes only when requested, collects artifacts, evaluates policy, and writes reports. |
dpone.ops.routes.rc_executor_models |
Stable public models for route_rc_execution.json and Markdown rendering. |
dpone.ops.routes.rc_executor_runner |
CommandProcessRunner protocol, CommandProcessResult, and the subprocess-backed default runner. |
dpone.ops.routes.rc_executor_redaction |
Shared redaction helper for command text and captured output. |
dpone.ops.routes.rc_executor_policy |
Pure fail-closed policy for command results and expected artifacts. |
Design rules¶
- Default mode is dry-run; command execution requires
execute=True. - The service has no route-specific branches.
- The service does not open database connections.
- The service does not import runtime source or sink connectors.
- Docker, pytest, and vendor-live work happens only through commands already
recorded in
route_rc_orchestration.json. - Command execution is dependency-injected through
CommandProcessRunner. - Redaction is applied before any command text, stdout, or stderr is written to
route_rc_execution.json.
Extension rules¶
Future source -> sink routes should only need:
- A matrix-backed route profile.
- Route readiness/certification evidence.
- A
route_rc_orchestration.jsonreceipt with ordered commands and expected artifacts.
Do not add route-specific code to RouteReleaseCandidateExecutorService.
If a future route needs a different execution backend, add a small
CommandProcessRunner implementation and inject it from the calling context.
Testing contract¶
Required coverage:
- Dry-run never calls the runner.
- Execute mode calls the runner through DI.
- Non-zero exit codes block the report.
- Timeouts block the report.
- Missing required artifacts block the report.
- Redaction removes explicit secrets and common key/value secret patterns.
- CLI tests verify that
dpone ops route-rc-executeremains a thin adapter. - Docs tests require user docs, developer docs, architecture docs, CI docs, workflow wiring, CLI reference, and source-sink matrix links.
Public receipt¶
route_rc_execution.json uses schema dpone.route_rc_executor.v1 and includes:
- release, profile, route, and input orchestration path;
- mode and executed flag;
- step command status, attempts, timeout, exit code, stdout/stderr tails, and step artifact checksum;
- artifact collection status and SHA-256 checksum;
- blockers, warnings, score, and next actions.
Keep this schema additive. Downstream release gates and human review runbooks can depend on existing field names.