Real-time geospatial OSINT intelligence dashboard
Find a file
Sirius DevOps 1f23083351 feat(vessels): VesselAPI quota-capped AIS poller for Middle East blind spot
Add a server-side REST poller for VesselAPI (free tier 150 calls/mo) that
upserts last-known positions into the shared vessel_last_known store when
AISStream is unset. Default box is the Strait of Hormuz (span 3.6 <= 4 deg),
never CONUS/NC (AISStream owns US coasts).

- app/vesselapi.py: worker loop, 4deg span validator, position->marker
  transform (skip suspected_glitch), durable Postgres daily-quota table.
- Local hard cap 5 successful 2xx/UTC day (VESSELAPI_MAX_CALLS_PER_DAY),
  monthly floor from X-RateLimit-Remaining, single request limit=50, no
  nextToken, no filter.sat, no retry-storm.
- keystore VESSELAPI_API_KEY registry entry; config + compose env passthrough
  (app + ingest); wired next to AISStream in main.py lifespan + run_ingester.
- GET /api/vessels docstring notes AISStream and/or VesselAPI cache.
- tests/test_vesselapi.py: 20 unit tests (no network/DB).
2026-08-29 00:18:54 -04:00
.forgejo/workflows fix(ci): recreate named compose containers without collisions 2026-08-28 20:36:03 -04:00
alembic feat: 23:00 daily news recap; prompts drop futures 2026-08-28 22:53:31 -04:00
app feat(vessels): VesselAPI quota-capped AIS poller for Middle East blind spot 2026-08-29 00:18:54 -04:00
deploy fix: pipeline reliability — WS, summarizer, ingest, health 2026-08-28 21:49:05 -04:00
docs fix: stop summarizer from bailing to a canned empty brief 2026-08-28 23:20:40 -04:00
news fix: stop summarizer from bailing to a canned empty brief 2026-08-28 23:20:40 -04:00
scripts fix(ci): recreate named compose containers without collisions 2026-08-28 20:36:03 -04:00
tests feat(vessels): VesselAPI quota-capped AIS poller for Middle East blind spot 2026-08-29 00:18:54 -04:00
.dockerignore Containerize for Pi: env-var config, compose stack, CI workflow 2026-07-07 17:50:51 -04:00
.env.example feat(vessels): VesselAPI quota-capped AIS poller for Middle East blind spot 2026-08-29 00:18:54 -04:00
.gitignore Add NASA FIRMS active-fire ingest + /api/fires; API keys management page 2026-08-24 15:37:42 -04:00
alembic.ini Containerize for Pi: env-var config, compose stack, CI workflow 2026-07-07 17:50:51 -04:00
docker-compose.yml feat(vessels): VesselAPI quota-capped AIS poller for Middle East blind spot 2026-08-29 00:18:54 -04:00
Dockerfile cameras: RTSP preview via ffmpeg, stop opening VLC, drop masscan to 200pps 2026-08-24 23:36:34 -04:00
Dockerfile.pg Fix Dockerfile.pg: mkdir conf.d before writing timescaledb preload 2026-07-07 18:17:31 -04:00
IDEA.md ci: retrigger deploy (previous run raced the force-push) 2026-08-27 17:42:03 -04:00
pytest.ini fix: pipeline reliability — WS, summarizer, ingest, health 2026-08-28 21:49:05 -04:00