Migrate examples and extensions into extra repositories. (#596)

Signed-off-by: kaizimmerm <kai.zimmermann@bosch-si.com>
This commit is contained in:
Kai Zimmermann
2017-10-25 11:58:26 +02:00
committed by GitHub
parent 0b9b4016bd
commit 9404fd1343
135 changed files with 174 additions and 9154 deletions

View File

@@ -1,6 +1,2 @@
- name: News
url: news/index.html
- name: Blog
url: blog/index.html
- name: Documentation
url: documentation/overview/introduction.html

View File

@@ -8,7 +8,7 @@ title: Rollout Management
Software update operations in large scale IoT scenarios with hundreds of thousands of devices require special handling.
That includes:
- _Technical Scalability_ by means of horizontal scale of the _Rollouts_ server cluster in the cloud.
- _Technical Scalability_ by means of horizontal scale of the _hawkBit_ server cluster in the cloud.
- _Global_ artifact _content delivery_ capacities.
- _Functional Scalability_ by means of:
- Secure handling of large volumes of devices at rollout creation time.

View File

@@ -13,7 +13,7 @@ The mechanism described below is the rather simple case by customizing the theme
# Example App
An example application with customized theme can be found [here](https://github.com/eclipse/hawkbit/tree/master/examples/hawkbit-custom-theme-example).
An example application with customized theme can be found [here](https://github.com/eclipse/hawkbit-examples/tree/master/hawkbit-custom-theme-example).
# Overview
Vaadin separates the appearance of the user interface from its logic using themes. Themes can include Sass or CSS style sheets, custom HTML layouts, and any necessary graphics.
@@ -46,7 +46,7 @@ Every custom theme should always refer the base theme and customization can be d
}
```
- Finally the structure should be as in the [example app](https://github.com/eclipse/hawkbit/tree/master/examples/hawkbit-custom-theme-example/src/main/resources/VAADIN).
- Finally the structure should be as in the [example app](https://github.com/eclipse/hawkbit-examples/tree/master/hawkbit-custom-theme-example/src/main/resources/VAADIN).
# Procedure to add a custom footer
- Any footer can be added by creating "footer.html" in **src/main/resources --> VAADIN -- themes --> {XXXtheme} --> layouts** folder. An example can be found [here](https://github.com/eclipse/hawkbit/blob/master/hawkbit-ui/src/main/resources/VAADIN/themes/hawkbit/layouts/footer.html).

View File

@@ -6,14 +6,11 @@ title: Clustering
{% include base.html %}
# Create Feign REST Client
In this guide we describe how to create a [Feign](https://github.com/Netflix/feign) Rest Client based on a [Spring Boot](http://projects.spring.io/spring-boot/) Application. [hawkBit](https://projects.eclipse.org/projects/iot.hawkbit) provides REST interfaces for [Management API](https://github.com/eclipse/hawkbit/tree/master/hawkbit-ddi-api) and [DDI API] (https://github.com/eclipse/hawkbit/tree/master/hawkbit-ddi-api). Using this interfaces you can create a feign client with the help of the [feign inheritance support] (http://projects.spring.io/spring-cloud/spring-cloud.html#spring-cloud-feign-inheritance).
Our [example](https://github.com/eclipse/hawkbit/tree/master/examples) modules demonstrate how to create [Feign](https://github.com/Netflix/feign) client resources. Here you can find the [Management API client resources](https://github.com/eclipse/hawkbit/tree/master/examples/hawkbit-example-mgmt-feign-client) and the [DDI client resources](https://github.com/eclipse/hawkbit/tree/master/examples/hawkbit-example-ddi-feign-client).
A small [simulator application](https://github.com/eclipse/hawkbit/blob/master/examples/hawkbit-example-mgmt-simulator/src/main/java/org/eclipse/hawkbit/mgmt/client/Application.java) demonstrates how you can interact with the [hawkBit](https://projects.eclipse.org/projects/iot.hawkbit) via the [Management API
In this guide we describe how to create a [Feign](https://github.com/Netflix/feign) Rest Client based on a [Spring Boot](http://projects.spring.io/spring-boot/) Application. hawkBit provides REST interfaces for [Management API](https://github.com/eclipse/hawkbit/tree/master/hawkbit-ddi-api) and [DDI API] (https://github.com/eclipse/hawkbit/tree/master/hawkbit-ddi-api). Using this interfaces you can create a feign client with the help of the [feign inheritance support] (http://projects.spring.io/spring-cloud/spring-cloud.html#spring-cloud-feign-inheritance).
Our [example](https://github.com/eclipse/hawkbit-examples) modules demonstrate how to create [Feign](https://github.com/Netflix/feign) client resources. Here you can find the [Management API client resources](hhttps://github.com/eclipse/hawkbit-examples/tree/master/hawkbit-example-mgmt-feign-client) and the [DDI client resources](https://github.com/eclipse/hawkbit-examples/tree/master/hawkbit-example-ddi-feign-client).
A small [simulator application](https://github.com/eclipse/hawkbit-examples/tree/master/hawkbit-example-mgmt-simulator) demonstrates how you can interact with the hawkBit via the [Management API
](http://www.eclipse.org/hawkbit/documentation/interfaces/management-api.html).
Note: A hawkbit application have to be run. Therefore, you can use our [example application](https://github.com/eclipse/hawkbit/tree/master/examples/hawkbit-example-app)
### Example Managment API simulator
In the follow code section, you can a see a feign client resource example. The interface extend the orgin api inteface to declare the `@FeignClient`. The `@FeignClient`declares that a REST client with that interface should be created.
@@ -41,7 +38,7 @@ public class CreateStartedRolloutExample {
```
At [hawkbit-example-core-feign-client](https://github.com/eclipse/hawkbit/tree/master/examples/hawkbit-example-core-feign-client) is a spring configuration to auto configure some beans, which can be reused for a own feign client.
At [hawkbit-example-core-feign-client](https://github.com/eclipse/hawkbit-examples/tree/master/hawkbit-example-core-feign-client) is a spring configuration to auto configure some beans, which can be reused for a own feign client.
```
@Configuration

View File

@@ -20,12 +20,12 @@ This guide describes a target architecture that is more like one that you will e
- [MariaDB](https://mariadb.org) for the repository.
- [RabbitMQ](https://www.rabbitmq.com) for DMF communication.
- For testing and demonstration purposes we will also use:
- [hawkBit Device Simulator](https://github.com/eclipse/hawkbit/tree/master/examples/hawkbit-device-simulator).
- [hawkBit Management API example client](https://github.com/eclipse/hawkbit/tree/master/examples/hawkbit-mgmt-api-client).
- [hawkBit Device Simulator](https://github.com/eclipse/hawkbit-examples/tree/master/hawkbit-device-simulator).
- [hawkBit Management API example client](https://github.com/eclipse/hawkbit-examples/tree/master/hawkbit-mgmt-api-client).
# Prerequisites
- You have a working [hawkBit core build](https://github.com/eclipse/hawkbit).
- You have a working [hawkBit examples build](https://github.com/eclipse/hawkbit/examples).
- You have a working [hawkBit examples build](https://github.com/eclipse/hawkbit-examples).
# Steps
@@ -66,7 +66,7 @@ spring.rabbitmq.host=localhost
spring.rabbitmq.port=5672
{% endhighlight %}
### Adapt hostname of example scenario [creation script](https://github.com/eclipse/hawkbit/tree/master/examples/hawkbit-mgmt-api-client) (optional)
### Adapt hostname of example scenario [creation script](https://github.com/eclipse/hawkbit-examples/blob/master/hawkbit-example-mgmt-simulator/src/main/resources/application.properties)
Should only be necessary if your system does not run on localhost or uses a different port than the example app.
@@ -86,7 +86,7 @@ hawkbit-example-mgmt-simulator-##VERSION##.jar --hawkbit.url=YOUR_HOST:PORT
see [update server](https://github.com/eclipse/hawkbit/tree/master/hawkbit-runtime/hawkbit-update-server)
### Compile & Run example scenario [creation script](https://github.com/eclipse/hawkbit/tree/master/examples/hawkbit-mgmt-api-client) (optional).
### Compile & Run example scenario [creation script](https://github.com/eclipse/hawkbit-examples/tree/master/hawkbit-example-mgmt-simulator) (optional).
This has to be done before the device simulator is started. _hawkBit_ creates the mandatory tenant metadata with first login into either _Management UI_ or API (which is done by this client).
@@ -94,7 +94,7 @@ However, this is not done by _DMF_ which is in fact used by the device simulator
### Compile & Run device simulator (optional).
see [device simulator](https://github.com/eclipse/hawkbit/tree/master/examples/hawkbit-device-simulator)
see [device simulator](https://github.com/eclipse/hawkbit-examples/tree/master/hawkbit-device-simulator)
## Enjoy hawkBit with a real database, artifact storage and all [interfaces](../interfaces/interfaces.html) available.

Binary file not shown.

After

Width:  |  Height:  |  Size: 206 KiB

View File

@@ -5,7 +5,7 @@ title: Interfaces
{% include base.html %}
![](../images/interfaces.png){:width="100%"}
![](../images/hawkBit_overview.jpeg){:width="100%"}
# Graphical User Interface

View File

@@ -37,7 +37,7 @@ Available Management APIs resources are:
* [Target Tag](https://docs.bosch-iot-rollouts.com/documentation/rest-api/targettag-api-guide.html)
* [Distribution Set Tag](https://docs.bosch-iot-rollouts.com/documentation/rest-api/distributionsettag-api-guide.html)
* [Rollouts](https://docs.bosch-iot-rollouts.com/documentation/rest-api/rollout-api-guide.html)
* [Tenant](https://docs.bosch-iot-rollouts.com/documentation/rest-api/tenant-api-guide.html)
* [System Configuration](https://docs.bosch-iot-rollouts.com/documentation/rest-api/tenant-api-guide.html)
## Headers

View File

@@ -3,4 +3,63 @@ layout: documentation
title: Features
---
{% include base.html %}
{% include base.html %}
# Feature overview
### Device and software repository
- Repository that holds the provisioning targets and assignable software distributions.
- That includes a full software update history for every device.
- Support for pre-commission devices in the repository and plug and play, i.e. device is created if it is authenticated for the first time.
### Update Management
- Directly deploy a defined software distribution to a device (by Management UI or API).
- Update handling is independent of the device type, integration approach or connectivity.
### Management UI/Console
- Create/Read/Update/Delete operations for provisioning targets (i.e. devices) and repository content (i.e. software).
- Manage and monitor software update operations.
- Optimized for professional users, e.g. administrators, developers and 2nd/3rd level support staff.
- Ease of use drag-and-drop paradigm.
- Flexible grouping of data.
- Flexible filters for data browsing.
- Responsive to resolution.
- Lazy loading of data.
- All information on one page.
- Optional integration with Bosch IoT Permissions service for full multi user support with fine granular permission based authorization.
### Artifact Content Delivery
- Partial downloads supported.
- Download resume supported (RFC7233).
- Content management by RESTful API and UI (see above).
- Authorization based on software assignment, i.e. a device can only download what has been assigned to it in the first place.
- Delta artifact hosting supported.
- Artifact signature hosting supported.
### 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 the rollout progress.
- Emergency rollout shutdown in case of update failures.
## Interfaces
### Management API
- RESTful API
- Create/Read/Update/Delete operations for provisioning targets (i.e. devices) and repository content (i.e. 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](https://www.rabbitmq.com/amqp-0-9-1-reference.html) messaging interface.
- Separate AMQP vHost per tenant for maximum security.

View File

@@ -20,8 +20,7 @@ $ cd hawkbit
$ mvn clean install
{% endhighlight %}
#### Start hawkBit update server
[Example Application](https://github.com/eclipse/hawkbit/tree/master/examples/hawkbit-example-app)
#### Start hawkBit [update server](https://github.com/eclipse/hawkbit/tree/master/hawkbit-runtime/hawkbit-update-server)
{% highlight bash %}
$ java -jar ./hawkbit-runtime/hawkbit-update-server/target/hawkbit-update-server-#version#-SNAPSHOT.jar
@@ -29,19 +28,19 @@ $ java -jar ./hawkbit-runtime/hawkbit-update-server/target/hawkbit-update-server
#### Build hawkBit examples
{% highlight bash %}
$ git clone https://github.com/eclipse/hawkbit.git
$ cd hawkbit/examples
$ git clone https://github.com/eclipse/hawkbit-examples.git
$ cd hawkbit-examples
$ mvn clean install
{% endhighlight %}
#### Start hawkBit device simulator
[Device Simulator](https://github.com/eclipse/hawkbit/tree/master/examples/hawkbit-device-simulator)
[Device Simulator](https://github.com/eclipse/hawkbit-examples/tree/master/hawkbit-device-simulator)
{% highlight bash %}
$ java -jar ./examples/hawkbit-device-simulator/target/hawkbit-device-simulator-#version#.jar
$ java -jar ./hawkbit-device-simulator/target/hawkbit-device-simulator-#version#.jar
{% endhighlight %}
#### Generate Getting Started data
[Example Management API Client](https://github.com/eclipse/hawkbit/tree/master/examples/hawkbit-example-mgmt-simulator)
[Example Management API Client](https://github.com/eclipse/hawkbit-examples/tree/master/hawkbit-example-mgmt-simulator)
{% highlight bash %}
$ java -jar ./examples/hawkbit-example-mgmt-simulator/target/hawkbit-example-mgmt-simulator-#version#.jar
$ java -jar ./hawkbit-example-mgmt-simulator/target/hawkbit-example-mgmt-simulator-#version#.jar
{% endhighlight %}