Sprint SPRINT_20260416_005_Timeline_truthful_ingestion_transport_contract. Timeline WebService + TimelineIndexer worker program wiring; infrastructure DI extension with null subscriber fallback; startup registration + ingestion runtime registration tests. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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.localnetwork alias is preserved on the timeline-web container for backwards compatibility.