Files
git.stella-ops.org/src/Timeline
master efc3500f20 feat(timeline): scheduled audit retention purge background host
Sprint SPRINT_20260408_004 AUDIT-004 (retention enforcement).

AuditRetentionPurgeService BackgroundService enumerates tenants that
have any rows in timeline.unified_audit_events, then calls
timeline.purge_expired_audit_events(tenantId, dryRun) per tenant.
The SQL function honours per-classification retention windows and the
compliance_hold flag (legal holds pass through unaffected).

AuditRetentionPurgeOptions bound from the AuditRetentionPurge config
section: Enabled (default true), DryRun (default false), InitialDelay
(default 5 min), Interval (default 6h). Failures on a single tenant
are logged and do not stop the rest of the cycle.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-19 23:37:25 +03:00
..

Timeline

Container(s): stellaops-timeline-web Slot: 24 (timeline) | Port: 8080 | Consumer Group: timeline Resource Tier: light Network aliases: timeline.stella-ops.local, timelineindexer.stella-ops.local (backwards compat)

Purpose

The Timeline module provides a unified, HLC-ordered event timeline across the entire platform. It aggregates audit events from Authority, JobEngine, Policy, Evidence Locker, and Notify via HTTP polling and direct ingestion. It also serves timeline indexer query and evidence linkage endpoints (previously in separate timeline-indexer-web and timeline-indexer-worker containers, now merged).

API Surface

  • /api/v1/audit/* — unified audit aggregation, anomaly detection, export
  • /api/v1/timeline/* — timeline indexer event CRUD, indexed queries, evidence linkage
  • /api/v1/timeline/hlc/* — HLC-ordered event queries, replay, export
  • /timeline/* — bare-prefix indexer endpoints (direct access)

Storage

PostgreSQL schema timeline (via Postgres:Timeline:ConnectionString); Valkey for eventing

Background Workers

  • TimelineIngestionWorker (hosted service) — background event ingestion from NATS/Redis (transports disabled by default)

Merge History

  • Timeline Indexer (Slot 23) was merged into Timeline (Slot 24). The timelineindexer.stella-ops.local network alias is preserved on the timeline-web container for backwards compatibility.