Live data & monitoring
Full description: Read the full narrative
The platform ingests live open-data feeds and turns them into alerts. Sentinel polls sources against baselines for user watch-zones; anomaly detectors and a correlation engine fuse streams; reflex rules push actions to connected globe clients over WebSocket/SSE.
Integration inventory
| Metric | Value | Method/source |
|---|---|---|
| Registered API metadata entries | 82 | regex count category: in server/apiMetadata.ts |
| Categories (top) | Aviation 16 · Weather & Disaster 13 · Economic & Financial 12 · Notifications 5 · AI & Analytics 5 · Satellite & Imagery 4 · Infrastructure 4 … | same |
| External https hosts referenced in server data code | 159 (upper bound incl. docs/CDN URLs) | regex over server/index.ts, server/data, server/utils |
| Built-in Sentinel pollers | USGS earthquakes 60 s · NASA EONET 120 s · NASA FIRMS 180 s (only with key) · NWS alerts 120 s | server/sentinel/index.ts:11-41,43,72,110,165-169 |
| Watch-zone default poll interval | 300 s (per-zone override; zone re-discovery 60 s) | server/sentinel/engine.ts:107-115 server/db/schema.sql:684 |
Detection thresholds (verbatim from code)
earthquakes: 4.0, // Magnitude threshold wildfires: 50, // FIRMS hotspot count floods: 3, // Flood event count storms: 50, // Wind speed (knots) air_quality: 100, // AQI threshold
| Component | Verified behaviour | Source |
|---|---|---|
| Anomaly detector | methods zscore | isolation_forest | graph | ensemble; ensemble publish gate > 0.6; confidence gate ≥ 0.5 | server/sentinel/anomalyDetector.ts:12,62,81,131-146 |
| Correlation engine | 30-min sliding window, evaluates every 60 s; multi-source cascade rules (e.g. quake+storm+fire) | server/sentinel/correlationEngine.ts:63,65,96-111 |
| Reflex engine | subscribes seismic/weather/ais/adsb/sentinel; 3 built-in reflexes; trauma mode at ≥ 3 simultaneous reflexes | server/reflex/engine.ts:52-55,23 server/reflex/reflexes.ts:107 |
| Realtime delivery | WebSocket upgrade only on /ws/agent + /ws/voice; channel allowlist (sentinel:raw, sentinel:alerts, correlation:alerts, fork:*, ws:uid…); heartbeat 30 s / timeout 35 s; SSE on /api/agent/events + /api/social/stream (?token=) | server/websocket.ts:79,18-20,10-11,133-145 server/index.ts:4290,11866 |
| Event bus | in-process EventEmitter (single node process) — not a Redis pub/sub dependency | server/pubsub.ts:3-21 |
| Ambient/proactive | hourly/6 h/24 h prediction refresh for ambient intelligence; proactive insights per zone | server/sentinel/ambientIntelligence.ts:57-65 |
Notable live-data groups
Seismic (USGS), storms (NHC/NWS), fires (FIRMS), events (EONET, GDACS), air quality (OpenAQ/WAQI), aviation (OpenSky + FlightAware/AirLabs keys), maritime (AIS), satellites (CelesTrak/UCS TLEs, Space-Debris, Launch Library 2), ocean (NDBC, Copernicus), traffic (TomTom), economic (FRED/EIA/ENTSO-E/IMF/Comtrade/CoinGecko/AlphaVantage), tiles (/api/tiles/* MVT server from SQLite: earthquakes/firms/volcanoes/alerts/gdacs, ZOOM_MAX 22) — endpoint map in Reference → API; per-entry auth/rate metadata in server/apiMetadata.ts.
Polling intervals, thresholds and gates are code-verified; the services were seen starting under a real boot (logs show sentinel engine, correlation routes, cache pre-warms). Individual remote-feed responses were not asserted here.