feat: add support for Ntfy notification provider#883
Conversation
Wikid82
commented
Mar 24, 2026
- Updated the list of supported notification provider types to include 'ntfy'.
- Modified the notification settings UI to accommodate the Ntfy provider, including form fields for topic URL and access token.
- Enhanced localization files to include translations for Ntfy-related fields in German, English, Spanish, French, and Chinese.
- Implemented tests for the Ntfy notification provider, covering form rendering, CRUD operations, payload contracts, and security measures.
- Updated existing tests to account for the new Ntfy provider in various scenarios.
…n-major-updates fix(deps): update non-major-updates (feature/beta-release)
|
You are seeing this message because GitHub Code Scanning has recently been set up for this repository, or this pull request contains the workflow file for the Code Scanning tool. What Enabling Code Scanning Means:
For more information about GitHub Code Scanning, check out the documentation. |
- Updated the list of supported notification provider types to include 'ntfy'. - Modified the notification settings UI to accommodate the Ntfy provider, including form fields for topic URL and access token. - Enhanced localization files to include translations for Ntfy-related fields in German, English, Spanish, French, and Chinese. - Implemented tests for the Ntfy notification provider, covering form rendering, CRUD operations, payload contracts, and security measures. - Updated existing tests to account for the new Ntfy provider in various scenarios.
✅ Supply Chain Verification Results✅ PASSED 📦 SBOM Summary
🔍 Vulnerability Scan
📎 Artifacts
Generated by Supply Chain Verification workflow • View Details |
Codecov Report❌ Patch coverage is
📢 Thoughts on this report? Let us know! |
There was a problem hiding this comment.
Pull request overview
This PR adds Ntfy as a first-class notification provider across the backend dispatch layer, API validation, frontend settings UI, localization, and test suites—along with some dependency/security-maintenance updates.
Changes:
- Add
ntfyto supported provider types and enable JSON-template-based dispatch with optional Bearer token auth. - Extend the Notifications settings UI + i18n strings to support Ntfy topic URL and access token input.
- Add/adjust Playwright + unit tests for Ntfy provider behavior, payload contract, and token non-exposure.
Reviewed changes
Copilot reviewed 35 out of 39 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| tests/settings/ntfy-notification-provider.spec.ts | New E2E suite covering Ntfy UI, CRUD, payload, and token security. |
| tests/settings/notifications.spec.ts | Updates provider type dropdown expectations to include Ntfy. |
| tests/settings/notifications-payload.spec.ts | Extends payload matrix tests to include Ntfy token + url contract. |
| package-lock.json | Updates KaTeX dev dependency version. |
| frontend/src/pages/tests/Notifications.test.tsx | Updates mocked supported provider types and option assertions for Ntfy. |
| frontend/src/pages/Notifications.tsx | Adds Ntfy UI support (labels/placeholders) and treats Ntfy as token-capable + JSON-template-capable. |
| frontend/src/locales/zh/translation.json | Adds Ntfy strings. |
| frontend/src/locales/fr/translation.json | Adds Ntfy strings. |
| frontend/src/locales/es/translation.json | Adds Ntfy strings. |
| frontend/src/locales/en/translation.json | Adds Ntfy strings. |
| frontend/src/locales/de/translation.json | Adds Ntfy strings. |
| frontend/src/components/tests/SecurityNotificationSettingsModal.test.tsx | Updates supported provider options assertion to include Ntfy. |
| frontend/src/api/notifications.ts | Adds ntfy to supported types and includes it in token-handling sanitization. |
| frontend/package.json | Bumps i18next, react-i18next, lucide-react versions. |
| frontend/package-lock.json | Locks bumped frontend dependency versions (and related transitive bumps). |
| docs/reports/qa_report_ntfy_notifications.md | Adds QA/security audit report for Ntfy provider. |
| docs/issues/ntfy-notification-provider-manual-testing.md | Adds a manual test plan for Ntfy provider. |
| docs/features/notifications.md | Documents Ntfy as a supported provider with setup + template examples. |
| docs/features.md | Updates marketing-level feature summary to include Ntfy and broader provider list. |
| backend/internal/services/notification_service_test.go | Adds unit tests for Ntfy support + feature flag behavior + JSON template support. |
| backend/internal/services/notification_service_json_test.go | Adds JSON payload send tests for Ntfy including Bearer auth + required message field validation. |
| backend/internal/services/notification_service.go | Implements Ntfy dispatch enablement flag, payload validation, and Bearer auth header behavior; fixes token clearing behavior. |
| backend/internal/notifications/router_test.go | Adds routing flag test coverage for Ntfy. |
| backend/internal/notifications/router.go | Routes Ntfy through Notify engine based on feature flag. |
| backend/internal/notifications/http_wrapper_test.go | Updates outbound header allowlist test to account for Authorization header. |
| backend/internal/notifications/http_wrapper.go | Allows outbound Authorization header (needed for Ntfy Bearer auth). |
| backend/internal/notifications/feature_flags.go | Adds feature.notifications.service.ntfy.enabled constant. |
| backend/internal/api/handlers/notification_provider_handler.go | Allows ntfy provider type and preserves token on update when omitted. |
| backend/internal/api/handlers/auth_handler.go | Comment formatting adjustment (no behavior change). |
| backend/go.sum | Updates go-toml checksum entries. |
| backend/go.mod | Bumps indirect dependency github.com/pelletier/go-toml/v2. |
| SECURITY.md | Updates vulnerability ledger content + review date. |
| Dockerfile | Bumps caddy-security plugin version. |
| CHANGELOG.md | Adds release notes for Ntfy provider and a related Pushover token bugfix note. |
| .grype.yaml | Removes outdated suppressions and retains current vulnerability suppressions. |
| .github/workflows/docker-build.yml | Runs docker build workflow on development branch pushes as well as main. |
Files not reviewed (1)
- frontend/package-lock.json: Language not supported