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

2.0 KiB

Notification Digest Generator

Module

Notifier

Status

IMPLEMENTED

Description

Configurable digest aggregation that batches notifications into scheduled summary digests (hourly/daily/weekly) with customizable grouping and priority thresholds.

Implementation Details

  • IDigestGenerator interface: src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Digest/IDigestGenerator.cs -- GenerateAsync and PreviewAsync for producing digest reports
  • DigestGenerator: src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Digest/DigestGenerator.cs -- default implementation; queries IncidentManager for events in time range, produces DigestResult with DigestId, TotalIncidentCount, and Summary.TotalEvents; supports preview mode
  • DigestScheduleRunner: src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Digest/DigestScheduleRunner.cs -- BackgroundService that runs digest generation on configured schedules; uses IDigestDistributor to deliver digests, IDigestTenantProvider for multi-tenant support; configurable via DigestScheduleOptions.Enabled and Schedules
  • DigestTypes: src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Digest/DigestTypes.cs -- digest models (DigestResult, DigestQuery, DigestSummary)
  • DigestServiceExtensions: src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Digest/DigestServiceExtensions.cs -- DI registration for digest services
  • Tests: src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Tests/Digest/DigestGeneratorTests.cs
  • Source: SPRINT_0172_0001_0002_notifier_ii.md

E2E Test Plan

  • Verify scheduled digest generation runs at configured intervals (hourly/daily/weekly)
  • Test digest aggregates incidents within the configured time window
  • Verify preview mode returns digest without side effects
  • Test multi-tenant digest generation processes each tenant independently
  • Verify digest distribution delivers summary to configured channels
  • Test DigestScheduleRunner respects Enabled=false configuration