Skip to content

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.html

Multiple 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.json

Example 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.xml

Mapping:

  • 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:

  • 0 success
  • 3 validation failed (trace vs. FlowSpec mismatch)
  • 4 gate 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.

Released under the MIT License.