Commit Graph

3281 Commits

Author SHA1 Message Date
GitHub Actions
ee224adcf1 fix: update notification provider type in tests and enhance email injection sanitization 2026-03-06 06:31:11 +00:00
GitHub Actions
5bbae48b6b chore(docker): wire all workflows to single-source version ARGs
The Dockerfile already centralizes all version pins into top-level ARGs
(GO_VERSION, ALPINE_IMAGE, CROWDSEC_VERSION, EXPR_LANG_VERSION, XNET_VERSION).
This change closes the remaining gaps so those ARGs are the single source of
truth end-to-end:

- nightly-build.yml now resolves the Alpine image digest at build time and
  passes ALPINE_IMAGE as a build-arg, matching the docker-build.yml pattern.
  Previously, nightly images were built with the Dockerfile ARG default and
  without a pinned digest, making runtime Alpine differ from docker-build.yml.

- six CI workflows (quality-checks, codecov-upload, benchmark, e2e-tests-split,
  release-goreleaser, codeql) declared a GO_VERSION env var but their setup-go
  steps ignored it and hardcoded the version string directly. They now reference
  ${{ env.GO_VERSION }}, so Renovate only needs to update one value per file
  and the env var actually serves its purpose.

- codeql.yml had no GO_VERSION env var at all; one is now added alongside the
  existing GOTOOLCHAIN: auto entry.

When Renovate bumps Go, it updates the env var at the top of each workflow and
the Dockerfile ARG — zero manual hunting required.
2026-03-06 03:57:18 +00:00
GitHub Actions
abcfd62b21 fix: update Go version to 1.26.1 in CodeQL workflow for consistency and security improvements 2026-03-06 03:20:37 +00:00
GitHub Actions
10d952a22e fix: update golang version to 1.26.1-alpine in Dockerfile for security improvements 2026-03-06 03:14:16 +00:00
GitHub Actions
635caf0f9a fix: update Caddy version to 2.11.2 in architecture and compatibility matrix for consistency 2026-03-06 02:56:31 +00:00
GitHub Actions
2266a8d051 fix: update golang version to 1.26.1-alpine in Dockerfile for consistency and security improvements 2026-03-06 02:44:07 +00:00
GitHub Actions
b292a1b793 fix: update Go version to 1.26.1 in multiple workflow files for consistency and security improvements 2026-03-06 02:35:36 +00:00
GitHub Actions
bf398a1cb2 fix: update Go version to 1.26.1 in Dockerfile and go.work for security improvements 2026-03-06 02:22:38 +00:00
GitHub Actions
e7c98e5526 fix: update golang version to 1.26.1-alpine in Dockerfile for security improvements 2026-03-06 02:15:37 +00:00
Jeremy
99ff0a34e3 Merge pull request #808 from Wikid82/renovate/feature/beta-release-non-major-updates
chore(deps): update non-major-updates (feature/beta-release)
2026-03-05 21:07:44 -05:00
GitHub Actions
c42b7f5a5b fix: update golang.org/x/net to version 0.51.0 in Dockerfile 2026-03-06 02:06:49 +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
renovate[bot]
834907cb5d chore(deps): update non-major-updates 2026-03-06 02:02:10 +00:00
Jeremy
e295a1f64c Merge pull request #806 from Wikid82/renovate/feature/beta-release-non-major-updates
chore(deps): update dependency @types/node to ^25.3.4 (feature/beta-release)
2026-03-05 20:58:50 -05:00
Jeremy
7cec4d7979 Merge pull request #807 from Wikid82/renovate/feature/beta-release-docker-build-push-action-7.x
chore(deps): update docker/build-push-action action to v7 (feature/beta-release)
2026-03-05 20:58:10 -05:00
renovate[bot]
132bbbd657 chore(deps): update docker/build-push-action action to v7 2026-03-06 01:07:01 +00:00
renovate[bot]
833220f1cb chore(deps): update dependency @types/node to ^25.3.4 2026-03-06 01:06:56 +00:00
Jeremy
e1e422bfc6 Merge pull request #805 from Wikid82/renovate/feature/beta-release-docker-metadata-action-6.x
chore(deps): update docker/metadata-action action to v6 (feature/beta-release)
2026-03-05 20:02:26 -05:00
Jeremy
e4b6ce62cd Merge pull request #804 from Wikid82/renovate/feature/beta-release-non-major-updates
fix(deps): update non-major-updates (feature/beta-release)
2026-03-05 20:01:13 -05:00
renovate[bot]
396d01595e chore(deps): update docker/metadata-action action to v6 2026-03-05 21:12:58 +00:00
renovate[bot]
6a13e648ea fix(deps): update non-major-updates 2026-03-05 21:12:51 +00:00
GitHub Actions
5fa0cff274 fix: eliminate wall-clock race in TestApplyRepullsOnCacheExpired
The test used a 5ms TTL with a 10ms wall-clock sleep to simulate cache
expiry. On loaded CI runners (Azure eastus), the repull HTTP round-trip
plus disk I/O for Store easily exceeded 5ms, causing the freshly written
cache entry to also appear expired when Load was called immediately after,
producing a spurious 'cache expired' error.

HubCache already exposes a nowFn field for deterministic time injection.
Replace the sleep-based approach with a nowFn that advances the clock 2
hours, making the initial entry appear expired to Apply while keeping the
freshly re-stored entry (retrieved_at ≈ now+2h, TTL=1h) valid for the
final assertion.
2026-03-05 20:20:14 +00:00
GitHub Actions
bcb2748f89 fix: update CADDY_SECURITY_VERSION to 1.1.42 in Dockerfile 2026-03-05 20:09:13 +00:00
GitHub Actions
e68a6039b9 fix: update css-syntax-patches-for-csstree to version 1.1.0 and react-i18next to version 16.5.5 in package-lock.json 2026-03-05 20:04:48 +00:00
GitHub Actions
0199f93994 fix: update katex version to 0.16.35 in package-lock.json 2026-03-05 20:04:30 +00:00
GitHub Actions
f2cf5c3508 chore: add coverage for default false state of email notifications feature flag 2026-03-05 14:58:21 +00:00
GitHub Actions
1d39756713 fix: update css-tree version to 3.2.1 in package-lock.json 2026-03-05 14:56:25 +00:00
GitHub Actions
71455ef88f fix: update katex version to 0.16.34 in package-lock.json 2026-03-05 14:56:16 +00:00
Jeremy
99b8ed875e Merge pull request #803 from Wikid82/renovate/feature/beta-release-docker-setup-buildx-action-4.x
chore(deps): update docker/setup-buildx-action action to v4 (feature/beta-release)
2026-03-05 09:41:29 -05:00
Jeremy
8242666678 Merge pull request #802 from Wikid82/renovate/feature/beta-release-non-major-updates
chore(deps): update github/codeql-action digest to 0c0c5dc (feature/beta-release)
2026-03-05 09:40:59 -05:00
renovate[bot]
5aade0456e chore(deps): update docker/setup-buildx-action action to v4 2026-03-05 14:39:50 +00:00
renovate[bot]
479f56f3e8 chore(deps): update github/codeql-action digest to 0c0c5dc 2026-03-05 14:39:43 +00:00
GitHub Actions
8c7a55eaa2 fix: pin Trivy binary version to v0.69.3 in all CI workflows 2026-03-05 13:04:33 +00:00
GitHub Actions
924b8227b5 fix: add bash to Dockerfile dependencies for xcaddy build process 2026-03-05 07:15:37 +00:00
Jeremy
c3fa29d13c Merge branch 'development' into feature/beta-release 2026-03-05 02:13:58 -05:00
Jeremy
e5dab58b42 Merge pull request #801 from Wikid82/renovate/feature/beta-release-non-major-updates
chore(deps): update dependency tar to ^7.5.10 (feature/beta-release)
2026-03-05 02:13:27 -05:00
Jeremy
22496a44a8 Merge branch 'feature/beta-release' into renovate/feature/beta-release-non-major-updates 2026-03-05 02:07:52 -05:00
GitHub Actions
87e6762611 fix: pin alpine and golang images with specific SHA256 digests in Dockerfile 2026-03-05 07:05:04 +00:00
GitHub Actions
ddc79865bc test: cover email provider paths in SendExternal and TestProvider
Two unit tests cover the code paths introduced when email was registered
as a recognised notification provider type in Stage 2.

- TestSendExternal_EmailProviderSkipsJSONTemplate exercises the goroutine
  warn path where an enabled email provider passes isDispatchEnabled but
  fails supportsJSONTemplates, producing a warning log without panicking
- TestTestProvider_EmailRejectsJSONTemplateStep asserts TestProvider
  returns a clear error for email providers because the JSON template
  dispatch path does not apply to email delivery

Patch coverage: 6/6 changed lines covered (100%)
2026-03-05 06:57:37 +00:00
renovate[bot]
6ee185c538 chore(deps): update dependency tar to ^7.5.10 2026-03-05 06:39:58 +00:00
GitHub Actions
367943b543 fix: update caddy-security version to 1.1.38 in Dockerfile 2026-03-05 06:36:59 +00:00
GitHub Actions
08e7eb7525 fix: update css-tree and mdn-data package versions to latest 2026-03-05 04:44:10 +00:00
GitHub Actions
35ca99866a fix: update tar package version from 7.5.9 to 7.5.10 2026-03-05 04:43:10 +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
8ea907066b chore: remove Shoutrrr residue and dead notification legacy code
Remove all deprecated Shoutrrr integration artifacts and dead legacy fallback
code from the notification subsystem.

- Remove legacySendFunc field, ErrLegacyFallbackDisabled error, and
  legacyFallbackInvocationError() from notification service
- Delete ShouldUseLegacyFallback() from notification router; simplify
  ShouldUseNotify() by removing now-dead providerEngine parameter
- Remove EngineLegacy engine constant; EngineNotifyV1 is the sole engine
- Remove legacy.fallback_enabled feature flag, retiredLegacyFallbackEnvAliases,
  and parseFlagBool/resolveRetiredLegacyFallback helpers from flags handler
- Remove orphaned EmailRecipients field from NotificationConfig model
- Delete feature_flags_coverage_v2_test.go (tested only the retired flag path)
- Delete security_notifications_test.go.archived (stale archived file)
- Move FIREFOX_E2E_FIXES_SUMMARY.md to docs/implementation/
- Remove root-level scan artifacts tracked in error; add gitignore patterns to
  prevent future tracking of trivy-report.json and related outputs
- Update ARCHITECTURE.instructions.md: Notifications row Shoutrrr → Notify

No functional changes to active notification dispatch or mail delivery.
2026-03-05 00:41:42 +00:00
GitHub Actions
ffe5d951e0 fix: update terminology from "PR Slicing Strategy" to "Cmmit Slicing Strategy" in agent instructions 2026-03-04 21:02:59 +00:00
Jeremy
e5af7d98d1 Merge pull request #799 from Wikid82/renovate/feature/beta-release-non-major-updates
chore(deps): update github/codeql-action digest to b6dfacb (feature/beta-release)
2026-03-04 13:38:58 -05: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