Affects Version/s: None
Fix Version/s: None
Issue discovered during:Another issue
We are currently sending emails from different parts of the code. We should have a common notification API.
→ Provide nice EJB interface for sending email notifications
A notification is currently an email sent from EJBCA. This should be generalized to support other types of notification.
A notification provider is currently the email gateway (SMTP) configured in the application server. This should be more generalized as well and GUI configurable.
→ GUI configuration of notification providers
→ Bundle (as a minimum) an email sending library for an EmailNotificationProvider
We are currently sending emails in the same thread as an operation occurs (and hence handle failures there). We should instead persist outgoing notifications to a queue and handle the sending (and retries) handled by background workers. The queue should be possible to manage from the GUI (manual retry, see what has been sent and removal/edit of fault items).
→ New database table
→ New GUI for notification queue management
Some notifications might not be important or only valid for a short time, like an second factor SMS for login.
→ Provide async call that never persists the notification and can only be seen in the queue of the local server
→ Handle timeouts well and deterministic