Table of Contents¶
This section describes the various backend Cloud components as part of the Eclipse CSP and how to develop and build them.
Overview¶
Our components are built using a different build ecosystem and are available under the eclipse-ecsp organization on GitHub.
Build Ecosystem and Repository Links¶
Below table highlights the build ecosystem and repository link for each component.
- Docker Images are generated and published to GitHub Container Registry for the
Java
+Maven
components and are available under thepackages
in the repository. - The Device Client, iOS/Android VehicleConnectSDK and iOS/Android VehicleConnectApp artifacts are packaged as a standalone release distribution.
- The following table describes the Eclipse CSP build ecosystem and repositories.
Components | Description | Build Ecosystem | Repository Link |
---|---|---|---|
api-gateway | Provide single entry point for all clients to allow access of backend APIs | Java + Maven |
Link |
hivemq | Extension for HiveMQ Community edition to support lightweight MQTT Broker apt for IOT data communication | Java + Maven |
Link |
vehicle-profile | Responsible for creating and maintaining a profile for each vehicle onboarded to the platform. It stores vehicle-specific details and device information (ECUs, IVI, HU) installed on the vehicle, along with the capabilities and services provisioned for each vehicle-device combination. | Java + Maven |
Link |
device-activation | Device Activation Component provides restful services for activating and reactivating devices like Dongle, HU, TCU and Dashcam; so that these devices can send data to the cloud post activation/reactivation | Java + Maven |
Link |
device-association | The Device Association Component offers RESTful services for linking devices to users, retrieving association details, and managing device states such as termination, suspension, or restoration. | Java + Maven |
Link |
device-factory-management | Handle device data such as Dongle, HU, TCU, and Dashcam. Perform operations like creating, updating, retrieving, or deleting device details in the database. | Java + Maven |
Link |
uidam-authorization-server | Authorization server responsible for managing Identity and Access Management. | Java + Maven |
Link |
uidam-user-management | Manages create, read, update, and delete (CRUD) operations for Identity and Access Management. | Java + Maven |
Link |
device-message | Responsible for sending the configuration to the device whenever there is an update in the configuration. Internal service calls the Device Message API to initiate sending the configuration. The Device Message component sends the configuration to the device using an MQTT channel and the configuration is saved in the Device Shadow collection database. The device client can later retrieve the latest configuration by calling the Device Shadow API also. | Java + Maven |
Link |
device-shadow | The Device-shadow component enables devices to resynchronize their configurations, particularly after disconnection or when their configurations become corrupted. | Java + Maven |
Link |
remote-operations | Provides services for remote operations such as locking/unlocking doors, turning off ignition, and more. | Java + Maven |
Link |
device-client | Edge component for data aggregation. It collects data from deployed devices, validates it, runs edge algorithms, stores the data, and schedules secure uploads to the cloud. | C++ + CMake + APT Linux Distribution |
Link |
ios-vehicle-connect-sdk | Provides an API for Remote Operations and User Authentication, enabling the development of mobile apps using the VehicleConnectSDK. | Swift + IOS Simulator Platform +xcodebuild |
Link |
android-vehicle-connect-sdk | Provides an API for Remote Operations and User Authentication, allowing the development of mobile apps using the VehicleConnectSDK. | Kotlin + Gradle |
Link |
ios-vehicle-connect-app | Sample iOS App for VehicleConnectSDK | Swift + IOS Simulator Platform +xcodebuild |
Link |
android-vehicle-connect-app | Sample Android app for VehicleConnectSDK | Kotlin + Gradle |
Link |
Note: Refer the README
in the Repository Link
column of each row for more information about each repository.
Build Guidelines¶
Refer the build_guidelines.md file for more information about how to build the components.