From a82f4cc9f6a4d7b7223ee55d84941abeb2218bd2 Mon Sep 17 00:00:00 2001 From: Desislava Marinova Date: Mon, 23 Feb 2026 14:47:30 +0200 Subject: [PATCH] Extend hawkBit Documentation (#2920) --- docs/README.md | 130 ++++-- docs/_sidebar.md | 12 +- docs/device-provisioning.md | 505 +++++++++++++++++++++ docs/entity-definitions.md | 260 +++++++++++ docs/features.md | 66 --- docs/graphics-source/rollout_groups.drawio | 156 +++++++ docs/graphics-source/rollouts_load.drawio | 92 ++++ docs/images/rollout.png | Bin 184827 -> 0 bytes docs/images/rollout_groups.png | Bin 0 -> 53297 bytes docs/images/rollout_load.png | Bin 0 -> 20760 bytes docs/management-api.md | 29 +- docs/query-parameters.md | 132 ++++++ 12 files changed, 1270 insertions(+), 112 deletions(-) create mode 100644 docs/device-provisioning.md create mode 100644 docs/entity-definitions.md delete mode 100644 docs/features.md create mode 100644 docs/graphics-source/rollout_groups.drawio create mode 100644 docs/graphics-source/rollouts_load.drawio delete mode 100644 docs/images/rollout.png create mode 100644 docs/images/rollout_groups.png create mode 100644 docs/images/rollout_load.png create mode 100644 docs/query-parameters.md diff --git a/docs/README.md b/docs/README.md index dea2ade9b..6e1019900 100644 --- a/docs/README.md +++ b/docs/README.md @@ -3,43 +3,48 @@ Eclipse hawkBit™ is a domain independent back-end framework for rolling out software updates to constrained edge devices as well as more powerful controllers and gateways connected to IP based networking infrastructure.

- eclipse foundation logo + Eclipse hawkBit Overview

--- ## Interfaces -hawkBit offers a direct device integration via HTTP or a device management federation API which allows to connect devices with different protocol adapter. Users can make use of the graphical user interface and other service can interact with hawkBit through the RESTful management API. +Eclipse hawkBit™ provides three APIs, each designed to support specific integration requirements for device connectivity, device management, and external service federation. + +### Management API + +The Management API is a RESTful interface that allows Create, Read, Update, and Delete (CRUD) operations for provisioning targets (e.g., devices) and repository content (e.g., software). Using the Management API, you can manage and monitor software update processes. It supports JSON payloads with Hypermedia and offers filtering, sorting, and pagination capabilities + +The following sections provide a high-level overview. For in-depth information, including request flows and examples, see the [Management API documentation](#management-api) + +### Direct Device Integration (DDI) API + +The Direct Device Integration (DDI) API is built on HTTP standards and uses a polling-based approach. + +Eclipse hawkBit™ exposes RESTful resources that devices consume to retrieve software update tasks, including artifact partial and resume downloads (RFC7233), and to report back status and feedback. + +The DDI API supports ETag-based traffic optimization, allowing devices to efficiently check for updates without unnecessary data transfer. + +Learn more in the [DDI API documentation](direct-device-integration-api.md) + +### Device Management Federation (DMF) API + +The Device Management Federation (DMF) API enables indirect device integration via a device management service into hawkBit. It is a message-based, asynchronous API optimized for high-throughput cloud service-to-service communication. The DMF API leverages RabbitMQ messaging and provides strong tenant isolation through dedicated AMQP virtual hosts per tenant. + +For a detailed description and usage examples, see the [Device Management Federation (DMF) API documentation](device-management-federation-api.md) --- -## Rollout +## Device Repository -
- -
- -hawkBit supports an easy and flexible rollout management which allows you to update a large amount of devices in separated groups. - -- Cascading start of the deployment groups based on installation status of the previous group. -- Emergency shutdown of the rollout in case a group exceeds the defined error threshold. -- Rollout progress monitoring for the entire rollout and the individual groups. - -
- -
- -Rollout Diagram - -
- -
- ---- - -## Package Model +- **Device State Storage**: The Device Repository manages connected devices (targets) and their state. It allows you to retrieve device details and attributes, maintain descriptions, metadata, tags, and track assigned and installed software versions, including software update status. +- **Tagging**: hawkBit™ allows creating and managing arbitrary tags that can be assigned to devices. These tags become part of the target metadata and can be used as a simple, flexible way to filter and group devices in both the UI and API +- **Filtering and Grouping**: Advanced device management is enabled through Target Filters, which group devices based on query criteria. These filters not only simplify device organization but also support automatic update assignments - for example, newly registered devices that match a filter are automatically assigned the corresponding software update. +## Software Repository +#### Distribution Sets and Software Modules +The software repository organizes and manages software updates. A software update, called a Distribution Set, is composed of one or more Software Modules, each containing multiple artifacts.
@@ -50,9 +55,78 @@ hawkBit supports an easy and flexible rollout management which allows you to upd
-A software update does not always contain only a single file. -The hawkBit meta model allows you to configure your files in virtual software and distribution packages. +**Structure**: +- **Distribution Set**: Complete software package for deployment + - Version controlled + - Can contain multiple software modules + - Distribution set types (OS, Application, Firmware, etc.) +- **Software Module**: Individual software component + - Contains one or more artifacts (files) + - Software module types (customizable) + - Mandatory vs. optional designation +- **Artifact**: Binary files with metadata + - Multiple hash algorithms (MD5, SHA1, SHA256) + - Encryption support + - Signature support
+ +Metadata can be assigned to both Software Modules and Distribution Sets. + +#### Tagging and Filtering +hawkBit™ lets you assign user‑defined tags to Distribution Sets and then filter Distribution Sets using those tags, making it easier to organize and locate updates based on custom criteria. + +#### Locking After Assignment + +To ensure consistency and prevent unintended changes, hawkBit™ supports locking of Distribution Sets after they have been assigned to a target (device or group). When a distribution set is locked, all its software modules are automatically locked, and they cannot be modified until they are unlocked. This provides stability for ongoing deployments, ensuring that the software being rolled out remains consistent throughout the deployment process. + + +#### Required Migration Step Flag + +When creating a Distribution Set, you can set a flag to indicate that applying this update requires a migration step on the device. This is useful for ensuring data migration, configuration changes, or other necessary steps are performed during the update process to ensure a successful transition. + +## Artifact Content Delivery + +The Artifact Content Delivery component manages the storage and delivery of software artifacts to devices. It supports partial and resumable downloads using RFC7233 range requests, allowing devices to efficiently retrieve large files even in unreliable network conditions. The content management is accessible via RESTful APIs and the UI, with authorization based on software assignment to ensure that devices can only download artifacts they are authorized for. + +## Rollout Management + +Rollout Management in Eclipse hawkBit™ is a core feature designed to orchestrate and control the deployment of software updates to large fleets of devices in a safe, flexible, and automated way. + +It enables group-based deployments with configurable success and error thresholds. Groups can cascade based on the status of previous groups. + +Rollout Diagram + +The traditional “big bang” approach updates all devices at once, creating a sharp load spike and risking infrastructure overload, while hawkBit’s phased rollout spreads updates across smaller groups over time, smoothing load and maintaining system stability. + +Rollout Diagram + +Rollouts can be started, paused, resumed, stopped, or retried, with real-time monitoring and emergency stop features. +Devices can be added dynamically, and detailed status tracking is available for each rollout stage. + +To explore software update in greater detail, visit [Rollout Management documentation](rollout-management.md) + +## Reporting and Monitoring + +Eclipse hawkBit™ provides real-time visibility and historical insight into how software updates are rolled out, executed, and completed across large device fleets. Reporting and monitoring are tightly coupled to its rollout and device management model. + +#### Monitoring Features +- **Rollout Progress Tracking**: Monitor deployment stages, group completion, and cascading group triggers +- **Action States**: Track individual device update actions (pending, running, finished, error, canceled) +- **Action History**: Monitor the status of every device via its action history. This action history makes transparent which action happened at which particular time and with its result. +- **Success/Error Thresholds**: Configure and monitor threshold violations that can pause or stop rollouts +- **Device Connectivity**: Track device polling activity, last seen timestamps, and overdue detection +- **Download Progress**: Monitor artifact download status and completion rates + +#### Reporting Channels +- **Management API**: RESTful endpoints for querying device status, action history, and rollout metrics +- **Event System**: Publish events for entity changes, action status updates, target polling, and download progress +- **RabbitMQ Events**: Remote events for distributed monitoring and integration with external tools + +## Authentication & Security + +Eclipse hawkBit™ provides comprehensive authentication and security features to protect devices, management interfaces, and data. All communication is protected using TLS/HTTPS, and update delivery is restricted to authenticated devices. hawkBit also records deployment and action history for traceability and auditing. While it keeps built-in security mechanisms focused and lightweight, hawkBit is designed to integrate easily with external identity, logging, and security systems for production use. + +If you’d like to explore security controls in more detail, check out the [Authentication](authentication.md) and [Authorization](authorization.md) documentation. \ No newline at end of file diff --git a/docs/_sidebar.md b/docs/_sidebar.md index 835cdcb3e..2ff58443e 100644 --- a/docs/_sidebar.md +++ b/docs/_sidebar.md @@ -1,9 +1,9 @@ -- Getting Started - - [Overview](README.md) +- Introduction - [What is hawkBit](what-is-hawkbit.md) + - [Overview](README.md) +- Getting Started - [Quick Start](quick-start.md) - - [Features](features.md) - - [Architecture](architecture.md) + - [Device Provisioning](device-provisioning.md) - Guides - [Base Setup](base-setup.md) @@ -11,12 +11,14 @@ - [Feign Client](feign-client.md) - [Clustering](clustering.md) --Concepts +- Concepts + - [Architecture](architecture.md) - [Authentication](authentication.md) - [Authorization](authorization.md) - [Data model](datamodel.md) - [Rollout management](rollout-management.md) - [Targets state](targetstate.md) + - [Entity definitions](entity-definitions.md) - APIs - [Management API](management-api.md) diff --git a/docs/device-provisioning.md b/docs/device-provisioning.md new file mode 100644 index 000000000..e1a1bef02 --- /dev/null +++ b/docs/device-provisioning.md @@ -0,0 +1,505 @@ +# Device Provisioning + +Device provisioning is the process of registering a device with the hawkBit update server so it can receive software updates. hawkBit supports two main provisioning scenarios: +- **Provisioning and Registration via Management API**: An administrator or backend system register devices in hawkBit before they connect by providing device identification and description. This approach provides centralized control and is ideal for pre-planned deployments. +- **Direct Registration via DDI API**: Devices register themselves automatically when they first connect to hawkBit. This is called auto-registration and is ideal for dynamic environments. + +## Provisioning and Registration via Management API + +In this scenario, an administrator or backend system first provision the device using the Management UI or the [Management API](management-api.md). This is the step where the device identification and description is provided. + +### When to Use + +- Devices are provisioned during manufacturing or warehouse setup +- You need to assign software updates before devices are deployed +- You require strict inventory control +- You want to pre-configure security tokens +- Bulk provisioning of many devices + +### Prerequisites + +- Management API access with appropriate permissions: + - `CREATE_TARGET` - to create targets + - `UPDATE_TARGET` - to modify targets + - `READ_TARGET` - to view targets +- Valid credentials (username/password) for Basic Authentication +- Target Security Token authentication enabled on the server - see [Configuration Properties](#configuration-properties) below + +### Workflow +```mermaid + %%{init: {'theme':'base', 'themeVariables': { + 'primaryColor':'#6BAF4A', + 'primaryTextColor':'#000', + 'primaryBorderColor':'#6BAF4A', + 'lineColor':'#4A2C5C', + 'secondaryColor':'#E8D5F2', + 'tertiaryColor':'#6BAF4A', + 'noteBkgColor':'#F5F5F5', + 'noteTextColor':'#000', + 'noteBorderColor':'#6BAF4A', + 'actorBorder':'#4A2C5C', + 'actorBkg':'#6BAF4A', + 'actorTextColor':'#000', + 'actorLineColor':'#4A2C5C', + 'signalColor':'#4A2C5C', + 'signalTextColor':'#000', + 'labelBoxBkgColor':'#E8D5F2', + 'labelBoxBorderColor':'#6BAF4A', + 'labelTextColor':'#000', + 'loopTextColor':'#000', + 'activationBorderColor':'#4A2C5C', + 'activationBkgColor':'#F5F5F5', + 'sequenceNumberColor':'#FFF' + }}}%% +sequenceDiagram + participant Admin as Admin/Backend System + participant MgmtAPI as Management API
(REST) + participant Server as hawkBit Server + participant DDIAPI as DDI API
(REST) + participant Device as Device + + Note over Admin,Device: Phase 1: Provisioning (Before Device Deployment) + + Admin->>MgmtAPI: POST /rest/v1/targets + Note right of Admin: Create device with:
- controllerId
- name, description
- securityToken (optional)
- requestAttributes + activate MgmtAPI + MgmtAPI->>Server: Create Target Entity + activate Server + Server->>Server: Generate securityToken
(if not provided) + Server->>Server: Set updateStatus:
"registered" + Server-->>MgmtAPI: 201 Created + deactivate Server + MgmtAPI-->>Admin: Target created with
securityToken + deactivate MgmtAPI + + Note over Admin,Device: Phase 2: Device Registration (First Connection) + + Device->>DDIAPI: GET /{tenant}/controller/v1/{controllerId} + Note right of DDIAPI: Authorization:
TargetToken {securityToken} + activate DDIAPI + DDIAPI->>Server: Authenticate & Retrieve Target + activate Server + Server->>Server: Validate securityToken
Update lastControllerRequestAt + Server-->>DDIAPI: Target Configuration + deactivate Server + DDIAPI-->>Device: 200 OK
Polling interval + links + deactivate DDIAPI + Note left of Device: config.polling.sleep
_links.configData + + Note over Admin,Device: Phase 3: Add Device Attributes (Optional) + + Device->>DDIAPI: PUT /{tenant}/controller/v1/{controllerId}/configData + Note right of DDIAPI: Send attributes:
- hwRevision
- VIN
- OS version
mode: "merge" + activate DDIAPI + DDIAPI->>Server: Update Target Attributes + activate Server + Server->>Server: Merge/Replace/Remove
attributes + Server-->>DDIAPI: 200 OK + deactivate Server + DDIAPI-->>Device: Configuration updated + deactivate DDIAPI +``` +### Provisioning + +**Endpoint:** +``` +POST /rest/v1/targets +``` + +**Request Headers:** +```http +Content-Type: application/json +Authorization: Basic +``` + +**Request Body:** +```json +[ + { + "controllerId": "device-12345", + "name": "Production Device 12345", + "description": "Temperature sensor - Building A", + "address": "https://192.168.1.100", + "securityToken": "myCustomToken123456", + "requestAttributes": true, + "targetType": 1 + } +] +``` +See [Target Entity Definition](entity-definitions.md#target) for all available fields. + +**Response:** 201 Created +```json +[ + { + "createdBy": "admin", + "createdAt": 1709212800000, + "lastModifiedBy": "admin", + "lastModifiedAt": 1709212800000, + "controllerId": "device-12345", + "name": "Production Device 12345", + "description": "Temperature sensor - Building A", + "updateStatus": "registered", + "securityToken": "mySecureToken987654321", + "address": "https://192.168.1.100", + "lastControllerRequestAt": 0, + "installedAt": 0, + "_links": { + "self": { + "href": "http://localhost:8080/rest/v1/targets/device-12345" + }, + "assignedDS": { + "href": "http://localhost:8080/rest/v1/targets/device-12345/assignedDS" + }, + "installedDS": { + "href": "http://localhost:8080/rest/v1/targets/device-12345/installedDS" + }, + "attributes": { + "href": "http://localhost:8080/rest/v1/targets/device-12345/attributes" + }, + "actions": { + "href": "http://localhost:8080/rest/v1/targets/device-12345/actions" + } + } + } +] +``` + +### Registration +To complete the whole process, the provisioned device can register itself via the [Direct Device Integration API](direct-device-integration-api.md) using its `controllerId` and `securityToken`. + +**Endpoint:** +``` +GET /{tenant}/controller/v1/{controllerId} +``` + +**Request Headers:** +```http +Authorization: TargetToken mySecureToken987654321 +``` + +**Response:** 200 OK +```json +{ + "config": { + "polling": { + "sleep": "00:05:00" + } + }, + "_links": { + "configData": { + "href": "http://localhost:8080/DEFAULT/controller/v1/device-12345/configData" + } + } +} +``` + +### Add Device Attributes (Optional) + +By following the link to `configData` provided in response to the last call, you can add some attributes to the device. In the code example below, we have shown how to add two attributes, namely hwRevision and VIN. + +**Endpoint:** `PUT {tenant}/controller/v1/{controllerId}/configData` + +**Authentication:** TargetToken + +**Request Headers:** +```http +Content-Type: application/json +Authorization: TargetToken mySecureToken987654321 +``` + +**Request Body:** +```json +{ + "mode": "merge", + "data": { + "hwRevision": "2", + "VIN": "JH4TB2H26CC000000" + } +} +``` + +**Response:** 200 OK +```json +``` + +### Best Practices + +1. **Security Tokens**: Generate strong, unique tokens for each device (at least 32 characters) +2. **Bulk Creation**: Use array notation to create multiple targets in a single request +3. **Target Types**: Use target types to categorize devices (e.g., by hardware model) +4. **Naming Convention**: Use consistent, meaningful naming for `controllerId` (e.g., serial numbers) +5. **Pre-assignment**: Assign distribution sets before devices go online for immediate updates + +--- + +## Direct Registration via Direct Device Integration API + +In this scenario, devices register themselves automatically when they first connect to hawkBit. This is called **auto-registration** and is ideal for dynamic environments. + +### When to Use +- Devices are manufactured without pre-registration +- You have a dynamic fleet with frequent additions +- Gateway devices manage multiple sub-devices +- You prefer decentralized, self-service provisioning +- IoT scenarios with thousands of devices + +### Prerequisites +- Gateway Token authentication enabled on the server: + - Target Security Token mode (per-device tokens), OR + - Gateway Token mode (single token for all devices in a tenant), OR + - Certificate-based authentication (mTLS) +- Device must know its `controllerId` (typically MAC address, serial number, or UUID) + +see [Configuration Properties](#configuration-properties) below for details on how to enable authentication modes. + +### Workflow +```mermaid + %%{init: {'theme':'base', 'themeVariables': { + 'primaryColor':'#6BAF4A', + 'primaryTextColor':'#000', + 'primaryBorderColor':'#6BAF4A', + 'lineColor':'#4A2C5C', + 'secondaryColor':'#E8D5F2', + 'tertiaryColor':'#6BAF4A', + 'noteBkgColor':'#F5F5F5', + 'noteTextColor':'#000', + 'noteBorderColor':'#6BAF4A', + 'actorBorder':'#4A2C5C', + 'actorBkg':'#6BAF4A', + 'actorTextColor':'#000', + 'actorLineColor':'#4A2C5C', + 'signalColor':'#4A2C5C', + 'signalTextColor':'#000', + 'labelBoxBkgColor':'#E8D5F2', + 'labelBoxBorderColor':'#6BAF4A', + 'labelTextColor':'#000', + 'loopTextColor':'#000', + 'activationBorderColor':'#4A2C5C', + 'activationBkgColor':'#F5F5F5', + 'sequenceNumberColor':'#FFF' + }}}%% +sequenceDiagram + participant Device as Device + participant DDIAPI as DDI API
(REST) + participant Server as hawkBit Server + participant MgmtAPI as Management API
(REST) + participant Admin as Admin/Backend System + + Note over Device,Admin: Phase 1: Enable Gateway Token Authentication + + Admin->>MgmtAPI: GET /rest/v1/system/configs/authentication.gatewaytoken.key + Note right of MgmtAPI: Basic Auth:
admin credentials + activate MgmtAPI + MgmtAPI->>Server: Retrieve Gateway Token + activate Server + Server-->>MgmtAPI: Gateway Token Value + deactivate Server + MgmtAPI-->>Admin: Gateway Token:
3nkswAZhX81oDtktq0FF9Pn0Tc0UGXPW + deactivate MgmtAPI + + Note over Device,Admin: Phase 2: Device Auto-Registration (First Connection) + + Device->>DDIAPI: GET /{tenant}/controller/v1/{controllerId} + Note right of DDIAPI: Authorization:
GatewayToken {token} + activate DDIAPI + DDIAPI->>Server: Authenticate & Check Target + activate Server + Server->>Server: Target not found + Server->>Server: Auto-create Target:
- controllerId
- updateStatus: "registered"
- createdBy: "system" + Server->>Server: Generate securityToken
Update lastControllerRequestAt + Server-->>DDIAPI: Target Configuration + deactivate Server + DDIAPI-->>Device: 200 OK
Polling interval + links + deactivate DDIAPI + Note left of DDIAPI: config.polling.sleep
_links.configData + + Note over Device,Admin: Phase 3: Add Device Attributes (Optional) + + Device->>DDIAPI: PUT /{tenant}/controller/v1/{controllerId}/configData + Note right of DDIAPI: Send attributes:
- hw_revision
- os_version
- serial_number
mode: "merge" + activate DDIAPI + DDIAPI->>Server: Update Target Attributes + activate Server + Server->>Server: Merge/Replace/Remove
attributes + Server-->>DDIAPI: 200 OK + deactivate Server + DDIAPI-->>Device: Configuration updated + deactivate DDIAPI +``` + +### Enable Gateway Token Authentication + +All devices share a single token for the tenant. **Use with caution in production.** + +**Enable in system configuration:** +```properties +hawkbit.server.ddi.security.authentication.gatewaytoken.enabled=true +``` + +**Enable in tenant configuration:** +``` +authentication.gatewaytoken.enabled=true +``` + +**Retrieve Gateway Token:** +```bash +curl http://localhost:8080/rest/v1/system/configs/authentication.gatewaytoken.key \ + -u admin:admin +``` + +**Response:** +```json +{ + "value": "3nkswAZhX81oDtktq0FF9Pn0Tc0UGXPW", + "global": false, + "lastModifiedAt": 1770794878411, + "lastModifiedBy": "admin", + "createdAt": 1770794562205, + "createdBy": "admin", + "_links": { + "self": { + "href": "http://localhost:8080/rest/v1/system/configs/authentication.gatewaytoken.key" + } + } +} +``` + +### Device Auto-Registration on First Poll + +The device polls the hawkBit server using its `controllerId`. If the target doesn't exist, hawkBit creates it automatically. + +**Endpoint:** +``` +GET /{tenant}/controller/v1/{controllerId} +``` +**Authentication:** GatewayToken + +**Request Headers:** +```http +Authorization: GatewayToken 3nkswAZhX81oDtktq0FF9Pn0Tc0UGXPW +``` + +**Response:** 200 OK +```json +{ + "config": { + "polling": { + "sleep": "00:05:00" + } + }, + "_links": { + "configData": { + "href": "http://localhost:8080/DEFAULT/controller/v1/device-abc-001/configData" + } + } +} +``` + +### Add Device Attributes (Optional) + +The device can send its attributes (hardware version, OS version, custom data) to hawkBit. + +**Endpoint:** `PUT {tenant}/controller/v1/{controllerId}/configData` + +**Authentication:** GatewayToken + +**Request Headers:** +```http +Content-Type: application/json +Authorization: GatewayToken mySecureToken987654321 +``` + +**Request Body:** +```json +{ + "mode": "merge", + "data": { + "hw_revision": "1.2", + "os_version": "Linux 5.10.0", + "serial_number": "SN123456789", + "mac_address": "00:1A:2B:3C:4D:5E" + } +} +``` +**Modes:** +- `merge`: Merge new attributes with existing ones +- `replace`: Replace all attributes with new data +- `remove`: Remove specified attributes + +**Response:** 200 OK +```json +``` + +### Best Practices + +1. **Authentication**: Use Target Security Tokens or certificates in production; Gateway Tokens only for development +2. **Polling Interval**: Respect the server-provided polling interval to avoid overloading the server +3. **Attributes**: Send detailed device attributes to enable filtering and reporting +4. **Controller ID**: Use persistent, unique identifiers (MAC address, serial number, UUID) +5. **Feedback**: Always send feedback after updates (success/failure) for audit trails +6. **Error Handling**: Implement exponential backoff on connection failures + +--- + +## Comparison: Management API vs DDI API + +| Aspect | Management API Provisioning | DDI Auto-Registration | +|--------|----------------------------|----------------------| +| **Timing** | Before device deployment | On first device connection | +| **Control** | Centralized by admin | Decentralized (device-initiated) | +| **Use Case** | Pre-planned deployments | Dynamic fleet management | +| **Authentication** | Basic Auth (admin credentials) | TargetToken / GatewayToken / mTLS | +| **Security Token** | Set during creation or auto-generated | Auto-generated on registration | +| **Pre-assignment** | Possible before device connects | Only after first poll | +| **Scalability** | Manual or scripted bulk creation | Automatic, scales infinitely | +| **Device Attributes** | Must be set via separate request | Device sends on first connection | +| **Audit Trail** | `createdBy: admin` | `createdBy: system` | + +--- + +## Security Considerations + +### Management API + +1. **Access Control**: Restrict Management API access using role-based permissions +2. **Credentials**: Use strong passwords and consider API keys for automated systems +3. **HTTPS**: Always use HTTPS in production to protect credentials +4. **Token Generation**: Generate cryptographically random security tokens (32+ characters) +5. **Least Privilege**: Grant only necessary permissions (e.g., `CREATE_TARGET` for provisioning systems) + +### DDI API + +1. **Gateway Token**: Never use in production for large deployments; prefer per-device tokens +2. **Token Storage**: Devices should securely store their security tokens (TPM, secure element) +3. **Certificate Auth**: Use mTLS for maximum security in IoT deployments +4. **Token Rotation**: Consider implementing token rotation mechanisms +5. **Auto-Registration**: Disable auto-registration in highly secure environments; use Management API only + +--- + +## Configuration Properties + +### Enable DDI Authentication Modes + +**System-wide (application.properties):** +```properties +# Target Security Token (per-device) +hawkbit.server.ddi.security.authentication.targettoken.enabled=true + +# Gateway Token (shared token) +hawkbit.server.ddi.security.authentication.gatewaytoken.enabled=true + +# Anonymous downloads (not recommended for production) +hawkbit.server.ddi.security.authentication.anonymous.enabled=false +``` +--- +## Related Documentation + +- [Management API](management-api.md) - Complete Management API reference +- [Direct Device Integration API](direct-device-integration-api.md) - Complete DDI API reference +- [Authentication](authentication.md) - Detailed authentication mechanisms +- [Authorization](authorization.md) - Role-based access control +- [Entity Definitions](entity-definitions.md) - Data models and schemas + +--- \ No newline at end of file diff --git a/docs/entity-definitions.md b/docs/entity-definitions.md new file mode 100644 index 000000000..3f469b1b9 --- /dev/null +++ b/docs/entity-definitions.md @@ -0,0 +1,260 @@ +# Entity Definitions + +## Target + +Targets represent devices or software instances that can receive software updates. + +**Filterable/Sortable Fields:** + +| Field | Description | Type | +|------------------------------------|----------------------------------------------------------------------|------| +| `controllerId` | Unique identifier of the target | String | +| `name` | Display name | String | +| `description` | Description text | String | +| `updateStatus` | Current update status (UNKNOWN, IN_SYNC, PENDING, ERROR, REGISTERED) | Enum | +| `address` | IP address or URI | String | +| `lastTargetQuery` | Last time the target polled (timestamp in ms) | Long | +| `createdAt` | Creation timestamp | Long | +| `createdBy` | Creator username | String | +| `lastModifiedAt` | Last modification timestamp | Long | +| `lastModifiedBy` | Last modifier username | String | +| `assignedDistributionSet.name` | Name of assigned distribution set | String | +| `assignedDistributionSet.version` | Version of assigned distribution set | String | +| `installedDistributionSet.name` | Name of installed distribution set | String | +| `installedDistributionSet.version` | Version of installed distribution set | String | +| `targetType.key` | Target type key | String | +| `targetType.name` | Target type name | String | +| `tags.name` | Tag name | String | +| `group` | Group name | String | +| `metadata.` | Metadata value by key | String | +| `controllerAttributes.` | Controller attribute by key | String | + +**Example Queries:** +``` +# Find targets with update errors +updateStatus==ERROR + +# Find targets by name pattern +name==device-* + +# Find targets with specific distribution set assigned +assignedDistributionSet.name==Firmware;assignedDistributionSet.version==2.0.0 + +# Find targets that haven't polled in 24 hours (timestamp example) +lastTargetQuery=lt=1704067200000 + +# Find targets by tag +tags.name==production + +# Find targets by metadata +metadata.location==factory-A + +# Find targets by controller attribute +controllerAttributes.firmware_version==1.2.3 +``` + +--- + +## Distribution Set + +Distribution Sets are collections of software modules that can be deployed to targets. + +**Filterable/Sortable Fields:** + +| Field | Description | Type | +|-------|-------------|------| +| `id` | Unique identifier | Long | +| `name` | Distribution set name | String | +| `version` | Version string | String | +| `description` | Description text | String | +| `type.key` | Distribution set type key | String | +| `type.name` | Distribution set type name | String | +| `valid` | Whether the DS is valid for deployment | Boolean | +| `createdAt` | Creation timestamp | Long | +| `createdBy` | Creator username | String | +| `lastModifiedAt` | Last modification timestamp | Long | +| `lastModifiedBy` | Last modifier username | String | +| `tags.name` | Tag name | String | +| `modules.name` | Software module name | String | +| `metadata.` | Metadata value by key | String | + +**Example Queries:** +``` +# Find distribution sets by name +name==Firmware* + +# Find valid distribution sets only +valid==true + +# Find by type +type.key==os_app + +# Find by tag +tags.name==release-candidate + +# Find distribution sets containing a specific module +modules.name==bootloader +``` + +--- + +## Rollout + +Rollouts are used to deploy software to groups of targets in a controlled manner. + +**Filterable/Sortable Fields:** + +| Field | Description | Type | +|-------|-------------|------| +| `id` | Unique identifier | Long | +| `name` | Rollout name | String | +| `description` | Description text | String | +| `status` | Rollout status (CREATING, READY, PAUSED, STARTING, RUNNING, FINISHED, etc.) | Enum | +| `distributionSet.id` | Distribution set ID | Long | +| `distributionSet.name` | Distribution set name | String | +| `distributionSet.version` | Distribution set version | String | +| `distributionSet.type` | Distribution set type | String | +| `createdAt` | Creation timestamp | Long | +| `createdBy` | Creator username | String | +| `lastModifiedAt` | Last modification timestamp | Long | +| `lastModifiedBy` | Last modifier username | String | + +**Example Queries:** +``` +# Find running rollouts +status==RUNNING + +# Find rollouts by name +name==Campaign* + +# Find rollouts for a specific distribution set +distributionSet.name==Firmware;distributionSet.version==2.0.0 + +# Find finished or paused rollouts +status=in=(FINISHED,PAUSED) +``` + +--- + +## Action + +Actions represent deployment operations assigned to targets. + +**Filterable/Sortable Fields:** + +| Field | Description | Type | +|-------|-------------|------| +| `id` | Unique identifier | Long | +| `status` | Action status (SCHEDULED, RUNNING, FINISHED, ERROR, CANCELED, etc.) | Enum | +| `active` | Whether the action is currently active | Boolean | +| `weight` | Priority weight (0-1000) | Integer | +| `lastActionStatusCode` | Last status code reported | Integer | +| `externalRef` | External reference string | String | +| `target.controllerId` | Target controller ID | String | +| `target.name` | Target name | String | +| `target.updateStatus` | Target update status | Enum | +| `distributionSet.id` | Distribution set ID | Long | +| `distributionSet.name` | Distribution set name | String | +| `distributionSet.version` | Distribution set version | String | +| `rollout.id` | Rollout ID | Long | +| `rollout.name` | Rollout name | String | +| `rolloutGroup.id` | Rollout group ID | Long | +| `rolloutGroup.name` | Rollout group name | String | +| `createdAt` | Creation timestamp | Long | +| `createdBy` | Creator username | String | +| `lastModifiedAt` | Last modification timestamp | Long | +| `lastModifiedBy` | Last modifier username | String | + +**Example Queries:** +``` +# Find active actions +active==true + +# Find actions by status +status==RUNNING + +# Find failed actions +status==ERROR + +# Find actions for a specific target +target.controllerId==device-001 + +# Find actions for a specific rollout +rollout.name==Campaign2024 + +# Find high-priority actions +weight=gt=800 + +# Find actions with specific status code +lastActionStatusCode==200 +``` + +--- + +## Software Module + +Software Modules are individual software components that make up distribution sets. + +**Filterable/Sortable Fields:** + +| Field | Description | Type | +|-------|-------------|------| +| `id` | Unique identifier | Long | +| `name` | Module name | String | +| `version` | Version string | String | +| `description` | Description text | String | +| `type.key` | Software module type key | String | +| `type.name` | Software module type name | String | +| `createdAt` | Creation timestamp | Long | +| `createdBy` | Creator username | String | +| `lastModifiedAt` | Last modification timestamp | Long | +| `lastModifiedBy` | Last modifier username | String | +| `metadata.` | Metadata value by key | String | + +**Example Queries:** +``` +# Find modules by name +name==bootloader* + +# Find modules by type +type.key==os + +# Find modules by version +version==2.0.* + +# Find modules with specific metadata +metadata.checksum==abc123 +``` + +--- + +## Target Filter Query + +Target Filter Queries define RSQL filters for grouping targets, used for rollouts and auto-assignment. + +**Filterable/Sortable Fields:** + +| Field | Description | Type | +|-------|-------------|------| +| `id` | Unique identifier | Long | +| `name` | Filter name | String | +| `autoAssignDistributionSet.name` | Auto-assign DS name | String | +| `autoAssignDistributionSet.version` | Auto-assign DS version | String | +| `createdAt` | Creation timestamp | Long | +| `createdBy` | Creator username | String | +| `lastModifiedAt` | Last modification timestamp | Long | +| `lastModifiedBy` | Last modifier username | String | + +**Example Queries:** +``` +# Find filters by name +name==Production* + +# Find filters with auto-assignment configured +autoAssignDistributionSet.name==* + +# Find filters for a specific auto-assign distribution set +autoAssignDistributionSet.name==Firmware;autoAssignDistributionSet.version==2.0.0 +``` + +--- \ No newline at end of file diff --git a/docs/features.md b/docs/features.md deleted file mode 100644 index f1779211c..000000000 --- a/docs/features.md +++ /dev/null @@ -1,66 +0,0 @@ -# Features - ---- - -## Device and Software Repository - -- Repository that holds the provisioning targets and assignable software distributions. -- Targets can be logically grouped by **Target Types**. -- Includes a full software update history for every device. -- Supports pre-commission devices in the repository and plug and play (device is created when it authenticates for the first time). - ---- - -## Update Management - -- Directly deploy a defined software distribution to a device (via Management API). -- Update handling is independent of device type, integration approach, or connectivity. -- Optional user consent flow: download and install updates only after the respective end user has confirmed it. -- Mass cancel distribution of an update by invalidating the distribution set. -- Use action status codes for easier analysis. - ---- - -## Artifact Content Delivery - -- Partial downloads supported. -- Download resume supported (RFC7233). -- Content management by RESTful API and UI. -- Authorization based on software assignment (a device can only download what was assigned to it). -- Delta artifact hosting supported. -- Artifact signature hosting supported. -- Plug-point for artifact encryption (allows encryption of artifacts on upload). - ---- - -## Rollout [Campaign] Management - -- Secure handling of large volumes of devices at rollout creation time. -- Flexible deployment group definition as part of a rollout. -- Monitoring of rollout progress. -- Emergency rollout shutdown in case of update failures. -- Manually trigger the next rollout group. - ---- - -## Interfaces - -### Management API -- RESTful API. -- Create/Read/Update/Delete operations for provisioning targets (devices) and repository content (software). -- Manage and monitor software update operations. -- Online API documentation. -- JSON payload with Hypermedia support. -- Supports filtering, sorting, and paging. - -### Direct Device Integration API -- RESTful HTTP-based API for direct device integration. -- JSON payload. -- Traffic optimized (content-based ETag generation, not modified). -- Feedback channel from device. -- TLS encryption. - -### Device Management Federation API -- Indirect device integration through a device management service or application into hawkBit. -- Optimized for high service-to-service throughput with AMQP messaging interface. -- Separate AMQP vHost per tenant for maximum security. diff --git a/docs/graphics-source/rollout_groups.drawio b/docs/graphics-source/rollout_groups.drawio new file mode 100644 index 000000000..ecdb70032 --- /dev/null +++ b/docs/graphics-source/rollout_groups.drawio @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/graphics-source/rollouts_load.drawio b/docs/graphics-source/rollouts_load.drawio new file mode 100644 index 000000000..74ce09ae3 --- /dev/null +++ b/docs/graphics-source/rollouts_load.drawio @@ -0,0 +1,92 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/images/rollout.png b/docs/images/rollout.png deleted file mode 100644 index cf388cdfa8db88ec19f5e83ebd916994f9a94265..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 184827 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 TYbsH|KPt+a|D~V3e((PPvip8j diff --git a/docs/images/rollout_groups.png b/docs/images/rollout_groups.png new file mode 100644 index 0000000000000000000000000000000000000000..0a90bd1b73587fe3377aa1dd161a38a30c0a535e GIT binary patch literal 53297 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

gw!CwIm&e>_DYDc(s)O@i7k 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 literal 0 HcmV?d00001 diff --git a/docs/management-api.md b/docs/management-api.md index b3eac7757..f29fb5f31 100644 --- a/docs/management-api.md +++ b/docs/management-api.md @@ -17,6 +17,9 @@ The current version of the Management API is `version 1 (v1)` with the URI `http - `PUT` - `DELETE` +### Query parameter +For filtering, sorting and paging as well as using the Feed Item Query Language (FIQL) see [Query parameters](query-parameters.md). + ### Headers For all requests an `Authorization` header has to be set. - Username: `username` @@ -32,21 +35,21 @@ Besides the relevant data (`name`, `description`, `createdBy` etc.) of a resourc A Distribution Set entity may have for example URIs to artifacts, Software Modules, Software Module Types and metadata. ```json "_links": { - "artifacts": { - "href": "http://localhost:8080/rest/v1/softwaremodules/83/artifacts" - }, - "self": { - "href": "http://localhost:8080/rest/v1/softwaremodules/83" - }, - "type": { - "href": "http://localhost:8080/rest/v1/softwaremoduletypes/43" - }, - "metadata": { - "href": "http://localhost:8080/rest/v1/softwaremodules/83/metadata?offset=0&limit=50" - } + "artifacts": { + "href": "http://localhost:8080/rest/v1/softwaremodules/83/artifacts" + }, + "self": { + "href": "http://localhost:8080/rest/v1/softwaremodules/83" + }, + "type": { + "href": "http://localhost:8080/rest/v1/softwaremoduletypes/43" + }, + "metadata": { + " href": "http://localhost:8080/rest/v1/softwaremodules/83/metadata?offset=0&limit=50" + } +} ``` - ## REST Doc