# Scanner Platform Events (Redis Streams) ## Module Platform ## Status IMPLEMENTED ## Description Scanner WebService emits `scanner.report.ready` and `scanner.scan.completed` platform events via Redis Streams with DSSE envelopes embedded verbatim, configurable via `scanner:events:*` settings. ## Implementation Details - **AnalyticsIngestionService**: `src/Platform/StellaOps.Platform.Analytics/Services/AnalyticsIngestionService.cs` -- subscribes to event stream (configurable via `scanner:events:*` settings); filters for `scanner.report.ready` and `scanner.scan.completed` event kinds from OrchestratorEventEnvelope; tenant-scoped event filtering - **ScannerOrchestratorEvents**: `src/Platform/StellaOps.Platform.Analytics/Models/ScannerOrchestratorEvents.cs` -- event models for scanner platform events - **RekorEvents**: `src/Platform/StellaOps.Platform.Analytics/Models/RekorEvents.cs` -- Rekor transparency log event models - **AdvisoryEvents**: `src/Platform/StellaOps.Platform.Analytics/Models/AdvisoryEvents.cs` -- advisory event models - **IEventStream/IEventStreamFactory**: from `StellaOps.Messaging` -- event stream abstraction for subscribing to platform events with position tracking (Beginning/End) - **Source**: 2025-10-19-scanner-policy.md ## E2E Test Plan - [ ] Verify scanner.report.ready events are consumed and processed by analytics ingestion - [ ] Test scanner.scan.completed events trigger appropriate analytics updates - [ ] Verify DSSE envelopes are embedded verbatim in event payloads - [ ] Test event stream position tracking resumes from correct position after restart - [ ] Verify tenant filtering skips events from non-allowed tenants