- API_CLI_REFERENCE.md, INSTALL_GUIDE.md, quickstart.md, architecture/integrations.md, dev/DEV_ENVIRONMENT_SETUP.md, integrations/LOCAL_SERVICES.md: reflect real-service wiring. - docs/modules/**: module dossier updates across the modules touched by SPRINT_20260415_001..007 + SPRINT_20260416_003..017 + SPRINT_20260417_018..024 + SPRINT_20260418_025 + SPRINT_20260419_026. - docs/features/checked/web/**: update feature notes where UI changed. - docs/qa/feature-checks/runs/web/evidence-presentation-ux/: QA evidence artifacts. - docs/setup/**, docs/technical/**: align with setup wizard contracts. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
3.1 KiB
3.1 KiB
Notifier (Notifications Studio Host)
Status: Implemented
Source: src/Notifier/
Owner: Notify Guild
Note: Notifier is the deployment host for the Notifications Studio. For the underlying notification toolkit (engine, storage, queue, connectors), see
../notify/.
Purpose
Notifier provides the deployable WebService and Worker that compose the Notify libraries into the Notifications Studio experience. It's the entry point for notification delivery, rule management, and delivery history.
Latest Updates
2026-04-15: productionNotifierruntime no longer shadows the shared Notify persistence/queue stack with in-memory repositories.2026-04-15: pack-approval ingestion persists durably innotify.pack_approvalsand uses durablenotify.locksidempotency coordination.2026-04-15: restart-survival proof now exists viaNotifierDurableRuntimeProofTests, covering submit -> persist -> process -> readback on real Postgres + Redis.2026-04-16:NullNotifyEventQueueis no longer available inDevelopment; only theTestingenvironment may use the null queue fallback.2026-04-16: non-testing throttle and operator-override admin APIs now persist through PostgreSQL-backed suppression services and legacy compat adapters; restart-survival proof is covered byNotifierSuppressionDurableRuntimeTests.2026-04-16: non-testing escalation-policy and on-call schedule APIs now persist through PostgreSQL-backed services and legacy compat adapters; restart-survival proof is covered byNotifierEscalationOnCallDurableRuntimeTests.2026-04-16: non-testing quiet-hours calendars and maintenance windows now persist through PostgreSQL-backed runtime services and legacy compat adapters; restart-survival proof is covered byNotifierQuietHoursMaintenanceDurableRuntimeTests.2026-04-16: non-testing webhook security, tenant isolation, dead-letter administration, and retention cleanup state now persist through PostgreSQL-backed runtime services and legacy compat adapters; restart-survival proof is covered byNotifierSecurityDeadLetterDurableRuntimeTests.
Relationship to Notify
| Component | Path | Purpose |
|---|---|---|
| Notify | src/Notify/ |
Reusable toolkit: engine, models, connectors, queue |
| Notifier | src/Notifier/ |
Host: WebService and Worker that compose Notify |
Per 2025-11-02 module boundary decision: Maintain separation for packaging, offline kit parity, and cross-module governance.
Components
Deployables:
StellaOps.Notifier.WebService- REST API for rules/channels CRUD, test send, delivery browsingStellaOps.Notifier.Worker- Event consumers, evaluators, renderers, delivery workers
Integration Points:
- Uses
StellaOps.Notify.Models,StellaOps.Notify.Queue - Channels: Slack, Teams, Email, Webhook (via Notify connectors)
- Storage: PostgreSQL (notify schema)
- Queue: Valkey Streams / NATS JetStream
Related Documentation
- Notify Architecture:
../notify/architecture.md - Authority:
../authority/(OAuth clients) - Scheduler:
../scheduler/(event sources)