towerops/lib/towerops_web/live/admin
Graham McIntire 7e6ec7098c fix: 10 high-severity bugs from code audit (H1-H5, H14-H16, H27, H30)
- H1: batch count queries in MobileController (org sites/devices/alerts, site
  device counts) — reduces 1+3N+2M queries to 4 + 2
- H2: batch Oban cancel for stop_device_checks — single ANY(?) query instead
  of one per check
- H3: resolve_active_alerts_for_device uses update_all + deduped PubSub
  broadcasts (was N updates + N broadcasts)
- H4: atomic ON CONFLICT upsert for auto-discovery checks; restore partial
  unique index dropped in 20260404000002 (dedup migration included)
- H5: wrap apply_agent_to_all_equipment delete+insert in transaction so a
  failed insert_all rolls back the prior delete
- H14: replace String.to_integer/1 on untrusted SNMP OID components with
  Integer.parse/1 + validation (neighbor_discovery, discovery storage index,
  printer supply index)
- H15: ActivityFeedLive whitelists activity types against @all_types instead
  of String.to_existing_atom/1
- H16: defensive page param parsing in user_settings and admin dashboard
  LiveViews
- H27: search sanitize/1 delegates to QueryHelpers.sanitize_like/1 which
  escapes backslash first
- H30: JobCleanupTask no longer cancels jobs in "executing" state so
  in-flight polls complete naturally
2026-05-12 10:55:01 -05:00
..
agent_live perf+refactor: codebase-wide query and antipattern audit 2026-04-28 16:58:51 -05:00
audit_live test: refactor LiveView tests to use HTML-aware element/form helpers 2026-04-29 11:14:20 -05:00
org_live ui: comprehensive button styling audit - convert all text-styled actions to proper buttons 2026-03-09 15:32:42 -05:00
security_live fix: API token access control, admin form crash, MIB validation, CSP dedup 2026-05-12 09:08:57 -05:00
user_live ui: comprehensive button styling audit - convert all text-styled actions to proper buttons 2026-03-09 15:32:42 -05:00
dashboard_live.ex fix: 10 high-severity bugs from code audit (H1-H5, H14-H16, H27, H30) 2026-05-12 10:55:01 -05:00
dashboard_live.html.heex rename "Admin Dashboard" to "Dashboard" 2026-03-10 13:36:03 -05:00
monitoring_live.ex dialyzer: fix all unmatched_return warnings (154 → 0) 2026-04-21 10:03:55 -05:00
monitoring_live.html.heex i18n: wrap all user-facing strings in gettext() 2026-02-14 17:44:01 -06:00