AiA Yetenekleri — A'dan Z'ye
AiA'nın production'da çalışan tüm modülleri, gerçek endpoint'leri ve operatör arayüzleri. Her satırın sağ tarafındaki bağlantı seni doğrudan canlı UI'a veya canlı API yanıtına götürür — mock veri yoktur, demo simülasyonu yoktur, görmek istediğin şey backend'in PG :5434 federation'ından ve harici afet kaynak adaptörlerinden anlık çekilir.
Gerçeklik notu: Bu deployment Next.js standalone'dur — depremler USGS public feed'inden (earthquake.usgs.gov) canlı çekilir; tüm-üretim NestJS adaptör pipeline\'ı (Kandilli, AFAD, NASA FIRMS, GDACS, NOAA NWS, FEMA IPAWS, NHC, NIFC, USGS ShakeAlert, Drone telemetri ingest, PG :5434 federation) ayrı backend deploy gerektirir. Bu sayfada her satır gerçek response döner — boş list de mock değil, dürüst raporlama.
Veri Toplama (5)
Deprem Akışı (USGS · AFAD · Kandilli)
⋯ probe→ Canlı AkışÜç bağımsız sismik veri kaynağından son 24 saatlik depremleri toplar; magnitude/saat/il filtresi destekler.
GET /api/v1/feeds/earthquakeskaynaklar: USGS Earthquake Hazards · AFAD (Türkiye) · Kandilli RasathanesiYangın Hotspot (NASA FIRMS)
⋯ probe→ Hotspot ListesiNASA FIRMS satellite hotspot detection — VIIRS/MODIS sensörlerinden 24 saatlik thermal anomaly'ler.
GET /api/v1/feeds/fireskaynaklar: NASA FIRMS · VIIRS (Suomi NPP) · MODIS (Terra/Aqua)Çoklu Tehlike CAP Akışı
⋯ probe→ Aktif UyarıGDACS, NOAA NWS, FEMA IPAWS, NHC (Tropikal), USGS ShakeAlert, NIFC (Wildfire) — 6 farklı CAP/feed parser.
GET /api/v1/feeds/alertskaynaklar: GDACS · NOAA NWS · FEMA IPAWS · NHC · USGS ShakeAlert · NIFCKaynak Sağlık Telemetrisi
⋯ probe→ Source HealthHer bir adaptörün son fetch zamanı, başarı oranı, lag (saniye) ve son hata mesajı.
GET /api/v1/feeds/healthBirleşik Özet KPI
⋯ probe→ Ana Panel4 kategori (deprem, uyarı, yangın, kaynak sağlığı) tek-payload özet — Ana Panel hero kartlarını besler.
GET /api/v1/feeds/summary
Olay Yönetimi (5)
Olay Defteri
⋯ probe→ Olay ListesiOperatör onaylı olay kayıtları — kind/severity/status/region/lat-lng + JSONB metadata; filtre + paginasyon.
GET /api/v1/incidentsOlay Haritası (Mapbox + Heatmap)
Mapbox GL clustered point + heatmap; 24s/7g zaman çizelgesi scrubber, kind/region chip filter, day-bucket histogram.
GET /api/v1/incidents (geo features)Olay CSV/JSON Export
⋯ probe→ ExportRFC 4180 quoted CSV + UTF-8 BOM (Excel TR uyumlu) veya JSON bundle. Filtre URL'i export'ta korunur.
GET /api/v1/incidents/export?format=csv|jsonOperatör Notları (Threaded)
Olay başına ek tartışma kanalı; Ctrl+Enter submit, 4000 char cap, hash-chained audit. MD export'ta incident metadata + drone telemetry snapshot dahil edilir.
GET/POST /api/v1/incidents/:id/notesHarita Üzerinden Konum Seçici
Mapbox click → marker drop, ±90/±180 doğrulama, Nominatim 600ms debounced reverse-geocode (mahalle/ilçe/il TR).
POST /api/v1/incidents (lat/lng)
Uyarı Onay Akışı (3)
Acknowledge / Yorum Düzenleme
POST/PATCH/DELETE — If-Match header ile optimistic concurrency (409 conflict + current_acked_at echo). Operatör ekipte simültane edit'te sessiz silme yok.
POST/PATCH/DELETE /api/v1/feeds/alerts/:id/ackAck Geçmiş Timeline
Append-only timeline: kim, ne zaman, hangi yorum + acknowledged/edited/cleared/unacknowledged event kategorileri.
GET /api/v1/feeds/alerts/:id/ack/historyAck Geçmiş CSV Export
Compliance audit için RFC 4180 + UTF-8 BOM + CRLF + sanitized filename. 1000-row cap.
GET /api/v1/feeds/alerts/:id/ack/history.csv
Audit Chain (5)
Hash-Chained Audit Stream (SSE)
2s polling SSE; severity/engineer/action filter, per-engineer 60-event token bucket rate limit, circuit breaker, 30dk auto-rotate, LSIA mode probe.
GET /api/v1/audit/streamFull-Text Arama
action/engineer/subject_hash 3-kolon ILIKE — escape-aware, severity/engineer/since filtreli, 200-row cap + truncated flag.
GET /api/v1/audit/searchSaved Queries (Per-Operator + Team-Shared)
Owner-scoped + shared bool; owner+name UNIQUE constraint + upsert; 50 cap kişi başına, 100 cap shared dahil.
GET/POST/DELETE /api/v1/audit/saved-queriesAdmin Saved-Query Yönetimi
⋯ probe→ Admin PanelTüm sorguları görüntüle, force-delete (audit-chained), owner pattern bulk-delete (ILIKE wildcard zorunlu), dry-run preview, owner autocomplete + match highlighting.
GET /api/v1/audit/saved-queries/all + bulk-delete-by-ownerMulti-Keyword + Quoted Token Search
Boşluk=AND, virgül=OR, "..." literal phrase, \n \t \r \" \\ escape sequences. Highlight tüm match'leyen tokens'leri amber-500 ile sarar.
/operator/audit-admin search box
Drone Filosu (10)
Telemetri Ingest
Per-sample drone_id/lat/lng/alt_m/battery_pct/speed_mps/heading_deg/state — batch insert, PG indexed by (drone_id, occurred_at).
POST /api/v1/drones/trail/ingestFilo Genel Görünüm
⋯ probe→ Filo GenelReal-time fleet snapshot (window_ms parametreli), severity per state count, search/state filter, multi-select bulk komut.
GET /api/v1/drones/fleet/latestWebSocket Telemetri Push
Socket.IO /ws/drones — exponential reconnect (1s→16s, ±20% jitter), per-app ping_rtt latency probe (5s), polling fallback.
WS /ws/drones (Socket.IO)Bulk Komut Dispatch (RTL/PAUSE/RESUME/HOLD/LAND)
Atomik batch INSERT (max 200 drone), batch_id UUID + actor + reason; KSL signed audit "drone.bulk_*"; RTL/Land confirm prompt.
POST /api/v1/drones/commands/bulkKomut Broadcast SSE (Relayer Bridge)
1s tail + 25s heartbeat + 10-row backfill (cold start) + Last-Event-ID/X-Last-Issued-At resume + per-row id: SSE field. CRITICAL_LOCKDOWN'da emit susturulur.
GET /api/v1/drones/commands/streamPending Relay Widget
⋯ probe→ Ana Panel5-bucket histogram (<5s/<30s/<2m/<10m/≥10m) + over_threshold counter + 50-row drilldown + log-scale slider + 30/60/120/300s preset + custom 5-3600s.
GET /api/v1/drones/commands/pending-relayKomut Geçmiş & Per-Batch View
Newest-first 100-cap list, since/drone_id filter; batch_id click → modal: tüm drone listesi + DroneProgress 3-stage (issue/relay/cancel) + relay_status/cancelled_at.
GET /api/v1/drones/commands + /commands/batch/:idSoft Cancel Batch
cancelled_at + cancelled_by + cancel_reason; idempotent re-cancel = no-op. Cancellation event SSE'ye drone_command_cancelled olarak yayınlanır.
DELETE /api/v1/drones/commands/batch/:idRelayer Ack (CTE Idempotent)
WITH cur+upd CTE — ilk çağrı UPDATE (relayed_at, relay_status), sonraki çağrılar mevcut row + was_idempotent flag. dispatched/failed/rejected status enum.
POST /api/v1/drones/commands/:id/relay-ackDrone Timeline (Per-Drone)
50 son komut + DroneProgress mini-bar (3-dot), batch grouping sky-700 left border, collapse/expand (Vim Space/c/o + Shift+Space/Alt + gg/G jump).
GET /api/v1/drones/commands?drone_id=...
Sovereign Security (3)
LSIA Immunity Mode Gate
CRITICAL_LOCKDOWN posture'unda drone broadcast SSE relayer emit'i susturulur (watermark ilerler, frame yayınlanmaz). 30s probe + event:lsia mode-flip frame.
core/infrastructure/immunity_engine.py (AILYDIAN integration)KSL Device Signature
Kritik write'lar (alert.acknowledged, drone.bulk_*, incident.note_added, saved_query.*) JWT'ye bağlı device key ile imzalı; her audit chain entry'de signed_by_device.
core/infrastructure/ksl.pyPG :5434 Federation Truth
Tek doğruluk kaynağı — alert_acks, alert_ack_history, incident_notes, drone_commands, audit_log, audit_saved_queries hepsi PG :5434. Sessiz SQLite fallback YOK (KURAL 21).
PostgreSQL host=lydos-postgres port=5434
Push & İletişim (2)
Push DLQ Yönetimi
Bull queue dead-letter; replay (job→main queue) veya discard. Her iki işlem audit-chained.
GET /api/v1/push/dlq + replay/discardSlack Action Defteri
Slack signing-secret HMAC verify, replay-protected receipts, audit-chained.
POST /api/v1/slack/actions
Operatör Konsolu (4)
Ana Panel (LiveOverview)
7 hero kartı (LSIA · Feed · Uyarı · Olay · DLQ · Deprem · Pending Relay) + audit ticker + arama + favori sorgular. 10s/15s polling.
GET /api/v1/{health,feeds,warnings,incidents}Audit Beep + Title Flash
WebAudio 880Hz iki-pulse beep (critical event), tarayıcı sekme başlığı 24-cycle 600ms flash (visibility-aware auto-stop).
LiveOverview.tsx · soundEnabledRef + flashTitleOverdue Bildirim (Sound + Desktop Notification)
Pending relay 0→>0 transition'ında opt-in WebAudio beep + Notification API toast (sayfa görünmezken). Permission state badge: granted/denied/pending.
LiveOverview.tsx · 🚨 toggle + Notification APIHeatmap Timeline Scrubber
24s/7g range toggle, ±2/±6h adaptive window, klavye nav (←/→/Shift/Home/End/Space), quick-jump (−1s/−6s/−12s/−24s veya −6s/−1g/−3g/−5g/−7g), day-bucket histogram + drill-down.
IncidentsMap.tsx · timeline filter