Commit Graph

285 Commits

Author SHA1 Message Date
GitHub Actions
65d02e754e feat: add support for Pushover notification provider
- Updated the list of supported notification provider types to include 'pushover'.
- Enhanced the notifications API tests to validate Pushover integration.
- Modified the notifications form to include fields specific to Pushover, such as API Token and User Key.
- Implemented CRUD operations for Pushover providers in the settings.
- Added end-to-end tests for Pushover provider functionality, including form rendering, payload validation, and security checks.
- Updated translations to include Pushover-specific labels and placeholders.
2026-03-16 18:16:14 +00:00
GitHub Actions
78f216eaef fix: enhance payload handling in Slack provider creation to track token presence 2026-03-16 11:41:06 +00:00
GitHub Actions
2fa7608b9b fix: guard routeBodyPromise against indefinite hang in security test 2026-03-15 11:51:16 +00:00
GitHub Actions
26be592f4d feat: add Slack notification provider support
- Updated the notification provider types to include 'slack'.
- Modified API tests to handle 'slack' as a valid provider type.
- Enhanced frontend forms to display Slack-specific fields (webhook URL and channel name).
- Implemented CRUD operations for Slack providers, ensuring proper payload structure.
- Added E2E tests for Slack notification provider, covering form rendering, validation, and security checks.
- Updated translations to include Slack-related text.
- Ensured that sensitive information (like tokens) is not exposed in API responses.
2026-03-13 03:40:02 +00:00
GitHub Actions
c71e6fef30 fix: improve response handling in Telegram notification provider tests to prevent race conditions 2026-03-11 16:54:54 +00:00
GitHub Actions
fd056c05a7 feat: Enhance Notifications feature with accessibility improvements and test remediation
- Added aria-label attributes to buttons in Notifications component for better accessibility.
- Updated Notifications tests to use new button interactions and ensure proper functionality.
- Refactored notifications payload tests to mock API responses and validate payload transformations.
- Improved error handling and feedback in notification provider tests.
- Adjusted Telegram notification provider tests to streamline edit interactions.
2026-03-11 15:33:53 +00:00
GitHub Actions
ef71f66029 feat: add Telegram notification provider support
- Updated API to support Telegram as a notification provider type.
- Enhanced tests to cover Telegram provider creation, updates, and token handling.
- Modified frontend forms to include Telegram-specific fields and validation.
- Added localization strings for Telegram provider.
- Implemented security measures to ensure bot tokens are not exposed in API responses.
2026-03-10 12:14:57 +00:00
GitHub Actions
65b82a8e08 feat: add email notification provider with HTML templates
- Implemented email notification functionality in the NotificationService.
- Added support for rendering email templates based on event types.
- Created HTML templates for various notification types (security alerts, SSL events, uptime events, and system events).
- Updated the dispatchEmail method to utilize the new email templates.
- Added tests for email template rendering and fallback mechanisms.
- Enhanced documentation to include email notification setup and usage instructions.
- Introduced end-to-end tests for the email notification provider in the settings.
2026-03-07 19:54:21 +00:00
GitHub Actions
ed89295012 feat: wire MailService into notification dispatch pipeline (Stage 3)
Unifies the two previously independent email subsystems — MailService
(net/smtp transport) and NotificationService (HTTP-based providers) —
so email can participate in the notification dispatch pipeline.

Key changes:
- SendEmail signature updated to accept context.Context and []string
  recipients to enable timeout propagation and multi-recipient dispatch
- NotificationService.dispatchEmail() wires MailService as a first-class
  provider type with IsConfigured() guard and 30s context timeout
- 'email' added to isSupportedNotificationProviderType() and
  supportsJSONTemplates() returns false for email (plain/HTML only)
- settings_handler.go test-email endpoint updated to new SendEmail API
- Frontend: 'email' added to provider type union in notifications.ts,
  Notifications.tsx shows recipient field and hides URL/token fields for
  email providers
- All existing tests updated to match new SendEmail signature
- New tests added covering dispatchEmail paths, IsConfigured guards,
  recipient validation, and context timeout behaviour

Also fixes confirmed false-positive CodeQL go/email-injection alerts:
- smtp.SendMail, sendSSL w.Write, and sendSTARTTLS w.Write sites now
  carry inline codeql[go/email-injection] annotations as required by the
  CodeQL same-line suppression spec; preceding-line annotations silently
  no-op in current CodeQL versions
- auth_handler.go c.SetCookie annotated for intentional Secure=false on
  local non-HTTPS loopback (go/cookie-secure-not-set warning only)

Closes part of #800
2026-03-06 02:06:49 +00:00
GitHub Actions
2f83526966 fix: resolve email provider test regression from Stage 2 flag registration
After email was recognised as a supported provider type, the existing
rejection assertion for unsupported types incorrectly included email
in its denial list, causing a nil-dereference panic.

- Remove email from the unsupported-type rejection list and cover it
  in the accepted-types path instead
- Correct allFeaturesEnabled fixture to set email flag to true, keeping
  the fixture semantically consistent with all other service flags
2026-03-05 04:22:04 +00:00
GitHub Actions
5a58404e1b feat: register email as feature-flagged notification service
Add email as a recognized, feature-flagged notification service type.
The flag defaults to false and acts as a dispatch gate alongside the
existing discord, gotify, and webhook notification service flags.

- Add FlagEmailServiceEnabled constant to the notifications feature flag
  registry with the canonical key convention
- Register the flag in the handler defaults so it appears in the feature
  flags API response with a false default
- Recognise 'email' as a supported notification provider type so that
  providers of this type pass the type validation gate
- Gate email dispatch on the new flag in isDispatchEnabled() following
  the same pattern as gotify and webhook service flags
- Expand the E2E test fixtures FeatureFlags interface to include the new
  flag key so typed fixture objects remain accurate

No email message dispatch is wired in this commit; the flag registration
alone makes the email provider type valid and toggleable.
2026-03-05 03:36:27 +00:00
GitHub Actions
27c252600a chore: git cache cleanup 2026-03-04 18:34:49 +00:00
GitHub Actions
c32cce2a88 chore: git cache cleanup 2026-03-04 18:34:39 +00:00
GitHub Actions
7a8b0343e4 fix: update user record to trigger user_update audit event in E2E workflow 2026-03-04 15:36:02 +00:00
GitHub Actions
f19f53ed9a fix(e2e): update user lifecycle audit entry checks to ensure both user_create and user_update events are present 2026-03-04 12:41:56 +00:00
GitHub Actions
fc404da455 fix(e2e): resolve shard 4 failures from 3-tier role model changes
Three tests broke when the Admin/User/Passthrough privilege model replaced
the old admin/user/guest hierarchy in PR-3.

- user-management: tighten heading locator to name='User Management' to avoid
  strict mode violation; the settings layout now renders a second h1
  ('Settings') alongside the page content heading
- user-lifecycle: update audit trail assertion from 2 to 1; users are now
  created with a role in a single API call so the backend does not emit a
  user_update audit entry when STEP 2 sends the same role value as creation
- auth-fixtures: replace invalid role='guest' with role='passthrough' in the
  guestUser fixture; the 'guest' role was removed in PR-3 and 'passthrough' is
  the equivalent lowest-privilege role in the new model

Verified: all three previously-failing tests now pass locally.
2026-03-03 13:10:44 +00:00
GitHub Actions
ed27fb0da9 fix(e2e): update account navigation locator and skip legacy Account.tsx test sections
The Account.tsx page was removed in PR-2b and replaced by UsersPage.tsx with
a UserDetailModal. Several E2E test sections still referenced UI elements that
only existed in the deleted page, causing CI failures across shards.

- admin-onboarding: update header profile link locator from /settings/account
  to /settings/users to match the new navigation target in Layout.tsx
- account-settings: skip five legacy test sections (Profile Management,
  Certificate Email, Password Change, API Key Management, Accessibility) that
  reference deleted Account.tsx elements (#profile-name, #profile-email,
  #useUserEmail, #cert-email) or assume these fields are directly on the page
  rather than inside the UserDetailModal
- Each skipped section includes an explanatory comment pointing to the PR-3
  'Self-Service Profile via Users Page (F10)' suite as the equivalent coverage

Verified: admin-onboarding 8/8 pass; account-settings 8 pass / 20 skipped
2026-03-03 10:27:13 +00:00
GitHub Actions
0fd00575a2 feat: Add passthrough role support and related tests
- Implemented middleware to restrict access for passthrough users in management routes.
- Added unit tests for management access requirements based on user roles.
- Updated user model tests to include passthrough role validation.
- Enhanced frontend user management to support passthrough role in invite modal.
- Created end-to-end tests for passthrough user access restrictions and navigation visibility.
- Verified self-service profile management for admins and regular users.
2026-03-03 09:14:33 +00:00
GitHub Actions
28be62dee0 fix(tests): update cancel endpoint mock to match DELETE requests with session UUID 2026-03-02 22:09:53 +00:00
GitHub Actions
2f90d936bf fix(tests): simplify back/cancel button handling in cross-browser import tests 2026-03-02 21:02:34 +00:00
GitHub Actions
fe8225753b fix(tests): remove visibility check for banner in cancel session flow 2026-03-02 20:28:40 +00:00
GitHub Actions
273fb3cf21 fix(tests): improve cancel session flow in cross-browser import tests 2026-03-02 20:04:34 +00:00
GitHub Actions
f60a99d0bd fix(tests): update route validation functions to ensure canonical success responses in import/save regression tests 2026-03-02 15:05:05 +00:00
GitHub Actions
077e3c1d2b chore: add integration tests for import/save route regression coverage 2026-03-02 14:53:59 +00:00
GitHub Actions
f79f0218c5 fix(tests): update mock heartbeat generation to align with monitor's latest status 2026-03-01 17:38:01 +00:00
GitHub Actions
d94c9ba623 fix(tests): enhance overwrite resolution flow test to handle browser-specific authentication 2026-03-01 17:17:49 +00:00
GitHub Actions
8e1b9d91e2 fix(tests): enhance session handling and cleanup in Caddy import tests 2026-03-01 13:43:50 +00:00
GitHub Actions
67bcef32e4 fix(tests): improve header verification and response handling in Firefox import tests 2026-03-01 13:43:42 +00:00
GitHub Actions
2204b7bd35 fix(tests): implement retry logic for session reset and navigation stability in Caddy import tests 2026-03-01 13:06:47 +00:00
GitHub Actions
4ff65c83be fix(tests): refactor CORS handling in Firefox import tests for improved clarity and reliability 2026-03-01 05:31:37 +00:00
GitHub Actions
3409e204eb fix(tests): enhance timeout handling for UI preconditions in import page navigation 2026-03-01 05:18:44 +00:00
GitHub Actions
61bb19e6f3 fix(tests): enhance session resume handling in import tests for improved reliability 2026-03-01 05:18:33 +00:00
GitHub Actions
3cc979f5b8 fix(tests): remove webkit-only test skipping logic for improved test execution 2026-03-01 05:16:38 +00:00
GitHub Actions
ef8f237233 fix(tests): remove redundant Firefox-only test skipping logic 2026-03-01 05:16:27 +00:00
GitHub Actions
404aa92ea0 fix(tests): improve response handling and session management in import tests 2026-03-01 05:11:18 +00:00
GitHub Actions
63c9976e5f fix(tests): improve login handling in navigation tests to manage transient 401 errors 2026-03-01 03:54:45 +00:00
GitHub Actions
09ef4f579e fix(tests): optimize response handling in Firefox import tests 2026-03-01 03:50:50 +00:00
GitHub Actions
fbd94a031e fix(import): handle cancellation of stale import sessions in various states 2026-03-01 03:50:43 +00:00
GitHub Actions
6483a25555 chore(tests): remove deprecated proxy host dropdown tests 2026-03-01 03:49:20 +00:00
GitHub Actions
61b73bc57b fix(tests): increase dashboard load time threshold to 8 seconds 2026-03-01 03:49:12 +00:00
GitHub Actions
5c4a558486 chore: enhance ACL handling in dropdowns and add emergency token flows
- Add tests to normalize string numeric ACL IDs in AccessListSelector.
- Implement regression tests for ProxyHostForm to ensure numeric ACL values are submitted correctly.
- Introduce a recovery function for ACL lockout scenarios in auth setup.
- Create new tests for ACL creation and security header profiles to ensure dropdown coverage.
- Add regression tests for ACL and Security Headers dropdown behavior in ProxyHostForm.
- Establish a security shard setup to validate emergency token configurations and reset security states.
- Enhance emergency operations tests to ensure ACL selections persist across create/edit flows.
2026-02-28 04:41:00 +00:00
GitHub Actions
feaae052ac fix: enhance SQLite error handling in global setup and TestDataManager for better diagnostics 2026-02-27 20:28:43 +00:00
GitHub Actions
476e65e7dd fix: enhance navigation error handling in Caddy import tests with retry logic 2026-02-27 18:44:43 +00:00
GitHub Actions
24a5773637 fix: implement session resume feature in Caddy import tests with mock status handling 2026-02-27 18:38:25 +00:00
GitHub Actions
1b10198d50 fix: improve import session management with enhanced cleanup and status handling 2026-02-27 13:41:26 +00:00
GitHub Actions
b66ba3ad4d fix: enhance admin onboarding tests with deterministic login navigation and improve accessibility checks in authentication flows 2026-02-27 03:05:41 +00:00
GitHub Actions
ba880083be fix: enhance admin onboarding tests to verify redirection and storage state after login 2026-02-27 01:23:53 +00:00
GitHub Actions
b657235870 fix: refactor Caddy import tests to use helper functions for textarea filling and upload handling 2026-02-27 00:41:54 +00:00
GitHub Actions
132b78b317 fix: remove unused readStoredAuthToken function to clean up code 2026-02-26 22:53:48 +00:00
GitHub Actions
218ce5658e fix: enhance Caddy import tests with improved session management and response handling 2026-02-26 22:24:48 +00:00