diff --git a/docs/device-provisioning.md b/docs/device-provisioning.md index aab7e8f29..9b55a5072 100644 --- a/docs/device-provisioning.md +++ b/docs/device-provisioning.md @@ -455,7 +455,7 @@ Authorization: GatewayToken mySecureToken987654321 | **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` | +| **Audit Trail** | createdBy: admin | createdBy: system | --- diff --git a/docs/direct-device-integration-api.md b/docs/direct-device-integration-api.md index 0e4779898..dec86554f 100644 --- a/docs/direct-device-integration-api.md +++ b/docs/direct-device-integration-api.md @@ -22,16 +22,16 @@ It is possible that in the future hawkBit will fully leverage these additional s The *DDI* API allows the device to provide the following feedback messages: -| **DDI `status.execution` type** | **Handling by update server** | **Mapped ActionStatus type** | -|--------------------------------|--------------------------------|-------------------------------| -| CANCELED | This is sent by the target as confirmation of a cancellation request by the update server. | CANCELED | -| REJECTED | This is sent by the target in case an update or cancellation is rejected, i.e. cannot be fulfilled at this point in time. Note: the target should send a CLOSED→ERROR if it believes it will not be able to proceed the action at all. | WARNING | -| CLOSED | Target completes the action either with [`status.result.finished`](../status-result-finished.md) SUCCESS or FAILURE as result. Note: DDI defines also a status NONE which will not be interpreted by the update server and handled like SUCCESS. | **ERROR** (DDI FAILURE) or **FINISHED** (DDI SUCCESS or NONE) | -| DOWNLOAD | This can be used by the target to inform that it is downloading artifacts of the action. | DOWNLOAD | -| DOWNLOADED | This can be used by the target to inform that it has downloaded artifacts of the action. | DOWNLOADED | -| PROCEEDING | This can be used by the target to inform that it is working on the action. | RUNNING | -| SCHEDULED | This can be used by the target to inform that it scheduled the action. | RUNNING | -| RESUMED | This can be used by the target to inform that it continued to work on the action. | RUNNING | +| DDI status.execution type | Handling by update server | Mapped ActionStatus type | +|-------------------------------|----------------------------|---------------------------------------------------------------| +| CANCELED | This is sent by the target as confirmation of a cancellation request by the update server. | CANCELED | +| REJECTED | This is sent by the target in case an update or cancellation is rejected, i.e. cannot be fulfilled at this point in time. Note: the target should send a CLOSED→ERROR if it believes it will not be able to proceed the action at all. | WARNING | +| CLOSED | Target completes the action either with **status.result.finished** SUCCESS or FAILURE as result. Note: DDI defines also a status NONE which will not be interpreted by the update server and handled like SUCCESS. | **ERROR** (DDI FAILURE) or **FINISHED** (DDI SUCCESS or NONE) | +| DOWNLOAD | This can be used by the target to inform that it is downloading artifacts of the action. | DOWNLOAD | +| DOWNLOADED | This can be used by the target to inform that it has downloaded artifacts of the action. | DOWNLOADED | +| PROCEEDING | This can be used by the target to inform that it is working on the action. | RUNNING | +| SCHEDULED | This can be used by the target to inform that it scheduled the action. | RUNNING | +| RESUMED | This can be used by the target to inform that it continued to work on the action. | RUNNING | --- diff --git a/docs/entity-definitions.md b/docs/entity-definitions.md index 3f469b1b9..2fdeb0403 100644 --- a/docs/entity-definitions.md +++ b/docs/entity-definitions.md @@ -6,28 +6,28 @@ Targets represent devices or software instances that can receive software update **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 | +| 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:** ``` @@ -63,20 +63,20 @@ Distribution Sets are collections of software modules that can be deployed to ta | 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 | +| 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:** ``` @@ -106,18 +106,18 @@ Rollouts are used to deploy software to groups of targets in a controlled manner | 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 | +| 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:** ``` @@ -144,26 +144,26 @@ Actions represent deployment operations assigned to targets. | 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 | +| 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:** ``` @@ -199,17 +199,17 @@ Software Modules are individual software components that make up distribution se | 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 | +| 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:** ``` @@ -236,14 +236,14 @@ Target Filter Queries define RSQL filters for grouping targets, used for rollout | 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 | +| 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:** ``` diff --git a/docs/graphics-source/architecture.drawio b/docs/graphics-source/architecture.drawio new file mode 100644 index 000000000..d69bba44c --- /dev/null +++ b/docs/graphics-source/architecture.drawio @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/docs/graphics-source/deploymnet-group-state-machine.drawio b/docs/graphics-source/deploymnet-group-state-machine.drawio new file mode 100644 index 000000000..7d78a10f2 --- /dev/null +++ b/docs/graphics-source/deploymnet-group-state-machine.drawio @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/docs/graphics-source/rollout-state-machine.drawio b/docs/graphics-source/rollout-state-machine.drawio new file mode 100644 index 000000000..fe5e92744 --- /dev/null +++ b/docs/graphics-source/rollout-state-machine.drawio @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/docs/images/architecture.png b/docs/images/architecture.png index 67b85df44..60e83621f 100644 Binary files a/docs/images/architecture.png and b/docs/images/architecture.png differ diff --git a/docs/images/deploymnet-group-state-machine.png b/docs/images/deploymnet-group-state-machine.png index 32e39ee69..2e706b85e 100644 Binary files a/docs/images/deploymnet-group-state-machine.png and b/docs/images/deploymnet-group-state-machine.png differ diff --git a/docs/images/exampleReverseProxyArchitecture.png b/docs/images/exampleReverseProxyArchitecture.png index dec5e6f30..3b0fa8a71 100644 Binary files a/docs/images/exampleReverseProxyArchitecture.png and b/docs/images/exampleReverseProxyArchitecture.png differ diff --git a/docs/images/rollout-state-machine.png b/docs/images/rollout-state-machine.png index 80a3fe465..93afb2d51 100644 Binary files a/docs/images/rollout-state-machine.png and b/docs/images/rollout-state-machine.png differ diff --git a/docs/images/targetStatusStates.png b/docs/images/targetStatusStates.png index 672e1d9ba..06a4a861b 100644 Binary files a/docs/images/targetStatusStates.png and b/docs/images/targetStatusStates.png differ diff --git a/docs/index.html b/docs/index.html index 2e50aed5a..56219f8ec 100644 --- a/docs/index.html +++ b/docs/index.html @@ -74,7 +74,7 @@ SPDX-License-Identifier: EPL-2.0