2.8 KiB
2.8 KiB
Notification Rules Engine
Module
Notifier
Status
IMPLEMENTED
Description
Rules engine with NotifyRule model, rule evaluator interface, evaluation outcomes, and schema migration support.
Implementation Details
- DefaultNotifyRuleEvaluator:
src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Processing/DefaultNotifyRuleEvaluator.cs-- evaluatesNotifyRuleagainstNotifyEvent; matches on event kind, namespace, repository, digest, severity (ranked none=0 through blocker=6); returnsNotifyRuleEvaluationOutcomewith match/not-matched reason - NotifierEventProcessor:
src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Processing/NotifierEventProcessor.cs-- integrates rule evaluation into the event processing pipeline - SimulationEngine:
src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Simulation/SimulationEngine.cs-- dry-run simulation of rule evaluation - DefaultNotifySimulationEngine:
src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Simulation/DefaultNotifySimulationEngine.cs-- default simulation engine implementation - ISimulationEngine:
src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Simulation/ISimulationEngine.cs-- simulation interface - RuleEndpoints:
src/Notifier/StellaOps.Notifier/StellaOps.Notifier.WebService/Endpoints/RuleEndpoints.cs-- REST API for rule CRUD and testing - SimulationEndpoints:
src/Notifier/StellaOps.Notifier/StellaOps.Notifier.WebService/Endpoints/SimulationEndpoints.cs-- REST API for rule simulation - RiskTemplateSeeder:
src/Notifier/StellaOps.Notifier/StellaOps.Notifier.WebService/Setup/RiskTemplateSeeder.cs-- seeds default risk notification rules - AttestationTemplateSeeder:
src/Notifier/StellaOps.Notifier/StellaOps.Notifier.WebService/Setup/AttestationTemplateSeeder.cs-- seeds attestation notification rules - InMemoryNotifyRepositories:
src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Storage/InMemoryNotifyRepositories.cs-- in-memory rule storage - Sample rules:
src/Notifier/StellaOps.Notifier/StellaOps.Notifier.docs/risk-rules.sample.json - Tests:
src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Tests/RuleEvaluatorTests.cs,Simulation/SimulationEngineTests.cs,EventProcessorTests.cs,Endpoints/NotifyApiEndpointsTests.cs - Source: Feature matrix scan
E2E Test Plan
- Verify rule evaluator matches events by kind, namespace, repository, and severity
- Test disabled rules are skipped with "rule_disabled" reason
- Verify severity-based filtering (e.g., minimum severity threshold)
- Test rule CRUD through RuleEndpoints API
- Verify simulation endpoints allow dry-run rule testing without side effects
- Test seeded default rules for risk and attestation scenarios