Provev1

Prove overview

Show exactly what happened with a hash-chained evidence trail you can verify and export, a signed audit log and governance measures.

Updated 09/10/2026

On this page

A record you can hand to an auditor

Every governed action leaves evidence: the checks it passed, who approved it and exactly what it changed. Prove → Overview brings the evidence chain, approval history, checks and release gates, incidents, reviewers and the audit log together in one place.

The evidence chain

Open Prove → Evidence. Each governed write adds two entries: the decision (dispatched, approval required or denied) and, once the write is dispatched, the result (succeeded or failed). Checks runs, release gate decisions, overrides, connector validation runs, signed webhook deliveries and uploaded files are recorded on the same chain.

Each entry records:

where the write came from (a flow, a dead-letter retry or an agent) and who proposed it;

the decision, the rule and the policy that applied;

the approval, if one was needed, and when it happened;

a SHA-256 hash of the normalised input, a hash of the provider's result, the provider request ID and the destination record ID.

Raw inputs, provider payloads, error messages and secrets are never stored. The hashes let you prove what was sent without keeping the data itself.

How the chain holds

Every entry carries the hash of the entry before it, starting from genesis. Entries are numbered without gaps per workspace and written one at a time, so the order is fixed. The database refuses to update or delete an entry. Changing or removing any entry breaks every hash after it.

Verify

Choose Verify now on the Evidence page. Nexra recomputes the whole chain from the first entry and reports whether it holds and, if not, the first entry that breaks it. Each verification is itself recorded.

http
GET /api/console/connect/governance/evidence/verify
json
{
  "valid": true,
  "checked": 18342,
  "brokenAtSequence": null,
  "verifiedAt": "2026-10-09T08:30:12.904Z"
}

Timeline

Open any entry to see its action's timeline: the decision, the approval request, the approval decision, the execution and the result, with who acted and when. A write that waited for approval and then ran is shown as one story.

http
GET /api/console/connect/governance/actions/:actionId/timeline

Export

Choose Export evidence and pick a date range. The download is a JSON document in the nexra.connect.governed-action-evidence.v1 format with an integrity block that always covers the whole chain, so an auditor can recompute every hash independently.

json
{
  "format": "nexra.connect.governed-action-evidence.v1",
  "workspaceId": "<workspace id>",
  "exportedAt": "2026-10-09T08:31:02.441Z",
  "hashAlgorithm": "sha256",
  "chainGenesis": "genesis",
  "integrity": {
    "valid": true,
    "brokenAtSequence": null,
    "entries": 18342,
    "headHash": "5e0b9d4c…"
  },
  "truncated": false,
  "range": { "from": "2026-10-01T00:00:00.000Z", "to": "2026-10-08T23:59:59.999Z" },
  "entries": [
    {
      "sequence": 18120,
      "actionId": "<action id>",
      "eventType": "decision",
      "connectorKey": "quickbooks-online",
      "operationKey": "invoices.create",
      "source": "flow",
      "decision": "require_approval",
      "decisionRule": "policy_require_approval",
      "outcome": "approval_required",
      "inputHash": "a3f1…",
      "previousHash": "77c2…",
      "hash": "d904…",
      "occurredAt": "2026-10-03T10:14:51.007Z"
    }
  ]
}

Exporting needs both connect.audit.read and audit.export (Owner, Admin, Security administrator and Compliance reviewer), and each export is written to the audit log.

The audit log

Prove → Audit log lists who changed keys, credentials, policies, grants, triggers, templates and members in the workspace, and when. Secret values are removed before anything is stored.

Export signed log downloads the filtered events as newline-delimited JSON with its SHA-256 digest and an HMAC-SHA256 signature, so a copy can be checked against tampering after it leaves Nexra.

http
GET /api/developer-portal/audit-events/export?from=2026-10-01&to=2026-10-08
json
{
  "format": "application/x-ndjson",
  "algorithm": "HMAC-SHA256",
  "count": 412,
  "generatedAt": "2026-10-09T08:40:00.000Z",
  "window": { "from": "2026-10-01T00:00:00.000Z", "to": "2026-10-08T00:00:00.000Z" },
  "sha256": "c0ffee12…",
  "hmac": "8b1d77e0…",
  "content": "{\"action\":\"connect.policy.updated\", …}\n…"
}

Measures

Measures show governance at a glance for the last 7 or 30 days. They appear on Govern → Overview and Prove → Overview.

http
GET /api/console/connect/governance/measures?window=30d
json
{
  "window": "30d",
  "since": "2026-09-09T08:45:00.000Z",
  "writes": { "allowed": 1284, "approvalRequired": 96, "denied": 14 },
  "approvals": {
    "pending": 3,
    "approved": 88,
    "rejected": 5,
    "expired": 2,
    "medianDecisionMinutes": 11.5
  },
  "denialsByRule": [
    { "rule": "amount_per_action_exceeded", "count": 9 },
    { "rule": "risk_tier_r4_denied", "count": 5 }
  ],
  "evidence": { "entries": 18342, "lastVerifiedAt": "2026-10-09T08:30:12.904Z", "valid": true },
  "checks": { … }
}

The checks block summarises checks runs, reviews and incidents (see Checks and release gates).

API

All routes are under /api/console/connect/governance and need connect.audit.read.

MethodPathReturns
GET/evidenceEntries, filtered by actionId, connectionId, eventType, from and to
GET/evidence/verify{valid, checked, brokenAtSequence, verifiedAt}
GET/evidence/export?from&toThe export document as a download (also needs audit.export)
GET/actions/:actionId/timelineDecision, approval, execution and result events
GET/measures?window=7dMeasures for 7d or 30d

Next

Govern overview: the policies and approvals behind each decision.

Checks and release gates: prove a flow before it reaches production.

Need a hand?

Ask Nexra Agent for implementation steps or error guidance.

Ask Nexra Agent