1.6 KiB
1.6 KiB
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 viascanner:events:*settings); filters forscanner.report.readyandscanner.scan.completedevent 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