Scrydon
Security

Audit Log

What Scrydon records, how evidence is protected, who can read it, and how to export it.

The Audit Log is Scrydon's organization-facing source of record for compliance, incident response, and forensic review. It combines three kinds of evidence in one ordered timeline:

TypeWhat it records
auditAuthentication, authorization, sensitive reads, and administrative changes
workflowScheduled, started, paused, resumed, completed, failed, terminated, and purged workflows
integrityAudit Log verification failures and Dapr workflow-history proof failures or configuration mismatches

See the Audit Log catalogue for every accepted action and resource type.

Common event envelope

Every list row, export line, and Log Receiver delivery has the same versioned shape:

FieldPurpose
id, schemaVersion, dataVersion, typeStable identity and decoder selection
scopeOrganisation or platform-global security scope
actionRegistered action such as SECRET_ACCESS or workflow.completed
resourceRegistered resource type and affected ID
actoruser, system, or privacy-preserving anonymous identity
producerAuthenticated workload app ID and, when available, SPIFFE ID
sourceEventId, sourcePayloadHashProducer idempotency and conflict evidence
occurredAt, recordedAtSource time and ledger-append time
correlationRequest, session, trace, and workflow-instance IDs
classificationOptional rank and classification scheme
dataType-specific, bounded evidence; never raw workflow or secret payloads
proofChain version, scope, sequence, previous hash, and row hash
redactedWhether sensitive evidence was removed for this viewer

Authorization decisions

Scrydon records every authorization outcome—allowed, denied, or indeterminate—for read, write, delete, execute, administration, and retirement operations. An indeterminate result means Scrydon could not obtain a trustworthy policy answer; protected operations fail closed and return the stable AUTHZ_UNAVAILABLE error where the API exposes an error code.

Authorization evidence distinguishes the evaluated subject from the producer. The subject is the user, service account, workload, execution grant, or system identity whose access was checked. The producer is the authenticated Scrydon workload that submitted the evidence. Organization decisions join that organization's integrity chain; decisions without an organization use an explicit platform-global scope.

API Platform atomically commits each decision and its idempotency ledger before returning. If evidence cannot be persisted, the request returns 503 and the protected operation does not run. Retrying with the same stable decision key deduplicates an identical request; conflicting reuse returns 409. The general event backbone used for workflow synchronization is separate from this evidence path.

Example

{
  "id": "9ecb19b1-...",
  "schemaVersion": 2,
  "type": "audit",
  "dataVersion": 1,
  "scope": { "kind": "organization", "id": "org_001" },
  "action": "SECRET_ACCESS",
  "resource": { "type": "secret", "id": "sec_xyz789" },
  "actor": { "kind": "user", "id": "usr_456" },
  "producer": { "appId": "agentic", "spiffeId": "spiffe://..." },
  "sourceEventId": "secret-access:req_123",
  "occurredAt": "2026-07-16T10:30:00Z",
  "recordedAt": "2026-07-16T10:30:00.120Z",
  "correlation": { "requestId": "req_123", "sessionId": null, "traceId": null, "workflowInstanceId": null },
  "classification": null,
  "data": { "metadata": { "strategy": "LOCAL" } },
  "proof": { "hashVersion": 2, "chainScopeKey": "org:org_001", "chainSequence": 42, "previousRowHash": "...", "rowHash": "..." },
  "redacted": false
}

Reading and verifying evidence

Organisation owners and admins open Settings → Platform → Audit Log. The Events tab filters by event type, action, and resource, and selecting any row opens its full evidence view. The shield column shows the row's proof state; the shield action in the toolbar verifies a time window without leaving the event list. The page URL preserves the current tab or integrity drawer in its fragment, for example #receivers, #policy, or #integrity.

Classified rows are evaluated against the viewer's effective clearance. If the rank is insufficient or classification schemes differ, Scrydon preserves the action, actor, timestamps, and integrity evidence while removing the protected resource context and marking the envelope redacted: true.

Log Receivers and export

The Log Receivers tab sends all event types to a SIEM, data lake, or webhook destination using an HMAC-signed, at-least-once delivery pipeline. A receiver can narrow its filter, but new receivers include audit, workflow, and integrity events by default. The same filters are available for NDJSON export, so a customer can export the complete evidence timeline without joining separate systems. Recording every authorization result increases Audit Log and receiver volume in proportion to protected-request traffic; size retention and receiver throughput from observed decision rates rather than denial rates alone.

Retention and integrity

SettingDefault
Retention period365 days
Immutable storageAppend-only application contract
Tamper detectionMandatory per-event SHA-256 chain
CheckpointsML-DSA-65 signed checkpoints

A recent valid tail may temporarily show “awaiting a checkpoint”; that is not an inconsistency. Rows created before the versioned-chain cutover are labelled as legacy and are never presented as cryptographically verified. Dapr 1.18 workflow-history signing is an independent proof system: when enabled by an operator after the required drain and CA-lifecycle preparation, the Audit Log records bounded verification receipts and failures, not raw signature bundles.

Retention is configured per organisation under Audit Log → Policy.

Increasing retention is allowed at any time. Decreasing retention requires organisation-owner approval and does not rewrite historical evidence.

Data that is never recorded

  • Secret values
  • Knowledge-base document content
  • Workflow inputs or outputs
  • LLM prompt or response content
  • Dapr workflow-history signature bundles

The Audit Log records identifiers, decisions, outcomes, and bounded proof status—enough to establish what happened without duplicating protected payloads.

On this page

On this page