This document summarizes the HTTP endpoints exposed by the EmION dashboard backend in server.py.
By default:
http://localhost:8420
Returns known scenario definitions from the runtime scenario directory.
Uploads and parses a scenario XML file.
Form field:
file:.xmlfile upload
Typical response fields:
statusidnameeventsnode_countlink_countwlan_node_countbriefingscenario
Loads a parsed scenario into the active scenario manager.
Request body:
- scenario object with
eventsand optional WLAN metadata
Typical response fields:
statuscountbriefingscenario_linksnode_positionsscenario_telemetry
Starts timed scenario execution.
Stops timed scenario execution.
Returns current scenario progress information such as:
- name
- running status
- elapsed time
- executed and pending event counts
Registers a node with the dashboard backend.
Returns current registered node state.
Boots all registered nodes and attaches engines.
Stops all running nodes.
Clears node, engine, module, and scenario state.
Returns current active links. When a scenario is running, the result reflects scenario-managed links.
Sends a bundle between two nodes.
Typical response fields:
- source and destination EIDs
- payload size
- module analysis results
- route plan metadata
Initiates a CFDP file transfer.
The dashboard backend also exposes endpoints for attaching per-node modules. The exact payload handling lives in the backend module-management section of server.py.
Expected external module contract:
GET /healthPOST /analyze
See ../examples/anomaly_detector/README.md for a concrete example.
The dashboard also uses websocket pushes for live events such as:
- network start and stop
- scenario load and start
- bundle sends
- telemetry updates
For most users, the JavaScript client in ../emion/dashboard/static/app.js is the clearest reference for the live event stream.