mirror of
https://github.com/azaion/gps-denied-onboard.git
synced 2026-06-21 10:31:13 +00:00
[AZ-701] HTTP replay API service (FastAPI + magic-byte upload validation)
ci/woodpecker/push/02-build-push Pipeline failed
ci/woodpecker/push/02-build-push Pipeline failed
New replay_api component: FastAPI service wrapping the offline
gps-denied-replay pipeline. POST tlog+video (multipart) → either
sync 200 with result/map/report URLs, or async 202 + job id with
/jobs/{id} polling. Magic-byte validation, bearer auth, in-memory
JobRegistry with concurrency + queue caps (429 on overflow).
Helper accuracy_report.py promoted from tests/ to src/ because the
API needs the Markdown report writer at runtime; all AZ-699 imports
re-pointed. OpenAPI spec exported to docs.
18/18 unit tests pass (AC-1 sync, AC-2 async, AC-3 state machine,
AC-5 auth, AC-6 health, AC-8 concurrency, AC-9 magic-byte). Full
unit suite: 2251 pass, 86 skip, 1 pre-existing C12 cold-start flake
(unchanged). mypy --strict clean on the new surface.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
+11
-5
@@ -130,18 +130,24 @@ telemetry = [
|
||||
"jetson-stats>=4.2",
|
||||
"pynvml>=11.5",
|
||||
]
|
||||
# AZ-700: operator-side post-flight analysis tools. NOT installed on
|
||||
# the airborne binary (folium pulls ~5 MB of JS + Leaflet assets that
|
||||
# regress the cold-start NFR if pulled into the runtime image).
|
||||
# Activate with `pip install gps-denied-onboard[operator-tools]` on
|
||||
# a developer / analyst workstation.
|
||||
# AZ-700 / AZ-701: operator-side post-flight analysis tools. NOT
|
||||
# installed on the airborne binary (folium + FastAPI + uvicorn add
|
||||
# ~30 MB of deps + Leaflet assets that regress the cold-start NFR
|
||||
# if pulled into the runtime image). Activate with
|
||||
# `pip install gps-denied-onboard[operator-tools]` on a developer
|
||||
# / analyst workstation, or build the `docker/replay-api.Dockerfile`
|
||||
# image which installs this extra by default.
|
||||
operator-tools = [
|
||||
"folium>=0.16,<1.0",
|
||||
"fastapi>=0.111,<0.120",
|
||||
"uvicorn>=0.30,<1.0",
|
||||
"python-multipart>=0.0.9,<1.0",
|
||||
]
|
||||
|
||||
[project.scripts]
|
||||
gps-denied-replay = "gps_denied_onboard.cli.replay:main"
|
||||
gps-denied-render-map = "gps_denied_onboard.cli.render_map:main"
|
||||
replay-api = "gps_denied_onboard.cli.replay_api_entrypoint:main"
|
||||
operator-orchestrator = "gps_denied_onboard.components.c12_operator_orchestrator.cli:main"
|
||||
|
||||
[tool.setuptools]
|
||||
|
||||
Reference in New Issue
Block a user