From 4f2cc0bc97532ac996689fb3a9a59110187041df Mon Sep 17 00:00:00 2001 From: Tim Kliefoth Date: Mon, 3 Nov 2025 10:19:22 +0100 Subject: [PATCH 1/4] docs: first draft mvp scope --- docs/design/mvp.md | 81 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 docs/design/mvp.md diff --git a/docs/design/mvp.md b/docs/design/mvp.md new file mode 100644 index 0000000..faf39bd --- /dev/null +++ b/docs/design/mvp.md @@ -0,0 +1,81 @@ + + +# OpenSOVD MVP Roadmap + +This document defines the MVP scope for OpenSOVD to realize an end-to-end diagnostic stack by end of 2026. +The core idea is to provide a useable stack first and iterate on features later. + +## Context + +S-CORE aims to provide a first version of the entire stack by end of 2026. +To integrate OpenSOVD into S-CORE as its diagnostic solution we need to define the scope +and roadmap of a MVP scope of OpenSOVD that S-CORE can use for its v1.0. + +## Use-cases + +Following use-cases shall be supported by the MVP. + +1. Read current and stored DTCs through the SOVD API, filtered by ECU/component. +2. Report new faults from platform and app components via the Fault API and see them appear in SOVD. +3. Clear DTCs (single or batch) over SOVD with proper authorization checks. +4. Retrieve ECU- and app-level metadata (HW revision, SW version) via SOVD. +5. Push configuration updates to a component through SOVD, backed by the S-CORE configuration service. +6. Reach an UDS ECU through the Classic Diagnostic Adapter, at least for read/clear DTC paths. + +## Requirements + +The following requirements enable the MVP use-cases. +The requirements are formulated loosly as part of this document and will need to be moved to an appropriate place later on. + +1. Provide a minimal Diagnostic Fault Manager with persistent storage (DTC state, fault metadata, catalog version). +2. Supply the Fault Library to S-CORE components, including catalog ingestion, debounce, and reset policy handling. +3. Expose an SOVD server that supports authentication, DTC read/clear, and metadata endpoints backed by the DFM. +4. Integrate the S-CORE configuration system so SOVD requests can read/write named configuration sets. +5. Deliver a Classic Diagnostic Adapter that proxies core UDS services (read DTC, clear DTC, ECU metadata) into SOVD. +6. Ensure transport reliability: retryable Fault API submission path and clear semantics in the DFM. +7. Ship a reference tester flow (script) that exercises the end-to-end stack against a demo ECU layout. + +## High-level timeline + +### 25Q4 + +- Baseline architecture alignment with S-CORE (interfaces, IPC schema). + +### 26Q1 + +- Fault Library MVP in place, including sample component and generated catalog tooling. +- Prototype DFM with in-memory store and SOVD stub endpoints for DTC read. +- Decision on persistence backend and security primitives (cert handling, auth flow). + +### 26Q2 + +- Persistence layer implemented (DTC store, metadata store) and wired into the DFM. +- SOVD server delivers read/paginate DTCs, component metadata, and supports authenticated sessions. +- Fault API to DFM integration hardened (debounce/reset policies, catalog version checks). +- Initial Classic Diagnostic Adapter tested with SOVD Server. + +### 26Q3 + +- Configuration round-trip: SOVD -> configuration service -> sample component. +- Clear DTC flow including reset policies, transactional updates, and auditing. +- End-to-end demo vehicle layout (mixed SOVD/UDS ECUs), also for component testing. + +### 26Q4 + +- Security and robustness: certificate handling, rate limits, logging, observability. +- Documentation: integrator guide, tester instructions. +- Performance validation on S-CORE reference hardware and readiness for S-CORE v1.0 release. From b9c7fc2f1d2ba1428e418aca3670f85bd29c55c4 Mon Sep 17 00:00:00 2001 From: Tim Kliefoth Date: Mon, 3 Nov 2025 13:34:30 +0100 Subject: [PATCH 2/4] docs: update mvp roadmap after feedback --- docs/design/mvp.md | 45 +++++++++++++++++++++++---------------------- 1 file changed, 23 insertions(+), 22 deletions(-) diff --git a/docs/design/mvp.md b/docs/design/mvp.md index faf39bd..5c7907c 100644 --- a/docs/design/mvp.md +++ b/docs/design/mvp.md @@ -30,52 +30,53 @@ and roadmap of a MVP scope of OpenSOVD that S-CORE can use for its v1.0. Following use-cases shall be supported by the MVP. 1. Read current and stored DTCs through the SOVD API, filtered by ECU/component. -2. Report new faults from platform and app components via the Fault API and see them appear in SOVD. -3. Clear DTCs (single or batch) over SOVD with proper authorization checks. -4. Retrieve ECU- and app-level metadata (HW revision, SW version) via SOVD. -5. Push configuration updates to a component through SOVD, backed by the S-CORE configuration service. -6. Reach an UDS ECU through the Classic Diagnostic Adapter, at least for read/clear DTC paths. +1. Report new faults from platform and app components via the Fault API and see them appear in SOVD. +1. Clear DTCs over SOVD. +1. Reach an UDS ECU through the Classic Diagnostic Adapter, at least for read/clear DTC paths. +1. Diagnostic service can be triggered via SOVD. +1. OPTIONAL: Retrieve ECU- and app-level metadata (HW revision, SW version) via SOVD. +1. OPTIONAL: Read/write component configuration through SOVD, backed by the S-CORE configuration service. ## Requirements The following requirements enable the MVP use-cases. The requirements are formulated loosly as part of this document and will need to be moved to an appropriate place later on. -1. Provide a minimal Diagnostic Fault Manager with persistent storage (DTC state, fault metadata, catalog version). -2. Supply the Fault Library to S-CORE components, including catalog ingestion, debounce, and reset policy handling. -3. Expose an SOVD server that supports authentication, DTC read/clear, and metadata endpoints backed by the DFM. -4. Integrate the S-CORE configuration system so SOVD requests can read/write named configuration sets. -5. Deliver a Classic Diagnostic Adapter that proxies core UDS services (read DTC, clear DTC, ECU metadata) into SOVD. -6. Ensure transport reliability: retryable Fault API submission path and clear semantics in the DFM. -7. Ship a reference tester flow (script) that exercises the end-to-end stack against a demo ECU layout. +1. Provide a minimal Diagnostic Fault Manager with persistent storage (DTC state, catalog version). +1. Supply the Fault Library to S-CORE components, including catalog ingestion. +1. Expose an SOVD server that supports DTC read/clear, trigger service and connection to Classic Diagnostic Adapter. +1. Deliver a Classic Diagnostic Adapter that proxies core UDS services (read DTC, clear DTC) into SOVD. +1. Ship a reference tester flow (script) that exercises the end-to-end stack against a demo ECU layout. +1. Create a concept of how security and IAM can be implemented by the integrator. +1. OPTIONAL: Integrate the S-CORE configuration system so SOVD requests can read/write named configuration sets. ## High-level timeline ### 25Q4 -- Baseline architecture alignment with S-CORE (interfaces, IPC schema). +- Baseline architecture alignment with S-CORE (interfaces, IPC schema, persistency, roadmap, scope). +- Base concept for SOVD Server aligned. ### 26Q1 -- Fault Library MVP in place, including sample component and generated catalog tooling. +- Fault Library MVP in place, including sample component and catalog handling. - Prototype DFM with in-memory store and SOVD stub endpoints for DTC read. -- Decision on persistence backend and security primitives (cert handling, auth flow). +- Decision on persistence backend and security concept to enable integration specific security extension. ### 26Q2 -- Persistence layer implemented (DTC store, metadata store) and wired into the DFM. -- SOVD server delivers read/paginate DTCs, component metadata, and supports authenticated sessions. -- Fault API to DFM integration hardened (debounce/reset policies, catalog version checks). -- Initial Classic Diagnostic Adapter tested with SOVD Server. +- Persistence layer implemented (DTC store) and wired into the DFM. +- SOVD server delivers read/paginate DTCs. +- Fault API to DFM integration hardened (catalog version checks). +- Classic Diagnostic Adapter connected to SOVD Server. ### 26Q3 -- Configuration round-trip: SOVD -> configuration service -> sample component. -- Clear DTC flow including reset policies, transactional updates, and auditing. +- Clear DTC flow. - End-to-end demo vehicle layout (mixed SOVD/UDS ECUs), also for component testing. ### 26Q4 -- Security and robustness: certificate handling, rate limits, logging, observability. +- Robustness: rate limits, logging, observability. - Documentation: integrator guide, tester instructions. - Performance validation on S-CORE reference hardware and readiness for S-CORE v1.0 release. From 36a1eeb898a4e5af33ef07f8e054d21ea9091d66 Mon Sep 17 00:00:00 2001 From: Tim Kliefoth Date: Fri, 21 Nov 2025 09:52:53 +0100 Subject: [PATCH 3/4] docs: update mvp roadmap per feedback --- ...nSOVD-design-highlevel-scope-v1.drawio.svg | 1352 +++++++++++++++++ docs/design/mvp.md | 25 +- 2 files changed, 1369 insertions(+), 8 deletions(-) create mode 100644 docs/design/_assets/OpenSOVD-design-highlevel-scope-v1.drawio.svg diff --git a/docs/design/_assets/OpenSOVD-design-highlevel-scope-v1.drawio.svg b/docs/design/_assets/OpenSOVD-design-highlevel-scope-v1.drawio.svg new file mode 100644 index 0000000..f36fdbe --- /dev/null +++ b/docs/design/_assets/OpenSOVD-design-highlevel-scope-v1.drawio.svg @@ -0,0 +1,1352 @@ + + + + + + + + + + + + + + + + + + + + +
+
+
+ SOVD Server +
+
+
+
+ + SOVD Server + +
+
+
+ + + + + + + +
+
+
+ SOVD Client (core, CLI tool) +
+
+
+
+ + SOVD Client (core, C... + +
+
+
+ + + + + + + +
+
+
+ UDS2SOVD +
+ Proxy +
+
+
+
+
+ + UDS2SOVD... + +
+
+
+ + + + + + + + + + + +
+
+
+ Classic Diagnostic +
+ Adapter +
+
+
+
+
+ + Classic Diagnostic... + +
+
+
+ + + + + + + +
+
+
+ Service App +
+ (Sample) +
+
+
+
+
+ + Service App... + +
+
+
+ + + + + + + +
+
+
+ Rest of Vehicle UDS (Mocked) +
+
+
+
+ + Rest of Vehicle UDS... + +
+
+
+ + + + + + + +
+
+
+ Rest of Vehicle SOVD +
+
+
+
+ + Rest of Vehicle SOVD + +
+
+
+ + + + + + + +
+
+
+ SOVD Gateway +
+ (Minimal) +
+
+
+
+
+ + SOVD Gateway... + +
+
+
+ + + + + + + +
+
+
+ UDS Tester +
+
+
+
+ + UDS Tester + +
+
+
+ + + + + + + +
+
+
+ Flash Service App +
+
+
+
+ + Flash Service App + +
+
+
+ + + + + + + + + +
+
+
+ IPC +
+
+
+
+ + IPC + +
+
+
+ + + + + + + + + +
+
+
+ IPC +
+
+
+
+ + IPC + +
+
+
+ + + + + + + + + +
+
+
+ IPC +
+
+
+
+ + IPC + +
+
+
+ + + + + + + + +
+
+
+ Extends +
+
+
+
+ + Extends + +
+
+
+ + + + + + + + + +
+
+
+ SOVD +
+
+
+
+ + SOVD + +
+
+
+ + + + + + + + + +
+
+
+ SOVD +
+
+
+
+ + SOVD + +
+
+
+ + + + + + + + + +
+
+
+ UDS +
+
+
+
+ + UDS + +
+
+
+ + + + + + + + + +
+
+
+ SOVD +
+
+
+
+ + SOVD + +
+
+
+ + + + + + + + + +
+
+
+ SOVD +
+
+
+
+ + SOVD + +
+
+
+ + + + + + + + + +
+
+
+ UDS +
+
+
+
+ + UDS + +
+
+
+ + + + + + + + + +
+
+
+ SOVD +
+
+
+
+ + SOVD + +
+
+
+ + + + + + + + +
+
+
+ odx +
+
+
+
+ + odx + +
+
+
+ + + + + + + +
+
+
+ Out of scope +
+
+
+
+ + Out of scope + +
+
+
+ + + + + + + +
+
+
+ In scope OpenSOVD +
+
+
+
+ + In scope Open... + +
+
+
+ + + + + + + +
+
+
+ + Legend + +
+
+
+
+ + Legend + +
+
+
+ + + + + + + + +
+
+
+ configures +
+
+
+
+ + configures + +
+
+
+ + + + + + + + +
+
+
+ file +
+
+
+
+ + file + +
+
+
+ + + + + + + + +
+
+
+ DB +
+
+
+
+ + DB + +
+
+
+ + + + + + + +
+
+
+ App/FEO activity +
+
+
+
+ + App/FEO act... + +
+
+
+ + + + + + + +
+
+
+ + OpenSOVD High Level Scope v1.0 + +
+
+
+
+ + OpenSOVD... + +
+
+
+ + + + + + + + + +
+
+
+ IPC +
+
+
+
+ + IPC + +
+
+
+ + + + + + + + +
+
+
+ odx +
+
+
+
+ + odx + +
+
+
+ + + + + + + + +
+
+
+ configures +
+
+
+
+ + configures + +
+
+
+ + + + + + + + + +
+
+
+ HPC +
+
+
+
+ + HPC + +
+
+
+ + + + + + + +
+
+
+ App +
+
+
+
+ + App + +
+
+
+ + + + + + + +
+
+
+ Configuration Manager +
+
+
+
+ + Configuration Manager + +
+
+
+ + + + + + + +
+
+
+ Authentication Manager +
+
+
+
+ + Authentication Manag... + +
+
+
+ + + + + + + +
+
+
+ Crypto +
+
+
+
+ + Crypto + +
+
+
+ + + + + + + + + +
+
+
+ IPC +
+
+
+
+ + IPC + +
+
+
+ + + + + + + + +
+
+
+ IPC +
+
+
+
+ + IPC + +
+
+
+ + + + + + + +
+
+
+ Diagnostic Fault Manager +
+
+
+
+ + Diagnostic Fault Man... + +
+
+
+ + + + + + + + +
+
+
+ Diagnostic DB +
+
+
+
+ + Diagnostic... + +
+
+
+ + + + + + + + +
+
+
+ IPC +
+
+
+
+ + IPC + +
+
+
+ + + + + + + + +
+
+
+ IPC +
+
+
+
+ + IPC + +
+
+
+ + + + + + + + + +
+
+
+ IPC +
+
+
+
+ + IPC + +
+
+
+ + + + + + + +
+
+
+ Persistency +
+
+
+
+ + Persistency + +
+
+
+ + + + + + + + +
+
+
+ Use +
+
+
+
+ + Use + +
+
+
+ + + + + + + +
+
+
+ Fault lib +
+
+
+
+ + Fault lib + +
+
+
+ + + + + + + +
+
+
+ Activity +
+
+
+
+ + Activity + +
+
+
+ + + + + + + +
+
+
+ Fault lib +
+
+
+
+ + Fault lib + +
+
+
+ + + + + + + +
+
+
+ Logging +
+
+
+
+ + Logging + +
+
+
+ + + + + + + + +
+
+
+ Use +
+
+
+
+ + Use + +
+
+
+ + + + + + + +
+
+
+ Activity +
+
+
+
+ + Activity + +
+
+
+ + + + + + + +
+
+
+ Fault lib +
+
+
+
+ + Fault lib + +
+
+
+ + + + + + + + +
+
+
+ IPC +
+
+
+
+ + IPC + +
+
+
+ + + + + + + + +
+
+
+ catalogue +
+
+
+
+ + catalogue + +
+
+
+ + + + + + + + +
+
+
+ configures +
+
+
+
+ + configures + +
+
+
+ + + + + + + + +
+
+
+ defines +
+
+
+
+ + defines + +
+
+
+ + + + + + + +
+
+
+ Partially in scope v1.0 +
+
+
+
+ + Partially in... + +
+
+
+ + + + + + + +
+
+
+ Connection for v1 +
+
+
+
+ + Connection... + +
+
+
+ + + + +
+ + + + + Text is not SVG - cannot display + + + +
\ No newline at end of file diff --git a/docs/design/mvp.md b/docs/design/mvp.md index 5c7907c..b4cd97e 100644 --- a/docs/design/mvp.md +++ b/docs/design/mvp.md @@ -17,7 +17,7 @@ # OpenSOVD MVP Roadmap This document defines the MVP scope for OpenSOVD to realize an end-to-end diagnostic stack by end of 2026. -The core idea is to provide a useable stack first and iterate on features later. +The core idea is to provide an end-to-end useable stack with reduced feature-set first and increase feature scope later. ## Context @@ -29,11 +29,11 @@ and roadmap of a MVP scope of OpenSOVD that S-CORE can use for its v1.0. Following use-cases shall be supported by the MVP. -1. Read current and stored DTCs through the SOVD API, filtered by ECU/component. -1. Report new faults from platform and app components via the Fault API and see them appear in SOVD. +1. Read DTCs through the SOVD API. +1. Report new faults from platform and app components via the Fault API and handle them in the DFM. 1. Clear DTCs over SOVD. 1. Reach an UDS ECU through the Classic Diagnostic Adapter, at least for read/clear DTC paths. -1. Diagnostic service can be triggered via SOVD. +1. A sample Diagnostic service can be triggered via SOVD (Diagnostic service = a function which can be triggered via SOVD). 1. OPTIONAL: Retrieve ECU- and app-level metadata (HW revision, SW version) via SOVD. 1. OPTIONAL: Read/write component configuration through SOVD, backed by the S-CORE configuration service. @@ -47,9 +47,18 @@ The requirements are formulated loosly as part of this document and will need to 1. Expose an SOVD server that supports DTC read/clear, trigger service and connection to Classic Diagnostic Adapter. 1. Deliver a Classic Diagnostic Adapter that proxies core UDS services (read DTC, clear DTC) into SOVD. 1. Ship a reference tester flow (script) that exercises the end-to-end stack against a demo ECU layout. -1. Create a concept of how security and IAM can be implemented by the integrator. +1. Create a concept of how security and IAM can be implemented by the integrator. (Secure Diagnostics on SOVD with Secure Diagnostic communication / authentication / roles + right management) 1. OPTIONAL: Integrate the S-CORE configuration system so SOVD requests can read/write named configuration sets. +## High level scope + +OpenSOVD Scope v1: + +- blue boxes: partially in scope (not full feature set as described above) +- red lines: connections in scope + +![High Level Design](_assets/OpenSOVD-design-highlevel-scope-v1.drawio.svg) + ## High-level timeline ### 25Q4 @@ -67,13 +76,13 @@ The requirements are formulated loosly as part of this document and will need to - Persistence layer implemented (DTC store) and wired into the DFM. - SOVD server delivers read/paginate DTCs. -- Fault API to DFM integration hardened (catalog version checks). -- Classic Diagnostic Adapter connected to SOVD Server. +- Fault Lib to DFM integration hardened (catalog version checks). +- Classic Diagnostic Adapter connected to SOVD Server (via Gateway). ### 26Q3 - Clear DTC flow. -- End-to-end demo vehicle layout (mixed SOVD/UDS ECUs), also for component testing. +- End-to-end demo vehicle layout (mixed SOVD/UDS ECUs), also for component testing. Using docker network as a development environment. ### 26Q4 From 3b71edc4edd196bf8de77ef39f8a16ab116e8421 Mon Sep 17 00:00:00 2001 From: Tim Kliefoth Date: Tue, 25 Nov 2025 12:54:10 +0100 Subject: [PATCH 4/4] chore: fix pre-commit error --- .../_assets/OpenSOVD-design-highlevel-scope-v1.drawio.svg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/design/_assets/OpenSOVD-design-highlevel-scope-v1.drawio.svg b/docs/design/_assets/OpenSOVD-design-highlevel-scope-v1.drawio.svg index f36fdbe..2cdcc36 100644 --- a/docs/design/_assets/OpenSOVD-design-highlevel-scope-v1.drawio.svg +++ b/docs/design/_assets/OpenSOVD-design-highlevel-scope-v1.drawio.svg @@ -1349,4 +1349,4 @@ - \ No newline at end of file +