3.3.11.5. Single ECU Jobs

Software Architecture: Single ECU Jobs Extension arch~sovd-api-single-ecu-jobs
status: draft

Motivation

When a client wants to replace the classical single-ecu-jobs defined in the odx description, it could need the original input/output parameters from those jobs. This API provides access to the data for the single-ecu-jobs, which were present in the original odx at the time of conversion.

Retrieving data

Note

The available data may depend on the currently detected variant, since the ecu jobs are defined for variants.

The following paths will be available within the /components/{ecuName} path:

Single ECU Jobs endpoints

Method

Path

Description

GET

/x-single-ecu-jobs

Retrieves a list of single ecu job items

GET

/x-single-ecu-jobs/{id}

Reads the data for an entry

Read the Single ECU Jobs OpenAPI specification for details: Single ECU Jobs Specification

' SPDX-FileCopyrightText: 2026 Copyright (c) Contributors to the Eclipse Foundation
'
' See the NOTICE file(s) distributed with this work for additional
' information regarding copyright ownership.
'
' This program and the accompanying materials are made available under the
' terms of the Apache License Version 2.0 which is available at
' https://www.apache.org/licenses/LICENSE-2.0
'
' SPDX-License-Identifier: Apache-2.0

@startuml
title Single ECU Jobs

participant Client
participant "HTTP Server\n(Axum)" as HTTP
participant "Security\nMiddleware" as SEC
participant "Single ECU Jobs\nHandler" as HANDLER
participant "Diagnostic\nKernel" as DIAG

== List single ECU jobs ==

Client -> HTTP : GET /components/{ecu}/x-single-ecu-jobs
activate HTTP

HTTP -> SEC : authenticate & authorize
activate SEC
SEC -> HTTP : OK
deactivate SEC

HTTP -> HANDLER : route to single ECU jobs handler
activate HANDLER

HANDLER -> DIAG : list single ECU jobs (variant)
activate DIAG
DIAG -> DIAG : read job definitions\nfrom MDD (variant-dependent)
DIAG -> HANDLER : list of job items
deactivate DIAG

HANDLER -> HTTP : JSON body
deactivate HANDLER

HTTP -> Client : HTTP 200 OK\n{ "items": [ { "id": "...", ... }, ... ] }
deactivate HTTP

== Read single ECU job data ==

Client -> HTTP : GET /components/{ecu}/x-single-ecu-jobs/{id}
activate HTTP

HTTP -> SEC : authenticate & authorize
activate SEC
SEC -> HTTP : OK
deactivate SEC

HTTP -> HANDLER : route to single ECU jobs handler
activate HANDLER

HANDLER -> DIAG : get job data (id, variant)
activate DIAG
DIAG -> DIAG : read job input/output\nparameters from MDD
DIAG -> HANDLER : job data (parameters, metadata)
deactivate DIAG

HANDLER -> HTTP : JSON body
deactivate HANDLER

HTTP -> Client : HTTP 200 OK\n{ "id": "...", "data": { ... } }
deactivate HTTP

@enduml