aprs.me/test/aprsme_web
Graham McIntire 09f92c6738
feat(mobile): rate-limit socket + batch historical packet delivery
- MobileUserSocket: cap new socket connections per IP at 30/min via
  Aprsme.RateLimiter. Denials log and return :error at handshake.
  Tests bypass the check (no real peer_data).

- MobileChannel: rate-limit the expensive client-initiated handlers
  (subscribe_bounds, subscribe_callsign, search_callsign) at
  30/minute per socket. Streaming packet delivery is unaffected.

- MobileChannel: historical packet loads now arrive as a batched
  `packets` event (100 per frame) instead of one `packet` frame per
  row. Live streaming still uses the single `packet` event.

- Updated docs/mobile-api.md with the `packets` event and rate-limit
  semantics; migration note preserves compatibility for clients that
  only handle live `packet` events.
2026-04-21 09:38:51 -05:00
..
channels feat(mobile): rate-limit socket + batch historical packet delivery 2026-04-21 09:38:51 -05:00
controllers Add Weather API controller with parameter validation 2026-03-22 11:27:45 -05:00
integration Fix duplicate ID errors and optimize mobile callsign search 2025-10-25 13:39:34 -05:00
live perf: reduce per-packet allocations in ingest pipeline 2026-04-19 13:33:16 -05:00
plugs fix: close review findings 2026-03-26 12:36:50 -05:00
aprs_symbol_test.exs format 2025-07-09 16:22:58 -05:00
time_helpers_test.exs updates with parser updates 2025-08-03 09:19:31 -05:00