towerops/lib/towerops_web
Graham McIntire 8d9d385683
fix: prevent AlreadySentError in BruteForceProtection plug
The plug was attempting to register a before_send callback after
blocking a banned IP and sending a 403 response. This caused
Plug.Conn.AlreadySentError in production.

Fixed by checking conn.halted before attempting to register the
404 tracking callback. If the request was already blocked and sent,
we skip the callback registration.

Also updated the test to verify proper behavior without the
workaround for AlreadySentError.
2026-02-12 12:53:32 -06:00
..
channels feat: live device timestamp updates and org-scoped alert PubSub 2026-02-12 11:01:56 -06:00
components add IP allowlist link to superadmin nav, rename whitelist/blacklist to allowlist/denylist 2026-02-11 11:40:44 -06:00
controllers Add CI-triggered mass agent update webhook 2026-02-10 13:40:32 -06:00
helpers more tests and fixes 2026-02-07 11:50:18 -06:00
live fix: reload device stream when switching back to existing devices tab 2026-02-12 12:47:30 -06:00
plugs fix: prevent AlreadySentError in BruteForceProtection plug 2026-02-12 12:53:32 -06:00
endpoint.ex Add 404-based brute force protection system 2026-02-10 16:31:48 -06:00
gettext.ex init 2025-12-21 11:10:43 -06:00
gettext_helpers.ex feat: migrate email templates to gettext (Phase 2 - Emails) 2026-02-02 09:48:30 -06:00
permissions.ex Replace conditionals with functional pattern matching 2026-02-10 17:11:37 -06:00
plug_exceptions.ex handle exceptions gracefully on api endpoints 2026-02-04 12:18:14 -06:00
router.ex Add 404-based brute force protection system 2026-02-10 16:31:48 -06:00
telemetry.ex fix: add Oban config to dev.exs and replace Exq telemetry with Oban 2026-01-24 16:39:45 -06:00
user_auth.ex test fixes 2026-02-09 15:30:52 -06:00