* Repository layer and database migration * Changed target filter management to update auto assignment action type together with distribution set, extended mgmt API, adapted auto assign checker/scheduler, changed auto assign distribution set select table to combobox, added filter functionality (needs refactoring) * Refactored auto assignment dialog window, added soft/forced option group, restructured action type option group layout * Added forced icon to target filter table autoassignment cell for the forced auto assign actions * First working draft of distribution set select combobox for auto assignment window * Optimised filtering queries, added alphabetical sorting on distribution set name and version * Refactoring of distribution bean query for lazy loading * Distribution set combobox refactoring and comments * Added verification of auto assign distribution set validity (completed, not deleted), exdended target filter query fields with auto assign action type field, added rsql filter tests, added repository layer tests * Added mgmt API tests * Changed target filter rest docu tests to include auto-assignment type * Updated hawkbit docs with auto-assignment description * Added debouncing to key and value input fields of metadata popup layout to get rid of unnecessary value change events, removed redundant set value call in common dialog window, minimizing the repaint components calls * Fixed sonar findings * Reverted changes of common dialog window validaton, setting the value of the field explicitly as before, until we rethink the whole concept of validaton mechanism * Fixed review findings * Removed rsql filtering by filter auto-assign action type, due to missing conversion of disallowed timeforced action type * Small fix regarding usage of page request * Updated sql script version for flyway * Extended tests for soft deleted distribution sets for auto-assignment and filter string within distribution set specification builder Signed-off-by: Bogdan Bondar <Bogdan.Bondar@bosch-si.com>
Eclipse hawkBit™ - Update Server
Eclipse hawkBit is an domain independent back end solution for rolling out software updates to constrained edge devices as well as more powerful controllers and gateways connected to IP based networking infrastructure.
Documentation
Contact us
- Want to chat with the team behind hawkBit?
- Having issues with hawkBit? Open a GitHub issue.
- You can also check out our Project Homepage for further contact options.
Examples and Extensions
Next to the hawkBit core hosted here the project maintains as well examples and extension repositories.
hawkBit sandbox
We offer a sandbox installation that is free for everyone to try out hawkBit. However, keep in mind that the sandbox database will be reset from time to time. It is also not possible to upload any artifacts into the sandbox. But you can use it to try out the Management UI, Management API and DDI API. Keep in mind as well that you are not permitted to store any kind of personal data in the sandbox.
In addition the following vendors offer free trial accounts for their hawkBit compatible products:
Device Integration
hawkBit does not provide off the shelf clients for devices as part of the project. The long term goal is to provide an Eclipse hono integration which will provide connectivity through various IoT protocols and as a result allows a wide range of clients to connect to hawkBit. However, the hawkBit Direct Device Integration (API) API is HTTP/JSon based which should allow any update client to integrate quite easily.
There are clients outside of the Eclipse IoT eco system as well, e.g.:
- SWupdate which is a Linux Update agent with focus on a efficient and safe way to update embedded systems.
- rauc-hawkbit which is a python-based hawkBit client application and library for the RAUC update framework.
Runtime dependencies and support
Java Runtime Environment: 1.8
SQL database
| Database | H2 | MySQL/MariaDB | MS SQL Server | IBM DB2 |
|---|---|---|---|---|
| DDLs maintained by project | ✅ | ✅ | ✅ | ✅ |
| Test dependencies defined | ✅ | ✅ | ✅ | |
| Versions tested | 1.4 | MySQL 5.6/5.7, AWS Aurora | MS SQL Server 2017 | DB2 Server v11.1 |
| Docker image with driver provided | ✅ | ✅ (Tag: "-mysql") | ✅ | |
| JDBC driver | H2 1.4 | MariaDB Connector/J 2.0 | MSSQL-JDBC 6.4 | |
| Status | Test, Dev, Trial | Production grade | Production grade | Test, Dev |
(Optional) RabbitMQ: 3.6,3.7
Getting Started
We are providing a Spring Boot based reference Update Server including embedded H2 DB for test and evaluation purposes. Run with docker:
docker run -d -p 8080:8080 hawkbit/hawkbit-update-server
Open the update server in your browser:
See below for how to build and run the update server on your own. In addition we have a guide for setting up a complete landscape.
hawkBit (Spring boot) starters
Next to the Update Server we are also providing a set of Spring Boot Starters to quick start your own Spring Boot based application.
Clone, build and run hawkBit
Build and start hawkBit Update Server
git clone https://github.com/eclipse/hawkbit.git
cd hawkbit
mvn clean install
java -jar ./hawkbit-runtime/hawkbit-update-server/target/hawkbit-update-server-#version#.jar
Start hawkBit Device Simulator (optional)
git clone https://github.com/eclipse/hawkbit-examples.git
cd hawkbit-examples
mvn clean install
java -jar ./hawkbit-device-simulator/target/hawkbit-device-simulator-#version#.jar
Generate getting started data with the Management API example (optional)
java -jar ./hawkbit-example-mgmt-simulator/target/hawkbit-example-mgmt-simulator-#version#-exec.jar
Status and API stability
hawkBit is currently in '0.X' semantic version. That is due to the need that there is still content in hawkBit that is in need for refactoring. That includes the maven module structure, Spring Boot Properties, Spring Boot auto configuration as well as internal Java APIs (e.g. the repository API ).
However, the device facing DDI API is on major version 'v1' and will be kept stable.
Server facing and DMF API are Management API are on v1 as well. However, we cannot fully guarantee the same stability during hawkBit's 0.X development but we will try as best we can.