1Security
Reference

Compliance Evidence Export

Pull a dated, defensible JSON evidence pack for your AI agent governance - inventory, permissions, activity trail, and a log retention attestation, with every section mapped to the EU AI Act, NIS2, and Polish KSC and AI act articles it evidences.

When a regulator, auditor, or enterprise customer asks "show me your AI agent governance", the answer should not be a screenshot tour. The compliance evidence export produces one dated JSON document - the evidence pack - that captures what agents run in your tenant, what they are allowed to touch, what they actually did, and how long the activity trail is retained.

The pack is built for the regulations EU organizations are answering to today:

  • EU AI Act, Article 26 (deployer duties, applicable December 2, 2027 but already requested in procurement): an inventory of the AI systems in use and the oversight arrangements around them, including Article 26(6) log retention of at least six months under the deployer's control.
  • EU AI Act, Article 50 (transparency, in force since August 2, 2026): which agents interact with people, and what disclosure state you can attest for each - name, publisher, whether its instructions are captured.
  • NIS2 and the Polish KSC act (as amended, in force since April 3, 2026): supply chain evidence - third-party apps and agents with access, their permission grants, and the activity trail behind them.
  • The Polish AI act (Dz.U. 2026 poz. 1003): the same inventory and oversight evidence; section labels and framework names are included in Polish alongside English.

Getting the pack

From the dashboard: open Agents and choose Compliance evidence. The pack is generated on the spot and downloads as a JSON file named 1security-agent-evidence-<date>.json. Generating and downloading it is admin-only. The pack is always one document per tenant - in a combined multi-tenant dashboard ("All tenants"), switch to the member tenant first and generate a pack for each member you need to evidence.

From the API: auditors and GRC tooling can pull the identical document without dashboard access:

curl -H "Authorization: Bearer $ONESEC_API_KEY" \
  "https://api.1security.ai/api/v1/evidence/agents"

Requires a key with the evidence:read scope - see the API reference for keys, authentication, and rate limits. Optional from and to query parameters (ISO-8601) bound the covered activity period; the default window is the trailing 183 days. An optional framework parameter (a registry key such as dora) scopes the legend and sections to one framework. The response is { "data": <pack> } with no pagination - the pack is one document.

Both paths produce the same document, so the pack an auditor pulls through the API matches the one your admin downloaded byte for byte.

What is in the pack

{
  "packType": "1security.agent_evidence_pack",
  "version": "1.9.0",
  "metadata": {
    "tenantId": "01H…",
    "tenantName": "Contoso",
    "azureTenantId": "…",
    "generatedAt": "2026-09-02T09:15:00.000Z",
    "generatedBy": "admin@contoso.com",
    "coveredFrom": "2026-03-03T09:15:00.000Z",
    "coveredTo": "2026-09-02T09:15:00.000Z",
    "retention": { "...": "see Retention attestation below" }
  },
  "frameworks": [
    { "id": "EU-AI-Act-26(6)", "name": "…", "namePl": "…", "reference": "…" }
  ],
  "sections": [
    {
      "key": "inventory",
      "label": "AI agent inventory",
      "labelPl": "Inwentarz agentów AI",
      "frameworks": [
        "EU-AI-Act-26",
        "PL-AI-Act",
        "ISO42001-A.3",
        "KSC-access-control"
      ],
      "rowCount": 42,
      "truncated": false,
      "rows": ["…"]
    }
  ]
}

Three parts:

  • metadata - who generated the pack, when, for which tenant, the covered period, and the retention attestation.
  • frameworks - the legend: every framework id used anywhere in the pack, with its full name in English and Polish and the legal reference. The list is open by design and already spans the EU AI Act, NIS2, GDPR, the Polish KSC and KRiBSI acts, DORA, ISO/IEC 42001, ISO/IEC 27001, SOC 2, NIST CSF 2.0 and HIPAA - a future framework arrives as new legend entries and new ids on sections, never as a format change.
  • sections - the evidence itself. Every section carries a frameworks array naming exactly which articles it evidences, so an auditor can walk from an article to the data that answers it without interpreting anything.

Sections and what each one evidences

SectionWhat it containsEvidences
inventoryEvery discovered agent: name, blueprint, publisher, how it runs, who created it and in which tool, access channels, permission counts, whether instructions are captured, and its accountable person - native Microsoft owner/sponsor or a 1Security assignment, provenance keptEU-AI-Act-26, PL-AI-Act, ISO42001-A.3, KSC-access-control
permissionsAtomic permission grants per agent - value, kind, source (direct, inherited, declared), admin consent, tenant-wide reach, write accessNIS2-21(2)(d), EU-AI-Act-26, DORA-28, KSC-access-control
activity_summaryPer-agent activity rollup for the covered period: event count, distinct human actors, first and last eventEU-AI-Act-26(6), NIS2-21(2)(b), KSC-incident-detection
lifecycle_eventsAgent lifecycle audit events in the covered period: create, update, publish, deploy, undeploy, block, unblockEU-AI-Act-26, NIS2-21(2)(i), KSC-access-control
threat_eventsAI threat detections in the covered period - prompt injection detections surfaced from per-interaction threat flagsNIS2-21(2)(b), DORA-10, ISO42001-A.6, KSC-incident-detection
instruction_changesInstruction drift events: each time an agent's captured system prompt changed between importsEU-AI-Act-26, EU-AI-Act-50, PL-AI-Act-transparency, ISO42001-A.6
store_shelfAgents available for any user to install but not deployed - the "one click from live" state, from the registry exportEU-AI-Act-26, NIS2-21(2)(d)
third_party_appsApplications with granted access: publisher, verification, permission and per-resource grant counts, tenant-wide reach, admin consent, AI classificationNIS2-21(2)(d), DORA-28, ISO42001-A.10, KSC-access-control
ai_app_reachEvery AI-classified application (Copilot-family, own-model, hybrid) with its current data reach: files, sensitive and labeled subsets, reachable data types, users including external, plus accountability provenanceEU-AI-Act-26, NIS2-21(2)(d), GDPR-32, DORA-28, ISO42001-A.7, ISO42001-A.10, KSC-access-control
ai_policy_scansPolicy scan snapshots whose subject is an AI resource (app or agent) in the covered periodEU-AI-Act-26, NIS2-21(2)(b), DORA-10, ISO42001-A.6, KSC-incident-detection
ai_detectionsDetection episodes on AI resources in the covered period, each entity judged against its own baselineNIS2-21(2)(b), DORA-10, ISO42001-A.6, KSC-incident-detection
data_restrictionsSensitive data types declared restricted (monitored / no AI access / no access): who declared them, since when, current exposure (files, users, apps, AI agents), how much of the carrying data a protecting label already covers, and who actually read carriers since the declaration - including external users and AIEU-AI-Act-26, GDPR-32, DORA-9, ISO42001-A.7, KSC-access-control
restriction_historyThe declare/modify/lift trail behind each restriction in the covered period, with the exposure snapshot taken at each eventEU-AI-Act-26, GDPR-32, DORA-9, ISO42001-A.7
fria_systemsFRIA pre-fill (Art. 27): one row per agent with its purpose from captured instructions, oversight source, users and files reach, knowledge sources, sensitive and restricted types reachable, and incidents in the periodEU-AI-Act-27
fria_summaryFRIA pre-fill (Art. 27): organization-level answers - oversight coverage, restriction counts by level, active AI detectors, incident totals, retention targetEU-AI-Act-27
remediationRemediation actions in the covered period, across both trails: the staged ledger with approval rungs and time-to-remediate, plus legacy automation executionsEU-AI-Act-26, NIS2-21(2)(b), GDPR-32

Every section reports rowCount and truncated. Sections are capped (2,000 rows for most, 10,000 for permissions) so the pack stays a document rather than a database dump; truncated: true tells the reader the cap was hit, and narrowing the covered period with from/to brings the rest into view.

Retention attestation

Article 26(6) of the EU AI Act requires deployers to keep automatically generated logs for at least six months. The pack does not assert a policy - it measures the actual state:

"retention": {
  "frameworks": ["EU-AI-Act-26(6)", "PL-AI-Act-logs", "KSC"],
  "retentionTargetDays": 183,
  "retentionTargetMet": true,
  "logHistoryDays": 412,
  "oldestLogAt": "2025-07-18T06:02:11.000Z",
  "newestLogAt": "2026-09-02T09:14:48.000Z",
  "tenantConnectedAt": "2025-07-17T14:30:00.000Z"
}

retentionTargetMet is true when the oldest retained activity log row is at least 183 days old. A tenant connected to 1Security more recently than 183 days ago will report retentionTargetMet: false even though nothing was deleted - tenantConnectedAt is included precisely so the reader can tell a short history apart from a retention gap.

The pack is evidence output, not legal advice. It shows what runs, what it can reach, and what it did - your compliance team maps that onto your own obligations and risk classification.

Stability

The pack is a stable contract, like the rest of the public API: fields may be added over time, existing fields are not removed or renamed without notice, and version in the pack identifies the generator that produced it. Store the downloaded packs as-is - a dated series of packs is itself evidence of ongoing oversight.

Next

On this page