Skip to content

feat(notifications): add escalation notification system#315

Open
ajohnson21-uf wants to merge 1 commit intoramfam101:developfrom
ajohnson21-uf:feat/escalation-notifications
Open

feat(notifications): add escalation notification system#315
ajohnson21-uf wants to merge 1 commit intoramfam101:developfrom
ajohnson21-uf:feat/escalation-notifications

Conversation

@ajohnson21-uf
Copy link
Copy Markdown

  • Add EscalationService to send email alerts when a monitor has been down longer than a configured threshold (escalationMinutes)
  • Wire EscalationService into the DI container and SuperSimpleQueueHelper
  • Fix statusService to not prematurely reset hasEscalated on recovery, allowing escalation recovery emails to send correctly
  • Add escalationMinutes and escalationNotificationIds fields to Monitor model, types, validation, and repository mapping
  • Add frontend UI in CreateMonitor for configuring escalation channels and timeout, with form persistence on reload

Describe your changes

Code allows for the user to set a new monitor box called escalation notification that sends a new notification based on time sense a tracked item has gone down. The use case is so people who need to know only of long term failures are notified at the correct time.

Briefly describe the changes you made and their purpose.

Write your issue number after "Fixes "

Fixes #123

Please ensure all items are checked off before requesting a review. "Checked off" means you need to add an "x" character between brackets so they turn into checkmarks.

  • [x ] (Do not skip this or your PR will be closed) I deployed the application locally.
  • [x ] (Do not skip this or your PR will be closed) I have performed a self-review and testing of my code.
  • [x ] I have included the issue # in the PR.
  • I have added i18n support to visible strings (instead of <div>Add</div>, use):
const { t } = useTranslation();
<div>{t('add')}</div>
  • [ x] I have not included any files that are not related to my pull request, including package-lock and package-json if dependencies have not changed
  • [x ] I didn't use any hardcoded values (otherwise it will not scale, and will make it difficult to maintain consistency across the application).
  • [x ] I made sure font sizes, color choices etc are all referenced from the theme. I don't have any hardcoded dimensions.
  • x[ ] My PR is granular and targeted to one specific feature.
  • I ran npm run format in server and client directories, which automatically formats your code.
  • I took a screenshot or a video and attached to this PR if there is a UI change.

- Add EscalationService to send email alerts when a monitor has been
  down longer than a configured threshold (escalationMinutes)
- Wire EscalationService into the DI container and SuperSimpleQueueHelper
- Fix statusService to not prematurely reset hasEscalated on recovery,
  allowing escalation recovery emails to send correctly
- Add escalationMinutes and escalationNotificationIds fields to Monitor
  model, types, validation, and repository mapping
- Add frontend UI in CreateMonitor for configuring escalation channels
  and timeout, with form persistence on reload

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant