Skip to content

feat: add support for Ntfy notification provider#883

Merged
Wikid82 merged 12 commits intodevelopmentfrom
feature/beta-release
Mar 25, 2026
Merged

feat: add support for Ntfy notification provider#883
Wikid82 merged 12 commits intodevelopmentfrom
feature/beta-release

Conversation

@Wikid82
Copy link
Copy Markdown
Owner

@Wikid82 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.

@github-advanced-security
Copy link
Copy Markdown
Contributor

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:

  • The 'Security' tab will display more code scanning analysis results (e.g., for the default branch).
  • Depending on your configuration and choice of analysis tool, future pull requests will be annotated with code scanning analysis results.
  • You will be able to see the analysis results for the pull request's branch on this overview once the scans have completed and the checks have passed.

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.
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Mar 24, 2026

✅ Supply Chain Verification Results

PASSED

📦 SBOM Summary

  • Components: 1483

🔍 Vulnerability Scan

Severity Count
🔴 Critical 0
🟠 High 0
🟡 Medium 4
🟢 Low 2
Total 6

📎 Artifacts

  • SBOM (CycloneDX JSON) and Grype results available in workflow artifacts

Generated by Supply Chain Verification workflow • View Details

@codecov
Copy link
Copy Markdown

codecov bot commented Mar 24, 2026

Codecov Report

❌ Patch coverage is 97.22222% with 1 line in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
frontend/src/pages/Notifications.tsx 90.90% 1 Missing ⚠️

📢 Thoughts on this report? Let us know!

@Wikid82 Wikid82 marked this pull request as ready for review March 25, 2026 09:37
Copilot AI review requested due to automatic review settings March 25, 2026 09:37
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 ntfy to 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

@Wikid82 Wikid82 requested a review from Copilot March 25, 2026 10:05
@Wikid82 Wikid82 merged commit 548a2b6 into development Mar 25, 2026
42 checks passed
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.

3 participants