Export workload compliance evidence
Export one workload's compliance evidence as a JSON file for an audit. The file holds the workload's governance scorecard and the evidence behind it, and maps each item to EU AI Act and OWASP Top 10 for Agentic Applications controls.
Workload Trust is available only in private, self-managed AIControls installations, on premises or in a cloud cluster that you run. It needs a dedicated cluster that you run, with Kyverno, Kyverno Runtime, and cluster OIDC and RBAC access in place. Nirmata-hosted (SaaS) workspaces don't include it. See Feature availability.
Before you begin
- Your AIControls control plane runs on self-hosted Kubernetes with Workload Protection running. The workload belongs to the cluster AIControls runs in; a workload in another cluster has no evidence to export.
- You're signed in as an administrator or a viewer. Developer tokens can't export evidence.
Export the evidence
Open Inventory → Workloads and select a workload, then select Open full details.
Open the Posture tab. The Governance scorecard card shows the four conditions and the evidence behind each one.
Select Export evidence. Your browser downloads a file named
compliance-evidence-<namespace>-<kind>-<name>-<time>.json.
You can also call the API directly with an admin or viewer token:
curl -H "Authorization: Bearer $TOKEN" \
"https://<your-aicontrols-host>/api/v1/workload-trust/<namespace>/<kind>/<name>/compliance-evidence" \
-o evidence.json
Read the file
The file is one JSON document:
| Field | What it holds |
|---|---|
schema | aicontrols.nirmata.io/governance-evidence/v1. |
generatedAt | When AIControls built the file. |
workload | The cluster, namespace, kind, and name. |
disclaimer | The file is evidence for review, not a certification. |
scorecard | The four governance conditions, each with its state, reason, and evidence. |
items | One item per piece of evidence: the four conditions, the deployment risk band with its rule and reasons, the Pod Security level and its failing checks, the RBAC privilege, the intent mismatch, and the Kyverno results for each policy category. Each item has a state, a summary, bounded details, the sources it cites, observedAt, and the controls it maps to. When no source reported an observation time, observedAt is the export's generatedAt and observedAtIsGeneratedAt is true. |
frameworks | For the EU AI Act and the OWASP Top 10 for Agentic Applications, each control and the items that are evidence for it. |
truncated | true when a size bound dropped details or categories. |
An item whose state is not-evaluated means its source didn't answer. It is not evidence of compliance. The file has no score, and exporting it changes nothing in AIControls.
The file is bounded: each item keeps at most 16 details of at most 512 characters each, and the Kyverno posture keeps at most 24 categories.
How items map to controls
| Item | EU AI Act | OWASP Top 10 for Agentic Applications |
|---|---|---|
| Traffic goes through the proxy | Art. 13, Art. 14 | ASI02, ASI10 |
| Protocols are restricted | Art. 15 | ASI02, ASI07 |
| File access and execution are controlled | Art. 15 | ASI05 |
| Credentials are secured | Art. 15 | ASI03 |
| Deployment risk band | Art. 9 | — |
| Pod Security level | Art. 15 | ASI05 |
| RBAC privilege | Art. 15 | ASI03 |
| Intent mismatch | Art. 9 | ASI03 |
| Kyverno posture | Art. 9, Art. 15 | — |