Rename docs to site (#1550)

Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
This commit is contained in:
Avgustin Marinov
2024-01-18 15:31:20 +02:00
committed by GitHub
parent d15bcce8d2
commit f2a4f6f591
106 changed files with 5 additions and 25 deletions

View File

@@ -0,0 +1,114 @@
---
title: Eclipse hawkBit 0.2.0 - First Release
parent: Blog
weight: 200
---
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. It is part of the Eclipse IoT
since 2015 and with version _0.2.0_ a first release is available.
In this article, we want to give an overview of the latest highlights of hawkBit and let you know how you can get
started in seconds.
## Finally, it is here!
After being around in the Eclipse IoT realm for quite some time now, we are more than happy to announce our first release:
[_Eclipse hawkBit 0.2.0_](https://projects.eclipse.org/projects/iot.hawkbit/releases/0.2.0). The release can be found on [Maven Central](https://mvnrepository.com/artifact/org.eclipse.hawkbit)
and [Docker Hub](https://hub.docker.com/r/hawkbit/hawkbit-update-server/). It includes the following core features:
* Device and Software Repository
* Update Management
* Artifact Content Delivery
* Rollout Management
The features are accessible via the following interfaces:
* Management UI
* Management API
* Direct Device Integration (DDI) API
* Device Management Federation (DMF) API
![hawkBit Overview](../../images/hawkBit_overview.jpeg)
## What's new?
Whenever there is a new release, the first question that comes to mind is: What's new? Since this is our first release,
one could argue that everything is new. However, most of the features are already well-established. This holds true, for
example, for our APIs or the Rollout Management. Nevertheless, there have been some recent updates to hawkBit, which we
do not want to leave unmentioned:
### Streamlined UI
The probably most noticeable change has been the removal of the two buttons (`Drop here to delete` and `Actions`) at the
bottom of the _Deployment_, _Distributions_, and _Upload_ view. This is a major usability improvement! For example,
deleting an item required (1) dragging an item onto the delete button, (2) opening the delete pop-up, and (3) confirming
the deletion. Now, an item can be easily removed by clicking on its remove icon and confirming the action. Moreover,
multiple (or all `CTRL` + `A`) items can be selected and removed at once using the same mechanism. This is not only
faster and more intuitive, it also saves a lot of display real estate which can now be used to focus on what is important.
We hope you like this change as much as we do! _(Requires: hawkBit > 0.2.2)_
![Screenshot of improved UI](../../images/hawkbit_ui.png)
### MS SQL Server
Eclipse hawkBit supports a range of different SQL databases. Up to now, these have been the internal H2 database (which can be
used for testing, development, or trial) and MySQL/MariaDB for production-grade usage. This list is now extended by
Microsoft's SQL Server which is also available in production grade, as well as, IBM's DB2 for testing and development.
### Open Sourced REST docs
A huge benefit for the community is the recently open sourced REST docs of hawkBit. This has been an [open request](https://github.com/eclipse/hawkbit/issues/480)
for some time, which we were happy to meet. The documentation is generated using [Spring REST docs](https://spring.io/projects/spring-restdocs), based on unit-tests. These tests, with the respective documentation, are now available in the [code base](https://github.com/eclipse/hawkbit/pull/688).
Furthermore, the API documentation will be hosted on our new [website](https://www.eclipse.org/hawkbit/) (coming soon).
### Docker Images
In order to enable interested parties to get started with hawkBit conveniently, we decided to provide the
[Update Server as a Docker image](https://hub.docker.com/r/hawkbit/hawkbit-update-server/) on Docker Hub. The image comes
in two flavors: The default image uses the internal H2 database, while the images with a `-mysql` suffix contain the MySQL
driver to allow connecting a MySQL database. In addition to the Docker image, the hawkBit repository contains a
[docker-compose.yml](https://github.com/eclipse/hawkbit/blob/master/hawkbit-runtime/hawkbit-update-server/docker/docker-compose.yml)
that not only starts the Update Server, but further includes a MySQL database and a RabbitMQ message broker so you're
able to use Device Management Federation (DMF) as well.
To start the hawkBit Update Server image, open a terminal and run:
```
$ docker run -d -p 8080:8080 hawkbit/hawkbit-update-server
```
{{% note %}}
_Note: This requires a running [Docker deamon](https://docs.docker.com/install/) on your system._
{{% /note %}}
Now, browse to [http://localhost:8080](http://localhost:8080) and log-in with `admin:admin`. There you go!
## Community Updates
Although features and functionality play a major role in the hawkBit project, there is also some interesting news from
the community. As of July 2018, there have been:
* Pull Requests: 587
* Forks: 54
* Stars: 137
* Contributors: 25
* Gitter Chat members: 119
### New Project Lead and Committers
We are happy to announce that the hawkBit project got a new project lead. In addition to
[Kai Zimmermann](https://projects.eclipse.org/user/6364), project lead from the first hour,
[Jeroen Laverman](https://projects.eclipse.org/user/10982) joined the lead to support him in this responsibility.
Moreover, with [Stefan Behl](https://projects.eclipse.org/user/10842) and Jeroen Laverman, two new committers are aboard.
## What's next?
Looking ahead, there are two major topics that we want to tackle next: First, there is the migration of our UI from Vaadin
7 to Vaadin 8, since Vaadin announced the end-of-life for our current version. Another big topic will be the update
to Spring Boot 2. On the community side, we are in the final stage of updating our [website](https://www.eclipse.org/hawkbit/)
with a new design, so make sure you stop by in a couple of days to check it out. Finally, the hawkBit team will be
present at EclipseCon Europe 2018, so if you are interested in meeting us, that is the place to be.

View File

@@ -0,0 +1,20 @@
---
title: Eclipse hawkBit upgrade to Eclipse Public License - v 2.0
parent: Blog
weight: 100
---
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. It is part of the Eclipse IoT
since 2015.
In this article, we want to give an overview of the latest highlights of hawkBit license changes.
## hawkBit license upgraded to Eclipse Public License - v 2.0
Based on the issues
[Switch to EPL 2.0 License](https://github.com/eclipse/hawkbit/issues/1393) and
[Update hawkBit's license to EPL 2.0](https://github.com/eclipse/hawkbit/issues/1008)
the hawkBit license is upgraded from [Eclipse Public License - Version 1.0](http://www.eclipse.org/org/documents/epl-v10.php) to
[Eclipse Public License - v 2.0](https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.txt).

View File

@@ -0,0 +1,29 @@
---
title: Vaadin 8 UI discontinuation
parent: Blog
weight: 99
---
In this article, we want to give an overview of the future of the hawkBit UI
## hawkBit Vaadin 8 UI discontinuation
The hawkBit UI uses Vaadin as a web UI framework. It uses Vaadin 8 (8.14.3). This major version, according [Vaadin Roadmap](https://vaadin.com/roadmap), has no free support since 21st Feb 2022. There are some version releases after that date (8.15.0 - 8.16.0) that are Apache 2.0 licensed. However, since 8.16.1 ([see here](https://mvnrepository.com/artifact/com.vaadin/vaadin-server)) the license is [Commercial Vaadin Developer License 4.0](https://vaadin.com/license/cvdl-4.0), so they could not be used in hawkBit.
We believe it is not a good practice to keep an out of free support library in an open source project like hawkBit. And moreover, even if we keep it, if a security vulnerability is discovered - all users shall opt for commercial support or to drop UI.
There is another critical obstacle with keeping Vaadin 8 UI. At the moment hawkBit uses Spring Boot 2.7. According to [Spring Boot EOL](https://endoflife.date/spring-boot) Spring Boot 2.7 stream will reach end of support 24th Nov 2023. So, hawkBit shall be migrated to Spring Boot 3.0+. Since Vaadin 8 seem to be incompatible with Spring Boot 3 (they added support for Spring Boot 3 in Vaadin 24 ([Vaadin 24 pre release](https://vaadin.com/blog/vaadin-24-pre-release-available-for-spring-boot-3.0)) we shall drop Vaadin UI 8 anyway.
Many months ago we asked for community help to migrate hawkBit UI to newer Vaadin versions - [Urgent migration needed to a newer Vaadin version
](https://github.com/eclipse/hawkbit/issues/1376) and gitter channel. However, there was no volunteer found to do the migration.
All this being said, unfortunately, we've come to the decision to drop the Vaadin 8 UI from the Eclipse hawkBit and the latest hawkBit release 0.3.0 is the last version of hawkBit that includes it. For the next 0.4.0 release we plan to remove this Vaadin 8 UI. Thus the hawkBit may become an UI-less project.
There were steps taken to mitigate the problem:
* extending the REST API
* introducing Swagger UI which allow easier use of the REST API
however, the user experience will become much worse.
We hope to see future contributions with migration of the UI or, why not, even new generation UI!

View File

@@ -0,0 +1,27 @@
---
title: 0.4.1 Release
parent: Blog
weight: 98
---
In this article, we want to give an overview of the 0.4.1 hawkBit release (Friday, January 12, 2024)
## hawkBit [0.4.1](https://github.com/eclipse/hawkbit/releases/tag/0.4.1) release
### Steps towards removal of the legacy Vaadin8-based UI
As announced at [Vaadin 8 UI discontinuation](2023-11-22-vaadin8_ui_discontinuation.md) the current Vaadin 8 based UI will be removed. This release will likely be the last one including it. Some steps are taken to mitigate this.
* First of all, this release introduces [Simple UI](https://github.com/eclipse/hawkbit/tree/0.4.1/hawkbit-runtime/hawkbit-simple-ui) - a demo/PoC level UI. It includes the most essential functionality allowing you to play around with hawkBit. It could not be compared to legacy UI in features and maturity in any case. Some notes for it:
* *Status* - as already said - low maturity and very feature-limited, *EXPERIMENTAL*
* Intended for demo/play-around purposes. It could become an initial version of a new hawkBit UI but currently, there are no resources for further development. Any contribution to this UI in the direction of making it a full-fledged mature UI is welcome!
* It provides features like - create software modules & distribution sets, targets, and rollouts
* In contrast with legacy UI the new UI is a standalone application and uses only REST API to provide functionality to the user.
* To the legacy monolith update server application there is added a new microservice-based application. As part of this effort, there was introduced an example of [legacy Vaadin 8 UI standalone application](https://github.com/eclipse/hawkbit/tree/0.4.1/hawkbit-runtime/hawkbit-vv8-ui). This legacy UI standalone application could be used together with future hawkBit update server versions as long as it is compatible and on the user's responsibility. Some notes for it:
* *NOT RECOMMENDED* - it might contain security vulnerabilities and bugs. It could be hard to verify its compatibility with the new hawkBit versions.
* *ON USER's RESPONSIBILITY* - no guarantees of any kind are provided for that application. It is entirely the user's responsibility to test, scan for vulnerabilities, and use it.
* Provides an option to use the legacy Vaadin 8 UI with the new hawkBit versions under the conditions above
* It uses directly the database and legacy update server code
* It includes the outdated Spring Boot 2.7 which is after its end of support
* It will not be developed any further and new features won't be available
* No bugfixes would be provided for it
### Extended access control management - entity-based
There is a new feature implemented in access control management. Up until now, permissions (e.g. CREATE_TARGET) were assigned to the users, and based on that users were able to execute some action or not. Now there is added a pluggable mechanism via [AccessController](https://github.com/eclipse/hawkbit/blob/0.4.1/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/acm/AccessController.java) that allows to further restrict the access based on the entity. For instance, a developer could implement its custom access controller for targets that, depending on the user, could grant or reject permissions for accessing targets of certain target types.