Files
git.stella-ops.org/docs/features/checked/notifier/multi-channel-delivery.md
2026-02-12 10:27:23 +02:00

4.0 KiB

Multi-Channel Delivery (Slack, Teams, Email, Webhooks)

Module

Notifier

Status

VERIFIED

Description

Multi-channel notification delivery with Slack, Webhook connectors (and PagerDuty in Notifier), with snapshot testing and error handling.

Implementation Details

  • IChannelAdapter interface: src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Channels/IChannelAdapter.cs -- DispatchAsync and CheckHealthAsync typed by NotifyChannelType.
  • ChannelAdapterFactory: src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Channels/ChannelAdapterFactory.cs -- resolves channel adapters by type.
  • Slack/Webhook/ChatWebhook adapters: src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Channels/SlackChannelAdapter.cs, src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Channels/WebhookChannelAdapter.cs, src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Channels/ChatWebhookChannelAdapter.cs.
  • PagerDuty/OpsGenie/Email/InApp adapters: src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Channels/PagerDutyChannelAdapter.cs, src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Channels/OpsGenieChannelAdapter.cs, src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Channels/EmailChannelAdapter.cs, src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Channels/InAppChannelAdapter.cs.
  • WebhookChannelDispatcher: src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Dispatch/WebhookChannelDispatcher.cs.
  • IWebhookSecurityService: src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Security/IWebhookSecurityService.cs.
  • IFallbackHandler: src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Fallback/IFallbackHandler.cs.
  • HttpEgressSloSink: src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Processing/HttpEgressSloSink.cs.
  • Templates: src/Notifier/StellaOps.Notifier/StellaOps.Notifier.WebService/offline/notifier/templates/.
  • Tests: src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Tests/Channels/WebhookChannelAdapterTests.cs, src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Tests/Dispatch/WebhookChannelDispatcherTests.cs, src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Tests/Dispatch/SimpleTemplateRendererTests.cs, src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Tests/Security/WebhookSecurityServiceTests.cs, src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Tests/Fallback/FallbackHandlerTests.cs, src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Tests/HttpEgressSloSinkTests.cs.
  • Source: Feature matrix scan

E2E Test Plan

  • Verify Slack channel adapter delivers notifications with Block Kit formatting.
  • Test webhook channel adapter posts to configured URLs with HMAC signature.
  • Verify PagerDuty adapter creates incidents with correct severity mapping.
  • Test OpsGenie adapter creates alerts with priority.
  • Verify email adapter sends with subject and rendered body.
  • Test in-app notification adapter records notifications for UI retrieval.
  • Verify channel health checks detect unreachable endpoints.
  • Test fallback handler routes to secondary channel on primary failure.
  • Verify egress SLO tracking records delivery latency.

Verification

  • Verified on 2026-02-11 with run-003.
  • Tier 0 source checks passed for adapter surfaces, dispatcher/security/fallback interfaces, template assets, and test coverage points.
  • Tier 1 build + tests passed (builds green; full Notifier suite 520/520).
  • Tier 2 behavioral checks passed (48/48) across webhook adapter behavior, dispatcher flows, fallback routing, egress SLO publication, and identity alert multi-channel rendering.
  • Evidence:
    • docs/qa/feature-checks/runs/notifier/multi-channel-delivery/run-003/tier0-source-check.json
    • docs/qa/feature-checks/runs/notifier/multi-channel-delivery/run-003/tier1-build-check.json
    • docs/qa/feature-checks/runs/notifier/multi-channel-delivery/run-003/tier2-integration-check.json
    • docs/qa/feature-checks/runs/notifier/multi-channel-delivery/run-003/retest-result.json