Bosch IoT Rollouts

SOUP Domain model

The System Software Update extension is currently under development. The provided documentation aims to give insights into the general concepts of the future offering. However, details including APIs may be subject to change.

Table of contents:

Domain model diagram

The System software update domain model extends the Bosch IoT Rollouts data model with entities required to update systems.

images/confluence/download/attachments/3958023847/soup-domain-model-version-3-modificationdate-1712053850000-api-v2.png

Entities

System

A system is a collection of interconnected modules that can be updated using a special module called a gateway. Each system is assigned a unique ID and is created based on a System Report. If the configuration of modules changes, the system identification algorithm determines whether the existing system should be updated or marked as outdated, resulting in the creation of a new system.

For more details about the recipe refer to SOUP System.

Module

A module, also known as a target in Bosch IoT Rollouts terminology, represents a device within a system that can be updated or non-updateable. Each module has a module ID and a module type, which is referred to as the Bosch IoT Rollouts target type. Additionally, key-value pairs provided through the System Report are stored as controller attributes and can be used for filtering or matching purposes.

Recipe

A recipe, also known as a system update definition, defines a set of modules that can identify matching systems. It also references the software artifacts to be installed on each module. Finally, the target match section of the recipe describes the desired system state after the recipe has been applied.

There are two representations of a recipe:

  • The management representation is used to provide all the necessary input required by the service to generate the install representation.

  • The install representation is provided to the systems through the Install API.

Before the recipe is exposed, it goes through a lifecycle from DRAFT, WAITING_FOR_SIGNATURE, RELEASE_CANDIDATE, WAITING_FOR_APPROVAL, and finally to RELEASED.

Module match

Module matches are crucial components of a recipe. They are applied to the properties reported by a system and determine whether the system is compatible with the update defined in the recipe.

For more details about the recipe refer to SOUP Recipe.

System action

A system action represents the software update process of a system. It refers to a recipe and the corresponding Bosch IoT Rollouts actions for the update process of each module as part of the system update. The list of system actions of a system represents its update history.

Reports

System report

A system report serves as a comprehensive source of information regarding all modules within the system, including the gateway. This report plays a crucial role in determining whether a new system should be created or if the information of an existing system needs to be updated.

For more details about the system report refer to System report and identification.

Update report

An update report serves as the source of information regarding an applied recipe, specifically a system update. This report provides essential details such as the name of the applied recipe, the overall status of the update, and any relevant logs or debug information. Based on the update report, a corresponding system action and module actions are generated, resulting in the state of the system and its modules being successfully updated.

For more details about the system report refer to Update report and status.