Retention Policies

Regulatory Relevance Classification

Every audit event is assigned a regulatory relevance level at creation time:

Level Description Example Events
critical SAR-level events, compliance decisions Sanctions screening, case escalation
high Compliance-adjacent decisions KYC checks, credit approvals
medium Standard business operations BHI calculations, workflow runs
low Informational events Feature flag toggles, config changes
none Internal debugging Health checks, cache operations

Retention Categories

Each relevance level maps to a retention category with a defined retention period:

Category Retention Period Applies To
permanent Never deleted critical relevance events
extended 7+ years high relevance events
standard 5 years medium relevance events
short 2 years low relevance events
temporary 30 days none relevance events

Retention Worker

The retention worker runs as a background cron job and purges expired events based on their retentionCategory and createdAt timestamp.

Safety rules:

  • Events with regulatoryRelevance: 'critical' are never purged, regardless of age
  • Events with retentionCategory: 'permanent' are never purged
  • Purge operations are logged in the audit trail

Querying Retention Policy

The current retention configuration is available via the API:

GET /api/v1/audit/retention
Authorization: Bearer <token>

Response:

{
  "policy": {
    "permanent": "indefinite",
    "extended": "7 years",
    "standard": "5 years",
    "short": "2 years",
    "temporary": "30 days"
  },
  "purgePlan": {
    "nextRun": "2026-02-20T00:00:00Z",
    "estimatedPurgeCount": 1250
  },
  "note": "Events with critical regulatory relevance are never purged"
}

Implemented in packages/audit/src/retention.ts and packages/audit/src/retention-worker.ts at commit 4b572c2.

results matching ""

    No results matching ""