forked from eclipse-opensovd/opensovd
-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
Description
Beschreibung
Fuer asynchrone Operationen (ISO 17978-3, Kapitel 7.9) fehlen die Routen GET und DELETE auf /operations/{service}/executions/{id}. Aktuell existiert nur GET/POST auf /operations/{service}/executions (Listing und Start), aber der Client kann den Status einer laufenden Execution nicht abfragen und sie nicht abbrechen.
Betroffene Dateien
cda-sovd/src/sovd/mod.rs— Route-Registrierung (Zeile 438-448)cda-sovd/src/sovd/components/ecu/operations/— Handler-Logikcda-sovd-interfaces/src/components/ecu/operations.rs— Interface-Definitionen
Implementierungs-Tasks
- Route
GET /operations/{service}/executions/{id}registrieren - Route
DELETE /operations/{service}/executions/{id}registrieren - GET Handler: Status der laufenden Execution zurueckgeben (pending/running/completed/failed)
- GET Handler: Bei abgeschlossener Execution das Ergebnis zurueckgeben
- DELETE Handler: Laufende Execution abbrechen (ggf. UDS StopRoutine SID 31 SF 02)
- DELETE Handler: Abgeschlossene Execution aus Speicher entfernen
- OpenAPI-Dokumentation fuer beide Endpoints
- Execution-Lifecycle State Machine (Created -> Running -> Completed/Failed/Cancelled)
Unit Tests (Pflicht)
- Test: GET auf laufende Execution -> Status 200 mit progress
- Test: GET auf abgeschlossene Execution -> Status 200 mit Ergebnis
- Test: GET auf nicht-existierende Execution -> Status 404
- Test: DELETE auf laufende Execution -> Status 200, Operation gestoppt
- Test: DELETE auf abgeschlossene Execution -> Status 200, Cleanup
- Test: DELETE auf nicht-existierende Execution -> Status 404
- Test: Parallele GET-Requests auf gleiche Execution
- Test: GET nach DELETE -> Status 404
CrossCheck & Constraints
- Pruefung gegen ISO 17978-3 Kapitel 7.9 (Asynchronous Operations)
- Constraint: Execution-ID muss UUID v4 Format haben
- Constraint: Abgebrochene Executions muessen UDS StopRoutine senden
- Constraint: Execution-Status muss konsistent sein (kein Race Condition)
- Regressionstests: Bestehende sync Operations duerfen nicht brechen
Security Audit
- Execution-ID darf nicht erratbar sein (UUID v4 Randomness)
- Nur der Lock-Holder darf DELETE ausfuehren
- GET darf keine sensiblen UDS-Response-Daten an unauthorisierte Clients leaken
- Memory-Leak Prevention: Abgeschlossene Executions muessen nach Timeout bereinigt werden
Zeitschaetzung
| Aufwand | |
|---|---|
| Konventioneller Entwickler | 2 PT |
| KI-Agent | 0.5 PT |
Reactions are currently unavailable