notification-platform
Installation
SKILL.md
NotificationPlatform Guide
Sentry's NotificationPlatform is a provider-based system for sending notifications across Email, Slack, Discord, and MS Teams. You define data + template, register it, and the platform handles rendering and delivery per provider.
Glossary
| Concept | Role | Location |
|---|---|---|
NotificationData |
Protocol. Frozen dataclass carrying the payload for a single notification. Must declare a source class variable. |
types.py |
NotificationTemplate |
Abstract class. Converts NotificationData into a NotificationRenderedTemplate. Registered per NotificationSource. |
types.py |
NotificationRenderedTemplate |
Dataclass. Provider-agnostic output: subject, body blocks, actions, chart, footer, optional email paths. | types.py |
NotificationProvider |
Protocol. Knows how to validate a target, pick a renderer, and send the final renderable (Email, Slack, etc.). | provider.py |
NotificationRenderer |
Protocol. Converts a NotificationRenderedTemplate into a provider-specific renderable (HTML email, Slack blocks, etc.). |
renderer.py |
NotificationTarget |
Protocol. Identifies the recipient: email address, channel ID, or DM user ID. Two concrete classes: GenericNotificationTarget (email) and IntegrationNotificationTarget (Slack/Discord/MSTeams). |
target.py |
NotificationService |
Entry point. Orchestrates lookup, rendering, and delivery. Provides has_access(), notify_target(), notify_async(), notify_sync(). |
service.py |
All paths below are relative to src/sentry/notifications/platform/.