Skip to content

Added Escalation Rule Feature#166

Open
Zacinc05 wants to merge 54 commits intoramfam101:developfrom
Zacinc05:main
Open

Added Escalation Rule Feature#166
Zacinc05 wants to merge 54 commits intoramfam101:developfrom
Zacinc05:main

Conversation

@Zacinc05
Copy link
Copy Markdown

@Zacinc05 Zacinc05 commented Apr 8, 2026

Describe your changes

When creating a monitor, there is an "Escalation Rules" below the notifications box. It functions similar to notifications, but alerts a second party if a fix isn't made for x minutes after base notifications were sent out.

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.
  • [ x] 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.
  • [ x] I ran npm run format in server and client directories, which automatically formats your code.
  • [ x] I took a screenshot or a video and attached to this PR if there is a UI change.

mayssagl and others added 30 commits March 23, 2026 13:49
…#2753)

Add Telegram as a new notification type, allowing users to receive
monitor alerts via a Telegram bot.

Configuration requires:
- Bot token (obtained from @Botfather)
- Chat ID (user, group, or channel)

Changes:
- TelegramProvider: sends HTML-formatted messages via Telegram Bot API
- NotificationsService: route telegram type to TelegramProvider
- Notification model/types: add 'telegram' to NotificationChannel enum
- Server validation: telegram schema (accessToken + address/chat_id)
- Client Types/Validation: telegram schema with accessToken + address
- useNotificationForm: handle telegram defaults
- Notifications create page: render Telegram config UI
- en.json: add telegram i18n keys
The previous commit reformatted the entire en.json (spaces → kept as-is
but accumulated unrelated upstream changes), creating a 1.3k line diff.

Restore the file to match upstream/develop exactly and add only the
Telegram-specific i18n keys required by this PR.
- useNotificationForm: replace nested ternary with if/else if/else block
- TelegramProvider: type error as unknown and access properties safely
  via instanceof checks instead of casting to HTTPError
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…seNotificationForm

Per @ajhollid review: define defaults up-front with a NotificationDefaults type
and eliminate the trailing else branch entirely. The if/else-if blocks only
override when the type is matrix or telegram.
ajhollid and others added 24 commits March 26, 2026 10:33
…in useNotificationForm

Replace the loose NotificationDefaults intermediate type and 'as NotificationFormData'
cast with an exhaustive buildDefaults() helper that narrows each branch of the
discriminated union explicitly. TypeScript now infers the return type correctly from
the discriminated union without any casts, satisfying strong typing for all channels
(email, slack, discord, webhook, pager_duty, teams, matrix, telegram).
…nt URL in telegram provider

- Remove redundant 'defaultValue' prop on Telegram chat ID Controller in create/index.tsx;
  the form already initialises via 'defaultValues: defaults' at the useForm level, making
  the per-Controller prop unnecessary and inconsistent with the reviewer's expectation.
- Fix 'View Incident' URL in telegram.ts: was pointing to the infrastructure details page
  (/infrastructure/:id) instead of the incidents page (/incidents/:id).
…ation-type

feat(notifications): add Telegram notification channel (bluewave-labs#2753)
Feat(DLQ): Add DLQ data layer -> types, model, and repository
Fix outdated links and add Prerequisites section
…er/1.9.1

feat: bump scheduler, consume scheduler events
All 15 non-English locale files had a structural mismatch with en.json:
- en.json used nested keys (common.buttons.cancel)
- Other locales used flat keys (cancel, DeleteAccountButton)
- Result: 0.3% effective translation coverage at runtime

## Changes

Migration script (client/scripts/migrate-locales.ts):
- Restructures all locale files to match en.json's nested key structure
- Recovers existing translations via safe key-matching strategies
- Backs up originals to locales/backup/

Translation of all 15 languages:
- ar (94.6%), cs (91.6%), de (89.4%), es (92.6%), fi (94.2%)
- fr (86.7%), ja (93.3%), pt-BR (91.0%), ru (93.0%), th (93.4%)
- tr (91.9%), uk (94.3%), vi (92.5%), zh-CN (94.0%), zh-TW (94.2%)

Keys intentionally left in English are technical terms (HTTP, CPU,
Docker, gRPC, etc.), placeholder examples, and brand names.

en.json was NOT modified.
…ale-migration

fix: restructure and translate all i18n locale files
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.

6 participants