Reports
ChoreoAtlas can emit validation results in HTML, JSON, and JUnit. Use them for developer feedback, CI gating, and dashboards.
Quick usage
bash
choreoatlas validate \
--flow contracts/flows/order-flow.graph.flowspec.yaml \
--trace traces/successful-order.trace.json \
--report-format html --report-out reports/validation-report.htmlMultiple outputs can be generated by running validate multiple times with different --report-format and --report-out.
HTML report
- Purpose: human-friendly view with timeline, coverage, and gate summary.
- File:
reports/validation-report.html - Contains: overall status, per-step results, coverage bars, thresholds/baseline summary, edition badge (CE / Pro Standard / Pro Privacy).
Open the sample: /docs/samples/validation-report.html.
JSON report
Use JSON for programmatic consumption.
bash
choreoatlas validate \
--flow contracts/flows/order-flow.graph.flowspec.yaml \
--trace traces/successful-order.trace.json \
--report-format json --report-out reports/validation.jsonExample shape (abbreviated):
json
{
"flow": "contracts/flows/order-flow.graph.flowspec.yaml",
"trace": "traces/successful-order.trace.json",
"summary": { "status": "PASS", "steps": 4, "issues": 0 },
"coverage": { "steps": 1.0, "conditions": 0.98 },
"thresholds": { "steps": 0.9, "conditions": 0.95, "skipAsFail": false },
"baseline": { "path": null, "mode": "none" },
"steps": [
{ "name": "Create Order", "result": "PASS", "durationMs": 27 },
{ "name": "Charge", "result": "PASS", "durationMs": 18 }
],
"gateResult": { "code": 0, "reason": "ok" }
}JUnit report
CI systems commonly parse JUnit XML for pass/fail summaries.
bash
choreoatlas validate \
--flow contracts/flows/order-flow.graph.flowspec.yaml \
--trace traces/successful-order.trace.json \
--report-format junit --report-out reports/validation.junit.xmlMapping:
- Each orchestration step becomes a test case.
- Failures (including threshold/baseline violations) are represented as
<failure>nodes. - The process exit code differentiates validation failure vs. gate failure.
GateResult and exit codes
Exit codes are designed for CI gates:
0success3validation failed (trace vs. FlowSpec mismatch)4gate failed (thresholds or baseline not met)
The JSON report embeds a gateResult with code and reason to make CI decisions explicit.
Tips
- Produce both HTML and JUnit in CI: HTML for manual inspection, JUnit for dashboards.
- Keep reports as build artifacts for 14–30 days.
- Use thresholds to prevent regressions; baselines to stabilize noise.