Add Telegram notification channel and update documentation#320
Open
abby-mo wants to merge 65 commits intoramfam101:developfrom
Open
Add Telegram notification channel and update documentation#320abby-mo wants to merge 65 commits intoramfam101:developfrom
abby-mo wants to merge 65 commits intoramfam101:developfrom
Conversation
…#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.
…ledb feat: timescaledb
…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
fix geocheck update logic
…er/1.9.1 feat: bump scheduler, consume scheduler events
## Changes - teamsProvider.test.ts: fix got mock wiring (use top-level mockPost with dynamic import so mock intercepts correctly), fix getTestMessage assertion, fix incident URL path - superSimpleQueueHelper.test.ts: change default import to named import, update constructor from object to 16 positional params, rename getMonitorJob -> getHeartbeatJob, add all missing dependencies - monitorService.test.ts: remove stale constructor params (db, stringService, papaparse, errorService), add missing params (geoChecksRepository, incidentsRepository), fix method names (findLatestChecksByMonitorIds -> findLatestByMonitorIds, findDateRangeChecksByMonitor -> findByDateRangeAndMonitorId), update assertions from checks -> recentChecks - jest.config.ts: consolidate @/utils path mapping to resolve .ts files - Extract shared createMockLogger to test/helpers/ Closes bluewave-labs#3457
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
feat: add remaining zh-tw strings
fix: disable poeditor workflow
…est-suite-failures fix: align server test suite with current source implementations
Removed the Translations section from the README.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
(Please remove this line only before submitting your PR. Ensure that all relevant items are checked before submission.)
Describe your changes
This pull request adds full support for escalation policies in Checkmate monitors, including backend persistence, API exposure, frontend configuration, and notification delivery.
Key changes:
Escalation Policy & Notification
Escalation Policy & Notification
Added escalationPolicies to the monitor schema, types, and API responses. Policies are saved, updated, and returned with monitor data.
Frontend UI now allows configuring escalation steps per monitor, which persist and reload correctly.
Repository and service layers map escalation policies and include them in all relevant API endpoints.
Queue processor schedules and executes escalation steps when a monitor is down.
Email notifications are sent according to escalation steps and channels. End-to-end test confirmed email delivery on escalation.
Fixes #1
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.
<div>Add</div>, use):npm run formatin server and client directories, which automatically formats your code.