All resources
Evidence

Signed evidence for agent-led actions: what an audit record needs

A list of logs is not portable proof. Useful authorization evidence preserves the exact lifecycle, protects it from undetected change, and can be verified independently.

By Attesso B.V.9 min read
Written for

Security, compliance, support, and platform engineering teams

Key takeaways

  • Preserve one chain from immutable mandate through final authorization lifecycle.
  • Use a versioned, portable signed format with durable public-key verification.
  • Separate service-observed facts from customer-supplied external references.

Operational logs and authorization evidence are different

Logs help operators debug a system. They are often distributed across services, mutable through retention pipelines, and difficult to hand to another party. Authorization evidence needs a stable schema and a clear chain from what the user approved to what the platform proposed and how the authorization ended.

The goal is not to record every internal detail. It is to preserve the minimum material facts needed to reproduce the decision, detect later modification, and connect external execution to the approved authority.

Join the complete lifecycle

A useful evidence object starts with the mandate and appends events rather than rewriting history. Each event should carry a stable identity, organization scope, timestamp, event type, and the relevant normalized payload or digest.

  • Mandate creation: policy schema, constraints, subject reference, and validity.
  • Approval: approval time, relying-party context, credential reference, and verification result.
  • Proposal: the exact normalized action attributes submitted for evaluation.
  • Decision: ALLOW, DENY, or INDETERMINATE with versioned reason codes.
  • Lifecycle: reservation, commit, cancel, expiry, or revocation events.
  • External linkage: customer-owned booking, order, payment, or fulfillment reference when supplied.

Protect a portable representation

Signing evidence is useful only if another system can verify the exact bytes and resolve the correct public key. The format needs deterministic serialization or an explicitly protected payload, a versioned schema identifier, a key identifier, an allowed algorithm, and published verification keys.

Key rotation must preserve historical verification. Removing an old public key when the signer rotates can make retained evidence unverifiable. Compromise response also needs a documented way to distinguish keys and validity periods without pretending that a signature proves the underlying business event occurred.

State exactly what the signature proves

A valid signature proves that the holder of the corresponding private key protected the evidence payload and that the payload has not changed undetected. It does not prove that every upstream assertion was true, that the downstream action succeeded, or that a transaction complied with every applicable rule.

Source-label external assertions and keep the authorization service's own observations distinct. For example, an external booking reference can be recorded as customer-supplied data while the authorization decision and lifecycle transition are service-produced facts.

Balance retention with data minimization

Evidence should omit card data, bank credentials, provider secrets, free-form personal data, and any fields that are not required for authorization. Prefer platform-scoped subject references and typed action attributes over names or raw conversation transcripts.

Define retention in the customer agreement and threat model. The right period depends on support, dispute, security, and legal needs. Whatever the period, test that evidence remains independently verifiable after application changes, key rotation, and archival.

A signature protects the evidence you created. A precise responsibility model explains what that evidence actually means.

Map this architecture onto your platform.

We will identify the mandate, approval, authorization, and execution boundaries for your first agent-led flow.