Closed
Description
Notification preferences will define if a notification should be sent to a particular user, and if so then by which method it should be sent.
The original concept was described in the RFC.
This feature is described in this new RFC: Notification Preferences.
Example user stories:
- As a user, I would like to disable the workspace deleted notification because I regularly spawn and destroy workspaces, in order to not be annoyed by the notifications and block them all
- As an operator, I would specifically like the user account created notification to be sent via webhook (while all others are sent by SMTP), so that I can programmatically trigger a Slack notification to my billing department
- As a user or operator, I would like a web UI through which to modify my notification preferences
Requirements:
- Users must be able to disable specific notification templates they do not wish to receive (feat: add notification preferences business logic & APIs coder#14117)
- Operators must be able to configure a method on a per-notification template basis (feat: allow admins to modify notification template delivery method coder#14116)
- e.g.: “workspace deleted” notifications are sent via webhook, all others with SMTP
- If one is not set, the deployment-level method should be used
- When a notification type is disabled for a user (feat: add notification preferences database & audit support coder#14100):
- Upon enqueue, a new
notification_messages
entry must not be added - Upon dequeue (for any messages already in the queue at the time of the template being disabled),
notification_messages
rows must be marked asinhibited
& not sent
- Upon enqueue, a new
- A web UI must be built in order to facilitate the above requirements (feat(site): implement notification ui coder#14175)