Add Simulation Control to the HTTP API
Summary
Feedback from a simulation is currently only accessible through direct output from the Mark service and in Elasticsearch. In order for warnings and error messages in particular to be visible directly in the frontend or GUI, Jarvis must selectively make them available to the corresponding clients.
This should preferably be available via a simulation/status endpoint in Jarvis' HTTP API.
For this, we should use Elasticsearch, which is already on the stack:
- Logs are sent directly to Elastic via a special handler.
- Log files are being removed.
- API endpoint
simulation/statusfor queries on entries in Elastic, e.g., with timestamps for the desired time range. - [Optional] An
event_streamendpoint for data stream queries from Elastic.
The main benefit of this approach is that simulation events are persisted in very well suited database from which they can be queried efficiently in order to be displayed on a frontend.
Accordingly, via another simulation/simulation endpoint, it should be possible to start and/or abort a simulation (s. attachment for the data flow concept).