Files
git.stella-ops.org/docs/features/checked/notifier/notification-rules-engine.md
2026-02-12 10:27:23 +02:00

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 -- evaluates NotifyRule against NotifyEvent; matches on event kind, namespace, repository, digest, severity (ranked none=0 through blocker=6); returns NotifyRuleEvaluationOutcome with 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