Skip to content

feat(relay): blocklist, priority list, and dedup TTL dashboard controls#71

Open
iceice400 wants to merge 1 commit into
KMX415:mainfrom
iceice400:feat/relay-filter-controls
Open

feat(relay): blocklist, priority list, and dedup TTL dashboard controls#71
iceice400 wants to merge 1 commit into
KMX415:mainfrom
iceice400:feat/relay-filter-controls

Conversation

@iceice400
Copy link
Copy Markdown
Contributor

Summary

  • Extend RelayConfig and PUT /api/config/relay with blocklist, priority_list, and dedup_ttl_seconds (default 300 s)
  • RelayManager: blocklist check before dedup; priority nodes use allow_priority() (bypass burst gate, not per-minute cap)
  • Hot reload via reload_filters() — no service restart for filter-only changes
  • Configuration → Advanced: new Relay filters card with add/remove lists and dedup TTL

Why

Operators on rooftop gateways need to suppress noisy relay sources without SSH. Blocklist affects relay only — packets still appear in the live feed.

Type

  • Bug fix
  • Feature
  • Docs
  • Refactor
  • UI
  • Installer
  • Region support
  • Hardware change

Testing

  • Local unit tests (7 pass; 2 API tests skip without PyJWT in dev env)
  • Tested on hardware
  • Dashboard tested on device
python -m unittest tests.test_relay_filters -v

Manual checklist (relay enabled, US915):

  1. Configuration → Advanced → Relay filters — add blocklist node a3f2b1c0, save
  2. Journal shows Relay rejected [blocklisted] for that source; packet still in live feed
  3. Remove from blocklist → relay resumes (no restart)
  4. Priority node under burst congestion relays with approved_priority
  5. Dedup TTL 10 s vs 600 s — duplicate suppression window changes after save
  6. Invalid ID notvalid → 400 from API

Hardware: RAK7248 or Pi + HAT · relay path (SX1262 USB or native)

Impact

  • Parsing
  • Relay
  • TX (duty cycle unchanged at transmit layer)
  • Radio driver
  • Region logic
  • UI + config API
  • Installer only

Risks: Medium — touches relay evaluation order. Blocklist is earliest gate. Priority bypasses burst only. Dedup default preserved at 300 s.

AI-assisted?

  • Yes

Extend RelayConfig and PUT /api/config/relay with blocklist, priority_list, and dedup_ttl_seconds. RelayManager applies filters with hot reload; priority nodes bypass burst gate. Configuration Advanced tab adds Relay filters card.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant