feat(ui): add admin IP whitelist gate backed by ADMIN_SECRETS #20

Merged
ashraf merged 1 commit from development_admin_ip_whitelist into main 2026-04-23 13:10:14 +00:00
Member

Summary

  • Add IP-based whitelist gate to hero_livekit_ui that loads allowed CIDR ranges from the ADMIN_SECRETS secret in hero_proc
  • Whitelist enforced as axum middleware on every request, reading client IP from X-Real-Ip / X-Forwarded-For headers
  • Background refresh every 60 seconds with fail-open semantics and stale-on-error policy
  • Includes PUT /admin/whitelist endpoint for write-through updates

Closes #9

Changes

  • New: crates/hero_livekit_ui/src/whitelist.rs (289 lines) -- WhitelistState, CIDR loading from hero_proc, axum middleware, background refresh task, PUT /admin/whitelist handler
  • Modified: crates/hero_livekit_ui/Cargo.toml -- added ipnetwork = "0.20" dependency
  • Modified: crates/hero_livekit_ui/src/main.rs -- mod whitelist, WhitelistState init, refresh task spawn, route + middleware wiring
  • Modified: Cargo.lock -- added ipnetwork 0.20.0

Test Results

34 tests passed, 0 failures

## Summary - Add IP-based whitelist gate to hero_livekit_ui that loads allowed CIDR ranges from the ADMIN_SECRETS secret in hero_proc - Whitelist enforced as axum middleware on every request, reading client IP from X-Real-Ip / X-Forwarded-For headers - Background refresh every 60 seconds with fail-open semantics and stale-on-error policy - Includes PUT /admin/whitelist endpoint for write-through updates ## Related Issue Closes https://forge.ourworld.tf/lhumina_code/hero_livekit/issues/9 ## Changes - New: `crates/hero_livekit_ui/src/whitelist.rs` (289 lines) -- WhitelistState, CIDR loading from hero_proc, axum middleware, background refresh task, PUT /admin/whitelist handler - Modified: `crates/hero_livekit_ui/Cargo.toml` -- added ipnetwork = "0.20" dependency - Modified: `crates/hero_livekit_ui/src/main.rs` -- mod whitelist, WhitelistState init, refresh task spawn, route + middleware wiring - Modified: `Cargo.lock` -- added ipnetwork 0.20.0 ## Test Results 34 tests passed, 0 failures
feat(ui): add admin IP whitelist gate backed by ADMIN_SECRETS
All checks were successful
Build & Test / check (pull_request) Successful in 2m45s
Build & Test / check (push) Successful in 3m1s
a95a438afc
#9
ashraf merged commit a95a438afc into main 2026-04-23 13:10:14 +00:00
ashraf deleted branch development_admin_ip_whitelist 2026-04-23 13:10:14 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
lhumina_code/hero_livekit!20
No description provided.