Summary
Meshtastic packet ingest v1 used unscoped URLs (POST /api/raw-packet/, /api/nodes/) that predate the current packets app layout. v2 uses observer-scoped routes:
POST /api/packets/{node_id}/ingest/
POST /api/packets/{node_id}/nodes/
OpenAPI now documents v2 paths and marks POST /raw-packet/ as deprecated (SP-01 #308). v1 is not registered in the current Django urlconf (Meshflow/urls.py → packets.urls only exposes {node_id}/ingest/ and {node_id}/nodes/).
Goal
Formally retire v1 on the API side and coordinate with meshflow-bot dropping STORAGE_API_VERSION=1 (see linked bot issue).
Scope (API)
Out of scope
- URL prefix rename
/api/packets/ → /api/meshtastic/ (meshcore rename SP-03+)
- MeshCore ingest (
/api/meshcore/packets/ingest/)
Related
Summary
Meshtastic packet ingest v1 used unscoped URLs (
POST /api/raw-packet/,/api/nodes/) that predate the currentpacketsapp layout. v2 uses observer-scoped routes:POST /api/packets/{node_id}/ingest/POST /api/packets/{node_id}/nodes/OpenAPI now documents v2 paths and marks
POST /raw-packet/as deprecated (SP-01 #308). v1 is not registered in the current Django urlconf (Meshflow/urls.py→packets.urlsonly exposes{node_id}/ingest/and{node_id}/nodes/).Goal
Formally retire v1 on the API side and coordinate with meshflow-bot dropping
STORAGE_API_VERSION=1(see linked bot issue).Scope (API)
/api/raw-packet/(or document explicit redirect shim if required during transition)docs/features/packet-ingestion/, deploy examples) to state v2-onlyPOST /raw-packet/fromopenapi.yaml(or keep stub only if a compat redirect remains)Out of scope
/api/packets/→/api/meshtastic/(meshcore rename SP-03+)/api/meshcore/packets/ingest/)Related