goalert
goalert copied to clipboard
notification: plug-able providers
What problem would you like to solve? Please describe: Adding a new notification provider currently requires MANY touch-points in code and a lot of overhead: DB migrations, new types in several packages, updating various switch statements, etc...
Describe the solution you'd like: Make destinations generic so that things like listing Slack channels, sending messages to them, SMS, voice, etc... can be done through a separate service that can also be built/packaged with the core app.
Describe alternatives you've considered: As it stands, the only way to extend providers is to update a lot of spider-webby code.
Additional context: This will provide a clean way to add new providers quickly: #2290, #2102, #2049, #871, #552
At a high level, here's what this might look like for an SMS provider. The plugin could also be built into GoAlert, but the overall functionality will be the same.
Additionally, optional interfaces for listing/enumeration (e.g., Slack channels) would be defined.
+1 for this feature. In the above flow chart, can the class sms be a more general class like NotificationRequest? Just curious about the priority. Is there a tool to see all features progress?
Thank you!
A lot of recent PRs have been made towards this end but were not tagged, for reference: https://github.com/target/goalert/pulls?q=is%3Apr+dest+is%3Aclosed