mirror of
https://github.com/ipnet-mesh/meshcore-hub.git
synced 2026-07-07 10:20:58 +02:00
5fe8ce9156
Restrict which remote observers may ingest events, keyed on the observer's public key (the <public_key> segment of its LetsMesh upload topic). Anyone with broker access can publish as an observer via JWT auth, so operators can now gate ingestion. - New ObserverFilter (case-insensitive prefix matching, allowlist overrides denylist, accept-all when both empty) - New OBSERVER_ALLOWLIST / OBSERVER_DENYLIST collector settings, wired through the CLI, run_collector, create_subscriber, and Subscriber - Filter applied at the top of _handle_mqtt_message: blocked observers' packets are dropped before any decode, raw-packet capture, or DB write; zero added work on the default accept-all path - Tests: ObserverFilter unit tests, subscriber drop/allow integration tests, config parsing tests - Docs: configuration.md, observer.md, upgrading.md (v0.16.0), .env.example, docker-compose.yml Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>