mirror of
https://github.com/BigBodyCobain/Shadowbroker.git
synced 2026-06-09 07:43:59 +02:00
90c2e90e2c
- Parallelized startup (60s → 15s) via ThreadPoolExecutor - Adaptive polling engine with ETag caching (no more bbox interrupts) - useCallback optimization for interpolation functions - Sliding LAYERS/INTEL edge panels replace bulky Record Panel - Modular fetcher architecture (flights, geo, infrastructure, financial, earth_observation) - Stable entity IDs for GDELT & News popups (PR #63, credit @csysp) - Admin auth (X-Admin-Key), rate limiting (slowapi), auto-updater - Docker Swarm secrets support, env_check.py validation - 85+ vitest tests, CI pipeline, geoJSON builder extraction - Server-side viewport bbox filtering reduces payloads 80%+ Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Former-commit-id: f2883150b5bc78ebc139d89cc966a76f7d7c0408
27 lines
554 B
Python
27 lines
554 B
Python
from pydantic import BaseModel
|
|
from typing import Optional, Dict, List, Any
|
|
|
|
|
|
class HealthResponse(BaseModel):
|
|
status: str
|
|
last_updated: Optional[str] = None
|
|
sources: Dict[str, int]
|
|
freshness: Dict[str, str]
|
|
uptime_seconds: int
|
|
|
|
|
|
class RefreshResponse(BaseModel):
|
|
status: str
|
|
|
|
|
|
class AisFeedResponse(BaseModel):
|
|
status: str
|
|
ingested: int = 0
|
|
|
|
|
|
class RouteResponse(BaseModel):
|
|
orig_loc: Optional[list] = None
|
|
dest_loc: Optional[list] = None
|
|
origin_name: Optional[str] = None
|
|
dest_name: Optional[str] = None
|