Any unit — from a private with a phone to a theater commander to a county EOC — gets one screen that shows everything happening around them, tells them what it means, and helps them decide what to do next. Devices and partners plug in through one front door. Data from any sensor fuses into one picture. AI drafts analysis grounded in doctrine; humans make every kinetic decision. Everything is audited. The screen works in a bunker with no internet. The platform watches its own health and names its own failures.
One workflow replaces six fragmented onboarding doors. Register once — identity token, permission template, and your exact ingest endpoints come back in a single response. Whole units onboard in one call from their MTOE.
POST /api/connect/register-unit
{ "unit": { "name": "A Co, 3-15 IN", "uic": "WABCA0", "echelon": "company" },
"equipment": [
{ "lin": "U09517", "nomenclature": "RQ-11B Raven SUAS", "qty": 3 },
{ "lin": "R67890", "nomenclature": "AN/PRC-163 leader radio", "qty": 12 },
{ "nomenclature": "Smart Shooter SMASH 2000L","qty": 2 },
{ "nomenclature": "ATAK EUD", "qty": 24 } ] }
→ 201: unit token + 41-item roster (each item: own token, party class, exact ingest endpoint)
Auto-classifier: Raven/SUAS→sensor · PRC/JBCP→unit (CoT) · SMASH/Coyote/jammer→effector · ATAK EUD/TAK server→partner-c2 · ESP32/Pi→sensor (heartbeat+acoustic). Declared values always win. 500-item cap per call; loop yields every 25 items. Unit-level revocation kills the whole UIC. Full detail: /connector/architecture
| Domain | Feeds | Rate | Status |
|---|---|---|---|
| Air/Space | ADS-B (adsb.fi → adsb.lol → airplanes.live chain, 8 COCOM regions), TLE/space weather via UDL | 10s / 5min | LIVE |
| Maritime | AISStream.io global (~19k vessels) + Digitraffic Baltic supplement | streaming / 5min | LIVE |
| Tactical mesh | ESMS acoustic + RF spectrum (SDR), TAK/CoT snapshot, ESP32 beacons, phone field cues | 1–10s | LIVE |
| Hazards | NASA FIRMS fires, USGS seismic, NOAA CAP alerts | 60s–1h | LIVE |
| OSINT/Doctrine | JIATF 401, NAVWAR, attrition doctrine, AI governance → doctrine-corpus.json; daily RAG research | on-ingest / daily | LIVE |
| AI inference | OpenRouter cascade (GPT-4o→Gemini→Grok) + Perplexity direct (web-grounded tier 1) + local RAG (DDIL fallback) | on-demand | LIVE (Perplexity key activated 2026-07-12) |
| Mil systems | ATAK/WinTAK (CoT — LIVE) · AFATDS NFFI · GCCS-A NIEM · DCGS-A GENESIS · JADC2 CBM | — | ATAK LIVE · rest PLANNED adapters |
| Flow | Pipeline | Budget | Measured (prod witness) |
|---|---|---|---|
| FLOW-1 | C-UAS sense → COP track | <12s sensor-to-tile | hops 61–353ms p95 |
| FLOW-2 | COP alert → BLUF + COA | <5s | alert POST 207ms p95 |
| FLOW-3 | AI inference cascade | <50s global / <2s offline RAG | compliance 83ms p95 |
| FLOW-4 | DDIL store-forward + CRDT merge | <30s reconnect | queue 73ms · sync 271ms p95 |
| FLOW-5 | Decision symphony full-chain | <2s | 69ms p95 |
| FLOW-6 | HITL engage → release | <2s approval-to-routing | options 69ms · prove 1.7s p95 |
| FLOW-7 | Doctrine ingest → runtime params | <100ms propagate | params read 5–50ms |
| FLOW-8 | Deploy full-stack congruence | <3min push-to-live | SHA-verified every deploy |
| FLOW-9 | Universal connection (NEW) | <1s register · <20s first-obs-to-COP | register ~30ms · MTOE 15 items ~120ms |
Full hop-by-hop detail: /api/architecture/ov2/flows · measured witness: /flows/benchmark (26 hops probed against production, honest pass/fail per hop)
POST /api/useif/killchains/:id/approve logs operator identity + timestamphitlGate on every response — options presented, never executedThe platform now names its own failures instead of guessing. Every claim below is a live endpoint you can hit right now.
| Capability | Surface | What it does |
|---|---|---|
| Loop forensics | /api/health/slow-ticks | Names every slow tick (>250ms) by label; 500ms heartbeat freeze detector; GC observer; heap growth MB/min |
| Crash forensics | /api/health/last-exit | Every process death leaves an audit row (reason, uptime); unclean kills detected on next boot |
| Watchdog auto-restart | /api/health/live | Sustained event-loop starvation → clean exit → PM2 respawn; honest heap % vs real V8 limit; DB pool + handles |
| Connection conductor | /api/connect/conductor | ACTIVE→IDLE→STALE sweeps; append-only connection ledger |
| Harmony conductor | /api/health/harmony/latest | Full-stack congruence audit + bounded self-heal; disk JSONL history survives restarts |
| Partner JSON cache | /api/health/partner-cache | ETag + 304 for programmatic pollers (Unity/XR partners) — 0-byte responses on unchanged data |
| Load gate (CI) | npm run load:gate | 30 concurrent clients sustained; p95<500ms + zero 5xx hard fail before any deploy |
| Honest verify | npm run verify:prod | 20 sequential post-deploy probes, zero allowed failures — retries can no longer hide intermittency |
One revision, every layer: dev → git → deploy → EC2 runtime → nginx/TLS → served frontend. Harmony conductor re-audits every 6h. Templates cached at boot; production prefers server_dist/templates.
POST /api/connect/enforcement) and returns 403 on missing identity or insufficient scope; PKI X.509 client certs issued by the ATLAS Connection CA (?pki=1) and verified on every call; MTOE CSV/TSV upload (/api/connect/register-unit/csv) alongside JSON| What | URL |
|---|---|
| This document | /system-architecture |
| Universal Connector (live registry + easy connect) | /connector |
| Connection architecture deep-dive (FLOW-9) | /connector/architecture |
| Full OV-2 evaluator surface | /evaluate/architecture |
| OV-2 JSON (Part 1 / flows / live-audit / benchmark) | /api/architecture/ov2 · /flows · /live-audit · /flows/benchmark |
| COP · Workspace · Intel tools | /cop · /workspace · /intel-tools |
| Health & forensics | /api/health/live · /slow-ticks · /last-exit · /atlas-health |
| Prove chains (executable evidence) | /evaluate/reviewer · GET /api/prove/touch |
docs/architecture/OV2-COMPLETE-SYSTEM-v1.3.md (RAG-ingested) · Powered by: Node 22 Express · PostgreSQL 16 · OpenRouter + Perplexity + local RAG · Expo mobile · ESP32 firmware · EC2 single-host with PM2 + nginxThis page works best with your current GPS location.