46 lines
4.0 KiB
Markdown
46 lines
4.0 KiB
Markdown
# 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`
|