Reports¶
VirtualSutra AI generates downloadable reports after every completed inspection run. Access them from the Reports tab on the Run Detail page.
Report types¶
| Type | Description |
|---|---|
| Compliance | Per-framework breakdown with control IDs, scores, and all findings |
| WAF Assessment | Pillar-by-pillar scores, RAG ratings, and LLM recommendations |
| Executive Summary | High-level overview for management and non-technical stakeholders |
Download formats¶
| Format | Best for |
|---|---|
| Sharing with stakeholders; print-ready | |
| HTML | In-browser reading; links between findings and compliance controls |
| JSON | Programmatic consumption; import into other tools |
| CSV | Spreadsheet analysis in Excel or Google Sheets |
| SARIF | Import into GitHub Advanced Security, VS Code, or other SAST tooling |
Not every report type is available in every format. The Reports tab shows only what was generated for that run.
Per-scope reports - Executive Summary PDF + per-scope HTML¶
After a run completes, the Reports tab lists a separate report file for each scope present in the run. The output mix is:
- Executive Summary - rendered as both PDF and HTML. The PDF is the single artifact intended for offline distribution to leadership / auditors / GRC tools. It includes a "Detailed Reports" section at the bottom with deep-links into the per-scope HTML files for anyone reading it from a browser.
- All other scopes - HTML only. PDFs are no longer produced for the per-scope reports because (a) the HTML opens directly in a browser tab and is searchable, zoomable, and easier to navigate than a printed PDF, and (b) generating thousands of PDFs per run was the dominant cause of reporting OOMs at large scale.
Per-scope HTML files are produced for each of the following (only those present in the run's scope appear):
- WAF Assessment (
waf/waf_assessment.html) - Per cloud account - one file per
cloud_inspectoralias (compliance/cloud_{alias}.html) - Per repository group - one file per
codebase_analyzeralias (compliance/codebase_{alias}.html) - Per Kubernetes cluster - one file per cluster (
compliance/k8s_{cluster}.html) - Per container image / registry - one file per
container_scanneralias (compliance/registry_{alias}.html) - Per compliance framework - one file per active framework (
compliance/framework_{name}.html, e.g.framework_cis.html,framework_soc2.html)
Each scope is rendered by a dedicated Kubernetes Job running in parallel, so large runs finish reporting much faster than when everything was rendered in a single process.
Need an offline copy of a per-scope report? Open the HTML in your browser and use File → Print → Save as PDF (or your browser's equivalent). You can also download the full machine-readable finding set as JSON, CSV, or SARIF - those formats are unaffected by the HTML-only change and always contain every finding regardless of scope size.
SIEM / SOAR export (OCSF, ASFF, Security Hub)¶
Beyond the standard download formats, the Reports tab offers two security-tooling-oriented exports:
| Export | Description |
|---|---|
| OCSF | Findings mapped to the Open Cybersecurity Schema Framework's Detection Finding schema (v1.5.0), as gzip-compressible newline-delimited JSON, for ingestion into any OCSF-compatible SIEM |
| ASFF | Findings mapped to AWS Security Finding Format |
If your administrator has enabled the integration, an ASFF to Security Hub push sends findings directly into AWS Security Hub instead of (or in addition to) downloading the file. Findings are batched automatically to stay within Security Hub's per-request limits, and any individual finding too large to submit is skipped rather than failing the whole batch. You'll see a success or failure toast after a push.
Note: The Security Hub push button only appears when your deployment has Security Hub integration configured. If you don't see it, ask your administrator.
Accessing reports¶
- Open a completed run (
/runs/{id}) - Click the Reports tab
- Click a format button to download
SARIF in GitHub¶
Upload the SARIF report to GitHub Advanced Security to see findings annotated directly on pull request diffs:
gh api repos/{owner}/{repo}/code-scanning/sarifs \
-F sarif=@report.sarif.json \
-F ref=refs/heads/main \
-F commit_sha=$(git rev-parse HEAD)
Report retention¶
Reports are stored on the server volume. Retention depends on your administrator's storage configuration. Contact your admin if older reports are missing.