v1.2.0
New features
CORS support
- Configurable CORS headers for cross-origin frontend deployments
Node type breakdown
- New
GET /api/v1/stats/node-typesendpoint returning node counts by type (companion, repeater, room server, sensor) - Supports the same multi-IATA and region filtering as all other stats endpoints
Multi-IATA and region filtering on stats endpoints
- All
/stats/*endpoints now acceptiatas,iata,regionId, andregionquery params - Previously only a single exact-match IATA was supported
- Top nodes chart now returns data correctly in the default all-regions view
Bug fixes
Observer telemetry
- Timestamps were being returned in seconds instead of milliseconds — now consistent with the rest of the API
- Bucketed telemetry (
6h,24hintervals) was grouping by hour-of-day rather than by time window, causing incorrect bucket boundaries and near-zero deltas in the 30-day view - Running total fields (
airtime_tx_pct,airtime_rx_pct,receive_errors) were being averaged across buckets instead of computing the delta — now correctly returns increase per bucket
Maintenance
- Removed unused queries
- Updated dependencies (SHOULDERS.md)
- CodeQL security scanning via GitHub integration
Full Changelog: v1.1.0...v1.2.0