2.5 KiB
2.5 KiB
Component: Notification Service
Purpose
The Notification Service provides email notification capabilities to scripts running at site clusters. It manages notification lists, handles email delivery, and integrates with the Store-and-Forward Engine for reliable delivery when the email server is unavailable.
Location
Central cluster (definition management). Site clusters (email delivery).
Responsibilities
Definitions (Central)
- Store notification lists in the configuration database: list name, recipients (name + email address).
- Store email server configuration (SMTP settings).
- Deploy notification lists and SMTP configuration uniformly to all sites. Deployment requires explicit action by a user with the Deployment role.
- Managed by users with the Design role.
Delivery (Site)
- Resolve notification list names to recipient lists.
- Compose and send emails via SMTP.
- On delivery failure, submit the notification to the Store-and-Forward Engine for buffered retry.
Notification List Definition
Each notification list includes:
- Name: Unique identifier (e.g., "Maintenance-Team", "Shift-Supervisors").
- Recipients: One or more entries, each with:
- Recipient name.
- Email address.
Email Server Configuration
- SMTP server address, port, authentication credentials, TLS settings.
- Retry settings: Max retry count, fixed time between retries (used by Store-and-Forward Engine).
- Defined centrally, deployed to all sites.
Script API
Notify.To("listName").Send("subject", "message")
- Available to instance scripts (via Script Execution Actors), alarm on-trigger scripts (via Alarm Execution Actors), and shared scripts (executing inline).
- Resolves the list name to recipients, composes the email, and attempts delivery.
- On failure, the notification is handed to the Store-and-Forward Engine.
Dependencies
- Configuration Database (MS SQL): Stores notification list definitions and SMTP config.
- Store-and-Forward Engine: Handles buffering for failed email deliveries.
- Security & Auth: Design role manages notification lists.
- Configuration Database (via IAuditService): Notification list changes are audit logged.
Interactions
- Site Runtime (Script/Alarm Execution Actors): Scripts invoke
Notify.To().Send()through this component. - Store-and-Forward Engine: Failed notifications are buffered here.
- Deployment Manager: Receives updated notification lists and SMTP config as part of system-wide artifact deployment (triggered explicitly by Deployment role).