# Sprint 0165-0001-0001 · Timeline Indexer (Export & Evidence 160.C) ## Topic & Scope - Bootstrap Timeline Indexer service: migrations/RLS, ingestion, query APIs, and evidence linkage. - Keep ordering deterministic and tenant-scoped; link timeline events to evidence bundle digests/attestations. - **Working directory:** `src/TimelineIndexer/StellaOps.TimelineIndexer`. ## Dependencies & Concurrency - Upstream: AdvisoryAI (110.A), AirGap (120.A), Scanner (130.A), Orchestrator (150.A) schemas required for event payloads. - Concurrency: execute tasks in listed order; evidence linkage follows ingestion and API/RLS work. ## Documentation Prerequisites - docs/README.md - docs/07_HIGH_LEVEL_ARCHITECTURE.md - docs/modules/platform/architecture-overview.md - docs/modules/export-center/architecture.md (for evidence linkage) - src/TimelineIndexer/StellaOps.TimelineIndexer/AGENTS.md (if present) ## Delivery Tracker | # | Task ID | Status | Key dependency / next step | Owners | Task Definition | | --- | --- | --- | --- | --- | --- | | 1 | TIMELINE-OBS-52-001 | BLOCKED (2025-11-25) | Waiting on orchestrator/notification event schema + EvidenceLocker digest schema | Timeline Indexer Guild (`src/TimelineIndexer/StellaOps.TimelineIndexer`) | Bootstrap service; Postgres migrations for `timeline_events`, `timeline_event_details`, `timeline_event_digests`; enable RLS scaffolding and deterministic migration scripts. | | 2 | TIMELINE-OBS-52-002 | TODO | Depends on 52-001. | Timeline Indexer Guild | Implement event ingestion pipeline (NATS/Redis consumers) with ordering guarantees, dedupe `(event_id, tenant_id)`, trace-ID correlation, backpressure metrics. | | 3 | TIMELINE-OBS-52-003 | TODO | Depends on 52-002. | Timeline Indexer Guild | Expose REST/gRPC APIs for timeline queries (`GET /timeline`, `/timeline/{id}`) with filters, pagination, tenant enforcement; provide OpenAPI + contract tests. | | 4 | TIMELINE-OBS-52-004 | TODO | Depends on 52-003. | Timeline Indexer Guild · Security Guild | Finalize RLS policies, scope checks (`timeline:read`), audit logging; integration tests for cross-tenant isolation and legal hold markers. | | 5 | TIMELINE-OBS-53-001 | TODO | Depends on 52-004 and EvidenceLocker bundle digest schema. | Timeline Indexer Guild · Evidence Locker Guild | Link timeline events to evidence bundle digests + attestation subjects; expose `/timeline/{id}/evidence` returning signed manifest references. | ## Execution Log | Date (UTC) | Update | Owner | | --- | --- | --- | | 2025-11-25 | Marked TIMELINE-OBS-52-001 BLOCKED: missing orchestrator/notification event schema and EvidenceLocker digest schema prevent drafting migrations/RLS. | Implementer | | 2025-11-12 | Captured task snapshot and blockers; waiting on orchestrator/notifications schema and EvidenceLocker digest schema. | Planning | | 2025-11-19 | Normalized sprint to standard template and renamed from `SPRINT_165_timelineindexer.md` to `SPRINT_0165_0001_0001_timelineindexer.md`; content preserved. | Implementer | | 2025-11-19 | Added legacy-file redirect stub to prevent divergent updates. | Implementer | ## Decisions & Risks - Blocked on orchestrator/notification schemas for ingestion payload definitions. - Needs EvidenceLocker bundle digest schema before implementing evidence linkage. - Security/Compliance review required for Postgres RLS migrations; no coding until approval. - TIMELINE-OBS-52-001 specifically blocked on upstream schemas (orchestrator/notification events) and EvidenceLocker digest schema; cannot draft migrations/RLS without them. ## Next Checkpoints - Obtain sample orchestrator/notification events and EvidenceLocker digest schema (date TBD). - Draft migrations + RLS design and review with Security/Compliance.