Report Formats
Report Formats
Section titled “Report Formats”The engine can emit analysis results in several formats. You choose the format via ReportConfig (from arxo-types::config::schema) and, when using the Rust API, trigger reporting via OrchestrationResult::report_with_options.
Configuration
Section titled “Configuration”report: format: "json" # console | json | html | sarif | snapshot | yaml | msgpack file: "out/report.json" # optional; required for html/snapshot/sarif file output metric_timings: true # include per-metric run time in reports (default: false) estimated_timings: false # show estimated run time in console (default: false)format(string): One of the formats below. Default isconsole.file(optional string): Output file path. Used byjson,html,snapshot,yaml,sarif, andmsgpackwhen writing to a file. If omitted, JSON/msgpack may print to stdout.metric_timings: When true, reports can include per-metric duration (e.g. in JSON).estimated_timings: When true, console output can show estimated run times.
Supported Formats
Section titled “Supported Formats”| Format | Description | Typical use |
|---|---|---|
| console | Human-readable terminal output | Interactive runs, quick checks |
| json | Structured JSON (metrics, violations, metadata) | APIs, tooling, dashboards |
| html | Interactive web report | Browsable results, sharing |
| sarif | Static Analysis Results Interchange Format (SARIF 2.1) | IDE/CI integration, GitHub Code Scanning |
| snapshot / yaml | Machine-readable YAML snapshot | Baselines, diffs, automation |
| msgpack | Binary MessagePack (same structure as JSON) | Compact storage, fast parsing |
Programmatic Access (Rust)
Section titled “Programmatic Access (Rust)”After Orchestrator::run, you get an OrchestrationResult. You can:
- Emit a report (writes file or stdout depending on
report.fileand format):
// result is OrchestrationResultresult.report_with_options(quiet)?;- Use the result in memory without going through a report:
result.results—Vec<MetricResult>(all metric results).result.violations— policy violations.result.import_graph— import graph for grouping/visualization.result.report_config— the report config used.result.build_timings— optional build timings.
So you can build your own JSON, custom UI, or pipeline from result.results and result.violations without using a built-in report format.
Format Details
Section titled “Format Details”Console
Section titled “Console”- No
fileneeded; output goes to stdout/stderr. - Human-readable sections for metrics, findings, and policy violations.
- Optional per-metric duration when
metric_timingsis true.
- Full result structure: metric results (id, values, findings, UI schema), policy violations, optional changed files, build timings.
- Use
report.fileto write to a file; otherwise the engine may print JSON to stdout. - Suitable for parsing by other tools or your own dashboard.
- Requires
report.file(path where the HTML file will be written). - Single-file or linked assets for an interactive report (graphs, metrics, violations).
- Requires
report.filefor file output; can also print to stdout. - SARIF 2.1; policy violations and metric findings appear as results with locations where applicable.
project_pathon the result is used for artifact URIs so viewers can resolve file paths.
Snapshot / YAML
Section titled “Snapshot / YAML”- Requires
report.filefor file output. - YAML snapshot of key metrics and structure for baselines or diffing over time.
Msgpack
Section titled “Msgpack”- Same logical structure as JSON, encoded as MessagePack.
- Use
report.fileto write to a file; otherwise may print to stdout. - Good for compact storage and fast parsing in supported languages.
FFI / Other Languages
Section titled “FFI / Other Languages”When using the FFI, you typically pass a JSON config string. Set report.format and optionally report.file in that config. The engine returns or writes the chosen format; for JSON you often get the result string directly from the FFI.
Next Steps
Section titled “Next Steps”- Configuration — Full
reportand config schema - Policy Evaluation — How violations appear in reports
- Advanced: Reports — More on report content and usage