towerops/lib/towerops
Graham McIntire ea91dae0e6 fix: 6 medium-severity bugs (M2, M8, M9, M10, M11, M16)
- M2: get_user_by_email/1 uses lower(email) = lower(?) so User@Example.com
  and user@example.com resolve to the same account; closes a lookalike-
  registration / password-reset confusion risk.
- M8: webhook auth plug no longer echoes "Webhook authentication not
  configured" — the misconfiguration is logged server-side and the caller
  gets a generic Internal server error so endpoints can't be probed.
- M9: coverages controller logs the underlying KMZ build error and
  returns a generic "Failed to build KMZ" string — filesystem paths and
  zip internals no longer leak.
- M10: account-data controller no longer crashes with MatchError when an
  org has zero or multiple memberships; defaults to "member" and treats
  any owner membership as owner.
- M11: ActivityController switches to a hard whitelist
  (Atom.to_string/1 comparison) instead of String.to_existing_atom/1;
  unknown filter types are dropped silently and the atom table can't be
  grown from API input.
- M16: title-tracking MutationObserver is stored on `this` so destroyed()
  actually disconnects it — fixes a memory leak per LV navigation.
2026-05-12 11:38:13 -05:00
..
accounts fix: remaining bugs.md findings — Repo calls, process dict, CSS, rate limits, Oban, debug route 2026-05-11 19:34:18 -05:00
admin fix: comprehensive security audit fixes (#108) 2026-03-22 10:10:27 -05:00
agents chore: migrate agent repo references from GitHub to Codeberg 2026-05-07 07:44:48 -05:00
alerts refactor: address audit recommendations from results.md 2026-04-30 12:33:41 -05:00
api_tokens dialyzer: fix unknown_type warnings (60 → 0) 2026-04-21 09:43:37 -05:00
billing refactor: adopt Towerops.Result helpers in 8 call sites 2026-04-30 14:43:24 -05:00
capacity refactor: convert 6 Gleam modules to idiomatic Elixir with TDD (#196) 2026-03-28 09:52:07 -05:00
cn_maestro tests: disable Req retries in test env to eliminate ~7s-per-test delays 2026-04-24 10:04:52 -05:00
config_changes tests: raise coverage to 70% via helper promotion + new unit/property tests 2026-04-24 09:49:06 -05:00
contexts help update 2026-02-04 17:56:48 -06:00
coverages chore(coverage,types): clean dialyzer + new tests + ETH canopy provider 2026-05-07 09:11:17 -05:00
devices refactor: address audit recommendations from results.md 2026-04-30 12:33:41 -05:00
ecto_types dialyzer: fix remaining 88 warnings — clean dialyzer run 2026-04-21 10:32:42 -05:00
gaiia fix(gaiia): correct mac_address to if_phys_address in inventory_creator 2026-05-11 16:42:18 -05:00
geoip remove Mix.env and support ip database import 2026-01-28 13:08:06 -06:00
integrations feat(mikrotik): webhook receiver for MikroTik RouterOS events 2026-05-11 18:02:21 -05:00
job_monitoring more tests and fixes 2026-02-07 11:50:18 -06:00
lidar chore(coverage,types): clean dialyzer + new tests + ETH canopy provider 2026-05-07 09:11:17 -05:00
llm fix(insights): raise device overheating thresholds for outdoor equipment 2026-05-11 12:13:09 -05:00
maintenance fix(llm): drop model name from footer, harden JSON parser 2026-05-10 13:03:25 -05:00
mikrotik feat(mikrotik): webhook receiver for MikroTik RouterOS events 2026-05-11 18:02:21 -05:00
mobile_sessions refactor/dry-improvements (#202) 2026-03-28 10:56:34 -05:00
monitoring chore: track SiteQuery and CheckQuery modules 2026-04-30 14:39:58 -05:00
netbox tests: raise coverage to 70% via helper promotion + new unit/property tests 2026-04-24 09:49:06 -05:00
on_call refactor: extract per-schema Query modules for organization_id filters 2026-04-30 14:26:30 -05:00
organizations refactor: extract per-schema Query modules for organization_id filters 2026-04-30 14:26:30 -05:00
pagerduty tests: remove remaining 1s sleeps in slow tests 2026-04-24 10:13:17 -05:00
preseem fix: H12 cookie hardening + 5 low/medium bugs (L2, L5, L6, L8, L10, L11) 2026-05-12 11:22:47 -05:00
profiles fix: 4 more high-severity bugs (H23, H26, H28, H29) 2026-05-12 11:14:03 -05:00
prom_ex feat(metrics): expose Prometheus /metrics via PromEx on :9568 2026-05-08 10:25:25 -05:00
proto refactor: adopt Towerops.Result helpers in 8 call sites 2026-04-30 14:43:24 -05:00
rate_limit chore: rate_limit rewrite + on-call redesign plan + handoff_notifications_mode 2026-04-28 12:17:29 -05:00
recommendations/rules fix(insights): raise device overheating thresholds for outdoor equipment 2026-05-11 12:13:09 -05:00
redix test: in-process Redis fake instead of skipping Redis-backed tests 2026-05-10 11:32:50 -05:00
reports fix: make sidebar sticky with header and resolve all credo issues (#32) 2026-03-15 18:19:09 -05:00
security fix: H12 cookie hardening + 5 low/medium bugs (L2, L5, L6, L8, L10, L11) 2026-05-12 11:22:47 -05:00
settings fix/findings-medium-priority (#188) 2026-03-27 12:31:53 -05:00
sites chore: track SiteQuery and CheckQuery modules 2026-04-30 14:39:58 -05:00
snmp fix: 10 high-severity bugs from code audit (H1-H5, H14-H16, H27, H30) 2026-05-12 10:55:01 -05:00
sonar tests: disable Req retries in test env to eliminate ~7s-per-test delays 2026-04-24 10:04:52 -05:00
splynx tests: disable Req retries in test env to eliminate ~7s-per-test delays 2026-04-24 10:04:52 -05:00
status_pages fix: 11 critical security/correctness bugs from code audit 2026-05-12 10:20:52 -05:00
topology refactor: address audit recommendations from results.md 2026-04-30 12:33:41 -05:00
uisp tests: raise coverage to 70% via helper promotion + new unit/property tests 2026-04-24 09:49:06 -05:00
visp fix: humanize raw error strings in integration sync modules 2026-03-12 13:53:28 -05:00
weather tests: raise coverage to 70% via helper promotion + new unit/property tests 2026-04-24 09:49:06 -05:00
workers fix: 3 more high-severity bugs (H19, H20, H25) 2026-05-12 11:32:20 -05:00
accounts.ex fix: 6 medium-severity bugs (M2, M8, M9, M10, M11, M16) 2026-05-12 11:38:13 -05:00
activity_feed.ex reliability-audit-fixes (#181) 2026-03-26 14:10:36 -05:00
admin.ex fix: replace Repo.rollback with proper error handling for Oban compatibility (#201) 2026-03-28 09:11:21 -05:00
agents.ex fix: remaining bugs.md findings — Repo calls, process dict, CSS, rate limits, Oban, debug route 2026-05-11 19:34:18 -05:00
alerts.ex fix: 10 high-severity bugs from code audit (H1-H5, H14-H16, H27, H30) 2026-05-12 10:55:01 -05:00
api_tokens.ex fix: API token access control, admin form crash, MIB validation, CSP dedup 2026-05-12 09:08:57 -05:00
application.ex test: in-process Redis fake instead of skipping Redis-backed tests 2026-05-10 11:32:50 -05:00
billing.ex fix: infer device role during discovery and handle string price values 2026-03-10 13:25:51 -05:00
capacity.ex fix: 5 more high-severity bugs (H6, H8, H17, H18) 2026-05-12 11:04:31 -05:00
config_changes.ex tests: raise coverage to 70% via helper promotion + new unit/property tests 2026-04-24 09:49:06 -05:00
coverages.ex chore(coverage,types): clean dialyzer + new tests + ETH canopy provider 2026-05-07 09:11:17 -05:00
dashboard.ex fix/findings-medium-priority (#188) 2026-03-27 12:31:53 -05:00
devices.ex fix: 10 high-severity bugs from code audit (H1-H5, H14-H16, H27, H30) 2026-05-12 10:55:01 -05:00
error_tracker_ignorer.ex chore: add gaiia library dep, remove stale honeybadger/tidewave/cbor 2026-05-11 14:46:27 -05:00
gaiia.ex fix(gaiia): add ghost devices tab, manual link, and refresh to reconciliation 2026-05-11 18:35:34 -05:00
geocoding.ex tests: raise coverage to 70% via helper promotion + new unit/property tests 2026-04-24 09:49:06 -05:00
geoip.ex db-performance-migrations (#234) 2026-04-04 14:22:25 -05:00
http.ex tests: disable Req retries in test env to eliminate ~7s-per-test delays 2026-04-24 10:04:52 -05:00
integrations.ex refactor/dry-improvements (#202) 2026-03-28 10:56:34 -05:00
job_monitoring.ex more tests and fixes 2026-02-07 11:50:18 -06:00
lidar.ex chore(coverage,types): clean dialyzer + new tests + ETH canopy provider 2026-05-07 09:11:17 -05:00
llm.ex feat(insights): LLM-powered insight enrichment 2026-05-09 16:41:48 -05:00
log_filter.ex Add comprehensive Dialyzer type specifications 2026-01-17 10:52:02 -06:00
logger_filters.ex fix: suppress benign shutdown errors during K8s pod rollouts 2026-02-12 12:16:40 -06:00
mailer.ex moduledocs 2026-01-17 15:08:49 -06:00
maintenance.ex refactor(maintenance): use MaintenanceWindowQuery in active_windows_base 2026-04-30 14:26:30 -05:00
mikrotik.ex feat(mikrotik): webhook receiver for MikroTik RouterOS events 2026-05-11 18:02:21 -05:00
mobile_sessions.ex fix: replace Repo.rollback with proper error handling for Oban compatibility (#201) 2026-03-28 09:11:21 -05:00
monitoring.ex fix: 4 more high-severity bugs (H23, H26, H28, H29) 2026-05-12 11:14:03 -05:00
numeric.ex refactor: convert 6 Gleam modules to idiomatic Elixir with TDD (#196) 2026-03-28 09:52:07 -05:00
on_call.ex refactor: extract per-schema Query modules for organization_id filters 2026-04-30 14:26:30 -05:00
organizations.ex refactor: adopt Towerops.Result helpers in 8 call sites 2026-04-30 14:43:24 -05:00
postgrex_types.ex feat: add Texas LIDAR DEM catalog with on-demand elevation reads 2026-05-04 13:03:28 -05:00
preseem.ex fix: H12 cookie hardening + 5 low/medium bugs (L2, L5, L6, L8, L10, L11) 2026-05-12 11:22:47 -05:00
profiles.ex fix/findings-medium-priority (#188) 2026-03-27 12:31:53 -05:00
prom_ex.ex feat(metrics): expose Prometheus /metrics via PromEx on :9568 2026-05-08 10:25:25 -05:00
query_helpers.ex refactor: convert 6 Gleam modules to idiomatic Elixir with TDD (#196) 2026-03-28 09:52:07 -05:00
rate_limit.ex feat(on_call): PagerDuty-style escalation policy redesign + dialyzer fix 2026-04-28 12:36:41 -05:00
redis_health_check.ex test: in-process Redis fake instead of skipping Redis-backed tests 2026-05-10 11:32:50 -05:00
release.ex fix dialyzer things 2026-01-03 12:56:40 -06:00
repo.ex moduledocs 2026-01-17 15:08:49 -06:00
reports.ex fix: 5 more high-severity bugs (H6, H8, H17, H18) 2026-05-12 11:04:31 -05:00
result.ex refactor: convert 6 Gleam modules to idiomatic Elixir with TDD (#196) 2026-03-28 09:52:07 -05:00
rf_links.ex fix: make sidebar sticky with header and resolve all credo issues (#32) 2026-03-15 18:19:09 -05:00
search.ex fix: 10 high-severity bugs from code audit (H1-H5, H14-H16, H27, H30) 2026-05-12 10:55:01 -05:00
settings.ex fix/test-failures (#112) 2026-03-22 13:02:06 -05:00
sites.ex fix: 10 high-severity bugs from code audit (H1-H5, H14-H16, H27, H30) 2026-05-12 10:55:01 -05:00
snmp.ex refactor(snmp): replace extracted sections with delegates 2026-04-30 14:26:31 -05:00
status_pages.ex refactor/dry-improvements (#202) 2026-03-28 10:56:34 -05:00
time.ex refactor/dry-improvements (#202) 2026-03-28 10:56:34 -05:00
topology.ex chore(coverage,types): clean dialyzer + new tests + ETH canopy provider 2026-05-07 09:11:17 -05:00
trace.ex tests: raise coverage to 70% via helper promotion + new unit/property tests 2026-04-24 09:49:06 -05:00
unused.ex feat(insights): superuser regenerate button + dialyzer cleanup 2026-05-10 13:41:25 -05:00
url_validator.ex refactor: convert 6 Gleam modules to idiomatic Elixir with TDD (#196) 2026-03-28 09:52:07 -05:00
vault.ex fix: H12 cookie hardening + 5 low/medium bugs (L2, L5, L6, L8, L10, L11) 2026-05-12 11:22:47 -05:00
weather.ex tests: raise coverage to 70% via helper promotion + new unit/property tests 2026-04-24 09:49:06 -05:00