You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@streampipes.apache.org by gi...@apache.org on 2021/05/09 20:55:37 UTC

[incubator-streampipes-website] branch asf-site updated: Automated deployment: Sun May 9 20:55:26 UTC 2021 756ecb14c7065370d43e97a71b55f1732b6a5243

This is an automated email from the ASF dual-hosted git repository.

github-bot pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/incubator-streampipes-website.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new 66ecdd5  Automated deployment: Sun May  9 20:55:26 UTC 2021 756ecb14c7065370d43e97a71b55f1732b6a5243
66ecdd5 is described below

commit 66ecdd5663f16c2a8bd9faf2add8eae5bd7c06f6
Author: dominikriemer <do...@users.noreply.github.com>
AuthorDate: Sun May 9 20:55:27 2021 +0000

    Automated deployment: Sun May  9 20:55:26 UTC 2021 756ecb14c7065370d43e97a71b55f1732b6a5243
---
 docs/blog/2018/06/14/welcome.html                  |  20 +-
 docs/blog/2018/06/14/welcome/index.html            |  83 --
 .../06/18/how-to-understand-your-machine-data.html |  20 +-
 .../how-to-understand-your-machine-data/index.html | 166 ----
 docs/blog/2018/09/17/preview-060.html              |  20 +-
 docs/blog/2018/09/17/preview-060/index.html        | 119 ---
 docs/blog/2018/11/24/container-cli.html            |  20 +-
 docs/blog/2018/11/24/container-cli/index.html      | 131 ---
 docs/blog/2019/04/04/release-0610.html             |  20 +-
 docs/blog/2019/04/04/release-0610/index.html       | 153 ----
 docs/blog/2019/05/23/release-0620.html             |  20 +-
 docs/blog/2019/05/23/release-0620/index.html       | 122 ---
 docs/blog/2019/09/05/release-0630.html             |  22 +-
 docs/blog/2019/09/05/release-0630/index.html       | 135 ---
 docs/blog/2019/09/19/release-0640.html             |  20 +-
 docs/blog/2019/09/19/release-0640/index.html       | 108 ---
 docs/blog/2019/11/23/release-0650.html             |  20 +-
 docs/blog/2019/11/23/release-0650/index.html       | 111 ---
 .../2019/11/25/moving-to-the-apache-incubator.html |  20 +-
 .../25/moving-to-the-apache-incubator/index.html   | 112 ---
 docs/blog/2020/01/23/streampipes_on_rpi.html       |  22 +-
 docs/blog/2020/01/23/streampipes_on_rpi/index.html | 117 ---
 docs/blog/2020/05/19/release-0660.html             |  22 +-
 docs/blog/2020/05/19/release-0660/index.html       | 136 ---
 docs/blog/2020/05/27/streampipes_on_k3s.html       |  22 +-
 docs/blog/2020/05/27/streampipes_on_k3s/index.html | 261 ------
 docs/blog/atom.xml                                 |  69 +-
 docs/blog/feed.xml                                 |   4 +-
 docs/blog/index.html                               |  38 +-
 docs/blog/page2/index.html                         |  22 +-
 docs/css/main.css                                  |   2 +-
 docs/css/prism.css                                 |   2 +-
 .../0.55.2-pre-asf/dev-guide-architecture.html     |  22 +-
 .../dev-guide-architecture/index.html              | 122 ---
 .../dev-guide-development-environment.html         |  24 +-
 .../dev-guide-development-environment/index.html   | 277 -------
 .../0.55.2-pre-asf/dev-guide-introduction.html     |  22 +-
 .../dev-guide-introduction/index.html              | 116 ---
 .../dev-guide-sdk-guide-processors.html            |  24 +-
 .../dev-guide-sdk-guide-processors/index.html      |  87 --
 .../0.55.2-pre-asf/dev-guide-sdk-guide-sinks.html  |  24 +-
 .../dev-guide-sdk-guide-sinks/index.html           |  87 --
 .../dev-guide-sdk-guide-sources.html               |  22 +-
 .../dev-guide-sdk-guide-sources/index.html         | 143 ----
 .../dev-guide-tutorial-processors.html             |  30 +-
 .../dev-guide-tutorial-processors/index.html       | 445 ----------
 .../0.55.2-pre-asf/dev-guide-tutorial-sources.html |  26 +-
 .../dev-guide-tutorial-sources/index.html          | 244 ------
 docs/docs/0.55.2-pre-asf/faq-common-problems.html  |  24 +-
 .../0.55.2-pre-asf/faq-common-problems/index.html  | 127 ---
 docs/docs/0.55.2-pre-asf/pipeline-elements.html    |  20 +-
 .../0.55.2-pre-asf/pipeline-elements/index.html    |  85 --
 docs/docs/0.55.2-pre-asf/privacy.html              |   6 +-
 docs/docs/0.55.2-pre-asf/privacy/index.html        |  61 --
 .../0.55.2-pre-asf/user-guide-getting-started.html |  24 +-
 .../user-guide-getting-started/index.html          | 297 -------
 .../0.55.2-pre-asf/user-guide-installation.html    |  20 +-
 .../user-guide-installation/index.html             | 131 ---
 .../0.55.2-pre-asf/user-guide-introduction.html    |  26 +-
 .../user-guide-introduction/index.html             | 125 ---
 .../user-guide-processing-elements.html            |  22 +-
 .../user-guide-processing-elements/index.html      | 186 -----
 .../user-guide-software-components.html            |  24 +-
 .../user-guide-software-components/index.html      | 357 --------
 docs/docs/0.55.2-pre-asf/user-guide-tour.html      |  24 +-
 .../docs/0.55.2-pre-asf/user-guide-tour/index.html | 317 -------
 docs/docs/0.61.0-pre-asf/dev-guide-archetype.html  |  22 +-
 .../0.61.0-pre-asf/dev-guide-archetype/index.html  | 187 -----
 .../0.61.0-pre-asf/dev-guide-architecture.html     |  22 +-
 .../dev-guide-architecture/index.html              | 122 ---
 .../0.61.0-pre-asf/dev-guide-configuration.html    |  22 +-
 .../dev-guide-configuration/index.html             | 127 ---
 .../dev-guide-development-environment.html         |  24 +-
 .../dev-guide-development-environment/index.html   | 277 -------
 .../docs/0.61.0-pre-asf/dev-guide-event-model.html |  30 +-
 .../dev-guide-event-model/index.html               | 176 ----
 .../0.61.0-pre-asf/dev-guide-introduction.html     |  22 +-
 .../dev-guide-introduction/index.html              | 116 ---
 docs/docs/0.61.0-pre-asf/dev-guide-migration.html  |  22 +-
 .../0.61.0-pre-asf/dev-guide-migration/index.html  | 244 ------
 .../dev-guide-output-strategies.html               |  22 +-
 .../dev-guide-output-strategies/index.html         | 341 --------
 .../dev-guide-sdk-guide-processors.html            |  22 +-
 .../dev-guide-sdk-guide-processors/index.html      |  87 --
 .../0.61.0-pre-asf/dev-guide-sdk-guide-sinks.html  |  22 +-
 .../dev-guide-sdk-guide-sinks/index.html           |  87 --
 .../dev-guide-sdk-guide-sources.html               |  22 +-
 .../dev-guide-sdk-guide-sources/index.html         | 143 ----
 docs/docs/0.61.0-pre-asf/dev-guide-ssl.html        |  22 +-
 docs/docs/0.61.0-pre-asf/dev-guide-ssl/index.html  | 107 ---
 .../dev-guide-static-properties.html               |  22 +-
 .../dev-guide-static-properties/index.html         | 238 ------
 .../dev-guide-stream-requirements.html             |  26 +-
 .../dev-guide-stream-requirements/index.html       | 215 -----
 .../dev-guide-tutorial-processors.html             |  22 +-
 .../dev-guide-tutorial-processors/index.html       | 476 -----------
 .../0.61.0-pre-asf/dev-guide-tutorial-sources.html |  22 +-
 .../dev-guide-tutorial-sources/index.html          | 303 -------
 docs/docs/0.61.0-pre-asf/faq-common-problems.html  |  24 +-
 .../0.61.0-pre-asf/faq-common-problems/index.html  | 136 ---
 docs/docs/0.61.0-pre-asf/pipeline-elements.html    |  20 +-
 .../0.61.0-pre-asf/pipeline-elements/index.html    |  85 --
 docs/docs/0.61.0-pre-asf/privacy.html              |   6 +-
 docs/docs/0.61.0-pre-asf/privacy/index.html        |  61 --
 .../0.61.0-pre-asf/user-guide-getting-started.html |  24 +-
 .../user-guide-getting-started/index.html          | 297 -------
 .../0.61.0-pre-asf/user-guide-installation.html    |  20 +-
 .../user-guide-installation/index.html             | 136 ---
 .../0.61.0-pre-asf/user-guide-introduction.html    |  26 +-
 .../user-guide-introduction/index.html             | 125 ---
 .../user-guide-processing-elements.html            |  22 +-
 .../user-guide-processing-elements/index.html      | 190 -----
 .../user-guide-software-components.html            |  24 +-
 .../user-guide-software-components/index.html      | 357 --------
 docs/docs/0.61.0-pre-asf/user-guide-tour.html      |  24 +-
 .../docs/0.61.0-pre-asf/user-guide-tour/index.html | 317 -------
 docs/docs/0.62.0-pre-asf/dev-guide-archetype.html  |  22 +-
 .../0.62.0-pre-asf/dev-guide-archetype/index.html  | 187 -----
 .../0.62.0-pre-asf/dev-guide-architecture.html     |  22 +-
 .../dev-guide-architecture/index.html              | 122 ---
 .../0.62.0-pre-asf/dev-guide-configuration.html    |  22 +-
 .../dev-guide-configuration/index.html             | 127 ---
 .../dev-guide-development-environment.html         |  24 +-
 .../dev-guide-development-environment/index.html   | 277 -------
 .../docs/0.62.0-pre-asf/dev-guide-event-model.html |  30 +-
 .../dev-guide-event-model/index.html               | 176 ----
 .../0.62.0-pre-asf/dev-guide-introduction.html     |  22 +-
 .../dev-guide-introduction/index.html              | 116 ---
 docs/docs/0.62.0-pre-asf/dev-guide-migration.html  |  22 +-
 .../0.62.0-pre-asf/dev-guide-migration/index.html  | 244 ------
 .../dev-guide-output-strategies.html               |  22 +-
 .../dev-guide-output-strategies/index.html         | 341 --------
 .../dev-guide-sdk-guide-processors.html            |  22 +-
 .../dev-guide-sdk-guide-processors/index.html      |  87 --
 .../0.62.0-pre-asf/dev-guide-sdk-guide-sinks.html  |  22 +-
 .../dev-guide-sdk-guide-sinks/index.html           |  87 --
 .../dev-guide-sdk-guide-sources.html               |  22 +-
 .../dev-guide-sdk-guide-sources/index.html         | 143 ----
 docs/docs/0.62.0-pre-asf/dev-guide-ssl.html        |  22 +-
 docs/docs/0.62.0-pre-asf/dev-guide-ssl/index.html  | 107 ---
 .../dev-guide-static-properties.html               |  22 +-
 .../dev-guide-static-properties/index.html         | 238 ------
 .../dev-guide-stream-requirements.html             |  26 +-
 .../dev-guide-stream-requirements/index.html       | 215 -----
 .../dev-guide-tutorial-processors.html             |  22 +-
 .../dev-guide-tutorial-processors/index.html       | 476 -----------
 .../0.62.0-pre-asf/dev-guide-tutorial-sources.html |  22 +-
 .../dev-guide-tutorial-sources/index.html          | 303 -------
 docs/docs/0.62.0-pre-asf/faq-common-problems.html  |  24 +-
 .../0.62.0-pre-asf/faq-common-problems/index.html  | 136 ---
 docs/docs/0.62.0-pre-asf/pipeline-elements.html    |  18 +-
 .../0.62.0-pre-asf/pipeline-elements/index.html    |  81 --
 docs/docs/0.62.0-pre-asf/privacy.html              |   6 +-
 docs/docs/0.62.0-pre-asf/privacy/index.html        |  61 --
 .../0.62.0-pre-asf/user-guide-getting-started.html |  24 +-
 .../user-guide-getting-started/index.html          | 297 -------
 .../0.62.0-pre-asf/user-guide-installation.html    |  20 +-
 .../user-guide-installation/index.html             | 136 ---
 .../0.62.0-pre-asf/user-guide-introduction.html    |  26 +-
 .../user-guide-introduction/index.html             | 125 ---
 .../user-guide-processing-elements.html            |  22 +-
 .../user-guide-processing-elements/index.html      | 190 -----
 .../user-guide-software-components.html            |  24 +-
 .../user-guide-software-components/index.html      | 357 --------
 docs/docs/0.62.0-pre-asf/user-guide-tour.html      |  24 +-
 .../docs/0.62.0-pre-asf/user-guide-tour/index.html | 310 -------
 docs/docs/0.63.0-pre-asf/dev-guide-archetype.html  |  22 +-
 .../0.63.0-pre-asf/dev-guide-archetype/index.html  | 187 -----
 .../0.63.0-pre-asf/dev-guide-architecture.html     |  22 +-
 .../dev-guide-architecture/index.html              | 122 ---
 .../0.63.0-pre-asf/dev-guide-configuration.html    |  22 +-
 .../dev-guide-configuration/index.html             | 126 ---
 .../dev-guide-development-environment.html         |  24 +-
 .../dev-guide-development-environment/index.html   | 176 ----
 .../docs/0.63.0-pre-asf/dev-guide-event-model.html |  30 +-
 .../dev-guide-event-model/index.html               | 176 ----
 .../0.63.0-pre-asf/dev-guide-introduction.html     |  22 +-
 .../dev-guide-introduction/index.html              | 116 ---
 docs/docs/0.63.0-pre-asf/dev-guide-migration.html  |  22 +-
 .../0.63.0-pre-asf/dev-guide-migration/index.html  | 244 ------
 .../dev-guide-output-strategies.html               |  22 +-
 .../dev-guide-output-strategies/index.html         | 341 --------
 .../dev-guide-sdk-guide-processors.html            |  22 +-
 .../dev-guide-sdk-guide-processors/index.html      |  87 --
 .../0.63.0-pre-asf/dev-guide-sdk-guide-sinks.html  |  22 +-
 .../dev-guide-sdk-guide-sinks/index.html           |  87 --
 .../dev-guide-sdk-guide-sources.html               |  22 +-
 .../dev-guide-sdk-guide-sources/index.html         | 143 ----
 docs/docs/0.63.0-pre-asf/dev-guide-ssl.html        |  22 +-
 docs/docs/0.63.0-pre-asf/dev-guide-ssl/index.html  | 107 ---
 .../dev-guide-static-properties.html               |  22 +-
 .../dev-guide-static-properties/index.html         | 238 ------
 .../dev-guide-stream-requirements.html             |  26 +-
 .../dev-guide-stream-requirements/index.html       | 215 -----
 .../dev-guide-tutorial-processors.html             |  22 +-
 .../dev-guide-tutorial-processors/index.html       | 474 -----------
 .../0.63.0-pre-asf/dev-guide-tutorial-sinks.html   |  22 +-
 .../dev-guide-tutorial-sinks/index.html            | 278 -------
 .../0.63.0-pre-asf/dev-guide-tutorial-sources.html |  22 +-
 .../dev-guide-tutorial-sources/index.html          | 303 -------
 docs/docs/0.63.0-pre-asf/faq-common-problems.html  |  24 +-
 .../0.63.0-pre-asf/faq-common-problems/index.html  | 136 ---
 docs/docs/0.63.0-pre-asf/pipeline-elements.html    |  18 +-
 .../0.63.0-pre-asf/pipeline-elements/index.html    |  81 --
 docs/docs/0.63.0-pre-asf/privacy.html              |   6 +-
 docs/docs/0.63.0-pre-asf/privacy/index.html        |  61 --
 .../0.63.0-pre-asf/user-guide-first-steps.html     |  24 +-
 .../user-guide-first-steps/index.html              | 293 -------
 .../0.63.0-pre-asf/user-guide-getting-started.html |   8 +-
 .../user-guide-getting-started/index.html          | 247 ------
 .../0.63.0-pre-asf/user-guide-installation.html    |  24 +-
 .../user-guide-installation/index.html             | 203 -----
 .../0.63.0-pre-asf/user-guide-introduction.html    |  26 +-
 .../user-guide-introduction/index.html             | 125 ---
 .../user-guide-processing-elements.html            |   6 +-
 .../user-guide-processing-elements/index.html      | 140 ----
 .../user-guide-software-components.html            |   8 +-
 .../user-guide-software-components/index.html      | 307 -------
 docs/docs/0.63.0-pre-asf/user-guide-tour.html      |  24 +-
 .../docs/0.63.0-pre-asf/user-guide-tour/index.html | 310 -------
 docs/docs/0.64.0-pre-asf/dev-guide-archetype.html  |  22 +-
 .../0.64.0-pre-asf/dev-guide-archetype/index.html  | 195 -----
 .../0.64.0-pre-asf/dev-guide-architecture.html     |  22 +-
 .../dev-guide-architecture/index.html              | 122 ---
 .../0.64.0-pre-asf/dev-guide-configuration.html    |  22 +-
 .../dev-guide-configuration/index.html             | 126 ---
 .../dev-guide-development-environment.html         |  24 +-
 .../dev-guide-development-environment/index.html   | 176 ----
 .../docs/0.64.0-pre-asf/dev-guide-event-model.html |  30 +-
 .../dev-guide-event-model/index.html               | 176 ----
 .../0.64.0-pre-asf/dev-guide-introduction.html     |  22 +-
 .../dev-guide-introduction/index.html              | 116 ---
 docs/docs/0.64.0-pre-asf/dev-guide-migration.html  |  22 +-
 .../0.64.0-pre-asf/dev-guide-migration/index.html  | 244 ------
 .../dev-guide-output-strategies.html               |  22 +-
 .../dev-guide-output-strategies/index.html         | 341 --------
 .../dev-guide-sdk-guide-processors.html            |  22 +-
 .../dev-guide-sdk-guide-processors/index.html      |  87 --
 .../0.64.0-pre-asf/dev-guide-sdk-guide-sinks.html  |  22 +-
 .../dev-guide-sdk-guide-sinks/index.html           |  87 --
 .../dev-guide-sdk-guide-sources.html               |  22 +-
 .../dev-guide-sdk-guide-sources/index.html         | 143 ----
 docs/docs/0.64.0-pre-asf/dev-guide-ssl.html        |  22 +-
 docs/docs/0.64.0-pre-asf/dev-guide-ssl/index.html  | 107 ---
 .../dev-guide-static-properties.html               |  22 +-
 .../dev-guide-static-properties/index.html         | 238 ------
 .../dev-guide-stream-requirements.html             |  26 +-
 .../dev-guide-stream-requirements/index.html       | 215 -----
 .../dev-guide-tutorial-processors.html             |  22 +-
 .../dev-guide-tutorial-processors/index.html       | 482 -----------
 .../0.64.0-pre-asf/dev-guide-tutorial-sinks.html   |  22 +-
 .../dev-guide-tutorial-sinks/index.html            | 286 -------
 .../0.64.0-pre-asf/dev-guide-tutorial-sources.html |  22 +-
 .../dev-guide-tutorial-sources/index.html          | 303 -------
 docs/docs/0.64.0-pre-asf/faq-common-problems.html  |  24 +-
 .../0.64.0-pre-asf/faq-common-problems/index.html  | 136 ---
 docs/docs/0.64.0-pre-asf/pipeline-elements.html    |  18 +-
 .../0.64.0-pre-asf/pipeline-elements/index.html    |  81 --
 docs/docs/0.64.0-pre-asf/privacy.html              |   6 +-
 docs/docs/0.64.0-pre-asf/privacy/index.html        |  61 --
 .../0.64.0-pre-asf/user-guide-first-steps.html     |  24 +-
 .../user-guide-first-steps/index.html              | 293 -------
 .../0.64.0-pre-asf/user-guide-getting-started.html |   8 +-
 .../user-guide-getting-started/index.html          | 247 ------
 .../0.64.0-pre-asf/user-guide-installation.html    |  24 +-
 .../user-guide-installation/index.html             | 203 -----
 .../0.64.0-pre-asf/user-guide-introduction.html    |  26 +-
 .../user-guide-introduction/index.html             | 125 ---
 .../user-guide-processing-elements.html            |   6 +-
 .../user-guide-processing-elements/index.html      | 140 ----
 .../user-guide-software-components.html            |   8 +-
 .../user-guide-software-components/index.html      | 307 -------
 docs/docs/0.64.0-pre-asf/user-guide-tour.html      |  24 +-
 .../docs/0.64.0-pre-asf/user-guide-tour/index.html | 310 -------
 docs/docs/0.65.0-pre-asf/dev-guide-archetype.html  |  22 +-
 .../0.65.0-pre-asf/dev-guide-archetype/index.html  | 187 -----
 .../0.65.0-pre-asf/dev-guide-architecture.html     |  22 +-
 .../dev-guide-architecture/index.html              | 122 ---
 .../0.65.0-pre-asf/dev-guide-configuration.html    |  22 +-
 .../dev-guide-configuration/index.html             | 126 ---
 .../dev-guide-development-environment.html         |  24 +-
 .../dev-guide-development-environment/index.html   | 176 ----
 .../docs/0.65.0-pre-asf/dev-guide-event-model.html |  30 +-
 .../dev-guide-event-model/index.html               | 176 ----
 .../0.65.0-pre-asf/dev-guide-introduction.html     |  22 +-
 .../dev-guide-introduction/index.html              | 116 ---
 docs/docs/0.65.0-pre-asf/dev-guide-migration.html  |  22 +-
 .../0.65.0-pre-asf/dev-guide-migration/index.html  | 244 ------
 .../dev-guide-output-strategies.html               |  22 +-
 .../dev-guide-output-strategies/index.html         | 341 --------
 .../dev-guide-sdk-guide-processors.html            |  22 +-
 .../dev-guide-sdk-guide-processors/index.html      |  87 --
 .../0.65.0-pre-asf/dev-guide-sdk-guide-sinks.html  |  22 +-
 .../dev-guide-sdk-guide-sinks/index.html           |  87 --
 .../dev-guide-sdk-guide-sources.html               |  22 +-
 .../dev-guide-sdk-guide-sources/index.html         | 143 ----
 docs/docs/0.65.0-pre-asf/dev-guide-ssl.html        |  22 +-
 docs/docs/0.65.0-pre-asf/dev-guide-ssl/index.html  | 107 ---
 .../dev-guide-static-properties.html               |  22 +-
 .../dev-guide-static-properties/index.html         | 238 ------
 .../dev-guide-stream-requirements.html             |  26 +-
 .../dev-guide-stream-requirements/index.html       | 215 -----
 .../dev-guide-tutorial-processors.html             |  22 +-
 .../dev-guide-tutorial-processors/index.html       | 474 -----------
 .../0.65.0-pre-asf/dev-guide-tutorial-sinks.html   |  22 +-
 .../dev-guide-tutorial-sinks/index.html            | 278 -------
 .../0.65.0-pre-asf/dev-guide-tutorial-sources.html |  22 +-
 .../dev-guide-tutorial-sources/index.html          | 303 -------
 docs/docs/0.65.0-pre-asf/faq-common-problems.html  |  24 +-
 .../0.65.0-pre-asf/faq-common-problems/index.html  | 136 ---
 ...org.apache.streampipes.processor.geo.flink.html |   4 +-
 .../index.html                                     |  63 --
 ...he.streampipes.processor.geo.jvm.geocoding.html |   4 +-
 .../index.html                                     |  62 --
 ...ampipes.processor.geo.jvm.reversegeocoding.html |   4 +-
 .../index.html                                     |  61 --
 ...eampipes.processor.geo.jvm.staticgeocoding.html |   4 +-
 .../index.html                                     |  63 --
 ...ification.jvm.generic-image-classification.html |   4 +-
 .../index.html                                     |  63 --
 ...sor.imageclassification.jvm.image-enricher.html |   4 +-
 .../index.html                                     |  63 --
 ...pipes.processor.imageclassification.qrcode.html |   4 +-
 .../index.html                                     |  63 --
 ...s.processors.aggregation.flink.aggregation.html |   4 +-
 .../index.html                                     |  69 --
 ...es.processors.aggregation.flink.eventcount.html |   4 +-
 .../index.html                                     |  59 --
 ...eampipes.processors.aggregation.flink.rate.html |   4 +-
 .../index.html                                     |  62 --
 ...ssors.enricher.flink.processor.math.mathop.html |   4 +-
 .../index.html                                     |  67 --
 ...enricher.flink.processor.math.staticmathop.html |   4 +-
 .../index.html                                     |  67 --
 ...sors.enricher.flink.processor.trigonometry.html |   4 +-
 .../index.html                                     |  66 --
 ....enricher.flink.processor.urldereferencing.html |   4 +-
 .../index.html                                     |  64 --
 ...mpipes.processors.enricher.flink.timestamp.html |   4 +-
 .../index.html                                     |  62 --
 ...mpipes.processors.enricher.jvm.sizemeasure.html |   4 +-
 .../index.html                                     |  45 -
 ...streampipes.processors.filters.jvm.compose.html |   4 +-
 .../index.html                                     |  63 --
 ....streampipes.processors.filters.jvm.enrich.html |   4 +-
 .../index.html                                     |  67 --
 ...e.streampipes.processors.filters.jvm.merge.html |   4 +-
 .../index.html                                     |  70 --
 ...pes.processors.filters.jvm.numericalfilter.html |   4 +-
 .../index.html                                     |  67 --
 ...processors.filters.jvm.numericaltextfilter.html |   4 +-
 .../index.html                                     |  75 --
 ...streampipes.processors.filters.jvm.project.html |   4 +-
 .../index.html                                     |  62 --
 ...eampipes.processors.filters.jvm.textfilter.html |   4 +-
 .../index.html                                     |  65 --
 ...reampipes.processors.filters.jvm.threshold.html |   4 +-
 .../index.html                                     |  67 --
 ...ssors.geo.jvm.processor.distancecalculator.html |   4 +-
 .../index.html                                     |  63 --
 ...ors.pattern-detection.flink.peak-detection.html |   4 +-
 .../index.html                                     |  63 --
 ...he.streampipes.processors.siddhi.frequency.html |   4 +-
 .../index.html                                     |  61 --
 ...eampipes.processors.siddhi.frequencychange.html |   4 +-
 .../index.html                                     |  63 --
 ...che.streampipes.processors.siddhi.increase.html |   4 +-
 .../index.html                                     |  63 --
 ...eampipes.processors.siddhi.numericalfilter.html |   4 +-
 .../index.html                                     |  62 --
 ...che.streampipes.processors.siddhi.sequence.html |   4 +-
 .../index.html                                     |  63 --
 ....apache.streampipes.processors.siddhi.stop.html |   4 +-
 .../index.html                                     |  63 --
 ...cessors.textmining.flink.languagedetection.html |   4 +-
 .../index.html                                     |  63 --
 ...ipes.processors.textmining.flink.wordcount.html |   4 +-
 .../index.html                                     |  63 --
 ...eampipes.processors.textmining.jvm.chunker.html |   4 +-
 .../index.html                                     |  76 --
 ...rocessors.textmining.jvm.languagedetection.html |   4 +-
 .../index.html                                     | 176 ----
 ...pipes.processors.textmining.jvm.namefinder.html |   4 +-
 .../index.html                                     |  69 --
 ...pes.processors.textmining.jvm.partofspeech.html |   4 +-
 .../index.html                                     |  70 --
 ...rocessors.textmining.jvm.sentencedetection.html |   4 +-
 .../index.html                                     |  65 --
 ...mpipes.processors.textmining.jvm.tokenizer.html |   4 +-
 .../index.html                                     |  65 --
 ...ssors.transformation.flink.field-converter.html |   4 +-
 .../index.html                                     |  63 --
 ...ocessors.transformation.flink.field-mapper.html |   4 +-
 .../index.html                                     |  63 --
 ...cessors.transformation.flink.field-renamer.html |   4 +-
 .../index.html                                     |  63 --
 ...rocessors.transformation.flink.fieldhasher.html |   4 +-
 .../index.html                                     |  63 --
 ...formation.flink.measurement-unit-converter.html |   4 +-
 .../index.html                                     |  63 --
 ...transformation.flink.processor.boilerplate.html |   4 +-
 .../index.html                                     |  63 --
 ...rs.transformation.jvm.booloperator.counter.html |   4 +-
 .../index.html                                     |  73 --
 ...s.transformation.jvm.booloperator.inverter.html |   4 +-
 .../index.html                                     |  63 --
 ...ransformation.jvm.booloperator.timekeeping.html |   4 +-
 .../index.html                                     |  78 --
 ...sors.transformation.jvm.booloperator.timer.html |   4 +-
 .../index.html                                     |  65 --
 ...rocessors.transformation.jvm.changed-value.html |   4 +-
 .../index.html                                     |  62 --
 ....processors.transformation.jvm.count-array.html |   4 +-
 .../index.html                                     |  64 --
 ....processors.transformation.jvm.csvmetadata.html |   4 +-
 .../index.html                                     |  55 --
 ...ocessors.transformation.jvm.duration-value.html |   4 +-
 .../index.html                                     |  63 --
 ...formation.jvm.processor.timestampextractor.html |   4 +-
 .../index.html                                     |  65 --
 ....processors.transformation.jvm.split-array.html |   4 +-
 .../index.html                                     |  67 --
 ...processors.transformation.jvm.taskduration.html |   4 +-
 .../index.html                                     |  62 --
 ...rs.transformation.jvm.transform-to-boolean.html |   4 +-
 .../index.html                                     |  45 -
 ...e.streampipes.sinks.brokers.jvm.bufferrest.html |   4 +-
 .../index.html                                     |  66 --
 ...g.apache.streampipes.sinks.brokers.jvm.jms.html |   4 +-
 .../index.html                                     |  67 --
 ...apache.streampipes.sinks.brokers.jvm.kafka.html |   4 +-
 .../index.html                                     |  67 --
 ...pache.streampipes.sinks.brokers.jvm.pulsar.html |   4 +-
 .../index.html                                     |  67 --
 ...che.streampipes.sinks.brokers.jvm.rabbitmq.html |   4 +-
 .../index.html                                     |  74 --
 ....apache.streampipes.sinks.brokers.jvm.rest.html |   4 +-
 .../index.html                                     |  63 --
 ...g.apache.streampipes.sinks.databases.ditto.html |   4 +-
 .../index.html                                     |  68 --
 ...mpipes.sinks.databases.flink.elasticsearch.html |   4 +-
 .../index.html                                     |  66 --
 ...he.streampipes.sinks.databases.jvm.couchdb.html |   4 +-
 .../index.html                                     |  68 --
 ...e.streampipes.sinks.databases.jvm.influxdb.html |   4 +-
 .../index.html                                     |  79 --
 ...ache.streampipes.sinks.databases.jvm.iotdb.html |   4 +-
 .../index.html                                     |  72 --
 ...ache.streampipes.sinks.databases.jvm.opcua.html |   4 +-
 .../index.html                                     |  72 --
 ...streampipes.sinks.databases.jvm.postgresql.html |   4 +-
 .../index.html                                     |  73 --
 ...e.streampipes.sinks.internal.jvm.dashboard.html |   4 +-
 .../index.html                                     |  63 --
 ...he.streampipes.sinks.internal.jvm.datalake.html |   4 +-
 .../index.html                                     |  79 --
 ...treampipes.sinks.internal.jvm.notification.html |   4 +-
 .../index.html                                     |  65 --
 ....streampipes.sinks.notifications.jvm.email.html |   4 +-
 .../index.html                                     |  71 --
 ...eampipes.sinks.notifications.jvm.onesignal.html |   4 +-
 .../index.html                                     |  68 --
 ....streampipes.sinks.notifications.jvm.slack.html |   4 +-
 .../index.html                                     |  72 --
 docs/docs/0.65.0-pre-asf/pipeline-elements.html    |  18 +-
 .../0.65.0-pre-asf/pipeline-elements/index.html    |  81 --
 docs/docs/0.65.0-pre-asf/privacy.html              |   6 +-
 docs/docs/0.65.0-pre-asf/privacy/index.html        |  61 --
 .../0.65.0-pre-asf/user-guide-first-steps.html     |  24 +-
 .../user-guide-first-steps/index.html              | 293 -------
 .../0.65.0-pre-asf/user-guide-getting-started.html |   8 +-
 .../user-guide-getting-started/index.html          | 247 ------
 .../0.65.0-pre-asf/user-guide-installation.html    |  24 +-
 .../user-guide-installation/index.html             | 203 -----
 .../0.65.0-pre-asf/user-guide-introduction.html    |  26 +-
 .../user-guide-introduction/index.html             | 125 ---
 .../user-guide-processing-elements.html            |   6 +-
 .../user-guide-processing-elements/index.html      | 140 ----
 .../user-guide-software-components.html            |   8 +-
 .../user-guide-software-components/index.html      | 307 -------
 docs/docs/0.65.0-pre-asf/user-guide-tour.html      |  24 +-
 .../docs/0.65.0-pre-asf/user-guide-tour/index.html | 333 --------
 docs/docs/0.66.0/dev-guide-archetype.html          |  22 +-
 docs/docs/0.66.0/dev-guide-archetype/index.html    | 188 -----
 docs/docs/0.66.0/dev-guide-architecture.html       |  22 +-
 docs/docs/0.66.0/dev-guide-architecture/index.html | 122 ---
 docs/docs/0.66.0/dev-guide-configuration.html      |  22 +-
 .../docs/0.66.0/dev-guide-configuration/index.html | 126 ---
 .../0.66.0/dev-guide-development-environment.html  |  24 +-
 .../dev-guide-development-environment/index.html   | 176 ----
 docs/docs/0.66.0/dev-guide-event-model.html        |  30 +-
 docs/docs/0.66.0/dev-guide-event-model/index.html  | 176 ----
 docs/docs/0.66.0/dev-guide-introduction.html       |  22 +-
 docs/docs/0.66.0/dev-guide-introduction/index.html | 116 ---
 docs/docs/0.66.0/dev-guide-migration.html          |  22 +-
 docs/docs/0.66.0/dev-guide-migration/index.html    | 244 ------
 docs/docs/0.66.0/dev-guide-output-strategies.html  |  22 +-
 .../0.66.0/dev-guide-output-strategies/index.html  | 341 --------
 .../0.66.0/dev-guide-sdk-guide-processors.html     |  22 +-
 .../dev-guide-sdk-guide-processors/index.html      |  87 --
 docs/docs/0.66.0/dev-guide-sdk-guide-sinks.html    |  22 +-
 .../0.66.0/dev-guide-sdk-guide-sinks/index.html    |  87 --
 docs/docs/0.66.0/dev-guide-sdk-guide-sources.html  |  22 +-
 .../0.66.0/dev-guide-sdk-guide-sources/index.html  | 143 ----
 docs/docs/0.66.0/dev-guide-ssl.html                |  22 +-
 docs/docs/0.66.0/dev-guide-ssl/index.html          | 107 ---
 docs/docs/0.66.0/dev-guide-static-properties.html  |  22 +-
 .../0.66.0/dev-guide-static-properties/index.html  | 238 ------
 .../docs/0.66.0/dev-guide-stream-requirements.html |  26 +-
 .../dev-guide-stream-requirements/index.html       | 215 -----
 .../docs/0.66.0/dev-guide-tutorial-processors.html |  22 +-
 .../dev-guide-tutorial-processors/index.html       | 474 -----------
 docs/docs/0.66.0/dev-guide-tutorial-sinks.html     |  22 +-
 .../0.66.0/dev-guide-tutorial-sinks/index.html     | 278 -------
 docs/docs/0.66.0/dev-guide-tutorial-sources.html   |  22 +-
 .../0.66.0/dev-guide-tutorial-sources/index.html   | 303 -------
 docs/docs/0.66.0/faq-common-problems.html          |  24 +-
 docs/docs/0.66.0/faq-common-problems/index.html    | 136 ---
 ...org.apache.streampipes.processor.geo.flink.html |   4 +-
 .../index.html                                     |  63 --
 ...he.streampipes.processor.geo.jvm.geocoding.html |   4 +-
 .../index.html                                     |  62 --
 ...ampipes.processor.geo.jvm.reversegeocoding.html |   4 +-
 .../index.html                                     |  61 --
 ...eampipes.processor.geo.jvm.staticgeocoding.html |   4 +-
 .../index.html                                     |  63 --
 ...ification.jvm.generic-image-classification.html |   4 +-
 .../index.html                                     |  63 --
 ...sor.imageclassification.jvm.image-enricher.html |   4 +-
 .../index.html                                     |  63 --
 ...pipes.processor.imageclassification.qrcode.html |   4 +-
 .../index.html                                     |  63 --
 ...s.processors.aggregation.flink.aggregation.html |   4 +-
 .../index.html                                     |  69 --
 ...es.processors.aggregation.flink.eventcount.html |   4 +-
 .../index.html                                     |  59 --
 ...eampipes.processors.aggregation.flink.rate.html |   4 +-
 .../index.html                                     |  62 --
 ...ssors.enricher.flink.processor.math.mathop.html |   4 +-
 .../index.html                                     |  67 --
 ...enricher.flink.processor.math.staticmathop.html |   4 +-
 .../index.html                                     |  67 --
 ...sors.enricher.flink.processor.trigonometry.html |   4 +-
 .../index.html                                     |  66 --
 ....enricher.flink.processor.urldereferencing.html |   4 +-
 .../index.html                                     |  64 --
 ...mpipes.processors.enricher.flink.timestamp.html |   4 +-
 .../index.html                                     |  62 --
 ...mpipes.processors.enricher.jvm.sizemeasure.html |   4 +-
 .../index.html                                     |  45 -
 ...streampipes.processors.filters.jvm.compose.html |   4 +-
 .../index.html                                     |  63 --
 ....streampipes.processors.filters.jvm.enrich.html |   4 +-
 .../index.html                                     |  67 --
 ...e.streampipes.processors.filters.jvm.merge.html |   4 +-
 .../index.html                                     |  70 --
 ...pes.processors.filters.jvm.numericalfilter.html |   4 +-
 .../index.html                                     |  67 --
 ...processors.filters.jvm.numericaltextfilter.html |   4 +-
 .../index.html                                     |  75 --
 ...streampipes.processors.filters.jvm.project.html |   4 +-
 .../index.html                                     |  62 --
 ...eampipes.processors.filters.jvm.textfilter.html |   4 +-
 .../index.html                                     |  65 --
 ...reampipes.processors.filters.jvm.threshold.html |   4 +-
 .../index.html                                     |  67 --
 ...ssors.geo.jvm.processor.distancecalculator.html |   4 +-
 .../index.html                                     |  63 --
 ...ors.pattern-detection.flink.peak-detection.html |   4 +-
 .../index.html                                     |  63 --
 ...he.streampipes.processors.siddhi.frequency.html |   4 +-
 .../index.html                                     |  61 --
 ...eampipes.processors.siddhi.frequencychange.html |   4 +-
 .../index.html                                     |  63 --
 ...che.streampipes.processors.siddhi.increase.html |   4 +-
 .../index.html                                     |  63 --
 ...eampipes.processors.siddhi.numericalfilter.html |   4 +-
 .../index.html                                     |  62 --
 ...che.streampipes.processors.siddhi.sequence.html |   4 +-
 .../index.html                                     |  63 --
 ....apache.streampipes.processors.siddhi.stop.html |   4 +-
 .../index.html                                     |  63 --
 ...cessors.textmining.flink.languagedetection.html |   4 +-
 .../index.html                                     |  63 --
 ...ipes.processors.textmining.flink.wordcount.html |   4 +-
 .../index.html                                     |  63 --
 ...eampipes.processors.textmining.jvm.chunker.html |   4 +-
 .../index.html                                     |  76 --
 ...rocessors.textmining.jvm.languagedetection.html |   4 +-
 .../index.html                                     | 176 ----
 ...pipes.processors.textmining.jvm.namefinder.html |   4 +-
 .../index.html                                     |  69 --
 ...pes.processors.textmining.jvm.partofspeech.html |   4 +-
 .../index.html                                     |  70 --
 ...rocessors.textmining.jvm.sentencedetection.html |   4 +-
 .../index.html                                     |  65 --
 ...mpipes.processors.textmining.jvm.tokenizer.html |   4 +-
 .../index.html                                     |  65 --
 ...ssors.transformation.flink.field-converter.html |   4 +-
 .../index.html                                     |  63 --
 ...ocessors.transformation.flink.field-mapper.html |   4 +-
 .../index.html                                     |  63 --
 ...cessors.transformation.flink.field-renamer.html |   4 +-
 .../index.html                                     |  63 --
 ...rocessors.transformation.flink.fieldhasher.html |   4 +-
 .../index.html                                     |  63 --
 ...formation.flink.measurement-unit-converter.html |   4 +-
 .../index.html                                     |  63 --
 ...transformation.flink.processor.boilerplate.html |   4 +-
 .../index.html                                     |  63 --
 ...rs.transformation.jvm.booloperator.counter.html |   4 +-
 .../index.html                                     |  73 --
 ...s.transformation.jvm.booloperator.inverter.html |   4 +-
 .../index.html                                     |  63 --
 ...ransformation.jvm.booloperator.timekeeping.html |   4 +-
 .../index.html                                     |  78 --
 ...sors.transformation.jvm.booloperator.timer.html |   4 +-
 .../index.html                                     |  65 --
 ...rocessors.transformation.jvm.changed-value.html |   4 +-
 .../index.html                                     |  62 --
 ....processors.transformation.jvm.count-array.html |   4 +-
 .../index.html                                     |  64 --
 ....processors.transformation.jvm.csvmetadata.html |   4 +-
 .../index.html                                     |  55 --
 ...ocessors.transformation.jvm.duration-value.html |   4 +-
 .../index.html                                     |  63 --
 ...formation.jvm.processor.timestampextractor.html |   4 +-
 .../index.html                                     |  65 --
 ....processors.transformation.jvm.split-array.html |   4 +-
 .../index.html                                     |  67 --
 ...processors.transformation.jvm.taskduration.html |   4 +-
 .../index.html                                     |  62 --
 ...rs.transformation.jvm.transform-to-boolean.html |   4 +-
 .../index.html                                     |  45 -
 ...e.streampipes.sinks.brokers.jvm.bufferrest.html |   4 +-
 .../index.html                                     |  66 --
 ...g.apache.streampipes.sinks.brokers.jvm.jms.html |   4 +-
 .../index.html                                     |  67 --
 ...apache.streampipes.sinks.brokers.jvm.kafka.html |   4 +-
 .../index.html                                     |  67 --
 ...pache.streampipes.sinks.brokers.jvm.pulsar.html |   4 +-
 .../index.html                                     |  67 --
 ...che.streampipes.sinks.brokers.jvm.rabbitmq.html |   4 +-
 .../index.html                                     |  74 --
 ....apache.streampipes.sinks.brokers.jvm.rest.html |   4 +-
 .../index.html                                     |  63 --
 ...g.apache.streampipes.sinks.databases.ditto.html |   4 +-
 .../index.html                                     |  68 --
 ...mpipes.sinks.databases.flink.elasticsearch.html |   4 +-
 .../index.html                                     |  66 --
 ...he.streampipes.sinks.databases.jvm.couchdb.html |   4 +-
 .../index.html                                     |  68 --
 ...e.streampipes.sinks.databases.jvm.influxdb.html |   4 +-
 .../index.html                                     |  79 --
 ...ache.streampipes.sinks.databases.jvm.iotdb.html |   4 +-
 .../index.html                                     |  72 --
 ...ache.streampipes.sinks.databases.jvm.opcua.html |   4 +-
 .../index.html                                     |  72 --
 ...streampipes.sinks.databases.jvm.postgresql.html |   4 +-
 .../index.html                                     |  73 --
 ...e.streampipes.sinks.internal.jvm.dashboard.html |   4 +-
 .../index.html                                     |  63 --
 ...he.streampipes.sinks.internal.jvm.datalake.html |   4 +-
 .../index.html                                     |  79 --
 ...treampipes.sinks.internal.jvm.notification.html |   4 +-
 .../index.html                                     |  65 --
 ....streampipes.sinks.notifications.jvm.email.html |   4 +-
 .../index.html                                     |  71 --
 ...eampipes.sinks.notifications.jvm.onesignal.html |   4 +-
 .../index.html                                     |  68 --
 ....streampipes.sinks.notifications.jvm.slack.html |   4 +-
 .../index.html                                     |  72 --
 ...ache.streampipes.connect.adapters.coindesk.html |  20 +-
 .../index.html                                     | 108 ---
 ....apache.streampipes.connect.adapters.gdelt.html |  20 +-
 .../index.html                                     | 107 ---
 ...ache.streampipes.connect.adapters.iex.news.html |  20 +-
 .../index.html                                     | 111 ---
 ...he.streampipes.connect.adapters.iex.stocks.html |  20 +-
 .../index.html                                     | 111 ---
 ...che.streampipes.connect.adapters.image.set.html |  20 +-
 .../index.html                                     | 105 ---
 ....streampipes.connect.adapters.image.stream.html |  20 +-
 .../index.html                                     | 105 ---
 ....streampipes.connect.adapters.influxdb.set.html |  20 +-
 .../index.html                                     | 106 ---
 ...reampipes.connect.adapters.influxdb.stream.html |  20 +-
 .../index.html                                     | 106 ---
 ...rg.apache.streampipes.connect.adapters.iss.html |  20 +-
 .../index.html                                     | 105 ---
 ...che.streampipes.connect.adapters.mysql.set.html |  20 +-
 .../index.html                                     | 105 ---
 ....streampipes.connect.adapters.mysql.stream.html |  20 +-
 .../index.html                                     | 105 ---
 ...he.streampipes.connect.adapters.netio.mqtt.html |  20 +-
 .../index.html                                     | 117 ---
 ...he.streampipes.connect.adapters.netio.rest.html |  20 +-
 .../index.html                                     | 117 ---
 ...onnect.adapters.nswaustralia.trafficcamera.html |  20 +-
 .../index.html                                     | 105 ---
 ....apache.streampipes.connect.adapters.opcua.html |  20 +-
 .../index.html                                     | 105 ---
 ...ache.streampipes.connect.adapters.plc4x.s7.html |  20 +-
 .../index.html                                     | 105 ---
 ...rg.apache.streampipes.connect.adapters.ros.html |  20 +-
 .../index.html                                     | 116 ---
 ...s.connect.adapters.simulator.randomdataset.html |  20 +-
 .../index.html                                     | 105 ---
 ...onnect.adapters.simulator.randomdatastream.html |  20 +-
 .../index.html                                     | 105 ---
 ....apache.streampipes.connect.adapters.slack.html |  20 +-
 .../index.html                                     | 105 ---
 ...org.apache.streampipes.connect.adapters.ti.html |  20 +-
 .../index.html                                     | 114 ---
 ...treampipes.connect.adapters.wikipedia.edit.html |  20 +-
 .../index.html                                     | 105 ---
 ...streampipes.connect.adapters.wikipedia.new.html |  20 +-
 .../index.html                                     | 105 ---
 ...e.streampipes.connect.protocol.stream.file.html |  20 +-
 .../index.html                                     | 105 ---
 ...e.streampipes.connect.protocol.stream.http.html |  20 +-
 .../index.html                                     | 105 ---
 ....streampipes.connect.protocol.stream.kafka.html |  20 +-
 .../index.html                                     | 105 ---
 ...e.streampipes.connect.protocol.stream.mqtt.html |  20 +-
 .../index.html                                     | 112 ---
 ...streampipes.connect.protocol.stream.pulsar.html |  20 +-
 .../index.html                                     | 105 ---
 ...org.apache.streampipes.processor.geo.flink.html |  20 +-
 .../index.html                                     | 117 ---
 ...he.streampipes.processor.geo.jvm.geocoding.html |  20 +-
 .../index.html                                     | 112 ---
 ...ampipes.processor.geo.jvm.reversegeocoding.html |  20 +-
 .../index.html                                     | 112 ---
 ...eampipes.processor.geo.jvm.staticgeocoding.html |  20 +-
 .../index.html                                     | 113 ---
 ...ification.jvm.generic-image-classification.html |  20 +-
 .../index.html                                     | 113 ---
 ...ssor.imageclassification.jvm.image-cropper.html |  20 +-
 .../index.html                                     | 110 ---
 ...sor.imageclassification.jvm.image-enricher.html |  20 +-
 .../index.html                                     | 109 ---
 ...pipes.processor.imageclassification.qrcode.html |  20 +-
 .../index.html                                     | 113 ---
 ...s.processors.aggregation.flink.aggregation.html |  20 +-
 .../index.html                                     | 119 ---
 ...ampipes.processors.aggregation.flink.count.html |  20 +-
 .../index.html                                     | 115 ---
 ...es.processors.aggregation.flink.eventcount.html |  20 +-
 .../index.html                                     | 109 ---
 ...eampipes.processors.aggregation.flink.rate.html |  20 +-
 .../index.html                                     | 112 ---
 ...ssors.enricher.flink.processor.math.mathop.html |  20 +-
 .../index.html                                     | 117 ---
 ...enricher.flink.processor.math.staticmathop.html |  20 +-
 .../index.html                                     | 117 ---
 ...sors.enricher.flink.processor.trigonometry.html |  20 +-
 .../index.html                                     | 116 ---
 ....enricher.flink.processor.urldereferencing.html |  20 +-
 .../index.html                                     | 114 ---
 ...mpipes.processors.enricher.flink.timestamp.html |  20 +-
 .../index.html                                     | 112 ---
 ...mpipes.processors.enricher.jvm.sizemeasure.html |  20 +-
 .../index.html                                     | 112 ---
 ...streampipes.processors.filters.jvm.compose.html |  20 +-
 .../index.html                                     | 113 ---
 ....streampipes.processors.filters.jvm.enrich.html |  20 +-
 .../index.html                                     | 117 ---
 ...e.streampipes.processors.filters.jvm.merge.html |  20 +-
 .../index.html                                     | 120 ---
 ...pes.processors.filters.jvm.numericalfilter.html |  20 +-
 .../index.html                                     | 117 ---
 ...processors.filters.jvm.numericaltextfilter.html |  20 +-
 .../index.html                                     | 125 ---
 ...streampipes.processors.filters.jvm.project.html |  20 +-
 .../index.html                                     | 112 ---
 ...eampipes.processors.filters.jvm.textfilter.html |  20 +-
 .../index.html                                     | 115 ---
 ...reampipes.processors.filters.jvm.threshold.html |  20 +-
 .../index.html                                     | 117 ---
 ...ocessors.geo.jvm.jts.processor.latLngToGeo.html |  20 +-
 .../index.html                                     | 131 ---
 ...s.processors.geo.jvm.jts.processor.setEPSG.html |  20 +-
 .../index.html                                     | 116 ---
 ...rocessors.geo.jvm.jts.processor.trajectory.html |  20 +-
 .../index.html                                     | 144 ----
 ...ssors.geo.jvm.processor.distancecalculator.html |  20 +-
 .../index.html                                     | 112 ---
 ...ampipes.processors.geo.jvm.processor.speed.html |  20 +-
 .../index.html                                     | 115 ---
 ...geo.jvm.processor.staticdistancecalculator.html |  20 +-
 .../index.html                                     | 111 ---
 ...processors.pattern-detection.flink.absence.html |  20 +-
 .../index.html                                     | 113 ---
 ...pes.processors.pattern-detection.flink.and.html |  20 +-
 .../index.html                                     | 113 ---
 ...ors.pattern-detection.flink.peak-detection.html |  20 +-
 .../index.html                                     | 113 ---
 ...rocessors.pattern-detection.flink.sequence.html |  20 +-
 .../index.html                                     | 113 ---
 ...he.streampipes.processors.siddhi.frequency.html |  20 +-
 .../index.html                                     | 111 ---
 ...eampipes.processors.siddhi.frequencychange.html |  20 +-
 .../index.html                                     | 113 ---
 ...che.streampipes.processors.siddhi.increase.html |  20 +-
 .../index.html                                     | 113 ---
 ...eampipes.processors.siddhi.numericalfilter.html |  20 +-
 .../index.html                                     | 112 ---
 ...che.streampipes.processors.siddhi.sequence.html |  20 +-
 .../index.html                                     | 104 ---
 ....apache.streampipes.processors.siddhi.stop.html |  20 +-
 .../index.html                                     | 113 ---
 ...essors.statistics.flink.statistics-summary.html |  20 +-
 .../index.html                                     | 112 ---
 ...cessors.textmining.flink.languagedetection.html |  20 +-
 .../index.html                                     | 113 ---
 ...ipes.processors.textmining.flink.wordcount.html |  20 +-
 .../index.html                                     | 113 ---
 ...eampipes.processors.textmining.jvm.chunker.html |  20 +-
 .../index.html                                     | 128 ---
 ...rocessors.textmining.jvm.languagedetection.html |  20 +-
 .../index.html                                     | 228 -----
 ...pipes.processors.textmining.jvm.namefinder.html |  20 +-
 .../index.html                                     | 119 ---
 ...pes.processors.textmining.jvm.partofspeech.html |  20 +-
 .../index.html                                     | 122 ---
 ...rocessors.textmining.jvm.sentencedetection.html |  20 +-
 .../index.html                                     | 117 ---
 ...mpipes.processors.textmining.jvm.tokenizer.html |  20 +-
 .../index.html                                     | 117 ---
 ...ssors.transformation.flink.field-converter.html |  20 +-
 .../index.html                                     | 113 ---
 ...ocessors.transformation.flink.field-mapper.html |  22 +-
 .../index.html                                     | 133 ---
 ...cessors.transformation.flink.field-renamer.html |  20 +-
 .../index.html                                     | 113 ---
 ...rocessors.transformation.flink.fieldhasher.html |  20 +-
 .../index.html                                     | 114 ---
 ...formation.flink.measurement-unit-converter.html |  20 +-
 .../index.html                                     | 113 ---
 ...transformation.flink.processor.boilerplate.html |  20 +-
 .../index.html                                     | 112 ---
 ...rs.transformation.jvm.booloperator.counter.html |  20 +-
 .../index.html                                     | 123 ---
 ...s.transformation.jvm.booloperator.inverter.html |  20 +-
 .../index.html                                     | 113 ---
 ...ransformation.jvm.booloperator.timekeeping.html |  20 +-
 .../index.html                                     | 128 ---
 ...sors.transformation.jvm.booloperator.timer.html |  20 +-
 .../index.html                                     | 115 ---
 ...rocessors.transformation.jvm.changed-value.html |  20 +-
 .../index.html                                     | 110 ---
 ....processors.transformation.jvm.count-array.html |  20 +-
 .../index.html                                     | 114 ---
 ....processors.transformation.jvm.csvmetadata.html |  22 +-
 .../index.html                                     | 137 ---
 ...ocessors.transformation.jvm.duration-value.html |  20 +-
 .../index.html                                     | 116 ---
 ...formation.jvm.processor.timestampextractor.html |  20 +-
 .../index.html                                     | 115 ---
 ....processors.transformation.jvm.split-array.html |  20 +-
 .../index.html                                     | 117 ---
 ....transformation.jvm.stringoperator.counter.html |  20 +-
 .../index.html                                     | 121 ---
 ...rs.transformation.jvm.stringoperator.timer.html |  20 +-
 .../index.html                                     | 119 ---
 ...processors.transformation.jvm.taskduration.html |  20 +-
 .../index.html                                     | 112 ---
 ...rs.transformation.jvm.transform-to-boolean.html |  20 +-
 .../index.html                                     | 113 ---
 .../org.apache.streampipes.protocol.set.file.html  |  20 +-
 .../index.html                                     | 105 ---
 .../org.apache.streampipes.protocol.set.http.html  |  20 +-
 .../index.html                                     | 105 ---
 ...e.streampipes.sinks.brokers.jvm.bufferrest.html |  20 +-
 .../index.html                                     | 116 ---
 ...g.apache.streampipes.sinks.brokers.jvm.jms.html |  20 +-
 .../index.html                                     | 117 ---
 ...apache.streampipes.sinks.brokers.jvm.kafka.html |  20 +-
 .../index.html                                     | 117 ---
 ....apache.streampipes.sinks.brokers.jvm.mqtt.html |  20 +-
 .../index.html                                     | 117 ---
 ...pache.streampipes.sinks.brokers.jvm.pulsar.html |  20 +-
 .../index.html                                     | 117 ---
 ...che.streampipes.sinks.brokers.jvm.rabbitmq.html |  20 +-
 .../index.html                                     | 124 ---
 ....apache.streampipes.sinks.brokers.jvm.rest.html |  20 +-
 .../index.html                                     | 113 ---
 ...g.apache.streampipes.sinks.databases.ditto.html |  20 +-
 .../index.html                                     | 112 ---
 ...mpipes.sinks.databases.flink.elasticsearch.html |  20 +-
 .../index.html                                     | 116 ---
 ...he.streampipes.sinks.databases.jvm.couchdb.html |  20 +-
 .../index.html                                     | 118 ---
 ...e.streampipes.sinks.databases.jvm.influxdb.html |  20 +-
 .../index.html                                     | 129 ---
 ...ache.streampipes.sinks.databases.jvm.iotdb.html |  20 +-
 .../index.html                                     | 122 ---
 ...ache.streampipes.sinks.databases.jvm.opcua.html |  20 +-
 .../index.html                                     | 122 ---
 ...streampipes.sinks.databases.jvm.postgresql.html |  20 +-
 .../index.html                                     | 123 ---
 ...e.streampipes.sinks.internal.jvm.dashboard.html |  20 +-
 .../index.html                                     | 113 ---
 ...he.streampipes.sinks.internal.jvm.datalake.html |  20 +-
 .../index.html                                     | 129 ---
 ...treampipes.sinks.internal.jvm.notification.html |  20 +-
 .../index.html                                     | 115 ---
 ....streampipes.sinks.notifications.jvm.email.html |  20 +-
 .../index.html                                     | 121 ---
 ...eampipes.sinks.notifications.jvm.onesignal.html |  20 +-
 .../index.html                                     | 118 ---
 ....streampipes.sinks.notifications.jvm.slack.html |  20 +-
 .../index.html                                     | 122 ---
 docs/docs/0.66.0/pipeline-elements.html            |   4 +-
 docs/docs/0.66.0/pipeline-elements/index.html      |  31 -
 docs/docs/0.66.0/privacy.html                      |   6 +-
 docs/docs/0.66.0/privacy/index.html                |  61 --
 docs/docs/0.66.0/user-guide-first-steps.html       |  24 +-
 docs/docs/0.66.0/user-guide-first-steps/index.html | 288 -------
 docs/docs/0.66.0/user-guide-getting-started.html   |   8 +-
 .../0.66.0/user-guide-getting-started/index.html   | 247 ------
 docs/docs/0.66.0/user-guide-installation.html      |  24 +-
 .../docs/0.66.0/user-guide-installation/index.html | 202 -----
 docs/docs/0.66.0/user-guide-introduction.html      |  26 +-
 .../docs/0.66.0/user-guide-introduction/index.html | 125 ---
 .../0.66.0/user-guide-processing-elements.html     |   6 +-
 .../user-guide-processing-elements/index.html      | 140 ----
 .../0.66.0/user-guide-software-components.html     |   8 +-
 .../user-guide-software-components/index.html      | 307 -------
 docs/docs/0.66.0/user-guide-tour.html              |  24 +-
 docs/docs/0.66.0/user-guide-tour/index.html        | 333 --------
 docs/docs/community-contribute.html                |  22 +-
 docs/docs/community-contribute/index.html          |  94 ---
 docs/docs/community-get-help.html                  |  22 +-
 docs/docs/community-get-help/index.html            |  93 ---
 docs/docs/concepts-adapter.html                    |   6 +-
 docs/docs/concepts-adapter/index.html              |  34 -
 docs/docs/concepts-data-streams.html               |   6 +-
 docs/docs/concepts-data-streams/index.html         |  34 -
 docs/docs/concepts-glossary.html                   |   6 +-
 docs/docs/concepts-glossary/index.html             |  34 -
 docs/docs/concepts-overview.html                   |  24 +-
 docs/docs/concepts-overview/index.html             | 106 ---
 docs/docs/concepts-pipelines.html                  |   6 +-
 docs/docs/concepts-pipelines/index.html            |  34 -
 docs/docs/debugging-debugging.html                 |   6 +-
 docs/docs/debugging-debugging/index.html           |  34 -
 docs/docs/debugging-monitoring.html                |   6 +-
 docs/docs/debugging-monitoring/index.html          |  34 -
 docs/docs/deploy-docker.html                       |  26 +-
 docs/docs/deploy-docker/index.html                 | 138 ----
 docs/docs/deploy-kubernetes.html                   |  22 +-
 docs/docs/deploy-kubernetes/index.html             | 131 ---
 docs/docs/deploy-use-ssl.html                      |  22 +-
 docs/docs/deploy-use-ssl/index.html                | 107 ---
 docs/docs/dev-guide-archetype.html                 |  18 +-
 docs/docs/dev-guide-archetype/index.html           |  81 --
 docs/docs/dev-guide-architecture.html              |  22 +-
 docs/docs/dev-guide-architecture/index.html        | 122 ---
 docs/docs/dev-guide-configuration.html             |  22 +-
 docs/docs/dev-guide-configuration/index.html       | 126 ---
 docs/docs/dev-guide-development-environment.html   |  24 +-
 .../dev-guide-development-environment/index.html   | 176 ----
 docs/docs/dev-guide-event-model.html               |  30 +-
 docs/docs/dev-guide-event-model/index.html         | 176 ----
 docs/docs/dev-guide-introduction.html              |  22 +-
 docs/docs/dev-guide-introduction/index.html        | 116 ---
 docs/docs/dev-guide-migration.html                 |  22 +-
 docs/docs/dev-guide-migration/index.html           | 244 ------
 docs/docs/dev-guide-output-strategies.html         |  22 +-
 docs/docs/dev-guide-output-strategies/index.html   | 341 --------
 docs/docs/dev-guide-sdk-guide-processors.html      |  22 +-
 .../docs/dev-guide-sdk-guide-processors/index.html |  87 --
 docs/docs/dev-guide-sdk-guide-sinks.html           |  22 +-
 docs/docs/dev-guide-sdk-guide-sinks/index.html     |  87 --
 docs/docs/dev-guide-sdk-guide-sources.html         |  22 +-
 docs/docs/dev-guide-sdk-guide-sources/index.html   | 143 ----
 docs/docs/dev-guide-ssl.html                       |  22 +-
 docs/docs/dev-guide-ssl/index.html                 | 107 ---
 docs/docs/dev-guide-static-properties.html         |  22 +-
 docs/docs/dev-guide-static-properties/index.html   | 238 ------
 docs/docs/dev-guide-stream-requirements.html       |  26 +-
 docs/docs/dev-guide-stream-requirements/index.html | 215 -----
 docs/docs/dev-guide-tutorial-processors.html       |  22 +-
 docs/docs/dev-guide-tutorial-processors/index.html | 474 -----------
 docs/docs/dev-guide-tutorial-sinks.html            |  22 +-
 docs/docs/dev-guide-tutorial-sinks/index.html      | 278 -------
 docs/docs/dev-guide-tutorial-sources.html          |  22 +-
 docs/docs/dev-guide-tutorial-sources/index.html    | 303 -------
 docs/docs/extend-archetypes.html                   |  22 +-
 docs/docs/extend-archetypes/index.html             | 188 -----
 docs/docs/extend-cli.html                          |  26 +-
 docs/docs/extend-cli/index.html                    | 226 -----
 docs/docs/extend-sdk-event-model.html              |  30 +-
 docs/docs/extend-sdk-event-model/index.html        | 176 ----
 docs/docs/extend-sdk-output-strategies.html        |  22 +-
 docs/docs/extend-sdk-output-strategies/index.html  | 343 --------
 docs/docs/extend-sdk-static-properties.html        |  22 +-
 docs/docs/extend-sdk-static-properties/index.html  | 240 ------
 docs/docs/extend-sdk-stream-requirements.html      |  26 +-
 .../docs/extend-sdk-stream-requirements/index.html | 215 -----
 docs/docs/extend-setup.html                        |  28 +-
 docs/docs/extend-setup/index.html                  |  99 ---
 docs/docs/extend-tutorial-data-processors.html     |  28 +-
 .../extend-tutorial-data-processors/index.html     | 474 -----------
 docs/docs/extend-tutorial-data-sinks.html          |  26 +-
 docs/docs/extend-tutorial-data-sinks/index.html    | 278 -------
 docs/docs/extend-tutorial-data-sources.html        |  22 +-
 docs/docs/extend-tutorial-data-sources/index.html  | 302 -------
 docs/docs/faq-common-problems.html                 |  24 +-
 docs/docs/faq-common-problems/index.html           | 136 ---
 docs/docs/next/community-contribute.html           |  22 +-
 docs/docs/next/community-contribute/index.html     |  94 ---
 docs/docs/next/community-get-help.html             |  22 +-
 docs/docs/next/community-get-help/index.html       |  93 ---
 docs/docs/next/concepts-adapter.html               |   6 +-
 docs/docs/next/concepts-adapter/index.html         |  34 -
 docs/docs/next/concepts-data-streams.html          |   6 +-
 docs/docs/next/concepts-data-streams/index.html    |  34 -
 docs/docs/next/concepts-glossary.html              |   6 +-
 docs/docs/next/concepts-glossary/index.html        |  34 -
 docs/docs/next/concepts-overview.html              |  24 +-
 docs/docs/next/concepts-overview/index.html        | 106 ---
 docs/docs/next/concepts-pipelines.html             |   6 +-
 docs/docs/next/concepts-pipelines/index.html       |  34 -
 docs/docs/next/debugging-debugging.html            |   6 +-
 docs/docs/next/debugging-debugging/index.html      |  34 -
 docs/docs/next/debugging-monitoring.html           |   6 +-
 docs/docs/next/debugging-monitoring/index.html     |  34 -
 docs/docs/next/deploy-docker.html                  |  26 +-
 docs/docs/next/deploy-docker/index.html            | 139 ----
 docs/docs/next/deploy-kubernetes.html              |  22 +-
 docs/docs/next/deploy-kubernetes/index.html        | 131 ---
 docs/docs/next/deploy-use-ssl.html                 |  22 +-
 docs/docs/next/deploy-use-ssl/index.html           | 107 ---
 docs/docs/next/dev-guide-archetype.html            |  18 +-
 docs/docs/next/dev-guide-archetype/index.html      |  81 --
 docs/docs/next/dev-guide-architecture.html         |  22 +-
 docs/docs/next/dev-guide-architecture/index.html   |  87 --
 docs/docs/next/dev-guide-configuration.html        |  22 +-
 docs/docs/next/dev-guide-configuration/index.html  |  87 --
 docs/docs/next/dev-guide-environment.html          |   6 +-
 docs/docs/next/dev-guide-environment/index.html    |  37 -
 docs/docs/next/dev-guide-event-model.html          |  22 +-
 docs/docs/next/dev-guide-event-model/index.html    |  87 --
 docs/docs/next/dev-guide-introduction.html         |  22 +-
 docs/docs/next/dev-guide-introduction/index.html   | 116 ---
 docs/docs/next/dev-guide-migration.html            |  22 +-
 docs/docs/next/dev-guide-migration/index.html      | 244 ------
 docs/docs/next/dev-guide-output-strategies.html    |  22 +-
 .../next/dev-guide-output-strategies/index.html    |  87 --
 docs/docs/next/dev-guide-sdk-guide-processors.html |  22 +-
 .../next/dev-guide-sdk-guide-processors/index.html |  87 --
 docs/docs/next/dev-guide-sdk-guide-sinks.html      |  22 +-
 .../docs/next/dev-guide-sdk-guide-sinks/index.html |  87 --
 docs/docs/next/dev-guide-sdk-guide-sources.html    |  22 +-
 .../next/dev-guide-sdk-guide-sources/index.html    | 143 ----
 docs/docs/next/dev-guide-ssl.html                  |  22 +-
 docs/docs/next/dev-guide-ssl/index.html            |  87 --
 docs/docs/next/dev-guide-static-properties.html    |  22 +-
 .../next/dev-guide-static-properties/index.html    |  87 --
 docs/docs/next/dev-guide-stream-requirements.html  |  22 +-
 .../next/dev-guide-stream-requirements/index.html  |  87 --
 docs/docs/next/dev-guide-tutorial-processors.html  |  22 +-
 .../next/dev-guide-tutorial-processors/index.html  |  87 --
 docs/docs/next/dev-guide-tutorial-sinks.html       |  22 +-
 docs/docs/next/dev-guide-tutorial-sinks/index.html |  87 --
 docs/docs/next/dev-guide-tutorial-sources.html     |  22 +-
 .../next/dev-guide-tutorial-sources/index.html     |  87 --
 docs/docs/next/extend-archetypes.html              |  22 +-
 docs/docs/next/extend-archetypes/index.html        | 188 -----
 docs/docs/next/extend-cli.html                     |  26 +-
 docs/docs/next/extend-cli/index.html               | 226 -----
 docs/docs/next/extend-sdk-event-model.html         |  30 +-
 docs/docs/next/extend-sdk-event-model/index.html   | 176 ----
 docs/docs/next/extend-sdk-output-strategies.html   |  22 +-
 .../next/extend-sdk-output-strategies/index.html   | 343 --------
 docs/docs/next/extend-sdk-static-properties.html   |  22 +-
 .../next/extend-sdk-static-properties/index.html   | 240 ------
 docs/docs/next/extend-sdk-stream-requirements.html |  26 +-
 .../next/extend-sdk-stream-requirements/index.html | 215 -----
 docs/docs/next/extend-setup.html                   |  28 +-
 docs/docs/next/extend-setup/index.html             |  99 ---
 .../docs/next/extend-tutorial-data-processors.html |  28 +-
 .../extend-tutorial-data-processors/index.html     | 475 -----------
 docs/docs/next/extend-tutorial-data-sinks.html     |  24 +-
 .../next/extend-tutorial-data-sinks/index.html     | 278 -------
 docs/docs/next/extend-tutorial-data-sources.html   |  22 +-
 .../next/extend-tutorial-data-sources/index.html   | 303 -------
 docs/docs/next/faq-common-problems.html            |  24 +-
 docs/docs/next/faq-common-problems/index.html      | 136 ---
 ...ache.streampipes.connect.adapters.coindesk.html |  20 +-
 .../index.html                                     | 108 ---
 ....apache.streampipes.connect.adapters.gdelt.html |  20 +-
 .../index.html                                     | 107 ---
 ...ache.streampipes.connect.adapters.iex.news.html |  20 +-
 .../index.html                                     | 111 ---
 ...he.streampipes.connect.adapters.iex.stocks.html |  20 +-
 .../index.html                                     | 111 ---
 ...che.streampipes.connect.adapters.image.set.html |  20 +-
 .../index.html                                     | 105 ---
 ....streampipes.connect.adapters.image.stream.html |  20 +-
 .../index.html                                     | 105 ---
 ....streampipes.connect.adapters.influxdb.set.html |  20 +-
 .../index.html                                     | 106 ---
 ...reampipes.connect.adapters.influxdb.stream.html |  20 +-
 .../index.html                                     | 106 ---
 ...rg.apache.streampipes.connect.adapters.iss.html |  20 +-
 .../index.html                                     | 105 ---
 ...che.streampipes.connect.adapters.mysql.set.html |  20 +-
 .../index.html                                     | 105 ---
 ....streampipes.connect.adapters.mysql.stream.html |  20 +-
 .../index.html                                     | 105 ---
 ...he.streampipes.connect.adapters.netio.mqtt.html |  20 +-
 .../index.html                                     | 117 ---
 ...he.streampipes.connect.adapters.netio.rest.html |  20 +-
 .../index.html                                     | 117 ---
 ...onnect.adapters.nswaustralia.trafficcamera.html |  20 +-
 .../index.html                                     | 105 ---
 ....apache.streampipes.connect.adapters.opcua.html |  20 +-
 .../index.html                                     | 105 ---
 ...ache.streampipes.connect.adapters.plc4x.s7.html |  20 +-
 .../index.html                                     | 105 ---
 ...rg.apache.streampipes.connect.adapters.ros.html |  20 +-
 .../index.html                                     | 116 ---
 ...s.connect.adapters.simulator.randomdataset.html |  20 +-
 .../index.html                                     | 105 ---
 ...onnect.adapters.simulator.randomdatastream.html |  20 +-
 .../index.html                                     | 105 ---
 ....apache.streampipes.connect.adapters.slack.html |  20 +-
 .../index.html                                     | 105 ---
 ...org.apache.streampipes.connect.adapters.ti.html |  20 +-
 .../index.html                                     | 114 ---
 ...treampipes.connect.adapters.wikipedia.edit.html |  20 +-
 .../index.html                                     | 105 ---
 ...streampipes.connect.adapters.wikipedia.new.html |  20 +-
 .../index.html                                     | 105 ---
 ...e.streampipes.connect.protocol.stream.file.html |  20 +-
 .../index.html                                     | 105 ---
 ...e.streampipes.connect.protocol.stream.http.html |  20 +-
 .../index.html                                     | 105 ---
 ....streampipes.connect.protocol.stream.kafka.html |  20 +-
 .../index.html                                     | 105 ---
 ...e.streampipes.connect.protocol.stream.mqtt.html |  20 +-
 .../index.html                                     | 112 ---
 ...streampipes.connect.protocol.stream.pulsar.html |  20 +-
 .../index.html                                     | 105 ---
 ...org.apache.streampipes.processor.geo.flink.html |  20 +-
 .../index.html                                     | 117 ---
 ...he.streampipes.processor.geo.jvm.geocoding.html |  20 +-
 .../index.html                                     | 112 ---
 ...ampipes.processor.geo.jvm.reversegeocoding.html |  20 +-
 .../index.html                                     | 112 ---
 ...eampipes.processor.geo.jvm.staticgeocoding.html |  20 +-
 .../index.html                                     | 113 ---
 ...ification.jvm.generic-image-classification.html |  20 +-
 .../index.html                                     | 113 ---
 ...ssor.imageclassification.jvm.image-cropper.html |  20 +-
 .../index.html                                     | 110 ---
 ...sor.imageclassification.jvm.image-enricher.html |  20 +-
 .../index.html                                     | 109 ---
 ...pipes.processor.imageclassification.qrcode.html |  20 +-
 .../index.html                                     | 113 ---
 ...s.processors.aggregation.flink.aggregation.html |  20 +-
 .../index.html                                     | 119 ---
 ...ampipes.processors.aggregation.flink.count.html |  20 +-
 .../index.html                                     | 115 ---
 ...es.processors.aggregation.flink.eventcount.html |  20 +-
 .../index.html                                     | 109 ---
 ...eampipes.processors.aggregation.flink.rate.html |  20 +-
 .../index.html                                     | 112 ---
 ...ssors.enricher.flink.processor.math.mathop.html |  20 +-
 .../index.html                                     | 117 ---
 ...enricher.flink.processor.math.staticmathop.html |  20 +-
 .../index.html                                     | 117 ---
 ...sors.enricher.flink.processor.trigonometry.html |  20 +-
 .../index.html                                     | 116 ---
 ....enricher.flink.processor.urldereferencing.html |  20 +-
 .../index.html                                     | 114 ---
 ...mpipes.processors.enricher.flink.timestamp.html |  20 +-
 .../index.html                                     | 112 ---
 ...mpipes.processors.enricher.jvm.sizemeasure.html |  20 +-
 .../index.html                                     | 112 ---
 ...streampipes.processors.filters.jvm.compose.html |  20 +-
 .../index.html                                     | 113 ---
 ....streampipes.processors.filters.jvm.enrich.html |  20 +-
 .../index.html                                     | 117 ---
 ...e.streampipes.processors.filters.jvm.merge.html |  20 +-
 .../index.html                                     | 116 ---
 ...pes.processors.filters.jvm.numericalfilter.html |  20 +-
 .../index.html                                     | 117 ---
 ...processors.filters.jvm.numericaltextfilter.html |  20 +-
 .../index.html                                     | 125 ---
 ...streampipes.processors.filters.jvm.project.html |  20 +-
 .../index.html                                     | 112 ---
 ...eampipes.processors.filters.jvm.textfilter.html |  20 +-
 .../index.html                                     | 115 ---
 ...reampipes.processors.filters.jvm.threshold.html |  20 +-
 .../index.html                                     | 117 ---
 ...ocessors.geo.jvm.jts.processor.latLngToGeo.html |  20 +-
 .../index.html                                     | 131 ---
 ...s.processors.geo.jvm.jts.processor.setEPSG.html |  20 +-
 .../index.html                                     | 116 ---
 ...rocessors.geo.jvm.jts.processor.trajectory.html |  20 +-
 .../index.html                                     | 144 ----
 ...ssors.geo.jvm.processor.distancecalculator.html |  20 +-
 .../index.html                                     | 112 ---
 ...ampipes.processors.geo.jvm.processor.speed.html |  20 +-
 .../index.html                                     | 115 ---
 ...geo.jvm.processor.staticdistancecalculator.html |  20 +-
 .../index.html                                     | 111 ---
 ...processors.pattern-detection.flink.absence.html |  20 +-
 .../index.html                                     | 113 ---
 ...pes.processors.pattern-detection.flink.and.html |  20 +-
 .../index.html                                     | 113 ---
 ...ors.pattern-detection.flink.peak-detection.html |  20 +-
 .../index.html                                     | 113 ---
 ...rocessors.pattern-detection.flink.sequence.html |  20 +-
 .../index.html                                     | 113 ---
 ...he.streampipes.processors.siddhi.frequency.html |  20 +-
 .../index.html                                     | 111 ---
 ...eampipes.processors.siddhi.frequencychange.html |  20 +-
 .../index.html                                     | 113 ---
 ...che.streampipes.processors.siddhi.increase.html |  20 +-
 .../index.html                                     | 113 ---
 ...eampipes.processors.siddhi.numericalfilter.html |  20 +-
 .../index.html                                     | 112 ---
 ...che.streampipes.processors.siddhi.sequence.html |  20 +-
 .../index.html                                     | 104 ---
 ....apache.streampipes.processors.siddhi.stop.html |  20 +-
 .../index.html                                     | 113 ---
 ...essors.statistics.flink.statistics-summary.html |  20 +-
 .../index.html                                     | 112 ---
 ...cessors.textmining.flink.languagedetection.html |  20 +-
 .../index.html                                     | 113 ---
 ...ipes.processors.textmining.flink.wordcount.html |  20 +-
 .../index.html                                     | 113 ---
 ...eampipes.processors.textmining.jvm.chunker.html |  20 +-
 .../index.html                                     | 128 ---
 ...rocessors.textmining.jvm.languagedetection.html |  20 +-
 .../index.html                                     | 228 -----
 ...pipes.processors.textmining.jvm.namefinder.html |  20 +-
 .../index.html                                     | 119 ---
 ...pes.processors.textmining.jvm.partofspeech.html |  20 +-
 .../index.html                                     | 122 ---
 ...rocessors.textmining.jvm.sentencedetection.html |  20 +-
 .../index.html                                     | 117 ---
 ...mpipes.processors.textmining.jvm.tokenizer.html |  20 +-
 .../index.html                                     | 117 ---
 ...ssors.transformation.flink.field-converter.html |  20 +-
 .../index.html                                     | 113 ---
 ...ocessors.transformation.flink.field-mapper.html |  22 +-
 .../index.html                                     | 133 ---
 ...cessors.transformation.flink.field-renamer.html |  20 +-
 .../index.html                                     | 113 ---
 ...rocessors.transformation.flink.fieldhasher.html |  20 +-
 .../index.html                                     | 114 ---
 ...formation.flink.measurement-unit-converter.html |  20 +-
 .../index.html                                     | 113 ---
 ...transformation.flink.processor.boilerplate.html |  20 +-
 .../index.html                                     | 112 ---
 ...rs.transformation.jvm.booloperator.counter.html |  20 +-
 .../index.html                                     | 123 ---
 ...s.transformation.jvm.booloperator.inverter.html |  20 +-
 .../index.html                                     | 113 ---
 ...ransformation.jvm.booloperator.timekeeping.html |  20 +-
 .../index.html                                     | 128 ---
 ...sors.transformation.jvm.booloperator.timer.html |  20 +-
 .../index.html                                     | 115 ---
 ...rocessors.transformation.jvm.changed-value.html |  20 +-
 .../index.html                                     | 110 ---
 ....processors.transformation.jvm.count-array.html |  20 +-
 .../index.html                                     | 114 ---
 ....processors.transformation.jvm.csvmetadata.html |  22 +-
 .../index.html                                     | 137 ---
 ...ocessors.transformation.jvm.duration-value.html |  20 +-
 .../index.html                                     | 116 ---
 ...formation.jvm.processor.timestampextractor.html |  20 +-
 .../index.html                                     | 115 ---
 ....processors.transformation.jvm.split-array.html |  20 +-
 .../index.html                                     | 117 ---
 ....transformation.jvm.stringoperator.counter.html |  20 +-
 .../index.html                                     | 121 ---
 ...rs.transformation.jvm.stringoperator.timer.html |  20 +-
 .../index.html                                     | 119 ---
 ...processors.transformation.jvm.taskduration.html |  20 +-
 .../index.html                                     | 112 ---
 ...rs.transformation.jvm.transform-to-boolean.html |  20 +-
 .../index.html                                     | 113 ---
 .../org.apache.streampipes.protocol.set.file.html  |  20 +-
 .../index.html                                     | 105 ---
 .../org.apache.streampipes.protocol.set.http.html  |  20 +-
 .../index.html                                     | 105 ---
 ...e.streampipes.sinks.brokers.jvm.bufferrest.html |  20 +-
 .../index.html                                     | 116 ---
 ...g.apache.streampipes.sinks.brokers.jvm.jms.html |  20 +-
 .../index.html                                     | 117 ---
 ...apache.streampipes.sinks.brokers.jvm.kafka.html |  20 +-
 .../index.html                                     | 117 ---
 ....apache.streampipes.sinks.brokers.jvm.mqtt.html |  20 +-
 .../index.html                                     | 117 ---
 ...pache.streampipes.sinks.brokers.jvm.pulsar.html |  20 +-
 .../index.html                                     | 117 ---
 ...che.streampipes.sinks.brokers.jvm.rabbitmq.html |  20 +-
 .../index.html                                     | 124 ---
 ....apache.streampipes.sinks.brokers.jvm.rest.html |  20 +-
 .../index.html                                     | 113 ---
 ...g.apache.streampipes.sinks.databases.ditto.html |  20 +-
 .../index.html                                     | 112 ---
 ...mpipes.sinks.databases.flink.elasticsearch.html |  20 +-
 .../index.html                                     | 116 ---
 ...he.streampipes.sinks.databases.jvm.couchdb.html |  20 +-
 .../index.html                                     | 118 ---
 ...e.streampipes.sinks.databases.jvm.influxdb.html |  20 +-
 .../index.html                                     | 129 ---
 ...ache.streampipes.sinks.databases.jvm.iotdb.html |  20 +-
 .../index.html                                     | 122 ---
 ...ache.streampipes.sinks.databases.jvm.opcua.html |  20 +-
 .../index.html                                     | 122 ---
 ...streampipes.sinks.databases.jvm.postgresql.html |  20 +-
 .../index.html                                     | 123 ---
 ...e.streampipes.sinks.internal.jvm.dashboard.html |  20 +-
 .../index.html                                     | 113 ---
 ...he.streampipes.sinks.internal.jvm.datalake.html |  20 +-
 .../index.html                                     | 129 ---
 ...treampipes.sinks.internal.jvm.notification.html |  20 +-
 .../index.html                                     | 115 ---
 ....streampipes.sinks.notifications.jvm.email.html |  20 +-
 .../index.html                                     | 121 ---
 ...eampipes.sinks.notifications.jvm.onesignal.html |  20 +-
 .../index.html                                     | 118 ---
 ....streampipes.sinks.notifications.jvm.slack.html |  20 +-
 .../index.html                                     | 122 ---
 docs/docs/next/pipeline-elements.html              |   4 +-
 docs/docs/next/pipeline-elements/index.html        |  31 -
 docs/docs/next/privacy.html                        |   6 +-
 docs/docs/next/privacy/index.html                  |  61 --
 docs/docs/next/technicals-architecture.html        |  22 +-
 docs/docs/next/technicals-architecture/index.html  | 122 ---
 docs/docs/next/technicals-configuration.html       |   6 +-
 docs/docs/next/technicals-configuration/index.html |  76 --
 docs/docs/next/technicals-messaging.html           |  22 +-
 docs/docs/next/technicals-messaging/index.html     |  84 --
 docs/docs/next/technicals-runtime-wrappers.html    |  22 +-
 .../next/technicals-runtime-wrappers/index.html    |  84 --
 docs/docs/next/technicals-user-guidance.html       |  22 +-
 docs/docs/next/technicals-user-guidance/index.html |  84 --
 docs/docs/next/try-installation.html               |  24 +-
 docs/docs/next/try-installation/index.html         | 198 -----
 docs/docs/next/try-tutorial.html                   |  22 +-
 docs/docs/next/try-tutorial/index.html             |  92 ---
 docs/docs/next/use-configurations.html             |   6 +-
 docs/docs/next/use-configurations/index.html       |  34 -
 docs/docs/next/use-connect.html                    |  24 +-
 docs/docs/next/use-connect/index.html              | 130 ---
 docs/docs/next/use-dashboard.html                  |  22 +-
 docs/docs/next/use-dashboard/index.html            | 130 ---
 docs/docs/next/use-data-explorer.html              |  22 +-
 docs/docs/next/use-data-explorer/index.html        |  90 --
 docs/docs/next/use-install-pipeline-elements.html  |  22 +-
 .../next/use-install-pipeline-elements/index.html  |  85 --
 docs/docs/next/use-managing-pipelines.html         |  22 +-
 docs/docs/next/use-managing-pipelines/index.html   | 115 ---
 docs/docs/next/use-notifications.html              |  22 +-
 docs/docs/next/use-notifications/index.html        |  93 ---
 docs/docs/next/use-pipeline-editor.html            |  22 +-
 docs/docs/next/use-pipeline-editor/index.html      | 130 ---
 docs/docs/next/user-guide-first-steps.html         |   8 +-
 docs/docs/next/user-guide-first-steps/index.html   | 238 ------
 docs/docs/next/user-guide-installation.html        |   8 +-
 docs/docs/next/user-guide-installation/index.html  | 133 ---
 docs/docs/next/user-guide-introduction-old.html    |  10 +-
 .../next/user-guide-introduction-old/index.html    |  75 --
 docs/docs/next/user-guide-introduction.html        |  22 +-
 docs/docs/next/user-guide-introduction/index.html  | 191 -----
 docs/docs/next/user-guide-software-components.html |   8 +-
 .../next/user-guide-software-components/index.html | 307 -------
 docs/docs/next/user-guide-tour.html                |   8 +-
 docs/docs/next/user-guide-tour/index.html          | 283 -------
 ...org.apache.streampipes.processor.geo.flink.html |   4 +-
 .../index.html                                     |  63 --
 ...he.streampipes.processor.geo.jvm.geocoding.html |   4 +-
 .../index.html                                     |  62 --
 ...ampipes.processor.geo.jvm.reversegeocoding.html |   4 +-
 .../index.html                                     |  61 --
 ...eampipes.processor.geo.jvm.staticgeocoding.html |   4 +-
 .../index.html                                     |  63 --
 ...ification.jvm.generic-image-classification.html |   4 +-
 .../index.html                                     |  63 --
 ...sor.imageclassification.jvm.image-enricher.html |   4 +-
 .../index.html                                     |  63 --
 ...pipes.processor.imageclassification.qrcode.html |   4 +-
 .../index.html                                     |  63 --
 ...s.processors.aggregation.flink.aggregation.html |   4 +-
 .../index.html                                     |  69 --
 ...es.processors.aggregation.flink.eventcount.html |   4 +-
 .../index.html                                     |  59 --
 ...eampipes.processors.aggregation.flink.rate.html |   4 +-
 .../index.html                                     |  62 --
 ...ssors.enricher.flink.processor.math.mathop.html |   4 +-
 .../index.html                                     |  67 --
 ...enricher.flink.processor.math.staticmathop.html |   4 +-
 .../index.html                                     |  67 --
 ...sors.enricher.flink.processor.trigonometry.html |   4 +-
 .../index.html                                     |  66 --
 ....enricher.flink.processor.urldereferencing.html |   4 +-
 .../index.html                                     |  64 --
 ...mpipes.processors.enricher.flink.timestamp.html |   4 +-
 .../index.html                                     |  62 --
 ...mpipes.processors.enricher.jvm.sizemeasure.html |   4 +-
 .../index.html                                     |  45 -
 ...streampipes.processors.filters.jvm.compose.html |   4 +-
 .../index.html                                     |  63 --
 ....streampipes.processors.filters.jvm.enrich.html |   4 +-
 .../index.html                                     |  67 --
 ...e.streampipes.processors.filters.jvm.merge.html |   4 +-
 .../index.html                                     |  70 --
 ...pes.processors.filters.jvm.numericalfilter.html |   4 +-
 .../index.html                                     |  67 --
 ...processors.filters.jvm.numericaltextfilter.html |   4 +-
 .../index.html                                     |  75 --
 ...streampipes.processors.filters.jvm.project.html |   4 +-
 .../index.html                                     |  62 --
 ...eampipes.processors.filters.jvm.textfilter.html |   4 +-
 .../index.html                                     |  65 --
 ...reampipes.processors.filters.jvm.threshold.html |   4 +-
 .../index.html                                     |  67 --
 ...ssors.geo.jvm.processor.distancecalculator.html |   4 +-
 .../index.html                                     |  63 --
 ...ors.pattern-detection.flink.peak-detection.html |   4 +-
 .../index.html                                     |  63 --
 ...he.streampipes.processors.siddhi.frequency.html |   4 +-
 .../index.html                                     |  61 --
 ...eampipes.processors.siddhi.frequencychange.html |   4 +-
 .../index.html                                     |  63 --
 ...che.streampipes.processors.siddhi.increase.html |   4 +-
 .../index.html                                     |  63 --
 ...eampipes.processors.siddhi.numericalfilter.html |   4 +-
 .../index.html                                     |  62 --
 ...che.streampipes.processors.siddhi.sequence.html |   4 +-
 .../index.html                                     |  63 --
 ....apache.streampipes.processors.siddhi.stop.html |   4 +-
 .../index.html                                     |  63 --
 ...cessors.textmining.flink.languagedetection.html |   4 +-
 .../index.html                                     |  63 --
 ...ipes.processors.textmining.flink.wordcount.html |   4 +-
 .../index.html                                     |  63 --
 ...eampipes.processors.textmining.jvm.chunker.html |   4 +-
 .../index.html                                     |  76 --
 ...rocessors.textmining.jvm.languagedetection.html |   4 +-
 .../index.html                                     | 176 ----
 ...pipes.processors.textmining.jvm.namefinder.html |   4 +-
 .../index.html                                     |  69 --
 ...pes.processors.textmining.jvm.partofspeech.html |   4 +-
 .../index.html                                     |  70 --
 ...rocessors.textmining.jvm.sentencedetection.html |   4 +-
 .../index.html                                     |  65 --
 ...mpipes.processors.textmining.jvm.tokenizer.html |   4 +-
 .../index.html                                     |  65 --
 ...ssors.transformation.flink.field-converter.html |   4 +-
 .../index.html                                     |  63 --
 ...ocessors.transformation.flink.field-mapper.html |   4 +-
 .../index.html                                     |  63 --
 ...cessors.transformation.flink.field-renamer.html |   4 +-
 .../index.html                                     |  63 --
 ...rocessors.transformation.flink.fieldhasher.html |   4 +-
 .../index.html                                     |  63 --
 ...formation.flink.measurement-unit-converter.html |   4 +-
 .../index.html                                     |  63 --
 ...transformation.flink.processor.boilerplate.html |   4 +-
 .../index.html                                     |  63 --
 ...rs.transformation.jvm.booloperator.counter.html |   4 +-
 .../index.html                                     |  73 --
 ...s.transformation.jvm.booloperator.inverter.html |   4 +-
 .../index.html                                     |  63 --
 ...ransformation.jvm.booloperator.timekeeping.html |   4 +-
 .../index.html                                     |  78 --
 ...sors.transformation.jvm.booloperator.timer.html |   4 +-
 .../index.html                                     |  65 --
 ...rocessors.transformation.jvm.changed-value.html |   4 +-
 .../index.html                                     |  62 --
 ....processors.transformation.jvm.count-array.html |   4 +-
 .../index.html                                     |  64 --
 ....processors.transformation.jvm.csvmetadata.html |   4 +-
 .../index.html                                     |  55 --
 ...ocessors.transformation.jvm.duration-value.html |   4 +-
 .../index.html                                     |  63 --
 ...formation.jvm.processor.timestampextractor.html |   4 +-
 .../index.html                                     |  65 --
 ....processors.transformation.jvm.split-array.html |   4 +-
 .../index.html                                     |  67 --
 ...processors.transformation.jvm.taskduration.html |   4 +-
 .../index.html                                     |  62 --
 ...rs.transformation.jvm.transform-to-boolean.html |   4 +-
 .../index.html                                     |  45 -
 ...e.streampipes.sinks.brokers.jvm.bufferrest.html |   4 +-
 .../index.html                                     |  66 --
 ...g.apache.streampipes.sinks.brokers.jvm.jms.html |   4 +-
 .../index.html                                     |  67 --
 ...apache.streampipes.sinks.brokers.jvm.kafka.html |   4 +-
 .../index.html                                     |  67 --
 ...pache.streampipes.sinks.brokers.jvm.pulsar.html |   4 +-
 .../index.html                                     |  67 --
 ...che.streampipes.sinks.brokers.jvm.rabbitmq.html |   4 +-
 .../index.html                                     |  74 --
 ....apache.streampipes.sinks.brokers.jvm.rest.html |   4 +-
 .../index.html                                     |  63 --
 ...g.apache.streampipes.sinks.databases.ditto.html |   4 +-
 .../index.html                                     |  68 --
 ...mpipes.sinks.databases.flink.elasticsearch.html |   4 +-
 .../index.html                                     |  66 --
 ...he.streampipes.sinks.databases.jvm.couchdb.html |   4 +-
 .../index.html                                     |  68 --
 ...e.streampipes.sinks.databases.jvm.influxdb.html |   4 +-
 .../index.html                                     |  79 --
 ...ache.streampipes.sinks.databases.jvm.iotdb.html |   4 +-
 .../index.html                                     |  72 --
 ...ache.streampipes.sinks.databases.jvm.opcua.html |   4 +-
 .../index.html                                     |  72 --
 ...streampipes.sinks.databases.jvm.postgresql.html |   4 +-
 .../index.html                                     |  73 --
 ...e.streampipes.sinks.internal.jvm.dashboard.html |   4 +-
 .../index.html                                     |  63 --
 ...he.streampipes.sinks.internal.jvm.datalake.html |   4 +-
 .../index.html                                     |  79 --
 ...treampipes.sinks.internal.jvm.notification.html |   4 +-
 .../index.html                                     |  65 --
 ....streampipes.sinks.notifications.jvm.email.html |   4 +-
 .../index.html                                     |  71 --
 ...eampipes.sinks.notifications.jvm.onesignal.html |   4 +-
 .../index.html                                     |  68 --
 ....streampipes.sinks.notifications.jvm.slack.html |   4 +-
 .../index.html                                     |  72 --
 ...ache.streampipes.connect.adapters.coindesk.html |  20 +-
 .../index.html                                     | 108 ---
 ....apache.streampipes.connect.adapters.gdelt.html |  20 +-
 .../index.html                                     | 107 ---
 ...ache.streampipes.connect.adapters.iex.news.html |  20 +-
 .../index.html                                     | 111 ---
 ...he.streampipes.connect.adapters.iex.stocks.html |  20 +-
 .../index.html                                     | 111 ---
 ...che.streampipes.connect.adapters.image.set.html |  20 +-
 .../index.html                                     | 105 ---
 ....streampipes.connect.adapters.image.stream.html |  20 +-
 .../index.html                                     | 105 ---
 ....streampipes.connect.adapters.influxdb.set.html |  20 +-
 .../index.html                                     | 106 ---
 ...reampipes.connect.adapters.influxdb.stream.html |  20 +-
 .../index.html                                     | 106 ---
 ...rg.apache.streampipes.connect.adapters.iss.html |  20 +-
 .../index.html                                     | 105 ---
 ...che.streampipes.connect.adapters.mysql.set.html |  20 +-
 .../index.html                                     | 105 ---
 ....streampipes.connect.adapters.mysql.stream.html |  20 +-
 .../index.html                                     | 105 ---
 ...he.streampipes.connect.adapters.netio.mqtt.html |  20 +-
 .../index.html                                     | 117 ---
 ...he.streampipes.connect.adapters.netio.rest.html |  20 +-
 .../index.html                                     | 117 ---
 ...onnect.adapters.nswaustralia.trafficcamera.html |  20 +-
 .../index.html                                     | 105 ---
 ....apache.streampipes.connect.adapters.opcua.html |  20 +-
 .../index.html                                     | 105 ---
 ...ache.streampipes.connect.adapters.plc4x.s7.html |  20 +-
 .../index.html                                     | 105 ---
 ...rg.apache.streampipes.connect.adapters.ros.html |  20 +-
 .../index.html                                     | 116 ---
 ...s.connect.adapters.simulator.randomdataset.html |  20 +-
 .../index.html                                     | 105 ---
 ...onnect.adapters.simulator.randomdatastream.html |  20 +-
 .../index.html                                     | 105 ---
 ....apache.streampipes.connect.adapters.slack.html |  20 +-
 .../index.html                                     | 105 ---
 ...org.apache.streampipes.connect.adapters.ti.html |  20 +-
 .../index.html                                     | 114 ---
 ...treampipes.connect.adapters.wikipedia.edit.html |  20 +-
 .../index.html                                     | 105 ---
 ...streampipes.connect.adapters.wikipedia.new.html |  20 +-
 .../index.html                                     | 105 ---
 ...e.streampipes.connect.protocol.stream.file.html |  20 +-
 .../index.html                                     | 105 ---
 ...e.streampipes.connect.protocol.stream.http.html |  20 +-
 .../index.html                                     | 105 ---
 ....streampipes.connect.protocol.stream.kafka.html |  20 +-
 .../index.html                                     | 105 ---
 ...e.streampipes.connect.protocol.stream.mqtt.html |  20 +-
 .../index.html                                     | 112 ---
 ...streampipes.connect.protocol.stream.pulsar.html |  20 +-
 .../index.html                                     | 105 ---
 ...org.apache.streampipes.processor.geo.flink.html |  20 +-
 .../index.html                                     | 117 ---
 ...he.streampipes.processor.geo.jvm.geocoding.html |  20 +-
 .../index.html                                     | 112 ---
 ...ampipes.processor.geo.jvm.reversegeocoding.html |  20 +-
 .../index.html                                     | 112 ---
 ...eampipes.processor.geo.jvm.staticgeocoding.html |  20 +-
 .../index.html                                     | 113 ---
 ...ification.jvm.generic-image-classification.html |  20 +-
 .../index.html                                     | 113 ---
 ...ssor.imageclassification.jvm.image-cropper.html |  20 +-
 .../index.html                                     | 110 ---
 ...sor.imageclassification.jvm.image-enricher.html |  20 +-
 .../index.html                                     | 109 ---
 ...pipes.processor.imageclassification.qrcode.html |  20 +-
 .../index.html                                     | 113 ---
 ...s.processors.aggregation.flink.aggregation.html |  20 +-
 .../index.html                                     | 119 ---
 ...ampipes.processors.aggregation.flink.count.html |  20 +-
 .../index.html                                     | 115 ---
 ...es.processors.aggregation.flink.eventcount.html |  20 +-
 .../index.html                                     | 109 ---
 ...eampipes.processors.aggregation.flink.rate.html |  20 +-
 .../index.html                                     | 112 ---
 ...ssors.enricher.flink.processor.math.mathop.html |  20 +-
 .../index.html                                     | 117 ---
 ...enricher.flink.processor.math.staticmathop.html |  20 +-
 .../index.html                                     | 117 ---
 ...sors.enricher.flink.processor.trigonometry.html |  20 +-
 .../index.html                                     | 116 ---
 ....enricher.flink.processor.urldereferencing.html |  20 +-
 .../index.html                                     | 114 ---
 ...mpipes.processors.enricher.flink.timestamp.html |  20 +-
 .../index.html                                     | 112 ---
 ...mpipes.processors.enricher.jvm.sizemeasure.html |  20 +-
 .../index.html                                     | 112 ---
 ...streampipes.processors.filters.jvm.compose.html |  20 +-
 .../index.html                                     | 113 ---
 ....streampipes.processors.filters.jvm.enrich.html |  20 +-
 .../index.html                                     | 117 ---
 ...e.streampipes.processors.filters.jvm.merge.html |  20 +-
 .../index.html                                     | 120 ---
 ...pes.processors.filters.jvm.numericalfilter.html |  20 +-
 .../index.html                                     | 117 ---
 ...processors.filters.jvm.numericaltextfilter.html |  20 +-
 .../index.html                                     | 125 ---
 ...streampipes.processors.filters.jvm.project.html |  20 +-
 .../index.html                                     | 112 ---
 ...eampipes.processors.filters.jvm.textfilter.html |  20 +-
 .../index.html                                     | 115 ---
 ...reampipes.processors.filters.jvm.threshold.html |  20 +-
 .../index.html                                     | 117 ---
 ...ocessors.geo.jvm.jts.processor.latLngToGeo.html |  20 +-
 .../index.html                                     | 131 ---
 ...s.processors.geo.jvm.jts.processor.setEPSG.html |  20 +-
 .../index.html                                     | 116 ---
 ...rocessors.geo.jvm.jts.processor.trajectory.html |  20 +-
 .../index.html                                     | 144 ----
 ...ssors.geo.jvm.processor.distancecalculator.html |  20 +-
 .../index.html                                     | 112 ---
 ...ampipes.processors.geo.jvm.processor.speed.html |  20 +-
 .../index.html                                     | 115 ---
 ...geo.jvm.processor.staticdistancecalculator.html |  20 +-
 .../index.html                                     | 111 ---
 ...processors.pattern-detection.flink.absence.html |  20 +-
 .../index.html                                     | 113 ---
 ...pes.processors.pattern-detection.flink.and.html |  20 +-
 .../index.html                                     | 113 ---
 ...ors.pattern-detection.flink.peak-detection.html |  20 +-
 .../index.html                                     | 113 ---
 ...rocessors.pattern-detection.flink.sequence.html |  20 +-
 .../index.html                                     | 113 ---
 ...he.streampipes.processors.siddhi.frequency.html |  20 +-
 .../index.html                                     | 111 ---
 ...eampipes.processors.siddhi.frequencychange.html |  20 +-
 .../index.html                                     | 113 ---
 ...che.streampipes.processors.siddhi.increase.html |  20 +-
 .../index.html                                     | 113 ---
 ...eampipes.processors.siddhi.numericalfilter.html |  20 +-
 .../index.html                                     | 112 ---
 ...che.streampipes.processors.siddhi.sequence.html |  20 +-
 .../index.html                                     | 104 ---
 ....apache.streampipes.processors.siddhi.stop.html |  20 +-
 .../index.html                                     | 113 ---
 ...essors.statistics.flink.statistics-summary.html |  20 +-
 .../index.html                                     | 112 ---
 ...cessors.textmining.flink.languagedetection.html |  20 +-
 .../index.html                                     | 113 ---
 ...ipes.processors.textmining.flink.wordcount.html |  20 +-
 .../index.html                                     | 113 ---
 ...eampipes.processors.textmining.jvm.chunker.html |  20 +-
 .../index.html                                     | 128 ---
 ...rocessors.textmining.jvm.languagedetection.html |  20 +-
 .../index.html                                     | 228 -----
 ...pipes.processors.textmining.jvm.namefinder.html |  20 +-
 .../index.html                                     | 119 ---
 ...pes.processors.textmining.jvm.partofspeech.html |  20 +-
 .../index.html                                     | 122 ---
 ...rocessors.textmining.jvm.sentencedetection.html |  20 +-
 .../index.html                                     | 117 ---
 ...mpipes.processors.textmining.jvm.tokenizer.html |  20 +-
 .../index.html                                     | 117 ---
 ...ssors.transformation.flink.field-converter.html |  20 +-
 .../index.html                                     | 113 ---
 ...ocessors.transformation.flink.field-mapper.html |  22 +-
 .../index.html                                     | 133 ---
 ...cessors.transformation.flink.field-renamer.html |  20 +-
 .../index.html                                     | 113 ---
 ...rocessors.transformation.flink.fieldhasher.html |  20 +-
 .../index.html                                     | 114 ---
 ...formation.flink.measurement-unit-converter.html |  20 +-
 .../index.html                                     | 113 ---
 ...transformation.flink.processor.boilerplate.html |  20 +-
 .../index.html                                     | 112 ---
 ...rs.transformation.jvm.booloperator.counter.html |  20 +-
 .../index.html                                     | 123 ---
 ...s.transformation.jvm.booloperator.inverter.html |  20 +-
 .../index.html                                     | 113 ---
 ...ransformation.jvm.booloperator.timekeeping.html |  20 +-
 .../index.html                                     | 128 ---
 ...sors.transformation.jvm.booloperator.timer.html |  20 +-
 .../index.html                                     | 115 ---
 ...rocessors.transformation.jvm.changed-value.html |  20 +-
 .../index.html                                     | 110 ---
 ....processors.transformation.jvm.count-array.html |  20 +-
 .../index.html                                     | 114 ---
 ....processors.transformation.jvm.csvmetadata.html |  22 +-
 .../index.html                                     | 137 ---
 ...ocessors.transformation.jvm.duration-value.html |  20 +-
 .../index.html                                     | 116 ---
 ...formation.jvm.processor.timestampextractor.html |  20 +-
 .../index.html                                     | 115 ---
 ....processors.transformation.jvm.split-array.html |  20 +-
 .../index.html                                     | 117 ---
 ....transformation.jvm.stringoperator.counter.html |  20 +-
 .../index.html                                     | 121 ---
 ...rs.transformation.jvm.stringoperator.timer.html |  20 +-
 .../index.html                                     | 119 ---
 ...processors.transformation.jvm.taskduration.html |  20 +-
 .../index.html                                     | 112 ---
 ...rs.transformation.jvm.transform-to-boolean.html |  20 +-
 .../index.html                                     | 113 ---
 .../org.apache.streampipes.protocol.set.file.html  |  20 +-
 .../index.html                                     | 105 ---
 .../org.apache.streampipes.protocol.set.http.html  |  20 +-
 .../index.html                                     | 105 ---
 ...e.streampipes.sinks.brokers.jvm.bufferrest.html |  20 +-
 .../index.html                                     | 116 ---
 ...g.apache.streampipes.sinks.brokers.jvm.jms.html |  20 +-
 .../index.html                                     | 117 ---
 ...apache.streampipes.sinks.brokers.jvm.kafka.html |  20 +-
 .../index.html                                     | 117 ---
 ....apache.streampipes.sinks.brokers.jvm.mqtt.html |  20 +-
 .../index.html                                     | 117 ---
 ...pache.streampipes.sinks.brokers.jvm.pulsar.html |  20 +-
 .../index.html                                     | 117 ---
 ...che.streampipes.sinks.brokers.jvm.rabbitmq.html |  20 +-
 .../index.html                                     | 124 ---
 ....apache.streampipes.sinks.brokers.jvm.rest.html |  20 +-
 .../index.html                                     | 113 ---
 ...g.apache.streampipes.sinks.databases.ditto.html |  20 +-
 .../index.html                                     | 112 ---
 ...mpipes.sinks.databases.flink.elasticsearch.html |  20 +-
 .../index.html                                     | 116 ---
 ...he.streampipes.sinks.databases.jvm.couchdb.html |  20 +-
 .../index.html                                     | 118 ---
 ...e.streampipes.sinks.databases.jvm.influxdb.html |  20 +-
 .../index.html                                     | 129 ---
 ...ache.streampipes.sinks.databases.jvm.iotdb.html |  20 +-
 .../index.html                                     | 122 ---
 ...ache.streampipes.sinks.databases.jvm.opcua.html |  20 +-
 .../index.html                                     | 122 ---
 ...streampipes.sinks.databases.jvm.postgresql.html |  20 +-
 .../index.html                                     | 123 ---
 ...e.streampipes.sinks.internal.jvm.dashboard.html |  20 +-
 .../index.html                                     | 113 ---
 ...he.streampipes.sinks.internal.jvm.datalake.html |  20 +-
 .../index.html                                     | 129 ---
 ...treampipes.sinks.internal.jvm.notification.html |  20 +-
 .../index.html                                     | 115 ---
 ....streampipes.sinks.notifications.jvm.email.html |  20 +-
 .../index.html                                     | 121 ---
 ...eampipes.sinks.notifications.jvm.onesignal.html |  20 +-
 .../index.html                                     | 118 ---
 ....streampipes.sinks.notifications.jvm.slack.html |  20 +-
 .../index.html                                     | 122 ---
 docs/docs/pipeline-elements.html                   |   4 +-
 docs/docs/pipeline-elements/index.html             |  31 -
 docs/docs/privacy.html                             |   6 +-
 docs/docs/privacy/index.html                       |  61 --
 docs/docs/technicals-architecture.html             |  22 +-
 docs/docs/technicals-architecture/index.html       | 122 ---
 docs/docs/technicals-configuration.html            |   6 +-
 docs/docs/technicals-configuration/index.html      |  76 --
 docs/docs/technicals-messaging.html                |  22 +-
 docs/docs/technicals-messaging/index.html          |  84 --
 docs/docs/technicals-runtime-wrappers.html         |  22 +-
 docs/docs/technicals-runtime-wrappers/index.html   |  84 --
 docs/docs/technicals-user-guidance.html            |  22 +-
 docs/docs/technicals-user-guidance/index.html      |  84 --
 docs/docs/try-installation.html                    |  24 +-
 docs/docs/try-installation/index.html              | 198 -----
 docs/docs/try-tutorial.html                        |  24 +-
 docs/docs/try-tutorial/index.html                  |  92 ---
 docs/docs/use-configurations.html                  |   6 +-
 docs/docs/use-configurations/index.html            |  34 -
 docs/docs/use-connect.html                         |  24 +-
 docs/docs/use-connect/index.html                   | 130 ---
 docs/docs/use-dashboard.html                       |  22 +-
 docs/docs/use-dashboard/index.html                 | 130 ---
 docs/docs/use-data-explorer.html                   |  22 +-
 docs/docs/use-data-explorer/index.html             |  90 --
 docs/docs/use-install-pipeline-elements.html       |  22 +-
 docs/docs/use-install-pipeline-elements/index.html |  85 --
 docs/docs/use-managing-pipelines.html              |  22 +-
 docs/docs/use-managing-pipelines/index.html        | 115 ---
 docs/docs/use-notifications.html                   |  22 +-
 docs/docs/use-notifications/index.html             |  93 ---
 docs/docs/use-pipeline-editor.html                 |  22 +-
 docs/docs/use-pipeline-editor/index.html           | 130 ---
 docs/docs/user-guide-first-steps.html              |   8 +-
 docs/docs/user-guide-first-steps/index.html        | 238 ------
 docs/docs/user-guide-getting-started.html          |   8 +-
 docs/docs/user-guide-getting-started/index.html    | 247 ------
 docs/docs/user-guide-installation.html             |   8 +-
 docs/docs/user-guide-installation/index.html       | 133 ---
 docs/docs/user-guide-introduction-old.html         |  10 +-
 docs/docs/user-guide-introduction-old/index.html   |  75 --
 docs/docs/user-guide-introduction.html             |  22 +-
 docs/docs/user-guide-introduction/index.html       | 191 -----
 docs/docs/user-guide-processing-elements.html      |   6 +-
 .../docs/user-guide-processing-elements/index.html | 140 ----
 docs/docs/user-guide-software-components.html      |   8 +-
 .../docs/user-guide-software-components/index.html | 307 -------
 docs/docs/user-guide-tour.html                     |   8 +-
 docs/docs/user-guide-tour/index.html               | 283 -------
 docs/en/versions.html                              |   4 +-
 docs/en/versions/index.html                        |  31 -
 docs/js/codetabs.js                                |  22 +-
 docs/js/scrollSpy.js                               |  83 ++
 docs/sitemap.xml                                   | 916 +--------------------
 docs/versions.html                                 |   4 +-
 docs/versions/index.html                           |  31 -
 1833 files changed, 9022 insertions(+), 118399 deletions(-)

diff --git a/docs/blog/2018/06/14/welcome.html b/docs/blog/2018/06/14/welcome.html
index f54d4dd..1a3013a 100644
--- a/docs/blog/2018/06/14/welcome.html
+++ b/docs/blog/2018/06/14/welcome.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Welcome to StreamPipes! · Apache StreamPipes</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Welcome to our new blog. StreamPipes is the new, easy-to-use self-service data analytics toolbox for the Industrial IoT. In the coming weeks, we&#x27;ll publish a series of blog posts that [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Welcome to StreamPipes! · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Welcome to our new blog. StreamPipes is the new, easy-to-use self-service data analytics toolbox for the Industrial IoT. In the coming weeks, we&#x27;ll publish a series [...]
               window.dataLayer = window.dataLayer || [];
               function gtag(){dataLayer.push(arguments); }
               gtag('js', new Date());
@@ -9,7 +9,7 @@
             {"zIndex":100}
           )
         });
-        </script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions"><h3>0.67.0</h3></a><div class="navigationWrapper navigationSlider"><na [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.67.0</h3></a>< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -37,10 +37,16 @@
               createToggler('#navToggler', '#docsNav', 'docsSliderActive');
               createToggler('#tocToggler', 'body', 'tocActive');
 
-              const headings = document.querySelector('.toc-headings');
+              var headings = document.querySelector('.toc-headings');
               headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
                 }
               }, false);
 
@@ -59,9 +65,9 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer postContainer blogContainer"><div class="wrapper"><div class="lonePost"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle"><a href="/docs/blog/2018/06/14/welcome">Welcome to StreamPipes!</a></h1><p class="post-meta">June 14, 2018</p><div class="authorBlock"><p class="post-authorName"><a href="http://twitter.com/dominikjriemer" target="_blank" rel="noreferrer noopener">Dominik Riemer</a></p><div class=" [...]
+        </script></nav></div><div class="container mainContainer postContainer blogContainer"><div class="wrapper"><div class="lonePost"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle"><a href="/docs/blog/2018/06/14/welcome.html">Welcome to StreamPipes!</a></h1><p class="post-meta">June 14, 2018</p><div class="authorBlock"><p class="post-authorName"><a href="http://twitter.com/dominikjriemer" target="_blank" rel="noreferrer noopener">Dominik Riemer</a></p><div cl [...]
 <p>Stay tuned!</p>
-</span></div></div><div class="blogSocialSection"></div></div><div class="blog-recent"><a class="button" href="/docs/blog">Recent Posts</a></div></div></div><nav class="onPageNav"></nav></div><div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/docs/" class="nav-home"><img src="/docs/img/sp-logo-color.png" alt="Apache StreamPipes" width="66"/></a><div><h5>Docs</h5><a href="/docs/docs/user-guide-introduction">User Guide</a><a href="/docs/docs/dev-guide-introducti [...]
+</span></div></div><div class="blogSocialSection"></div></div><div class="blog-recent"><a class="button" href="/docs/blog/">Recent Posts</a></div></div></div><nav class="onPageNav"></nav></div><div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/docs/" class="nav-home"><img src="/docs/img/sp-logo-color.png" alt="Apache StreamPipes" width="66"/></a><div><h5>Docs</h5><a href="/docs/docs/user-guide-introduction">User Guide</a><a href="/docs/docs/dev-guide-introduct [...]
                 document.addEventListener('keyup', function(e) {
                   if (e.target !== document.body) {
                     return;
diff --git a/docs/blog/2018/06/14/welcome/index.html b/docs/blog/2018/06/14/welcome/index.html
deleted file mode 100644
index f54d4dd..0000000
--- a/docs/blog/2018/06/14/welcome/index.html
+++ /dev/null
@@ -1,83 +0,0 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Welcome to StreamPipes! · Apache StreamPipes</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Welcome to our new blog. StreamPipes is the new, easy-to-use self-service data analytics toolbox for the Industrial IoT. In the coming weeks, we&#x27;ll publish a series of blog posts that [...]
-              window.dataLayer = window.dataLayer || [];
-              function gtag(){dataLayer.push(arguments); }
-              gtag('js', new Date());
-              gtag('config', 'UA-154181944-1');
-            </script><link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons"/><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick.min.css"/><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick-theme.min.css"/><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto"/><link rel="stylesheet" href="/docs/css/admonition.css"/><link rel="stylesheet" href="/docs [...]
-        document.addEventListener('DOMContentLoaded', function() {
-          addBackToTop(
-            {"zIndex":100}
-          )
-        });
-        </script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions"><h3>0.67.0</h3></a><div class="navigationWrapper navigationSlider"><na [...]
-            var coll = document.getElementsByClassName('collapsible');
-            var checkActiveCategory = true;
-            for (var i = 0; i < coll.length; i++) {
-              var links = coll[i].nextElementSibling.getElementsByTagName('*');
-              if (checkActiveCategory){
-                for (var j = 0; j < links.length; j++) {
-                  if (links[j].classList.contains('navListItemActive')){
-                    coll[i].nextElementSibling.classList.toggle('hide');
-                    coll[i].childNodes[1].classList.toggle('rotate');
-                    checkActiveCategory = false;
-                    break;
-                  }
-                }
-              }
-
-              coll[i].addEventListener('click', function() {
-                var arrow = this.childNodes[1];
-                arrow.classList.toggle('rotate');
-                var content = this.nextElementSibling;
-                content.classList.toggle('hide');
-              });
-            }
-
-            document.addEventListener('DOMContentLoaded', function() {
-              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
-              createToggler('#tocToggler', 'body', 'tocActive');
-
-              const headings = document.querySelector('.toc-headings');
-              headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
-                }
-              }, false);
-
-              function createToggler(togglerSelector, targetSelector, className) {
-                var toggler = document.querySelector(togglerSelector);
-                var target = document.querySelector(targetSelector);
-
-                if (!toggler) {
-                  return;
-                }
-
-                toggler.onclick = function(event) {
-                  event.preventDefault();
-
-                  target.classList.toggle(className);
-                };
-              }
-            });
-        </script></nav></div><div class="container mainContainer postContainer blogContainer"><div class="wrapper"><div class="lonePost"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle"><a href="/docs/blog/2018/06/14/welcome">Welcome to StreamPipes!</a></h1><p class="post-meta">June 14, 2018</p><div class="authorBlock"><p class="post-authorName"><a href="http://twitter.com/dominikjriemer" target="_blank" rel="noreferrer noopener">Dominik Riemer</a></p><div class=" [...]
-<p>Stay tuned!</p>
-</span></div></div><div class="blogSocialSection"></div></div><div class="blog-recent"><a class="button" href="/docs/blog">Recent Posts</a></div></div></div><nav class="onPageNav"></nav></div><div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/docs/" class="nav-home"><img src="/docs/img/sp-logo-color.png" alt="Apache StreamPipes" width="66"/></a><div><h5>Docs</h5><a href="/docs/docs/user-guide-introduction">User Guide</a><a href="/docs/docs/dev-guide-introducti [...]
-                document.addEventListener('keyup', function(e) {
-                  if (e.target !== document.body) {
-                    return;
-                  }
-                  // keyCode for '/' (slash)
-                  if (e.keyCode === 191) {
-                    const search = document.getElementById('search_input_react');
-                    search && search.focus();
-                  }
-                });
-              </script><script>
-              var search = docsearch({
-                
-                apiKey: '0fedc89dddf2810657708b178e56ef02',
-                indexName: 'streampipes',
-                inputSelector: '#search_input_react',
-                algoliaOptions: {}
-              });
-            </script></body></html>
\ No newline at end of file
diff --git a/docs/blog/2018/06/18/how-to-understand-your-machine-data.html b/docs/blog/2018/06/18/how-to-understand-your-machine-data.html
index bcdd1c0..39351ad 100644
--- a/docs/blog/2018/06/18/how-to-understand-your-machine-data.html
+++ b/docs/blog/2018/06/18/how-to-understand-your-machine-data.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>How to understand your machine data? · Apache StreamPipes</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="**&lt;div style=&quot;float: left; padding-right: 40px;&quot;&gt;8 minutes to read&lt;/div&gt;**"/><meta name="docsearch:language" content="en"/><meta property="og:title" cont [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>How to understand your machine data? · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="**&lt;div style=&quot;float: left; padding-right: 40px;&quot;&gt;8 minutes to read&lt;/div&gt;**"/><meta name="docsearch:language" content="en"/><meta prope [...]
               window.dataLayer = window.dataLayer || [];
               function gtag(){dataLayer.push(arguments); }
               gtag('js', new Date());
@@ -9,7 +9,7 @@
             {"zIndex":100}
           )
         });
-        </script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions"><h3>0.67.0</h3></a><div class="navigationWrapper navigationSlider"><na [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.67.0</h3></a>< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -37,10 +37,16 @@
               createToggler('#navToggler', '#docsNav', 'docsSliderActive');
               createToggler('#tocToggler', 'body', 'tocActive');
 
-              const headings = document.querySelector('.toc-headings');
+              var headings = document.querySelector('.toc-headings');
               headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
                 }
               }, false);
 
@@ -59,7 +65,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer postContainer blogContainer"><div class="wrapper"><div class="lonePost"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle"><a href="/docs/blog/2018/06/18/how-to-understand-your-machine-data">How to understand your machine data?</a></h1><p class="post-meta">June 18, 2018</p><div class="authorBlock"><p class="post-authorName"><a href="http://twitter.com/philipp10der" target="_blank" rel="noreferrer noope [...]
+        </script></nav></div><div class="container mainContainer postContainer blogContainer"><div class="wrapper"><div class="lonePost"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle"><a href="/docs/blog/2018/06/18/how-to-understand-your-machine-data.html">How to understand your machine data?</a></h1><p class="post-meta">June 18, 2018</p><div class="authorBlock"><p class="post-authorName"><a href="http://twitter.com/philipp10der" target="_blank" rel="noreferrer  [...]
 <br></p>
 <p>Data is the new oil. Probably everybody of you has heard or read this sentence before.
 It is often stated how important data and data understanding is for companies today.
@@ -144,7 +150,7 @@ In the following blog posts we explain the individual parts in more detail to pr
 <li>Part 5: Putting it all together (Example Pipeline)</li>
 <li>Part 6: Practical Tips</li>
 </ul>
-</span></div></div><div class="blogSocialSection"></div></div><div class="blog-recent"><a class="button" href="/docs/blog">Recent Posts</a></div></div></div><nav class="onPageNav"></nav></div><div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/docs/" class="nav-home"><img src="/docs/img/sp-logo-color.png" alt="Apache StreamPipes" width="66"/></a><div><h5>Docs</h5><a href="/docs/docs/user-guide-introduction">User Guide</a><a href="/docs/docs/dev-guide-introducti [...]
+</span></div></div><div class="blogSocialSection"></div></div><div class="blog-recent"><a class="button" href="/docs/blog/">Recent Posts</a></div></div></div><nav class="onPageNav"></nav></div><div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/docs/" class="nav-home"><img src="/docs/img/sp-logo-color.png" alt="Apache StreamPipes" width="66"/></a><div><h5>Docs</h5><a href="/docs/docs/user-guide-introduction">User Guide</a><a href="/docs/docs/dev-guide-introduct [...]
                 document.addEventListener('keyup', function(e) {
                   if (e.target !== document.body) {
                     return;
diff --git a/docs/blog/2018/06/18/how-to-understand-your-machine-data/index.html b/docs/blog/2018/06/18/how-to-understand-your-machine-data/index.html
deleted file mode 100644
index bcdd1c0..0000000
--- a/docs/blog/2018/06/18/how-to-understand-your-machine-data/index.html
+++ /dev/null
@@ -1,166 +0,0 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>How to understand your machine data? · Apache StreamPipes</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="**&lt;div style=&quot;float: left; padding-right: 40px;&quot;&gt;8 minutes to read&lt;/div&gt;**"/><meta name="docsearch:language" content="en"/><meta property="og:title" cont [...]
-              window.dataLayer = window.dataLayer || [];
-              function gtag(){dataLayer.push(arguments); }
-              gtag('js', new Date());
-              gtag('config', 'UA-154181944-1');
-            </script><link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons"/><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick.min.css"/><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick-theme.min.css"/><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto"/><link rel="stylesheet" href="/docs/css/admonition.css"/><link rel="stylesheet" href="/docs [...]
-        document.addEventListener('DOMContentLoaded', function() {
-          addBackToTop(
-            {"zIndex":100}
-          )
-        });
-        </script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions"><h3>0.67.0</h3></a><div class="navigationWrapper navigationSlider"><na [...]
-            var coll = document.getElementsByClassName('collapsible');
-            var checkActiveCategory = true;
-            for (var i = 0; i < coll.length; i++) {
-              var links = coll[i].nextElementSibling.getElementsByTagName('*');
-              if (checkActiveCategory){
-                for (var j = 0; j < links.length; j++) {
-                  if (links[j].classList.contains('navListItemActive')){
-                    coll[i].nextElementSibling.classList.toggle('hide');
-                    coll[i].childNodes[1].classList.toggle('rotate');
-                    checkActiveCategory = false;
-                    break;
-                  }
-                }
-              }
-
-              coll[i].addEventListener('click', function() {
-                var arrow = this.childNodes[1];
-                arrow.classList.toggle('rotate');
-                var content = this.nextElementSibling;
-                content.classList.toggle('hide');
-              });
-            }
-
-            document.addEventListener('DOMContentLoaded', function() {
-              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
-              createToggler('#tocToggler', 'body', 'tocActive');
-
-              const headings = document.querySelector('.toc-headings');
-              headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
-                }
-              }, false);
-
-              function createToggler(togglerSelector, targetSelector, className) {
-                var toggler = document.querySelector(togglerSelector);
-                var target = document.querySelector(targetSelector);
-
-                if (!toggler) {
-                  return;
-                }
-
-                toggler.onclick = function(event) {
-                  event.preventDefault();
-
-                  target.classList.toggle(className);
-                };
-              }
-            });
-        </script></nav></div><div class="container mainContainer postContainer blogContainer"><div class="wrapper"><div class="lonePost"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle"><a href="/docs/blog/2018/06/18/how-to-understand-your-machine-data">How to understand your machine data?</a></h1><p class="post-meta">June 18, 2018</p><div class="authorBlock"><p class="post-authorName"><a href="http://twitter.com/philipp10der" target="_blank" rel="noreferrer noope [...]
-<br></p>
-<p>Data is the new oil. Probably everybody of you has heard or read this sentence before.
-It is often stated how important data and data understanding is for companies today.
-But what does this actually mean?  How does the data look like that is produced by your machines and systems?
-And how can we solve the big challenge to turn this raw data into insights that can be understood by humans?</p>
-<!--truncate-->
-<p>When it comes to data analytics people often talk about the big players like Google, Facebook, or Netflix which collect a lot of data about their users and their usage behavior.
-The core of their business model is to use data and turn it into profit. Nowadays all companies have the requirement to analyze their data.
-But since this was not originally part of their business model it is very challenging for them to catch up.
-To gain insights from data, it is often referred to advanced analytics and machine learning. Before such techniques can be used some work must be done.
-A first, basic part of that is to understand your data. We do that in four steps, as can be seen in figure below.
-First data sources must be accessed, then they can be integrated and for example be stored in a data lake.
-After that, we employ rule-based analytics to find patterns and situations.
-In the end, machine learning and advanced analytics algorithms can be used to get more out of the data.
-The idea behind those steps is to generate value as early as possible by collecting the low-hanging fruits first.
-We develop methodologies and tools for the individual steps to also allow domain experts to perform them to bridge the gap between the big tech companies and more traditional industries.</p>
-<p><img class="blog-image" style="max-width:50%;" src="/docs/blog/assets/2018-06-18/01_motivation.png" alt="Motivation Graphic"></p>
-<p>The questions we try to answer in these blog posts are:</p>
-<ul>
-<li><strong>How does data produced by machines look like?</strong></li>
-<li><strong>How can machines and other data sources be accessed?</strong></li>
-<li><strong>How is it possible to process the continuously produced flow of data?</strong></li>
-</ul>
-<p>We illustrate our ideas with an example which we also use during the whole blog series.
-The example is a water circle of a cooling system. You can see such a system in the next image.
-It contains multiple water tanks and pipes that connect those tanks.
-Within the tanks and the pipes are multiple sensors, which measure for example the water level in the tank, the flow rate in the water pipe, or the temperature of the water.
-All those sensors are very simple, they make iterative observations and send the sensed measurements to a computer system.</p>
-<p><img class="blog-image" style="max-width:70%;" src="/docs/blog/assets/2018-06-18/02_anlage.png" alt="Water Circle Image"></p>
-<p>Before we go into detail, we want to explain the term streaming data, because we focus on machine and sensor data which is continually produced in a streaming fashion.
-The opposite of streaming data are fixed sized data sets, called batch data.
-Since always new data is produced by sensors, it is not possible to wait till all data is completely produced and then process it.
-Different to that is batch data.
-The advantage of batch data is, when the processing starts no new data is added anymore.
-Streaming data can also be processed with batch processing systems.
-Therefore, a data stream must be separated into fixed chunks which are then processed in a batch fashion.
-This is possible but the more natural fit is to use streaming systems since they were designed to process streaming data.</p>
-<p>In an environment where we process machine data we have different components.
-The individual components exchange information in the form of <strong>events</strong>.
-All assets continually producing data are called <strong>data sources</strong> (i.e. a sensor, machine or a software system).
-To access these data sources, <strong>adapters</strong> are needed.
-Adapters are software components (which can run anywhere, for example directly on the machine or separately on a edge device near the machine) that are able to connect to the data source, extract the sensor information and emit events to the <strong>middleware</strong>.
-The middleware is a central component which is an intermediate between the individual components.
-Even if the middleware is a central component, it is not a bottleneck and also not a single point of failure since it is often realized in form of a distributed system.
-<strong>Processing systems</strong> can access data from the middleware, transform it and apply algorithms.
-This is the component where the data is analyzed and higher-level information is generated.
-In the end, results can be stored in <strong>data bases</strong>.
-From there, other applications like for example dashboards can access the calculated results.
-This is the high-level architecture of processing data streams.</p>
-<p><img class="blog-image" src="/docs/blog/assets/2018-06-18/03_architecture.png" alt="Overall architecture"></p>
-<p>Once the events are integrated into a middleware, it must be processed to detect situations and generate higher-level events.
-This can be done in an <strong>Event Processing Network (EPN)</strong>.
-An EPN consists of one or multiple <strong>data sources, event processors</strong> transforming and detecting patterns in the data and finally <strong>data sinks</strong>, which can be data bases, alarms or other systems.
-Below such a pipeline is shown where we have two sensors as data sources: A flow rate sensor measuring the flow rate in a water pipe and a water level sensor in a water tank.
-It further contains three processing elements, each with a different functionality.
-The first one detects increases in the water tank, the second one filters out values under a defined threshold.
-The last of the processing elements detects when both situations occur within a defined time window.
-In the end, we employ a data sink, which triggers a notification for a service technician once the modeled situation occurs.
-We call such instances of EPNs processing <strong>pipelines</strong>.</p>
-<p><img class="blog-image" src="/docs/blog/assets/2018-06-18/04_pipeline.png" alt="Example Pipeline"></p>
-<p>The pipeline in the image before contains three different processing elements.
-Those elements contain the actual algorithms.
-Such algorithms can be as easy as simple filters on a sensor value or can also be more complex, such as patterns that occur over a period of time.
-But they can also contain machine learning and advanced analytics algorithms (e.g. neural networks) that perform predictions on data streams.
-Event processors are just an abstraction that take a data stream as an input and expose a “new” data stream.
-Furthermore, they contain configuration parameters which can be defined by a user.
-With this concept, we can create reusable components that can be used in many different pipelines.</p>
-<p>The goal of StreamPipes is to enable domain experts to do their data analysis themselves by providing tooling, where such processing pipelines can be modeled in a graphical user interface and then executed automatically without the need of an IT expert.
-Processing engines which are used as the basis of the processing elements in our solution often require a higher technological understanding.
-If this understanding is available, they can also be used on their own.
-We use such systems, like Apache Flink, Apache Spark or the brand-new KSQL by Confluent, for the processing but provide an abstraction over them to enable domain experts to model pipelines themselves.
-This has also the advantages that individual runtime solutions can be exchanged over time.
-Furthermore, we provide a semantic layer for all elements, including data sources, processing elements, and data sinks.
-With that layer, our system is capable of understanding the meaning and further support the user to ensure that just semantically correct pipelines are created.</p>
-<p>In this first blog post of our series, we gave a first introduction how data produced by machines and systems can be analyzed and value can be generated out of it.
-In the following blog posts we explain the individual parts in more detail to provide you with enough knowledge to start analyzing your own data.</p>
-<ul>
-<li><strong><a href="/docs/blog/2018/06/18/how-to-understand-your-machine-data">Part 1: Overview</a></strong></li>
-<li>Part 2: Data Sources</li>
-<li>Part 3: Data Processing Elements</li>
-<li>Part 4: Data Sinks</li>
-<li>Part 5: Putting it all together (Example Pipeline)</li>
-<li>Part 6: Practical Tips</li>
-</ul>
-</span></div></div><div class="blogSocialSection"></div></div><div class="blog-recent"><a class="button" href="/docs/blog">Recent Posts</a></div></div></div><nav class="onPageNav"></nav></div><div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/docs/" class="nav-home"><img src="/docs/img/sp-logo-color.png" alt="Apache StreamPipes" width="66"/></a><div><h5>Docs</h5><a href="/docs/docs/user-guide-introduction">User Guide</a><a href="/docs/docs/dev-guide-introducti [...]
-                document.addEventListener('keyup', function(e) {
-                  if (e.target !== document.body) {
-                    return;
-                  }
-                  // keyCode for '/' (slash)
-                  if (e.keyCode === 191) {
-                    const search = document.getElementById('search_input_react');
-                    search && search.focus();
-                  }
-                });
-              </script><script>
-              var search = docsearch({
-                
-                apiKey: '0fedc89dddf2810657708b178e56ef02',
-                indexName: 'streampipes',
-                inputSelector: '#search_input_react',
-                algoliaOptions: {}
-              });
-            </script></body></html>
\ No newline at end of file
diff --git a/docs/blog/2018/09/17/preview-060.html b/docs/blog/2018/09/17/preview-060.html
index 30dd3be..4a9a554 100644
--- a/docs/blog/2018/09/17/preview-060.html
+++ b/docs/blog/2018/09/17/preview-060.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Preview: StreamPipes release 0.60.0 · Apache StreamPipes</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="**&lt;div style=&quot;float: left; padding-right: 40px;&quot;&gt;5 minutes to read&lt;/div&gt;**"/><meta name="docsearch:language" content="en"/><meta property="og:title" conte [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Preview: StreamPipes release 0.60.0 · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="**&lt;div style=&quot;float: left; padding-right: 40px;&quot;&gt;5 minutes to read&lt;/div&gt;**"/><meta name="docsearch:language" content="en"/><meta proper [...]
               window.dataLayer = window.dataLayer || [];
               function gtag(){dataLayer.push(arguments); }
               gtag('js', new Date());
@@ -9,7 +9,7 @@
             {"zIndex":100}
           )
         });
-        </script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions"><h3>0.67.0</h3></a><div class="navigationWrapper navigationSlider"><na [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.67.0</h3></a>< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -37,10 +37,16 @@
               createToggler('#navToggler', '#docsNav', 'docsSliderActive');
               createToggler('#tocToggler', 'body', 'tocActive');
 
-              const headings = document.querySelector('.toc-headings');
+              var headings = document.querySelector('.toc-headings');
               headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
                 }
               }, false);
 
@@ -59,7 +65,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer postContainer blogContainer"><div class="wrapper"><div class="lonePost"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle"><a href="/docs/blog/2018/09/17/preview-060">Preview: StreamPipes release 0.60.0</a></h1><p class="post-meta">September 17, 2018</p><div class="authorBlock"><p class="post-authorName"><a href="http://twitter.com/dominikjriemer" target="_blank" rel="noreferrer noopener">Dominik Rieme [...]
+        </script></nav></div><div class="container mainContainer postContainer blogContainer"><div class="wrapper"><div class="lonePost"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle"><a href="/docs/blog/2018/09/17/preview-060.html">Preview: StreamPipes release 0.60.0</a></h1><p class="post-meta">September 17, 2018</p><div class="authorBlock"><p class="post-authorName"><a href="http://twitter.com/dominikjriemer" target="_blank" rel="noreferrer noopener">Dominik  [...]
 <br></p>
 <p>It's been a while since our last blog post. However, in the background we are working hard to release the next version of StreamPipes which is currently in the final phase.
 In this post, we'd like to give you a preview of the upcoming StreamPipes version 0.60.0, which brings many new features and improvements.</p>
@@ -97,7 +103,7 @@ The new pipeline elements are already available on <a href="https://www.github.c
 </ul>
 <h2><a class="anchor" aria-hidden="true" id="feedback"></a><a href="#feedback" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
 <p>We are absolutely open to your suggestions for further improvements! Let us know (by <a href="mailto:feedback@streampipes.org">mail</a>, <a href="https://slack.streampipes.org">slack</a> or <a href="https://www.twitter.com/streampipes">twitter</a>) and we'll consider your feature request in the next release!</p>
-</span></div></div><div class="blogSocialSection"></div></div><div class="blog-recent"><a class="button" href="/docs/blog">Recent Posts</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#installation-and-first-time-usage">Installation and first-time usage</a></li><li><a href="#streampipes-connect">StreamPipes Connect</a></li><li><a href="#pipeline-elements">Pipeline Elements</a></li><li><a href="#other-features-and-improvements">Other features and improvem [...]
+</span></div></div><div class="blogSocialSection"></div></div><div class="blog-recent"><a class="button" href="/docs/blog/">Recent Posts</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#installation-and-first-time-usage">Installation and first-time usage</a></li><li><a href="#streampipes-connect">StreamPipes Connect</a></li><li><a href="#pipeline-elements">Pipeline Elements</a></li><li><a href="#other-features-and-improvements">Other features and improve [...]
                 document.addEventListener('keyup', function(e) {
                   if (e.target !== document.body) {
                     return;
diff --git a/docs/blog/2018/09/17/preview-060/index.html b/docs/blog/2018/09/17/preview-060/index.html
deleted file mode 100644
index 30dd3be..0000000
--- a/docs/blog/2018/09/17/preview-060/index.html
+++ /dev/null
@@ -1,119 +0,0 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Preview: StreamPipes release 0.60.0 · Apache StreamPipes</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="**&lt;div style=&quot;float: left; padding-right: 40px;&quot;&gt;5 minutes to read&lt;/div&gt;**"/><meta name="docsearch:language" content="en"/><meta property="og:title" conte [...]
-              window.dataLayer = window.dataLayer || [];
-              function gtag(){dataLayer.push(arguments); }
-              gtag('js', new Date());
-              gtag('config', 'UA-154181944-1');
-            </script><link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons"/><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick.min.css"/><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick-theme.min.css"/><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto"/><link rel="stylesheet" href="/docs/css/admonition.css"/><link rel="stylesheet" href="/docs [...]
-        document.addEventListener('DOMContentLoaded', function() {
-          addBackToTop(
-            {"zIndex":100}
-          )
-        });
-        </script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions"><h3>0.67.0</h3></a><div class="navigationWrapper navigationSlider"><na [...]
-            var coll = document.getElementsByClassName('collapsible');
-            var checkActiveCategory = true;
-            for (var i = 0; i < coll.length; i++) {
-              var links = coll[i].nextElementSibling.getElementsByTagName('*');
-              if (checkActiveCategory){
-                for (var j = 0; j < links.length; j++) {
-                  if (links[j].classList.contains('navListItemActive')){
-                    coll[i].nextElementSibling.classList.toggle('hide');
-                    coll[i].childNodes[1].classList.toggle('rotate');
-                    checkActiveCategory = false;
-                    break;
-                  }
-                }
-              }
-
-              coll[i].addEventListener('click', function() {
-                var arrow = this.childNodes[1];
-                arrow.classList.toggle('rotate');
-                var content = this.nextElementSibling;
-                content.classList.toggle('hide');
-              });
-            }
-
-            document.addEventListener('DOMContentLoaded', function() {
-              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
-              createToggler('#tocToggler', 'body', 'tocActive');
-
-              const headings = document.querySelector('.toc-headings');
-              headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
-                }
-              }, false);
-
-              function createToggler(togglerSelector, targetSelector, className) {
-                var toggler = document.querySelector(togglerSelector);
-                var target = document.querySelector(targetSelector);
-
-                if (!toggler) {
-                  return;
-                }
-
-                toggler.onclick = function(event) {
-                  event.preventDefault();
-
-                  target.classList.toggle(className);
-                };
-              }
-            });
-        </script></nav></div><div class="container mainContainer postContainer blogContainer"><div class="wrapper"><div class="lonePost"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle"><a href="/docs/blog/2018/09/17/preview-060">Preview: StreamPipes release 0.60.0</a></h1><p class="post-meta">September 17, 2018</p><div class="authorBlock"><p class="post-authorName"><a href="http://twitter.com/dominikjriemer" target="_blank" rel="noreferrer noopener">Dominik Rieme [...]
-<br></p>
-<p>It's been a while since our last blog post. However, in the background we are working hard to release the next version of StreamPipes which is currently in the final phase.
-In this post, we'd like to give you a preview of the upcoming StreamPipes version 0.60.0, which brings many new features and improvements.</p>
-<!--truncate-->
-<p>Our first public release is now about 6 months ago. In the meantime, we gathered lots of feedback we got from users concerned with the installation, available pipeline elements and usability.
-We learned what users expect from the tool and really tried to implement feature suggestions from the community.</p>
-<p>Here are the major things you'll find in the next version which will be released by the end of September:</p>
-<h2><a class="anchor" aria-hidden="true" id="installation-and-first-time-usage"></a><a href="#installation-and-first-time-usage" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S1 [...]
-<p>We aim to make it as easy as possible for first-time users to try and test StreamPipes. Although we have provided Docker images and a docker-compose file from the beginning, we've learned that our target group looks for an easier way to install the tool, without the need to manually configuring things like ports or hostnames.
-For that reason, we have implemented an installer that is already on <a href="https://www.github.com/streampipes/streampipes-installer">Github</a>. With the next release, you'll find an even easier installer along with a dev-installer targeted at more advanced users that allows to configure the services and pipeline element containers you'd like to use in your StreamPipes instance.</p>
-<p>In addition, we wanted to provide better support for users that are trying to build a pipeline for the first time. Although we provide a tour and a user guide, we are aware that nobody likes reading documentations ;-)
-Therefore, the next release includes an interactive product tour that guides you through the first steps with StreamPipes and explains how to build pipelines - right in the pipeline editor!</p>
-<p><img class="blog-image" style="max-width:90%;" src="/docs/blog/assets/2018-09-17/streampipes-060-product-tour.png" alt="Product Tour"></p>
-<h2><a class="anchor" aria-hidden="true" id="streampipes-connect"></a><a href="#streampipes-connect" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.2 [...]
-<p>Although the SDK provides a developer-oriented way to connect new data sources, many users have asked us to provide an easier way to connect sources and data streams to StreamPipes.
-The next release includes a beta release of StreamPipes Connect. Connect is a major effort that integrates work we've done over the past year and provides an easy way to integrate your data streams right from the UI.
-A data marketplace contains a list of pre-defined adapters (which can be rather generic by selecting a protocol and a data format or quite specific as, e.g., an openSenseMap source).
-These adapters can be configured according to your needs and directly started on a set of worker nodes.</p>
-<p>StreamPipes Connect also lays the foundation for some cool new features that make it even easier to connect sources and will be added over the next months.
-In addition, pre-processing features will be integrated that will support edge computing use cases.</p>
-<p>Be aware that StreamPipes Connect will be released in a rather early version, so don't use it for production yet.</p>
-<p><img class="blog-image" style="max-width:90%;" src="/docs/blog/assets/2018-09-17/streampipes-060.png" alt="StreamPipes Connect"></p>
-<h2><a class="anchor" aria-hidden="true" id="pipeline-elements"></a><a href="#pipeline-elements" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2- [...]
-<p>Pipeline elements (data processors and sinks) are the part of StreamPipes that generate added-value.
-While the first release contained a set of around 10 pipeline elements, the next release will provide many new elements that are already integrated.
-New elements will include pattern detection algorithms, geospatial operators, image processing algorithms (e.g., a generic classifier) and even a Slack sink!</p>
-<p>In total, the next version includes more than 40 pipeline elements and we will add many more during the next months.
-The new pipeline elements are already available on <a href="https://www.github.com/streampipes/streampipes-pipeline-elements">Github</a> and will be released as Docker images by the end of September.</p>
-<h2><a class="anchor" aria-hidden="true" id="other-features-and-improvements"></a><a href="#other-features-and-improvements" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 [...]
-<ul>
-<li>A new wrapper for the <a href="https://github.com/wso2/siddhi">Siddhi</a> CEP engine</li>
-<li>various bug fixes and stability improvements</li>
-<li>many UX improvements</li>
-<li>many more, stay tuned for the next blog post!</li>
-</ul>
-<h2><a class="anchor" aria-hidden="true" id="feedback"></a><a href="#feedback" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>We are absolutely open to your suggestions for further improvements! Let us know (by <a href="mailto:feedback@streampipes.org">mail</a>, <a href="https://slack.streampipes.org">slack</a> or <a href="https://www.twitter.com/streampipes">twitter</a>) and we'll consider your feature request in the next release!</p>
-</span></div></div><div class="blogSocialSection"></div></div><div class="blog-recent"><a class="button" href="/docs/blog">Recent Posts</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#installation-and-first-time-usage">Installation and first-time usage</a></li><li><a href="#streampipes-connect">StreamPipes Connect</a></li><li><a href="#pipeline-elements">Pipeline Elements</a></li><li><a href="#other-features-and-improvements">Other features and improvem [...]
-                document.addEventListener('keyup', function(e) {
-                  if (e.target !== document.body) {
-                    return;
-                  }
-                  // keyCode for '/' (slash)
-                  if (e.keyCode === 191) {
-                    const search = document.getElementById('search_input_react');
-                    search && search.focus();
-                  }
-                });
-              </script><script>
-              var search = docsearch({
-                
-                apiKey: '0fedc89dddf2810657708b178e56ef02',
-                indexName: 'streampipes',
-                inputSelector: '#search_input_react',
-                algoliaOptions: {}
-              });
-            </script></body></html>
\ No newline at end of file
diff --git a/docs/blog/2018/11/24/container-cli.html b/docs/blog/2018/11/24/container-cli.html
index 97a5035..d2c4330 100644
--- a/docs/blog/2018/11/24/container-cli.html
+++ b/docs/blog/2018/11/24/container-cli.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>ContainerCLI: A CLI tool for your Docker Application · Apache StreamPipes</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="**&lt;div style=&quot;float: left; padding-right: 40px;&quot;&gt;6 minutes to read&lt;/div&gt;**"/><meta name="docsearch:language" content="en"/><meta property [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>ContainerCLI: A CLI tool for your Docker Application · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="**&lt;div style=&quot;float: left; padding-right: 40px;&quot;&gt;6 minutes to read&lt;/div&gt;**"/><meta name="docsearch:language" content=" [...]
               window.dataLayer = window.dataLayer || [];
               function gtag(){dataLayer.push(arguments); }
               gtag('js', new Date());
@@ -9,7 +9,7 @@
             {"zIndex":100}
           )
         });
-        </script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions"><h3>0.67.0</h3></a><div class="navigationWrapper navigationSlider"><na [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.67.0</h3></a>< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -37,10 +37,16 @@
               createToggler('#navToggler', '#docsNav', 'docsSliderActive');
               createToggler('#tocToggler', 'body', 'tocActive');
 
-              const headings = document.querySelector('.toc-headings');
+              var headings = document.querySelector('.toc-headings');
               headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
                 }
               }, false);
 
@@ -59,7 +65,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer postContainer blogContainer"><div class="wrapper"><div class="lonePost"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle"><a href="/docs/blog/2018/11/24/container-cli">ContainerCLI: A CLI tool for your Docker Application</a></h1><p class="post-meta">November 24, 2018</p><div class="authorBlock"><p class="post-authorName"><a href="http://twitter.com/philipp10der" target="_blank" rel="noreferrer noopene [...]
+        </script></nav></div><div class="container mainContainer postContainer blogContainer"><div class="wrapper"><div class="lonePost"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle"><a href="/docs/blog/2018/11/24/container-cli.html">ContainerCLI: A CLI tool for your Docker Application</a></h1><p class="post-meta">November 24, 2018</p><div class="authorBlock"><p class="post-authorName"><a href="http://twitter.com/philipp10der" target="_blank" rel="noreferrer no [...]
 <br></p>
 <p>In this blog post, we show how we developed a CLI tool to install and manage StreamPipes.
 In addition, we present a template project that enables you to easily create a CLI tool for your own docker application.
@@ -109,7 +115,7 @@ To use a variable in a docker-compose file just write it in braces, as shown bel
 <p><img class="blog-image" style="max-width:90%;" src="/docs/blog/assets/2018-11-24/variables.png" alt="How to use Environment Variables"></p>
 <p>We hope this tool is helpful for your use case.
 When you have any problems, feedback, or ideas for improvements, contact us or open an issue on <a href="https://github.com/streampipes/container-cli">GitHub</a>.</p>
-</span></div></div><div class="blogSocialSection"></div></div><div class="blog-recent"><a class="button" href="/docs/blog">Recent Posts</a></div></div></div><nav class="onPageNav"></nav></div><div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/docs/" class="nav-home"><img src="/docs/img/sp-logo-color.png" alt="Apache StreamPipes" width="66"/></a><div><h5>Docs</h5><a href="/docs/docs/user-guide-introduction">User Guide</a><a href="/docs/docs/dev-guide-introducti [...]
+</span></div></div><div class="blogSocialSection"></div></div><div class="blog-recent"><a class="button" href="/docs/blog/">Recent Posts</a></div></div></div><nav class="onPageNav"></nav></div><div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/docs/" class="nav-home"><img src="/docs/img/sp-logo-color.png" alt="Apache StreamPipes" width="66"/></a><div><h5>Docs</h5><a href="/docs/docs/user-guide-introduction">User Guide</a><a href="/docs/docs/dev-guide-introduct [...]
                 document.addEventListener('keyup', function(e) {
                   if (e.target !== document.body) {
                     return;
diff --git a/docs/blog/2018/11/24/container-cli/index.html b/docs/blog/2018/11/24/container-cli/index.html
deleted file mode 100644
index 97a5035..0000000
--- a/docs/blog/2018/11/24/container-cli/index.html
+++ /dev/null
@@ -1,131 +0,0 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>ContainerCLI: A CLI tool for your Docker Application · Apache StreamPipes</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="**&lt;div style=&quot;float: left; padding-right: 40px;&quot;&gt;6 minutes to read&lt;/div&gt;**"/><meta name="docsearch:language" content="en"/><meta property [...]
-              window.dataLayer = window.dataLayer || [];
-              function gtag(){dataLayer.push(arguments); }
-              gtag('js', new Date());
-              gtag('config', 'UA-154181944-1');
-            </script><link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons"/><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick.min.css"/><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick-theme.min.css"/><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto"/><link rel="stylesheet" href="/docs/css/admonition.css"/><link rel="stylesheet" href="/docs [...]
-        document.addEventListener('DOMContentLoaded', function() {
-          addBackToTop(
-            {"zIndex":100}
-          )
-        });
-        </script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions"><h3>0.67.0</h3></a><div class="navigationWrapper navigationSlider"><na [...]
-            var coll = document.getElementsByClassName('collapsible');
-            var checkActiveCategory = true;
-            for (var i = 0; i < coll.length; i++) {
-              var links = coll[i].nextElementSibling.getElementsByTagName('*');
-              if (checkActiveCategory){
-                for (var j = 0; j < links.length; j++) {
-                  if (links[j].classList.contains('navListItemActive')){
-                    coll[i].nextElementSibling.classList.toggle('hide');
-                    coll[i].childNodes[1].classList.toggle('rotate');
-                    checkActiveCategory = false;
-                    break;
-                  }
-                }
-              }
-
-              coll[i].addEventListener('click', function() {
-                var arrow = this.childNodes[1];
-                arrow.classList.toggle('rotate');
-                var content = this.nextElementSibling;
-                content.classList.toggle('hide');
-              });
-            }
-
-            document.addEventListener('DOMContentLoaded', function() {
-              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
-              createToggler('#tocToggler', 'body', 'tocActive');
-
-              const headings = document.querySelector('.toc-headings');
-              headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
-                }
-              }, false);
-
-              function createToggler(togglerSelector, targetSelector, className) {
-                var toggler = document.querySelector(togglerSelector);
-                var target = document.querySelector(targetSelector);
-
-                if (!toggler) {
-                  return;
-                }
-
-                toggler.onclick = function(event) {
-                  event.preventDefault();
-
-                  target.classList.toggle(className);
-                };
-              }
-            });
-        </script></nav></div><div class="container mainContainer postContainer blogContainer"><div class="wrapper"><div class="lonePost"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle"><a href="/docs/blog/2018/11/24/container-cli">ContainerCLI: A CLI tool for your Docker Application</a></h1><p class="post-meta">November 24, 2018</p><div class="authorBlock"><p class="post-authorName"><a href="http://twitter.com/philipp10der" target="_blank" rel="noreferrer noopene [...]
-<br></p>
-<p>In this blog post, we show how we developed a CLI tool to install and manage StreamPipes.
-In addition, we present a template project that enables you to easily create a CLI tool for your own docker application.
-All you need is a working docker-compose.yml file.</p>
-<!--truncate-->
-<p>StreamPipes has a Microservice architecture and we use Docker and Docker Compose for all of our development, testing, and deployment processes.
-In the beginning, we developed the CLI only to ease the installation process (e.g. managing multiple versions), but over time we realized that the tool is much more powerful.
-For example, StreamPipes has multiple developer roles: Some developers are working on the frontend, others on the backend, and some are developing new algorithms and data sinks for StreamPipes.
-In the figure below, you can see different configurations that are used by different developers.
-All services are running in docker, except for the ones the developer is currently working on.
-As a result, we had many different docker-compose.yml files and when we made changes, we had to synchronize them all.</p>
-<p><img class="blog-image" style="max-width:60%;" src="/docs/blog/assets/2018-11-24/roles.png" alt="Three different developer roles"></p>
-<p>Therefore, our goal was to speed up the setup of a development environment, so that developers can focus on their specific programming task.
-That’s why we developed a command line tool that automates the setup of different environments.
-All what is needed is a docker-compose.yml file that describes all services of the application and the template CLI project from <a href="https://github.com/streampipes/container-cli">GitHub</a>.
-Afterwards, you need to split up your compose file and create an individual file for each service. Put those files in individual folders in the services folder.
-Each folder should have the same name as the service name in the docker-compose file. That’s it!
-Now you can use the CLI.
-With the default commands you are able to start, stop, and configure the application. But how is this better than just using docker itself?
-The advantage is the flexibility and extensibility of the tool.
-You can extend the script with tasks you have to perform regularly, like cleaning up volumes, or setting up testing environments.</p>
-<p>In the following we will describe the tool in more detail.
-You can see all files and folders of the CLI Tool in the next listing.
-The first file “container-cli.m4” contains the script.
-We use <a href="https://argbash.io/">Argbash</a>, which eases the use of bash script parameters and flags.
-In this file you can easily add new custom commands, flags or other functionalities.
-The next file is the actual bash script. It is generated by argbash.
-Since this file is generated automatically, you should not change anything.
-The docker-compose.yml file is the main file.
-This should contain all services, networks, or volume information that is relevant for all the other services of your application.
-All your other services are located in the services folder.
-For each service, create a folder with the name of the service and place a docker-compose.yml in the folder configuring the service.
-Therefore, you can copy and paste the configuration from your current docker-compose.yml.
-The script checks the services folder dynamically, this means you can add services at a later point in time without changing anything else.
-In our example, we have four services: Backend, UI, database, and a test database containing data for the end2end tests.
-Which services should be started when running the command <strong>&quot;container-cli start&quot;</strong> is defined in the active-service file.
-This file contains the names of all services, each in one line, that should be started.
-Often it is required to have multiple configurations of your app. You can save them in the templates folder.
-By running <strong>“container-cli set-template ui_developer”</strong>, you can select the template ui_developer.
-With this command, all services defined in the template are written to the active-services file. (e.g. the ui_developer template contains just the database and backend and the e2e-test template contains the backend, ui, and test-database).</p>
-<p><img class="blog-image" style="max-width:30%;" src="/docs/blog/assets/2018-11-24/files.png" alt="Structure of the containter cli project"></p>
-<p>The last file is the tmpl_env file.
-It contains configuration variables for the individual services.
-Those variables can also be changed by the bash script dynamically, because the tmpl_env file is moved to the .env file in the same folder.
-We use the configuration for example to dynamically set the IP Address of the host system or set the application version.
-To use a variable in a docker-compose file just write it in braces, as shown below.</p>
-<p><img class="blog-image" style="max-width:90%;" src="/docs/blog/assets/2018-11-24/variables.png" alt="How to use Environment Variables"></p>
-<p>We hope this tool is helpful for your use case.
-When you have any problems, feedback, or ideas for improvements, contact us or open an issue on <a href="https://github.com/streampipes/container-cli">GitHub</a>.</p>
-</span></div></div><div class="blogSocialSection"></div></div><div class="blog-recent"><a class="button" href="/docs/blog">Recent Posts</a></div></div></div><nav class="onPageNav"></nav></div><div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/docs/" class="nav-home"><img src="/docs/img/sp-logo-color.png" alt="Apache StreamPipes" width="66"/></a><div><h5>Docs</h5><a href="/docs/docs/user-guide-introduction">User Guide</a><a href="/docs/docs/dev-guide-introducti [...]
-                document.addEventListener('keyup', function(e) {
-                  if (e.target !== document.body) {
-                    return;
-                  }
-                  // keyCode for '/' (slash)
-                  if (e.keyCode === 191) {
-                    const search = document.getElementById('search_input_react');
-                    search && search.focus();
-                  }
-                });
-              </script><script>
-              var search = docsearch({
-                
-                apiKey: '0fedc89dddf2810657708b178e56ef02',
-                indexName: 'streampipes',
-                inputSelector: '#search_input_react',
-                algoliaOptions: {}
-              });
-            </script></body></html>
\ No newline at end of file
diff --git a/docs/blog/2019/04/04/release-0610.html b/docs/blog/2019/04/04/release-0610.html
index f764ffb..ad180df 100644
--- a/docs/blog/2019/04/04/release-0610.html
+++ b/docs/blog/2019/04/04/release-0610.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>StreamPipes release 0.61.0 · Apache StreamPipes</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="**&lt;div style=&quot;float: left; padding-right: 40px;&quot;&gt;5 minutes to read&lt;/div&gt;**"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Strea [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>StreamPipes release 0.61.0 · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="**&lt;div style=&quot;float: left; padding-right: 40px;&quot;&gt;5 minutes to read&lt;/div&gt;**"/><meta name="docsearch:language" content="en"/><meta property="og:ti [...]
               window.dataLayer = window.dataLayer || [];
               function gtag(){dataLayer.push(arguments); }
               gtag('js', new Date());
@@ -9,7 +9,7 @@
             {"zIndex":100}
           )
         });
-        </script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions"><h3>0.67.0</h3></a><div class="navigationWrapper navigationSlider"><na [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.67.0</h3></a>< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -37,10 +37,16 @@
               createToggler('#navToggler', '#docsNav', 'docsSliderActive');
               createToggler('#tocToggler', 'body', 'tocActive');
 
-              const headings = document.querySelector('.toc-headings');
+              var headings = document.querySelector('.toc-headings');
               headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
                 }
               }, false);
 
@@ -59,7 +65,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer postContainer blogContainer"><div class="wrapper"><div class="lonePost"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle"><a href="/docs/blog/2019/04/04/release-0610">StreamPipes release 0.61.0</a></h1><p class="post-meta">April 4, 2019</p><div class="authorBlock"><p class="post-authorName"><a href="http://twitter.com/dominikjriemer" target="_blank" rel="noreferrer noopener">Dominik Riemer</a></p><div [...]
+        </script></nav></div><div class="container mainContainer postContainer blogContainer"><div class="wrapper"><div class="lonePost"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle"><a href="/docs/blog/2019/04/04/release-0610.html">StreamPipes release 0.61.0</a></h1><p class="post-meta">April 4, 2019</p><div class="authorBlock"><p class="post-authorName"><a href="http://twitter.com/dominikjriemer" target="_blank" rel="noreferrer noopener">Dominik Riemer</a></p [...]
 <br></p>
 <p>We are proud to release StreamPipes version 0.61.0, which brings many improvements and some exciting new features that simplify pipeline development!
 The new version, which is already available on Docker Hub and can be downloaded using our <a href="https://github.com/streampipes/streampipes-installer">installer</a> brings over 20 improvements. Under the hood, a reworked event model simplifies the development of new pipeline elements using the built-in SDK.</p>
@@ -131,7 +137,7 @@ Besides reworked tutorials on developing new data processors and data sources, t
 <p>See the <a href="https://github.com/streampipes/streampipes/releases/tag/0.61.0">release notes</a> for more details.</p>
 <h2><a class="anchor" aria-hidden="true" id="feedback"></a><a href="#feedback" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
 <p>We are absolutely open to your suggestions for further improvements! Let us know (by <a href="mailto:feedback@streampipes.org">mail</a>, <a href="https://slack.streampipes.org">slack</a> or <a href="https://www.twitter.com/streampipes">twitter</a>) and we'll consider your feature request in the next release!</p>
-</span></div></div><div class="blogSocialSection"></div></div><div class="blog-recent"><a class="button" href="/docs/blog">Recent Posts</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#streampipes-connect">StreamPipes Connect</a></li><li><a href="#improved-pipeline-modeling">Improved Pipeline Modeling</a></li><li><a href="#reworked-event-model">Reworked Event Model</a></li><li><a href="#documentation">Documentation</a></li><li><a href="#other-features-an [...]
+</span></div></div><div class="blogSocialSection"></div></div><div class="blog-recent"><a class="button" href="/docs/blog/">Recent Posts</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#streampipes-connect">StreamPipes Connect</a></li><li><a href="#improved-pipeline-modeling">Improved Pipeline Modeling</a></li><li><a href="#reworked-event-model">Reworked Event Model</a></li><li><a href="#documentation">Documentation</a></li><li><a href="#other-features-a [...]
                 document.addEventListener('keyup', function(e) {
                   if (e.target !== document.body) {
                     return;
diff --git a/docs/blog/2019/04/04/release-0610/index.html b/docs/blog/2019/04/04/release-0610/index.html
deleted file mode 100644
index f764ffb..0000000
--- a/docs/blog/2019/04/04/release-0610/index.html
+++ /dev/null
@@ -1,153 +0,0 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>StreamPipes release 0.61.0 · Apache StreamPipes</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="**&lt;div style=&quot;float: left; padding-right: 40px;&quot;&gt;5 minutes to read&lt;/div&gt;**"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Strea [...]
-              window.dataLayer = window.dataLayer || [];
-              function gtag(){dataLayer.push(arguments); }
-              gtag('js', new Date());
-              gtag('config', 'UA-154181944-1');
-            </script><link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons"/><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick.min.css"/><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick-theme.min.css"/><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto"/><link rel="stylesheet" href="/docs/css/admonition.css"/><link rel="stylesheet" href="/docs [...]
-        document.addEventListener('DOMContentLoaded', function() {
-          addBackToTop(
-            {"zIndex":100}
-          )
-        });
-        </script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions"><h3>0.67.0</h3></a><div class="navigationWrapper navigationSlider"><na [...]
-            var coll = document.getElementsByClassName('collapsible');
-            var checkActiveCategory = true;
-            for (var i = 0; i < coll.length; i++) {
-              var links = coll[i].nextElementSibling.getElementsByTagName('*');
-              if (checkActiveCategory){
-                for (var j = 0; j < links.length; j++) {
-                  if (links[j].classList.contains('navListItemActive')){
-                    coll[i].nextElementSibling.classList.toggle('hide');
-                    coll[i].childNodes[1].classList.toggle('rotate');
-                    checkActiveCategory = false;
-                    break;
-                  }
-                }
-              }
-
-              coll[i].addEventListener('click', function() {
-                var arrow = this.childNodes[1];
-                arrow.classList.toggle('rotate');
-                var content = this.nextElementSibling;
-                content.classList.toggle('hide');
-              });
-            }
-
-            document.addEventListener('DOMContentLoaded', function() {
-              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
-              createToggler('#tocToggler', 'body', 'tocActive');
-
-              const headings = document.querySelector('.toc-headings');
-              headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
-                }
-              }, false);
-
-              function createToggler(togglerSelector, targetSelector, className) {
-                var toggler = document.querySelector(togglerSelector);
-                var target = document.querySelector(targetSelector);
-
-                if (!toggler) {
-                  return;
-                }
-
-                toggler.onclick = function(event) {
-                  event.preventDefault();
-
-                  target.classList.toggle(className);
-                };
-              }
-            });
-        </script></nav></div><div class="container mainContainer postContainer blogContainer"><div class="wrapper"><div class="lonePost"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle"><a href="/docs/blog/2019/04/04/release-0610">StreamPipes release 0.61.0</a></h1><p class="post-meta">April 4, 2019</p><div class="authorBlock"><p class="post-authorName"><a href="http://twitter.com/dominikjriemer" target="_blank" rel="noreferrer noopener">Dominik Riemer</a></p><div [...]
-<br></p>
-<p>We are proud to release StreamPipes version 0.61.0, which brings many improvements and some exciting new features that simplify pipeline development!
-The new version, which is already available on Docker Hub and can be downloaded using our <a href="https://github.com/streampipes/streampipes-installer">installer</a> brings over 20 improvements. Under the hood, a reworked event model simplifies the development of new pipeline elements using the built-in SDK.</p>
-<!--truncate-->
-<p>Our main mission is to make IoT data management &amp; analytics accessible to everyone.
-This release focuses on better integrating StreamPipes with other systems and data sources and contains UX improvements to ease the development of pipelines.</p>
-<h2><a class="anchor" aria-hidden="true" id="streampipes-connect"></a><a href="#streampipes-connect" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.2 [...]
-<p>StreamPipes Connect, which aims to easily connect arbitrary data sources with StreamPipes, has been first introduced as a public beta in version 0.60.0.
-Version 0.61.0 brings many new features to Connect and also implements many bug fixes that now make Connect the recommended way to connect data sources.</p>
-<p>StreamPipes Connect relies on an extensible architecture to connect either generic protocols or specific adapters.</p>
-<p>In more detail, StreamPipes Connect supports the following protocols, with a completely code-free integration process:</p>
-<ul>
-<li><p>Data Streams</p>
-<ul>
-<li>HTTP/REST</li>
-<li>MQTT</li>
-<li>Apache Kafka</li>
-<li>File</li>
-<li>ROS (preview)</li>
-<li>GDELT</li>
-</ul></li>
-<li><p>Data Sets</p>
-<ul>
-<li>HTTP/REST</li>
-<li>HDFS</li>
-<li>File</li>
-</ul></li>
-</ul>
-<p><img class="blog-image" style="max-width:90%;" src="/docs/blog/assets/2019-04-04/connect.png" alt="StreamPipes Connect"></p>
-<p>The next version will also include an adapter for OPC UA, which is currently being tested in a real setting.</p>
-<p>For protocols that are not yet supported by StreamPipes Connect, a new Maven archetype for easily connecting data sources using the <a href="/docs/dev-guide-tutorial-sources">SDK</a> is provided.</p>
-<h2><a class="anchor" aria-hidden="true" id="improved-pipeline-modeling"></a><a href="#improved-pipeline-modeling" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H [...]
-<p>On the UI side, we try to make the graphical modeling of pipelines as simple as possible. Besides some minor improvements (e.g., case-insensitive search for pipeline elements), pipelines are now constantly validated and users get feedback on steps that are still missing (e.g., missing pipeline elements).
-As many other features we are currently implementing, this feature directly comes from a user request - so if you have any suggestions for improvement, let us know!</p>
-<p><img class="blog-image" style="max-width:90%;" src="/docs/blog/assets/2019-04-04/validation.png" alt="Pipeline Validation"></p>
-<h2><a class="anchor" aria-hidden="true" id="reworked-event-model"></a><a href="#reworked-event-model" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1 [...]
-<p>One of the most important features of v0.61.0 is not directly visible to end users, but drastically eases the development of new pipeline elements with the SDK.
-From this release on, events at runtime are represented in form of a new <code>Event Object</code> instead of the former <code>Map</code> representation.
-This feature allows us for much better support of complex data processors which have more than one input data stream and comes with many convenience methods to better extrat fields from an event for processing.</p>
-<p>For instance, prior to v0.61.0 you had to extract fields from an incoming events as follows:</p>
-<pre><code class="hljs css language-java"><span class="hljs-meta">@Override</span>
-  <span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">onEvent</span><span class="hljs-params">(Map&lt;String, Object&gt; in, String s, SpOutputCollector out)</span> </span>{
-       Integer numberValue = Integer.parseInt(String.valueOf(in.get(MAPPING_PROPERTY_ID));
-  }
-</code></pre>
-<p>The new event model is much simpler and less error-prone:</p>
-<pre><code class="hljs css language-java"> <span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">onEvent</span><span class="hljs-params">(Event in, SpOutputCollector out)</span> <span class="hljs-keyword">throws</span> SpRuntimeException </span>{
-    Integer numberValue = in
-        .getFieldBySelector(MAPPING_PROPERTY_SELECTOR)
-        .getAsPrimitive()
-        .getAsInteger();
-  }
-</code></pre>
-<p>The new event model is even more useful in cases where your data streams have a complex nested structure or contain list fields.
-If you connect two data streams containing the same fields to a processor, field names are automatically renamed in the background to avoid naming conflicts.
-A complete guide can be found in the <a href="/docs/dev-guide-event-model">developer guide</a>.</p>
-<h2><a class="anchor" aria-hidden="true" id="documentation"></a><a href="#documentation" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
-<p>The developer guide has been extended:
-Besides reworked tutorials on developing new data processors and data sources, the new documentation includes instructions on adding <a href="/docs/dev-guide-stream-requirements">stream requirements</a>, the new <a href="/docs/dev-guide-event-model">event model</a>, and in-depth guides on defining <a href="/docs/dev-guide-static-properties">static properties</a> and <a href="/docs/dev-guide-output-strategies">output strategies</a>.</p>
-<h2><a class="anchor" aria-hidden="true" id="other-features-and-improvements"></a><a href="#other-features-and-improvements" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 [...]
-<ul>
-<li>SSL support: The UI can now be configured to support SSL, see the <a href="/docs/dev-guide-ssl">documentation</a> on required configurations in your docker-compose file.</li>
-<li>A new map visualization to visualize spatial data streams</li>
-<li>The customize dialog is now hidden in case no static properties are present</li>
-<li>Adapter descriptions can be exported and imported</li>
-<li>The UI does no longer load any external sources</li>
-<li>Updated Maven archetypes</li>
-</ul>
-<p>See the <a href="https://github.com/streampipes/streampipes/releases/tag/0.61.0">release notes</a> for more details.</p>
-<h2><a class="anchor" aria-hidden="true" id="feedback"></a><a href="#feedback" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>We are absolutely open to your suggestions for further improvements! Let us know (by <a href="mailto:feedback@streampipes.org">mail</a>, <a href="https://slack.streampipes.org">slack</a> or <a href="https://www.twitter.com/streampipes">twitter</a>) and we'll consider your feature request in the next release!</p>
-</span></div></div><div class="blogSocialSection"></div></div><div class="blog-recent"><a class="button" href="/docs/blog">Recent Posts</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#streampipes-connect">StreamPipes Connect</a></li><li><a href="#improved-pipeline-modeling">Improved Pipeline Modeling</a></li><li><a href="#reworked-event-model">Reworked Event Model</a></li><li><a href="#documentation">Documentation</a></li><li><a href="#other-features-an [...]
-                document.addEventListener('keyup', function(e) {
-                  if (e.target !== document.body) {
-                    return;
-                  }
-                  // keyCode for '/' (slash)
-                  if (e.keyCode === 191) {
-                    const search = document.getElementById('search_input_react');
-                    search && search.focus();
-                  }
-                });
-              </script><script>
-              var search = docsearch({
-                
-                apiKey: '0fedc89dddf2810657708b178e56ef02',
-                indexName: 'streampipes',
-                inputSelector: '#search_input_react',
-                algoliaOptions: {}
-              });
-            </script></body></html>
\ No newline at end of file
diff --git a/docs/blog/2019/05/23/release-0620.html b/docs/blog/2019/05/23/release-0620.html
index 39ca1ff..0588cbf 100644
--- a/docs/blog/2019/05/23/release-0620.html
+++ b/docs/blog/2019/05/23/release-0620.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>StreamPipes release 0.62.0 · Apache StreamPipes</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="**&lt;div style=&quot;float: left; padding-right: 40px;&quot;&gt;6 minutes to read&lt;/div&gt;**"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Strea [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>StreamPipes release 0.62.0 · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="**&lt;div style=&quot;float: left; padding-right: 40px;&quot;&gt;6 minutes to read&lt;/div&gt;**"/><meta name="docsearch:language" content="en"/><meta property="og:ti [...]
               window.dataLayer = window.dataLayer || [];
               function gtag(){dataLayer.push(arguments); }
               gtag('js', new Date());
@@ -9,7 +9,7 @@
             {"zIndex":100}
           )
         });
-        </script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions"><h3>0.67.0</h3></a><div class="navigationWrapper navigationSlider"><na [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.67.0</h3></a>< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -37,10 +37,16 @@
               createToggler('#navToggler', '#docsNav', 'docsSliderActive');
               createToggler('#tocToggler', 'body', 'tocActive');
 
-              const headings = document.querySelector('.toc-headings');
+              var headings = document.querySelector('.toc-headings');
               headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
                 }
               }, false);
 
@@ -59,7 +65,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer postContainer blogContainer"><div class="wrapper"><div class="lonePost"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle"><a href="/docs/blog/2019/05/23/release-0620">StreamPipes release 0.62.0</a></h1><p class="post-meta">May 23, 2019</p><div class="authorBlock"><p class="post-authorName"><a href="http://twitter.com/dominikjriemer" target="_blank" rel="noreferrer noopener">Dominik Riemer</a></p><div  [...]
+        </script></nav></div><div class="container mainContainer postContainer blogContainer"><div class="wrapper"><div class="lonePost"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle"><a href="/docs/blog/2019/05/23/release-0620.html">StreamPipes release 0.62.0</a></h1><p class="post-meta">May 23, 2019</p><div class="authorBlock"><p class="post-authorName"><a href="http://twitter.com/dominikjriemer" target="_blank" rel="noreferrer noopener">Dominik Riemer</a></p> [...]
 <br></p>
 <p>StreamPipes version 0.62.0 has been released! While the last version brought many features under the hood, this new version totally focuses on features and improvements visible to end users.
 The new version is available on Docker Hub and can be downloaded using our <a href="https://github.com/streampipes/streampipes-installer">installer</a>.</p>
@@ -100,7 +106,7 @@ Navigate to <a href="/docs/pipeline-elements">pipeline elements</a> to see an ov
 <p>See the <a href="https://github.com/streampipes/streampipes/releases/tag/0.62.0">release notes</a> for more details.</p>
 <h2><a class="anchor" aria-hidden="true" id="feedback"></a><a href="#feedback" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
 <p>We are absolutely open to your suggestions for further improvements! Let us know (by <a href="mailto:feedback@streampipes.org">mail</a>, <a href="https://slack.streampipes.org">slack</a> or <a href="https://www.twitter.com/streampipes">twitter</a>) and we'll consider your feature request in the next release!</p>
-</span></div></div><div class="blogSocialSection"></div></div><div class="blog-recent"><a class="button" href="/docs/blog">Recent Posts</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#pipeline-elements">Pipeline Elements</a></li><li><a href="#pipeline-editor">Pipeline Editor</a></li><li><a href="#streampipes-connect">StreamPipes Connect</a></li><li><a href="#documentation">Documentation</a></li><li><a href="#other-features-and-improvements">Other featur [...]
+</span></div></div><div class="blogSocialSection"></div></div><div class="blog-recent"><a class="button" href="/docs/blog/">Recent Posts</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#pipeline-elements">Pipeline Elements</a></li><li><a href="#pipeline-editor">Pipeline Editor</a></li><li><a href="#streampipes-connect">StreamPipes Connect</a></li><li><a href="#documentation">Documentation</a></li><li><a href="#other-features-and-improvements">Other featu [...]
                 document.addEventListener('keyup', function(e) {
                   if (e.target !== document.body) {
                     return;
diff --git a/docs/blog/2019/05/23/release-0620/index.html b/docs/blog/2019/05/23/release-0620/index.html
deleted file mode 100644
index 39ca1ff..0000000
--- a/docs/blog/2019/05/23/release-0620/index.html
+++ /dev/null
@@ -1,122 +0,0 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>StreamPipes release 0.62.0 · Apache StreamPipes</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="**&lt;div style=&quot;float: left; padding-right: 40px;&quot;&gt;6 minutes to read&lt;/div&gt;**"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Strea [...]
-              window.dataLayer = window.dataLayer || [];
-              function gtag(){dataLayer.push(arguments); }
-              gtag('js', new Date());
-              gtag('config', 'UA-154181944-1');
-            </script><link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons"/><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick.min.css"/><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick-theme.min.css"/><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto"/><link rel="stylesheet" href="/docs/css/admonition.css"/><link rel="stylesheet" href="/docs [...]
-        document.addEventListener('DOMContentLoaded', function() {
-          addBackToTop(
-            {"zIndex":100}
-          )
-        });
-        </script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions"><h3>0.67.0</h3></a><div class="navigationWrapper navigationSlider"><na [...]
-            var coll = document.getElementsByClassName('collapsible');
-            var checkActiveCategory = true;
-            for (var i = 0; i < coll.length; i++) {
-              var links = coll[i].nextElementSibling.getElementsByTagName('*');
-              if (checkActiveCategory){
-                for (var j = 0; j < links.length; j++) {
-                  if (links[j].classList.contains('navListItemActive')){
-                    coll[i].nextElementSibling.classList.toggle('hide');
-                    coll[i].childNodes[1].classList.toggle('rotate');
-                    checkActiveCategory = false;
-                    break;
-                  }
-                }
-              }
-
-              coll[i].addEventListener('click', function() {
-                var arrow = this.childNodes[1];
-                arrow.classList.toggle('rotate');
-                var content = this.nextElementSibling;
-                content.classList.toggle('hide');
-              });
-            }
-
-            document.addEventListener('DOMContentLoaded', function() {
-              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
-              createToggler('#tocToggler', 'body', 'tocActive');
-
-              const headings = document.querySelector('.toc-headings');
-              headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
-                }
-              }, false);
-
-              function createToggler(togglerSelector, targetSelector, className) {
-                var toggler = document.querySelector(togglerSelector);
-                var target = document.querySelector(targetSelector);
-
-                if (!toggler) {
-                  return;
-                }
-
-                toggler.onclick = function(event) {
-                  event.preventDefault();
-
-                  target.classList.toggle(className);
-                };
-              }
-            });
-        </script></nav></div><div class="container mainContainer postContainer blogContainer"><div class="wrapper"><div class="lonePost"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle"><a href="/docs/blog/2019/05/23/release-0620">StreamPipes release 0.62.0</a></h1><p class="post-meta">May 23, 2019</p><div class="authorBlock"><p class="post-authorName"><a href="http://twitter.com/dominikjriemer" target="_blank" rel="noreferrer noopener">Dominik Riemer</a></p><div  [...]
-<br></p>
-<p>StreamPipes version 0.62.0 has been released! While the last version brought many features under the hood, this new version totally focuses on features and improvements visible to end users.
-The new version is available on Docker Hub and can be downloaded using our <a href="https://github.com/streampipes/streampipes-installer">installer</a>.</p>
-<!--truncate-->
-<p>For this release, we focused on improving error handling in the pipeline editor, added more pipeline elements, added more adapters to StreamPipes Connect and, added a documentation on available pipeline elements.</p>
-<h2><a class="anchor" aria-hidden="true" id="pipeline-elements"></a><a href="#pipeline-elements" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2- [...]
-<p>Pipeline elements are the most important part of the StreamPipes toolbox. Although pipeline elements can be easily developed using our SDK, we aim to provide as many ready-to-use elements as possible to provide you with meaningful data harmonization and analytics features right from the beginning.
-StreamPipes v0.62.0 brings many new data processors and data sinks, an overview can be found <a href="/docs/pipeline-elements">here</a>.</p>
-<h2><a class="anchor" aria-hidden="true" id="pipeline-editor"></a><a href="#pipeline-editor" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5  [...]
-<p>To better support users while developing pipelines, we improved the verification of user input in the pipeline editor.
-Users now get hints (directly shown in the pipeline assembly) on missing pipeline elements and error messages are shown if invalid values are entered while configuring pipeline elements (see the screenshot below).
-In addition, the editor now disallows adding new pipeline elements until the active pipeline element is fully configured, otherwise, the element is marked with a red alert symbol, which makes it much easier to discover modeling errors.</p>
-<p><img class="blog-image" style="max-width:90%;" src="/docs/blog/assets/2019-05-23/pipeline-editor.png" alt="Pipeline Element Verification"></p>
-<p>One feature request which was coming from one of our users was to better understand what pipeline elements are doing. For that reason, we now added a feature that allows to see a full documentation of any pipeline element directly in the pipeline editor.
-Once users start to configure a new pipeline element, the documentation can be opened:</p>
-<p><img class="blog-image" style="max-width:90%;" src="/docs/blog/assets/2019-05-23/pipeline-element-documentation.png" alt="Pipeline Element Documentation"></p>
-<h2><a class="anchor" aria-hidden="true" id="streampipes-connect"></a><a href="#streampipes-connect" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.2 [...]
-<p>We added more adapters to StreamPipes Connect.
-Besides generic adapters such as frequently used protocols like OPC UA, MQTT and Kafka, Connect now also includes some new open data adapters and adapters for web APIs to make starting with StreamPipes more funny and easier:</p>
-<ul>
-<li>A Slack source to connect Slack channels with StreamPipes</li>
-<li>A Coindesk sources that allows you to get the latest Bitcoin rates</li>
-<li>A Wikipedia sources to get latest edits and created articles from Wikipedia</li>
-<li>IEXCloud adapters to provide access to stock quotes and news from IEXCloud (an API token is required).</li>
-<li>A ROS source to access data from the Robot Operating System (ROS)</li>
-</ul>
-<p><img class="blog-image" style="max-width:90%;" src="/docs/blog/assets/2019-05-23/connect.png" alt="StreamPipes Connect"></p>
-<h2><a class="anchor" aria-hidden="true" id="documentation"></a><a href="#documentation" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
-<p>The documentation for pipeline elements that is shown in the pipeline editor is now also available in the online documentation.
-Navigate to <a href="/docs/pipeline-elements">pipeline elements</a> to see an overview of all pipeline elements that are currently provided by StreamPipes.</p>
-<h2><a class="anchor" aria-hidden="true" id="other-features-and-improvements"></a><a href="#other-features-and-improvements" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 [...]
-<ul>
-<li>Adapters can be sorted and filtered in StreamPipes Connect.</li>
-<li>Labels and descriptions of pipeline elements can be provided by external resources files as a first step towards internationalization.</li>
-<li>We upgraded the UI to the latest Angular version 7 and drastically reduced the size of the UI source bundle, which reduces loading time.</li>
-<li>Stream requirements are now correctly ordered</li>
-</ul>
-<p>See the <a href="https://github.com/streampipes/streampipes/releases/tag/0.62.0">release notes</a> for more details.</p>
-<h2><a class="anchor" aria-hidden="true" id="feedback"></a><a href="#feedback" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>We are absolutely open to your suggestions for further improvements! Let us know (by <a href="mailto:feedback@streampipes.org">mail</a>, <a href="https://slack.streampipes.org">slack</a> or <a href="https://www.twitter.com/streampipes">twitter</a>) and we'll consider your feature request in the next release!</p>
-</span></div></div><div class="blogSocialSection"></div></div><div class="blog-recent"><a class="button" href="/docs/blog">Recent Posts</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#pipeline-elements">Pipeline Elements</a></li><li><a href="#pipeline-editor">Pipeline Editor</a></li><li><a href="#streampipes-connect">StreamPipes Connect</a></li><li><a href="#documentation">Documentation</a></li><li><a href="#other-features-and-improvements">Other featur [...]
-                document.addEventListener('keyup', function(e) {
-                  if (e.target !== document.body) {
-                    return;
-                  }
-                  // keyCode for '/' (slash)
-                  if (e.keyCode === 191) {
-                    const search = document.getElementById('search_input_react');
-                    search && search.focus();
-                  }
-                });
-              </script><script>
-              var search = docsearch({
-                
-                apiKey: '0fedc89dddf2810657708b178e56ef02',
-                indexName: 'streampipes',
-                inputSelector: '#search_input_react',
-                algoliaOptions: {}
-              });
-            </script></body></html>
\ No newline at end of file
diff --git a/docs/blog/2019/09/05/release-0630.html b/docs/blog/2019/09/05/release-0630.html
index 492f49e..076ea57 100644
--- a/docs/blog/2019/09/05/release-0630.html
+++ b/docs/blog/2019/09/05/release-0630.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>StreamPipes release 0.63.0 · Apache StreamPipes</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="**&lt;div style=&quot;float: left; padding-right: 40px;&quot;&gt;5 minutes to read&lt;/div&gt;**"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Strea [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>StreamPipes release 0.63.0 · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="**&lt;div style=&quot;float: left; padding-right: 40px;&quot;&gt;5 minutes to read&lt;/div&gt;**"/><meta name="docsearch:language" content="en"/><meta property="og:ti [...]
               window.dataLayer = window.dataLayer || [];
               function gtag(){dataLayer.push(arguments); }
               gtag('js', new Date());
@@ -9,7 +9,7 @@
             {"zIndex":100}
           )
         });
-        </script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions"><h3>0.67.0</h3></a><div class="navigationWrapper navigationSlider"><na [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.67.0</h3></a>< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -37,10 +37,16 @@
               createToggler('#navToggler', '#docsNav', 'docsSliderActive');
               createToggler('#tocToggler', 'body', 'tocActive');
 
-              const headings = document.querySelector('.toc-headings');
+              var headings = document.querySelector('.toc-headings');
               headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
                 }
               }, false);
 
@@ -59,13 +65,13 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer postContainer blogContainer"><div class="wrapper"><div class="lonePost"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle"><a href="/docs/blog/2019/09/05/release-0630">StreamPipes release 0.63.0</a></h1><p class="post-meta">September 5, 2019</p><div class="authorBlock"><p class="post-authorName"><a href="https://twitter.com/dominikjriemer" target="_blank" rel="noreferrer noopener">Dominik Riemer</a></p [...]
+        </script></nav></div><div class="container mainContainer postContainer blogContainer"><div class="wrapper"><div class="lonePost"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle"><a href="/docs/blog/2019/09/05/release-0630.html">StreamPipes release 0.63.0</a></h1><p class="post-meta">September 5, 2019</p><div class="authorBlock"><p class="post-authorName"><a href="https://twitter.com/dominikjriemer" target="_blank" rel="noreferrer noopener">Dominik Riemer</ [...]
 <br></p>
 <p>StreamPipes version 0.63.0 has been released! Following our release plan to alternate between user-faced and backend-oriented releases, this release contains many (more than 70) features and improvements, mainly on the backend side.
 The new version is available on Docker Hub and can be downloaded using our <a href="https://github.com/apache/incubator-streampipes-installer">installer</a>.</p>
 <!--truncate-->
 <p>For this release, we focused on improving the stability and resilience of StreamPipes, adding many new features &quot;under the hood&quot;.</p>
-<h2><a class="anchor" aria-hidden="true" id="backend-data-model"></a><a href="#backend-data-model" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22- [...]
+<h2><a class="anchor" aria-hidden="true" id="backend--data-model"></a><a href="#backend--data-model" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.2 [...]
 <ul>
 <li>First, v0.63.0 brings <strong>support for binary messaging formats</strong>. Prior to 0.63.0, the only messaging format used at runtime was JSON. Now, several other binary formats are supported: Smile and CBOR as binary JSON representations and FST, a fast Java-based serializer.</li>
 <li>Second, we improved <strong>resilience of pipelines</strong>. Now, when StreamPipes is stopped, all running pipelines are stopped beforehand and can be restarted later on, so that you don't end up with orphaned pipelines anymore.</li>
@@ -113,7 +119,7 @@ We also updated all screenshots to reflect the current look and feel of StreamPi
 <p>See the <a href="https://github.com/apache/incubator-streampipes/releases/tag/0.63.0">release notes</a> for a complete list of new features and improvements.</p>
 <h2><a class="anchor" aria-hidden="true" id="feedback"></a><a href="#feedback" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
 <p>We are absolutely open to your suggestions for further improvements! Let us know (by <a href="mailto:feedback@streampipes.org">mail</a>, <a href="https://slack.streampipes.org">slack</a> or <a href="https://www.twitter.com/streampipes">twitter</a>) and we'll consider your feature request in the next release!</p>
-</span></div></div><div class="blogSocialSection"></div></div><div class="blog-recent"><a class="button" href="/docs/blog">Recent Posts</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#backend-data-model">Backend &amp; Data Model</a></li><li><a href="#ui-and-pipeline-editor">UI and Pipeline Editor</a></li><li><a href="#pipeline-elements">Pipeline Elements</a></li><li><a href="#streampipes-connect">StreamPipes Connect</a></li><li><a href="#documentation"> [...]
+</span></div></div><div class="blogSocialSection"></div></div><div class="blog-recent"><a class="button" href="/docs/blog/">Recent Posts</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#backend--data-model">Backend &amp; Data Model</a></li><li><a href="#ui-and-pipeline-editor">UI and Pipeline Editor</a></li><li><a href="#pipeline-elements">Pipeline Elements</a></li><li><a href="#streampipes-connect">StreamPipes Connect</a></li><li><a href="#documentation [...]
                 document.addEventListener('keyup', function(e) {
                   if (e.target !== document.body) {
                     return;
diff --git a/docs/blog/2019/09/05/release-0630/index.html b/docs/blog/2019/09/05/release-0630/index.html
deleted file mode 100644
index 492f49e..0000000
--- a/docs/blog/2019/09/05/release-0630/index.html
+++ /dev/null
@@ -1,135 +0,0 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>StreamPipes release 0.63.0 · Apache StreamPipes</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="**&lt;div style=&quot;float: left; padding-right: 40px;&quot;&gt;5 minutes to read&lt;/div&gt;**"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Strea [...]
-              window.dataLayer = window.dataLayer || [];
-              function gtag(){dataLayer.push(arguments); }
-              gtag('js', new Date());
-              gtag('config', 'UA-154181944-1');
-            </script><link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons"/><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick.min.css"/><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick-theme.min.css"/><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto"/><link rel="stylesheet" href="/docs/css/admonition.css"/><link rel="stylesheet" href="/docs [...]
-        document.addEventListener('DOMContentLoaded', function() {
-          addBackToTop(
-            {"zIndex":100}
-          )
-        });
-        </script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions"><h3>0.67.0</h3></a><div class="navigationWrapper navigationSlider"><na [...]
-            var coll = document.getElementsByClassName('collapsible');
-            var checkActiveCategory = true;
-            for (var i = 0; i < coll.length; i++) {
-              var links = coll[i].nextElementSibling.getElementsByTagName('*');
-              if (checkActiveCategory){
-                for (var j = 0; j < links.length; j++) {
-                  if (links[j].classList.contains('navListItemActive')){
-                    coll[i].nextElementSibling.classList.toggle('hide');
-                    coll[i].childNodes[1].classList.toggle('rotate');
-                    checkActiveCategory = false;
-                    break;
-                  }
-                }
-              }
-
-              coll[i].addEventListener('click', function() {
-                var arrow = this.childNodes[1];
-                arrow.classList.toggle('rotate');
-                var content = this.nextElementSibling;
-                content.classList.toggle('hide');
-              });
-            }
-
-            document.addEventListener('DOMContentLoaded', function() {
-              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
-              createToggler('#tocToggler', 'body', 'tocActive');
-
-              const headings = document.querySelector('.toc-headings');
-              headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
-                }
-              }, false);
-
-              function createToggler(togglerSelector, targetSelector, className) {
-                var toggler = document.querySelector(togglerSelector);
-                var target = document.querySelector(targetSelector);
-
-                if (!toggler) {
-                  return;
-                }
-
-                toggler.onclick = function(event) {
-                  event.preventDefault();
-
-                  target.classList.toggle(className);
-                };
-              }
-            });
-        </script></nav></div><div class="container mainContainer postContainer blogContainer"><div class="wrapper"><div class="lonePost"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle"><a href="/docs/blog/2019/09/05/release-0630">StreamPipes release 0.63.0</a></h1><p class="post-meta">September 5, 2019</p><div class="authorBlock"><p class="post-authorName"><a href="https://twitter.com/dominikjriemer" target="_blank" rel="noreferrer noopener">Dominik Riemer</a></p [...]
-<br></p>
-<p>StreamPipes version 0.63.0 has been released! Following our release plan to alternate between user-faced and backend-oriented releases, this release contains many (more than 70) features and improvements, mainly on the backend side.
-The new version is available on Docker Hub and can be downloaded using our <a href="https://github.com/apache/incubator-streampipes-installer">installer</a>.</p>
-<!--truncate-->
-<p>For this release, we focused on improving the stability and resilience of StreamPipes, adding many new features &quot;under the hood&quot;.</p>
-<h2><a class="anchor" aria-hidden="true" id="backend-data-model"></a><a href="#backend-data-model" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22- [...]
-<ul>
-<li>First, v0.63.0 brings <strong>support for binary messaging formats</strong>. Prior to 0.63.0, the only messaging format used at runtime was JSON. Now, several other binary formats are supported: Smile and CBOR as binary JSON representations and FST, a fast Java-based serializer.</li>
-<li>Second, we improved <strong>resilience of pipelines</strong>. Now, when StreamPipes is stopped, all running pipelines are stopped beforehand and can be restarted later on, so that you don't end up with orphaned pipelines anymore.</li>
-</ul>
-<p>We also extended the data model and SDK with new features:</p>
-<ul>
-<li>Pipeline elements can now provide their own assets such as documentation. Simply add an icon and a markdown file containing the documentation of the pipeline element and both will be visible directly in the pipeline editor after the installation of the pipeline element.</li>
-<li>We added several new static properties to define required user input: <strong>SecretStaticProperties</strong> can be used to define secret values (e.g., passwords). In addition, <strong>StaticPropertyAlternatives</strong> were introduced to let users select between multiple combinations of static properties (e.g., a time window and a count window along with window settings).</li>
-</ul>
-<p>In addition, we migrated all pipeline element container and the backend to Spring Boot applications. The triple store used to store pipeline element descriptions has been extracted to an own microservice. Btw, have you seen the new <a href="https://www.github.com/streampipes/streampipes-helm-chart">helm chart</a> that simplifies running StreamPipes on Kubernetes?</p>
-<h2><a class="anchor" aria-hidden="true" id="ui-and-pipeline-editor"></a><a href="#ui-and-pipeline-editor" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0 [...]
-<p>We improved the <strong>interactive user guide</strong>, so that it now depends on pipeline elements that are also available in the lite version.
-Three different interactive guides exist: One that teaches you how to create pipelines, another one that illustrates how to connect data with StreamPipes connect and a third one that shows how to create live visualizations using the built-in dashboard.</p>
-<p>As <strong>user feedback</strong> is absolutely important to help us improving StreamPipes, we added a feature that allows users to directly give feedback from the StreamPipes UI. Simply click the feedback icon in the top navigation bar and submit your anonymous feedback to us!</p>
-<p>Finally, there are also some functional improvements in the pipeline editor: <strong>Pipeline validation</strong> has improved and gives direct feedback. And, finally, you can now also add multiple dashboards sink to a single pipeline :-)</p>
-<p>And a nice feature you can't see but which you'll probably feel: All UI files are now <strong>Gzip compressed</strong> by default, so that StreamPipes will now load much faster.</p>
-<h2><a class="anchor" aria-hidden="true" id="pipeline-elements"></a><a href="#pipeline-elements" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2- [...]
-<p>StreamPipes 0.63.0 includes several new pipeline elements:</p>
-<ul>
-<li>A sink for Apache IoTDB</li>
-<li>A sink for PostgreSQL</li>
-<li>A processor to convert boolean values</li>
-<li>A processor to extract timestamps</li>
-<li>A processor to compute trigonometric functions</li>
-</ul>
-<h2><a class="anchor" aria-hidden="true" id="streampipes-connect"></a><a href="#streampipes-connect" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.2 [...]
-<p>We added more adapters and improved some adapters to StreamPipes Connect:</p>
-<ul>
-<li>An improved MQTT adapter that can handle authentication</li>
-<li>A new MySQL adapter</li>
-<li>An improved OPC-UA adapter</li>
-<li>A new random data generator that eases testing of pipeline elements</li>
-</ul>
-<p>In addition, we completely reworked the Connect UI. The schema view now lets you edit events more conveniently and timestamp fields can be directly marked in the UI.</p>
-<h2><a class="anchor" aria-hidden="true" id="documentation"></a><a href="#documentation" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
-<p>We updated and restructured the user guide, which now consists of four parts: <a href="/docs/user-guide-introduction">Introduction</a>, <a href="/docs/user-guide-tour">Tour</a>, <a href="/docs/user-guide-installation">Installation</a> and <a href="/docs/user-guide-first-steps">First Steps</a>.
-We also updated all screenshots to reflect the current look and feel of StreamPipes.</p>
-<p>In addition, the developer guide was further extended (e.g., there is now a new tutorial on creating data sinks). Maven archetypes are now the recommended way to create new pipeline elements.</p>
-<h2><a class="anchor" aria-hidden="true" id="other-features-and-improvements"></a><a href="#other-features-and-improvements" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 [...]
-<ul>
-<li>An improved installer that lets you choose between two StreamPipes versions for different hardware setups (full or lite, previously named big data and desktop)</li>
-<li>We updated some core libraries like Apache Flink and Apache Kafka to newer versions.</li>
-<li>Improved support for Firefox and Edge: Besides Chrome, StreamPipes should also behave and look similar in Firefox and Edge browsers.</li>
-</ul>
-<p>See the <a href="https://github.com/apache/incubator-streampipes/releases/tag/0.63.0">release notes</a> for a complete list of new features and improvements.</p>
-<h2><a class="anchor" aria-hidden="true" id="feedback"></a><a href="#feedback" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>We are absolutely open to your suggestions for further improvements! Let us know (by <a href="mailto:feedback@streampipes.org">mail</a>, <a href="https://slack.streampipes.org">slack</a> or <a href="https://www.twitter.com/streampipes">twitter</a>) and we'll consider your feature request in the next release!</p>
-</span></div></div><div class="blogSocialSection"></div></div><div class="blog-recent"><a class="button" href="/docs/blog">Recent Posts</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#backend-data-model">Backend &amp; Data Model</a></li><li><a href="#ui-and-pipeline-editor">UI and Pipeline Editor</a></li><li><a href="#pipeline-elements">Pipeline Elements</a></li><li><a href="#streampipes-connect">StreamPipes Connect</a></li><li><a href="#documentation"> [...]
-                document.addEventListener('keyup', function(e) {
-                  if (e.target !== document.body) {
-                    return;
-                  }
-                  // keyCode for '/' (slash)
-                  if (e.keyCode === 191) {
-                    const search = document.getElementById('search_input_react');
-                    search && search.focus();
-                  }
-                });
-              </script><script>
-              var search = docsearch({
-                
-                apiKey: '0fedc89dddf2810657708b178e56ef02',
-                indexName: 'streampipes',
-                inputSelector: '#search_input_react',
-                algoliaOptions: {}
-              });
-            </script></body></html>
\ No newline at end of file
diff --git a/docs/blog/2019/09/19/release-0640.html b/docs/blog/2019/09/19/release-0640.html
index 8cfa373..20ce4e3 100644
--- a/docs/blog/2019/09/19/release-0640.html
+++ b/docs/blog/2019/09/19/release-0640.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>StreamPipes release 0.64.0 · Apache StreamPipes</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="**&lt;div style=&quot;float: left; padding-right: 40px;&quot;&gt;5 minutes to read&lt;/div&gt;**"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Strea [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>StreamPipes release 0.64.0 · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="**&lt;div style=&quot;float: left; padding-right: 40px;&quot;&gt;5 minutes to read&lt;/div&gt;**"/><meta name="docsearch:language" content="en"/><meta property="og:ti [...]
               window.dataLayer = window.dataLayer || [];
               function gtag(){dataLayer.push(arguments); }
               gtag('js', new Date());
@@ -9,7 +9,7 @@
             {"zIndex":100}
           )
         });
-        </script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions"><h3>0.67.0</h3></a><div class="navigationWrapper navigationSlider"><na [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.67.0</h3></a>< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -37,10 +37,16 @@
               createToggler('#navToggler', '#docsNav', 'docsSliderActive');
               createToggler('#tocToggler', 'body', 'tocActive');
 
-              const headings = document.querySelector('.toc-headings');
+              var headings = document.querySelector('.toc-headings');
               headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
                 }
               }, false);
 
@@ -59,7 +65,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer postContainer blogContainer"><div class="wrapper"><div class="lonePost"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle"><a href="/docs/blog/2019/09/19/release-0640">StreamPipes release 0.64.0</a></h1><p class="post-meta">September 19, 2019</p><div class="authorBlock"><p class="post-authorName"><a href="https://twitter.com/dominikjriemer" target="_blank" rel="noreferrer noopener">Dominik Riemer</a></ [...]
+        </script></nav></div><div class="container mainContainer postContainer blogContainer"><div class="wrapper"><div class="lonePost"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle"><a href="/docs/blog/2019/09/19/release-0640.html">StreamPipes release 0.64.0</a></h1><p class="post-meta">September 19, 2019</p><div class="authorBlock"><p class="post-authorName"><a href="https://twitter.com/dominikjriemer" target="_blank" rel="noreferrer noopener">Dominik Riemer< [...]
 <br></p>
 <p>Usually, we try to publish a new StreamPipes release every three months. But after attending a very exciting <a href="https://www.apachecon.com/acna19/">ApacheCon</a> last week, where we worked with some Apache communities on a few really cool new features, we decided to release these features as soon as possible.
 So here's StreamPipes 0.64.0!</p>
@@ -86,7 +92,7 @@ So we looked deeper into the issue and discovered that the Docker base images we
 <p>In future versions, we will continue our efforts to decrease the memory consumption of StreamPipes.</p>
 <h2><a class="anchor" aria-hidden="true" id="feedback"></a><a href="#feedback" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
 <p>We are absolutely open to your suggestions for further improvements! Let us know (by <a href="mailto:feedback@streampipes.org">mail</a>, <a href="https://slack.streampipes.org">slack</a> or <a href="https://www.twitter.com/streampipes">twitter</a>) and we'll consider your feature request in the next release!</p>
-</span></div></div><div class="blogSocialSection"></div></div><div class="blog-recent"><a class="button" href="/docs/blog">Recent Posts</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#streampipes-connect">StreamPipes Connect</a></li><li><a href="#pipeline-elements">Pipeline Elements</a></li><li><a href="#deployment">Deployment</a></li><li><a href="#feedback">Feedback</a></li></ul></nav></div><div><footer class="nav-footer" id="footer"><section class="si [...]
+</span></div></div><div class="blogSocialSection"></div></div><div class="blog-recent"><a class="button" href="/docs/blog/">Recent Posts</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#streampipes-connect">StreamPipes Connect</a></li><li><a href="#pipeline-elements">Pipeline Elements</a></li><li><a href="#deployment">Deployment</a></li><li><a href="#feedback">Feedback</a></li></ul></nav></div><div><footer class="nav-footer" id="footer"><section class="s [...]
                 document.addEventListener('keyup', function(e) {
                   if (e.target !== document.body) {
                     return;
diff --git a/docs/blog/2019/09/19/release-0640/index.html b/docs/blog/2019/09/19/release-0640/index.html
deleted file mode 100644
index 8cfa373..0000000
--- a/docs/blog/2019/09/19/release-0640/index.html
+++ /dev/null
@@ -1,108 +0,0 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>StreamPipes release 0.64.0 · Apache StreamPipes</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="**&lt;div style=&quot;float: left; padding-right: 40px;&quot;&gt;5 minutes to read&lt;/div&gt;**"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Strea [...]
-              window.dataLayer = window.dataLayer || [];
-              function gtag(){dataLayer.push(arguments); }
-              gtag('js', new Date());
-              gtag('config', 'UA-154181944-1');
-            </script><link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons"/><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick.min.css"/><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick-theme.min.css"/><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto"/><link rel="stylesheet" href="/docs/css/admonition.css"/><link rel="stylesheet" href="/docs [...]
-        document.addEventListener('DOMContentLoaded', function() {
-          addBackToTop(
-            {"zIndex":100}
-          )
-        });
-        </script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions"><h3>0.67.0</h3></a><div class="navigationWrapper navigationSlider"><na [...]
-            var coll = document.getElementsByClassName('collapsible');
-            var checkActiveCategory = true;
-            for (var i = 0; i < coll.length; i++) {
-              var links = coll[i].nextElementSibling.getElementsByTagName('*');
-              if (checkActiveCategory){
-                for (var j = 0; j < links.length; j++) {
-                  if (links[j].classList.contains('navListItemActive')){
-                    coll[i].nextElementSibling.classList.toggle('hide');
-                    coll[i].childNodes[1].classList.toggle('rotate');
-                    checkActiveCategory = false;
-                    break;
-                  }
-                }
-              }
-
-              coll[i].addEventListener('click', function() {
-                var arrow = this.childNodes[1];
-                arrow.classList.toggle('rotate');
-                var content = this.nextElementSibling;
-                content.classList.toggle('hide');
-              });
-            }
-
-            document.addEventListener('DOMContentLoaded', function() {
-              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
-              createToggler('#tocToggler', 'body', 'tocActive');
-
-              const headings = document.querySelector('.toc-headings');
-              headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
-                }
-              }, false);
-
-              function createToggler(togglerSelector, targetSelector, className) {
-                var toggler = document.querySelector(togglerSelector);
-                var target = document.querySelector(targetSelector);
-
-                if (!toggler) {
-                  return;
-                }
-
-                toggler.onclick = function(event) {
-                  event.preventDefault();
-
-                  target.classList.toggle(className);
-                };
-              }
-            });
-        </script></nav></div><div class="container mainContainer postContainer blogContainer"><div class="wrapper"><div class="lonePost"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle"><a href="/docs/blog/2019/09/19/release-0640">StreamPipes release 0.64.0</a></h1><p class="post-meta">September 19, 2019</p><div class="authorBlock"><p class="post-authorName"><a href="https://twitter.com/dominikjriemer" target="_blank" rel="noreferrer noopener">Dominik Riemer</a></ [...]
-<br></p>
-<p>Usually, we try to publish a new StreamPipes release every three months. But after attending a very exciting <a href="https://www.apachecon.com/acna19/">ApacheCon</a> last week, where we worked with some Apache communities on a few really cool new features, we decided to release these features as soon as possible.
-So here's StreamPipes 0.64.0!</p>
-<!--truncate-->
-<h2><a class="anchor" aria-hidden="true" id="streampipes-connect"></a><a href="#streampipes-connect" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.2 [...]
-<ul>
-<li>StreamPipes Connect now has a new (experimental) connector for <a href="https://plc4x.apache.org/">ApachePLC4X</a>. PLC4X is a (really cool) universal protocol adapter for the Industrial IoT with many adapters for systems like Modbus, Beckhoff, S7 and OPC-UA. The new StreamPipes Connect adapter allows you to easily connect to an S7 device, we will add more integrations in the upcoming releases.</li>
-<li>We added another adapter to retrieve data from the <a href="https://pulsar.apache.org">Apache Pulsar</a> messaging system.</li>
-</ul>
-<p><img class="blog-image" style="max-width:90%;" src="/docs/blog/assets/2019-09-19/spconnect.png" alt="PLC4X adapter for StreamPipes Connect"></p>
-<h2><a class="anchor" aria-hidden="true" id="pipeline-elements"></a><a href="#pipeline-elements" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2- [...]
-<ul>
-<li>0.64.0 also includes a new data sink to send data to Apache Pulsar.</li>
-</ul>
-<h2><a class="anchor" aria-hidden="true" id="deployment"></a><a href="#deployment" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
-<p>StreamPipes relies on a microservice-based architecture and therefore requires quite a few services (&gt; 15 for the full version) to be up and running.
-This has impact on the memory consumption of the server where StreamPipes is running. On the other hand, we want to make it as easy as possible to try StreamPipes even on laptops with less powerful hardware.</p>
-<p>However, the lite version still required &gt; 8G memory and the full version even more. Additionally, after the last release, we received feedback from the community indicating that the memory consumption has significantly increased.
-So we looked deeper into the issue and discovered that the Docker base images we were using to deliver the StreamPipes services caused high memory consumption.</p>
-<p>Before StreamPipes 0.63.0, we used the Alpine Oracle JDK image for most services. In 0.63.0, we switched to an OpenJDK/Alpine distribution. This had an enormous effect on memory, having individual services that reserved more than 1.5GB of memory.</p>
-<p>So in this version, we switched to AdoptOpenJDK along with <a href="https://www.eclipse.org/openj9/">OpenJ9</a>. The results are fantastic: The full version including all pipeline elements now needs only 6GB memory (compared to &gt; 16 in the last version).</p>
-<p>The screenshot below shows that StreamPipes now is much less resource hungry:</p>
-<p><img class="blog-image" style="max-width:90%;" src="/docs/blog/assets/2019-09-19/memory.png" alt="PLC4X adapter for StreamPipes Connect"></p>
-<p>In future versions, we will continue our efforts to decrease the memory consumption of StreamPipes.</p>
-<h2><a class="anchor" aria-hidden="true" id="feedback"></a><a href="#feedback" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>We are absolutely open to your suggestions for further improvements! Let us know (by <a href="mailto:feedback@streampipes.org">mail</a>, <a href="https://slack.streampipes.org">slack</a> or <a href="https://www.twitter.com/streampipes">twitter</a>) and we'll consider your feature request in the next release!</p>
-</span></div></div><div class="blogSocialSection"></div></div><div class="blog-recent"><a class="button" href="/docs/blog">Recent Posts</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#streampipes-connect">StreamPipes Connect</a></li><li><a href="#pipeline-elements">Pipeline Elements</a></li><li><a href="#deployment">Deployment</a></li><li><a href="#feedback">Feedback</a></li></ul></nav></div><div><footer class="nav-footer" id="footer"><section class="si [...]
-                document.addEventListener('keyup', function(e) {
-                  if (e.target !== document.body) {
-                    return;
-                  }
-                  // keyCode for '/' (slash)
-                  if (e.keyCode === 191) {
-                    const search = document.getElementById('search_input_react');
-                    search && search.focus();
-                  }
-                });
-              </script><script>
-              var search = docsearch({
-                
-                apiKey: '0fedc89dddf2810657708b178e56ef02',
-                indexName: 'streampipes',
-                inputSelector: '#search_input_react',
-                algoliaOptions: {}
-              });
-            </script></body></html>
\ No newline at end of file
diff --git a/docs/blog/2019/11/23/release-0650.html b/docs/blog/2019/11/23/release-0650.html
index 19a5fee..409f1ec 100644
--- a/docs/blog/2019/11/23/release-0650.html
+++ b/docs/blog/2019/11/23/release-0650.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>StreamPipes release 0.65.0 · Apache StreamPipes</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="**&lt;div style=&quot;float: left; padding-right: 40px;&quot;&gt;5 minutes to read&lt;/div&gt;**"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Strea [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>StreamPipes release 0.65.0 · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="**&lt;div style=&quot;float: left; padding-right: 40px;&quot;&gt;5 minutes to read&lt;/div&gt;**"/><meta name="docsearch:language" content="en"/><meta property="og:ti [...]
               window.dataLayer = window.dataLayer || [];
               function gtag(){dataLayer.push(arguments); }
               gtag('js', new Date());
@@ -9,7 +9,7 @@
             {"zIndex":100}
           )
         });
-        </script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions"><h3>0.67.0</h3></a><div class="navigationWrapper navigationSlider"><na [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.67.0</h3></a>< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -37,10 +37,16 @@
               createToggler('#navToggler', '#docsNav', 'docsSliderActive');
               createToggler('#tocToggler', 'body', 'tocActive');
 
-              const headings = document.querySelector('.toc-headings');
+              var headings = document.querySelector('.toc-headings');
               headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
                 }
               }, false);
 
@@ -59,7 +65,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer postContainer blogContainer"><div class="wrapper"><div class="lonePost"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle"><a href="/docs/blog/2019/11/23/release-0650">StreamPipes release 0.65.0</a></h1><p class="post-meta">November 23, 2019</p><div class="authorBlock"><p class="post-authorName"><a href="https://twitter.com/dominikjriemer" target="_blank" rel="noreferrer noopener">Dominik Riemer</a></p [...]
+        </script></nav></div><div class="container mainContainer postContainer blogContainer"><div class="wrapper"><div class="lonePost"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle"><a href="/docs/blog/2019/11/23/release-0650.html">StreamPipes release 0.65.0</a></h1><p class="post-meta">November 23, 2019</p><div class="authorBlock"><p class="post-authorName"><a href="https://twitter.com/dominikjriemer" target="_blank" rel="noreferrer noopener">Dominik Riemer</ [...]
 <br></p>
 <p>We are happy to announce StreamPipes version 0.65.0! This release brings performance improvements related to the installation process and further reduces the minimum hardware requirements to run StreamPipes.</p>
 <!--truncate-->
@@ -89,7 +95,7 @@ We now recommend a minimum of 4GB RAM for the StreamPipes Lite version (make sur
 <h2><a class="anchor" aria-hidden="true" id="feedback"></a><a href="#feedback" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
 <p>We are absolutely open to your suggestions for further improvements! Let us know (by <a href="mailto:feedback@streampipes.org">mail</a>, <a href="https://slack.streampipes.org">slack</a> or <a href="https://www.twitter.com/streampipes">twitter</a>) and we'll consider your feature request in the next release!</p>
 <p>And do not forget to subscribe to our new mailing lists: <a href="https://streampipes.apache.org/mailinglists.html">https://streampipes.apache.org/mailinglists.html</a></p>
-</span></div></div><div class="blogSocialSection"></div></div><div class="blog-recent"><a class="button" href="/docs/blog">Recent Posts</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#installation">Installation</a></li><li><a href="#lite-version">Lite version</a></li><li><a href="#pipeline-elements">Pipeline Elements</a></li><li><a href="#other-features-and-improvements">Other features and improvements</a></li><li><a href="#feedback">Feedback</a></li></ [...]
+</span></div></div><div class="blogSocialSection"></div></div><div class="blog-recent"><a class="button" href="/docs/blog/">Recent Posts</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#installation">Installation</a></li><li><a href="#lite-version">Lite version</a></li><li><a href="#pipeline-elements">Pipeline Elements</a></li><li><a href="#other-features-and-improvements">Other features and improvements</a></li><li><a href="#feedback">Feedback</a></li>< [...]
                 document.addEventListener('keyup', function(e) {
                   if (e.target !== document.body) {
                     return;
diff --git a/docs/blog/2019/11/23/release-0650/index.html b/docs/blog/2019/11/23/release-0650/index.html
deleted file mode 100644
index 19a5fee..0000000
--- a/docs/blog/2019/11/23/release-0650/index.html
+++ /dev/null
@@ -1,111 +0,0 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>StreamPipes release 0.65.0 · Apache StreamPipes</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="**&lt;div style=&quot;float: left; padding-right: 40px;&quot;&gt;5 minutes to read&lt;/div&gt;**"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Strea [...]
-              window.dataLayer = window.dataLayer || [];
-              function gtag(){dataLayer.push(arguments); }
-              gtag('js', new Date());
-              gtag('config', 'UA-154181944-1');
-            </script><link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons"/><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick.min.css"/><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick-theme.min.css"/><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto"/><link rel="stylesheet" href="/docs/css/admonition.css"/><link rel="stylesheet" href="/docs [...]
-        document.addEventListener('DOMContentLoaded', function() {
-          addBackToTop(
-            {"zIndex":100}
-          )
-        });
-        </script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions"><h3>0.67.0</h3></a><div class="navigationWrapper navigationSlider"><na [...]
-            var coll = document.getElementsByClassName('collapsible');
-            var checkActiveCategory = true;
-            for (var i = 0; i < coll.length; i++) {
-              var links = coll[i].nextElementSibling.getElementsByTagName('*');
-              if (checkActiveCategory){
-                for (var j = 0; j < links.length; j++) {
-                  if (links[j].classList.contains('navListItemActive')){
-                    coll[i].nextElementSibling.classList.toggle('hide');
-                    coll[i].childNodes[1].classList.toggle('rotate');
-                    checkActiveCategory = false;
-                    break;
-                  }
-                }
-              }
-
-              coll[i].addEventListener('click', function() {
-                var arrow = this.childNodes[1];
-                arrow.classList.toggle('rotate');
-                var content = this.nextElementSibling;
-                content.classList.toggle('hide');
-              });
-            }
-
-            document.addEventListener('DOMContentLoaded', function() {
-              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
-              createToggler('#tocToggler', 'body', 'tocActive');
-
-              const headings = document.querySelector('.toc-headings');
-              headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
-                }
-              }, false);
-
-              function createToggler(togglerSelector, targetSelector, className) {
-                var toggler = document.querySelector(togglerSelector);
-                var target = document.querySelector(targetSelector);
-
-                if (!toggler) {
-                  return;
-                }
-
-                toggler.onclick = function(event) {
-                  event.preventDefault();
-
-                  target.classList.toggle(className);
-                };
-              }
-            });
-        </script></nav></div><div class="container mainContainer postContainer blogContainer"><div class="wrapper"><div class="lonePost"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle"><a href="/docs/blog/2019/11/23/release-0650">StreamPipes release 0.65.0</a></h1><p class="post-meta">November 23, 2019</p><div class="authorBlock"><p class="post-authorName"><a href="https://twitter.com/dominikjriemer" target="_blank" rel="noreferrer noopener">Dominik Riemer</a></p [...]
-<br></p>
-<p>We are happy to announce StreamPipes version 0.65.0! This release brings performance improvements related to the installation process and further reduces the minimum hardware requirements to run StreamPipes.</p>
-<!--truncate-->
-<h2><a class="anchor" aria-hidden="true" id="installation"></a><a href="#installation" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
-<p>If you're installing StreamPipes using the provided installer, you might have noticed that the initial setup takes some time: Docker images are downloaded, all dependent microservices are started and the RDF-based database that we use internally to store pipeline elements is initialized.
-On less-performant hardware, this process could take a few minutes. For this release, we optimized the installation process:</p>
-<ul>
-<li>You don't need to provide your IP address during the installation process anymore - StreamPipes now runs without manually providing an IP address.</li>
-<li>A new initialization screen is shown in the StreamPipes user interface that automatically disappears and guides you to the setup process once all mandatory services are running.</li>
-<li>The setup process in the user interface should now be much faster due to some changes related to the caching of pipeline elements.</li>
-</ul>
-<h2><a class="anchor" aria-hidden="true" id="lite-version"></a><a href="#lite-version" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
-<p>To further reduce the minimum hardware requirements to run StreamPipes, we added a new Docker container to the backend that includes all data processors and sinks that depend on the lightweight JVM wrapper. Flink and other modules are excluded.
-This approach allows to test StreamPipes with less memory (e.g., on a laptop) while still having a larger set of pipeline elements installed.<br>
-We now recommend a minimum of 4GB RAM for the StreamPipes Lite version (make sure that the RAM is also assigned to Docker Desktop), but our tests have shown that the memory consumption of the StreamPipes lite version is around 2GB.</p>
-<h2><a class="anchor" aria-hidden="true" id="pipeline-elements"></a><a href="#pipeline-elements" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2- [...]
-<ul>
-<li>0.65.0 includes some new data processors: A CSV enrichment processors that allows to enrich events with metadata from CSV files, an event counter and some processors that perform operations on boolean values, e.g., coming from PLCs.</li>
-</ul>
-<h2><a class="anchor" aria-hidden="true" id="other-features-and-improvements"></a><a href="#other-features-and-improvements" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 [...]
-<ul>
-<li>Use the latest Flink version 1.9.1</li>
-<li>We improved the OPC-UA adapter, e.g., you can now directly set the URL of the OPC-UA server.</li>
-<li>Proper error messages are now shown in the pipeline view in case something goes wrong during the start of a pipeline.</li>
-</ul>
-<p>See the <a href="https://github.com/apache/incubator-streampipes/releases/tag/0.65.0">release notes</a> for a complete list of new features and improvements.</p>
-<h2><a class="anchor" aria-hidden="true" id="feedback"></a><a href="#feedback" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>We are absolutely open to your suggestions for further improvements! Let us know (by <a href="mailto:feedback@streampipes.org">mail</a>, <a href="https://slack.streampipes.org">slack</a> or <a href="https://www.twitter.com/streampipes">twitter</a>) and we'll consider your feature request in the next release!</p>
-<p>And do not forget to subscribe to our new mailing lists: <a href="https://streampipes.apache.org/mailinglists.html">https://streampipes.apache.org/mailinglists.html</a></p>
-</span></div></div><div class="blogSocialSection"></div></div><div class="blog-recent"><a class="button" href="/docs/blog">Recent Posts</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#installation">Installation</a></li><li><a href="#lite-version">Lite version</a></li><li><a href="#pipeline-elements">Pipeline Elements</a></li><li><a href="#other-features-and-improvements">Other features and improvements</a></li><li><a href="#feedback">Feedback</a></li></ [...]
-                document.addEventListener('keyup', function(e) {
-                  if (e.target !== document.body) {
-                    return;
-                  }
-                  // keyCode for '/' (slash)
-                  if (e.keyCode === 191) {
-                    const search = document.getElementById('search_input_react');
-                    search && search.focus();
-                  }
-                });
-              </script><script>
-              var search = docsearch({
-                
-                apiKey: '0fedc89dddf2810657708b178e56ef02',
-                indexName: 'streampipes',
-                inputSelector: '#search_input_react',
-                algoliaOptions: {}
-              });
-            </script></body></html>
\ No newline at end of file
diff --git a/docs/blog/2019/11/25/moving-to-the-apache-incubator.html b/docs/blog/2019/11/25/moving-to-the-apache-incubator.html
index f191d94..8f3fa3a 100644
--- a/docs/blog/2019/11/25/moving-to-the-apache-incubator.html
+++ b/docs/blog/2019/11/25/moving-to-the-apache-incubator.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Moving to the Apache Incubator · Apache StreamPipes</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="**&lt;div style=&quot;float: left; padding-right: 40px;&quot;&gt;8 minutes to read&lt;/div&gt;**"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="M [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Moving to the Apache Incubator · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="**&lt;div style=&quot;float: left; padding-right: 40px;&quot;&gt;8 minutes to read&lt;/div&gt;**"/><meta name="docsearch:language" content="en"/><meta property="o [...]
               window.dataLayer = window.dataLayer || [];
               function gtag(){dataLayer.push(arguments); }
               gtag('js', new Date());
@@ -9,7 +9,7 @@
             {"zIndex":100}
           )
         });
-        </script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions"><h3>0.67.0</h3></a><div class="navigationWrapper navigationSlider"><na [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.67.0</h3></a>< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -37,10 +37,16 @@
               createToggler('#navToggler', '#docsNav', 'docsSliderActive');
               createToggler('#tocToggler', 'body', 'tocActive');
 
-              const headings = document.querySelector('.toc-headings');
+              var headings = document.querySelector('.toc-headings');
               headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
                 }
               }, false);
 
@@ -59,7 +65,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer postContainer blogContainer"><div class="wrapper"><div class="lonePost"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle"><a href="/docs/blog/2019/11/25/moving-to-the-apache-incubator">Moving to the Apache Incubator</a></h1><p class="post-meta">November 25, 2019</p><div class="authorBlock"><p class="post-authorName"><a href="https://twitter.com/dominikjriemer" target="_blank" rel="noreferrer noopener" [...]
+        </script></nav></div><div class="container mainContainer postContainer blogContainer"><div class="wrapper"><div class="lonePost"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle"><a href="/docs/blog/2019/11/25/moving-to-the-apache-incubator.html">Moving to the Apache Incubator</a></h1><p class="post-meta">November 25, 2019</p><div class="authorBlock"><p class="post-authorName"><a href="https://twitter.com/dominikjriemer" target="_blank" rel="noreferrer noop [...]
 <br>
 Great news: StreamPipes is moving to the Apache Incubator!</p>
 <!--truncate-->
@@ -90,7 +96,7 @@ We met Chris Dutz together with other people from PLC4X and other Apache project
 <p>We would also like to thank our employee, <a href="https://www.fzi.de/en">FZI Research Center for Information Technology</a>, for the continued great support - starting from giving us the opportunity to present StreamPipes at large fairs such as Hannover Messe, over media support such as creating the great StreamPipes logo, up to the fast legal support we received when we got accepted by the Apache Incubator.
 If you want to build cool stuff in a great applied research institute while pursuing a PhD at KIT, FZI is surely the best place to be ;-)</p>
 <p>Let's continue development and transform Apache StreamPipes (incubating) into the next Apache community!</p>
-</span></div></div><div class="blogSocialSection"></div></div><div class="blog-recent"><a class="button" href="/docs/blog">Recent Posts</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#the-streampipes-journey-so-far">The StreamPipes journey so far</a></li><li><a href="#moving-to-the-apache-incubator">Moving to the Apache Incubator</a></li><li><a href="#new-project-setup">New project setup</a></li><li><a href="#thanks">Thanks</a></li></ul></nav></div><div [...]
+</span></div></div><div class="blogSocialSection"></div></div><div class="blog-recent"><a class="button" href="/docs/blog/">Recent Posts</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#the-streampipes-journey-so-far">The StreamPipes journey so far</a></li><li><a href="#moving-to-the-apache-incubator">Moving to the Apache Incubator</a></li><li><a href="#new-project-setup">New project setup</a></li><li><a href="#thanks">Thanks</a></li></ul></nav></div><di [...]
                 document.addEventListener('keyup', function(e) {
                   if (e.target !== document.body) {
                     return;
diff --git a/docs/blog/2019/11/25/moving-to-the-apache-incubator/index.html b/docs/blog/2019/11/25/moving-to-the-apache-incubator/index.html
deleted file mode 100644
index f191d94..0000000
--- a/docs/blog/2019/11/25/moving-to-the-apache-incubator/index.html
+++ /dev/null
@@ -1,112 +0,0 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Moving to the Apache Incubator · Apache StreamPipes</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="**&lt;div style=&quot;float: left; padding-right: 40px;&quot;&gt;8 minutes to read&lt;/div&gt;**"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="M [...]
-              window.dataLayer = window.dataLayer || [];
-              function gtag(){dataLayer.push(arguments); }
-              gtag('js', new Date());
-              gtag('config', 'UA-154181944-1');
-            </script><link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons"/><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick.min.css"/><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick-theme.min.css"/><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto"/><link rel="stylesheet" href="/docs/css/admonition.css"/><link rel="stylesheet" href="/docs [...]
-        document.addEventListener('DOMContentLoaded', function() {
-          addBackToTop(
-            {"zIndex":100}
-          )
-        });
-        </script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions"><h3>0.67.0</h3></a><div class="navigationWrapper navigationSlider"><na [...]
-            var coll = document.getElementsByClassName('collapsible');
-            var checkActiveCategory = true;
-            for (var i = 0; i < coll.length; i++) {
-              var links = coll[i].nextElementSibling.getElementsByTagName('*');
-              if (checkActiveCategory){
-                for (var j = 0; j < links.length; j++) {
-                  if (links[j].classList.contains('navListItemActive')){
-                    coll[i].nextElementSibling.classList.toggle('hide');
-                    coll[i].childNodes[1].classList.toggle('rotate');
-                    checkActiveCategory = false;
-                    break;
-                  }
-                }
-              }
-
-              coll[i].addEventListener('click', function() {
-                var arrow = this.childNodes[1];
-                arrow.classList.toggle('rotate');
-                var content = this.nextElementSibling;
-                content.classList.toggle('hide');
-              });
-            }
-
-            document.addEventListener('DOMContentLoaded', function() {
-              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
-              createToggler('#tocToggler', 'body', 'tocActive');
-
-              const headings = document.querySelector('.toc-headings');
-              headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
-                }
-              }, false);
-
-              function createToggler(togglerSelector, targetSelector, className) {
-                var toggler = document.querySelector(togglerSelector);
-                var target = document.querySelector(targetSelector);
-
-                if (!toggler) {
-                  return;
-                }
-
-                toggler.onclick = function(event) {
-                  event.preventDefault();
-
-                  target.classList.toggle(className);
-                };
-              }
-            });
-        </script></nav></div><div class="container mainContainer postContainer blogContainer"><div class="wrapper"><div class="lonePost"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle"><a href="/docs/blog/2019/11/25/moving-to-the-apache-incubator">Moving to the Apache Incubator</a></h1><p class="post-meta">November 25, 2019</p><div class="authorBlock"><p class="post-authorName"><a href="https://twitter.com/dominikjriemer" target="_blank" rel="noreferrer noopener" [...]
-<br>
-Great news: StreamPipes is moving to the Apache Incubator!</p>
-<!--truncate-->
-<h2><a class="anchor" aria-hidden="true" id="the-streampipes-journey-so-far"></a><a href="#the-streampipes-journey-so-far" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 1 [...]
-<p>We started to build the early foundations of StreamPipes back in 2014 as part of the EU research project <em>ProaSense</em>. Our goal was to make event processing accessible to end users with a focus on the Industrial IoT, without the technical expertise required by stream processing tooling.
-After some very early prototypes (see an early screenshot below :-)) demonstrating the usefulness of the pipeline editor and the underlying semantics-based data model in two manufacturing-related use cases, we open-sourced StreamPipes in 2017 and continued development in various research projects.
-Since then, we presented and showcased StreamPipes at various events: fairs, meetups, conference talks and so on. For instance, in 2019 we attended over 20 events where we gave demos or talked about StreamPipes.
-It is great to see that the solution is now steadily getting increased traction in the Industrial IoT space.</p>
-<p><img class="blog-image" style="max-width:90%;margin-bottom:20px;" src="/docs/blog/assets/2019-11-25/2019-11_StreamPipes-v0.png" alt="1st prototype of the StreamPipes UI">
-<img class="blog-image" style="max-width:90%;" src="/docs/blog/assets/2019-11-25/2019-11_StreamPipes-now.png" alt="1st prototype of the StreamPipes UI"></p>
-<h2><a class="anchor" aria-hidden="true" id="moving-to-the-apache-incubator"></a><a href="#moving-to-the-apache-incubator" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 1 [...]
-<p>Earlier this year, we discussed how to continue the development of StreamPipes. For the core team at FZI, our main goal was to widen the developer base, attract external developers and to make StreamPipes a real community-driven open source project.
-We had a look at various open source foundations (namely Apache, CNCF and Eclipse), but from the beginning, there was no doubt that we wanted to see StreamPipes in the Apache Software Foundation. Using a lot of Apache Big Data projects under the hood (<a href="https://kafka.apache.org">Apache Kafka</a>, <a href="https://flink.apache.org">Apache Flink</a> and others), an emerging Apache IoT ecosystem, and the community-driven, open development process of ASF projects, this was an easy decision.
-Finally, a few weeks before we went to ApacheCon North America in Las Vegas in September this year to talk about StreamPipes, we discovered the awesome <a href="https://plc4x.apache.org">Apache PLC4X</a> project, which perfectly aligns with StreamPipes tackling the hard task to connect proprietary industrial protocols with modern software tooling.
-We met Chris Dutz together with other people from PLC4X and other Apache projects in Las Vegas and were overwhelmed by the <em>Apache Way</em> and the great collaboration between the various projects within the ASF.</p>
-<p>So after coming back home, we immediately started to write the proposal to enter the Apache Incubator, which got accepted on 2019-11-11.</p>
-<h2><a class="anchor" aria-hidden="true" id="new-project-setup"></a><a href="#new-project-setup" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2- [...]
-<p>With the great help from our mentors, we already performed some initial steps required to move our infrastructure over to the ASF, which will continue during the next week:</p>
-<ul>
-<li>The new website will be soon available under <a href="https://streampipes.apache.org">https://streampipes.apache.org</a></li>
-<li>We will move our code repositories over to the ASF on Github. Before that, we'll merge some repos to make future releases easier: The <strong>backend and user interface</strong> will be merged to the repository <a href="[https://www.github.com/apache/incubator-streampipes">https://www.github.com/apache/incubator-streampipes</a>. Pipeline elements and StreamPipes Connect adapters will also be merged to a new repo called <strong>streampipes-extensions</strong>, soon available at <a hre [...]
-<li>Apache project communication mainly relies on mailing lists. Subscribe to the <a href="mailto:users-subscribe@streampipes.apache.org">user list</a> and <a href="mailto:dev-subscribe@streampipes.apache.org">dev list</a> and help us to improve StreamPipes!</li>
-<li>Issues can be created in the new <a href="https://issues.apache.org/jira/projects/STREAMPIPES">Jira</a>.</li>
-<li>All previous releases will be marked as non-ASF-releases to clearly indicate that previous releases do not follow the Apache release policy. Yesterday, we released the final pre-Apache version <a href="/docs/blog/2019/11/23/release-0650">0.65.0</a>, the next release will be our first Apache release.</li>
-</ul>
-<h2><a class="anchor" aria-hidden="true" id="thanks"></a><a href="#thanks" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
-<p>We would like to thank Chris Dutz for his great support in doing the first steps in the Apache Incubator.</p>
-<p>We would also like to thank our employee, <a href="https://www.fzi.de/en">FZI Research Center for Information Technology</a>, for the continued great support - starting from giving us the opportunity to present StreamPipes at large fairs such as Hannover Messe, over media support such as creating the great StreamPipes logo, up to the fast legal support we received when we got accepted by the Apache Incubator.
-If you want to build cool stuff in a great applied research institute while pursuing a PhD at KIT, FZI is surely the best place to be ;-)</p>
-<p>Let's continue development and transform Apache StreamPipes (incubating) into the next Apache community!</p>
-</span></div></div><div class="blogSocialSection"></div></div><div class="blog-recent"><a class="button" href="/docs/blog">Recent Posts</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#the-streampipes-journey-so-far">The StreamPipes journey so far</a></li><li><a href="#moving-to-the-apache-incubator">Moving to the Apache Incubator</a></li><li><a href="#new-project-setup">New project setup</a></li><li><a href="#thanks">Thanks</a></li></ul></nav></div><div [...]
-                document.addEventListener('keyup', function(e) {
-                  if (e.target !== document.body) {
-                    return;
-                  }
-                  // keyCode for '/' (slash)
-                  if (e.keyCode === 191) {
-                    const search = document.getElementById('search_input_react');
-                    search && search.focus();
-                  }
-                });
-              </script><script>
-              var search = docsearch({
-                
-                apiKey: '0fedc89dddf2810657708b178e56ef02',
-                indexName: 'streampipes',
-                inputSelector: '#search_input_react',
-                algoliaOptions: {}
-              });
-            </script></body></html>
\ No newline at end of file
diff --git a/docs/blog/2020/01/23/streampipes_on_rpi.html b/docs/blog/2020/01/23/streampipes_on_rpi.html
index 3dbf9bf..c6fbc88 100644
--- a/docs/blog/2020/01/23/streampipes_on_rpi.html
+++ b/docs/blog/2020/01/23/streampipes_on_rpi.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>StreamPi(pes) - Running StreamPipes on Raspberry Pi · Apache StreamPipes</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;img class=&quot;blog-image&quot; style=&quot;max-width:100%;&quot; src=&quot;/docs/blog/assets/2020-01-23/streampipes_raspberrypi.png&quot; alt=&quot;Stream [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>StreamPi(pes) - Running StreamPipes on Raspberry Pi · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;img class=&quot;blog-image&quot; style=&quot;max-width:100%;&quot; src=&quot;/docs/blog/assets/2020-01-23/streampipes_raspberrypi.png&quo [...]
               window.dataLayer = window.dataLayer || [];
               function gtag(){dataLayer.push(arguments); }
               gtag('js', new Date());
@@ -9,7 +9,7 @@
             {"zIndex":100}
           )
         });
-        </script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions"><h3>0.67.0</h3></a><div class="navigationWrapper navigationSlider"><na [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.67.0</h3></a>< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -37,10 +37,16 @@
               createToggler('#navToggler', '#docsNav', 'docsSliderActive');
               createToggler('#tocToggler', 'body', 'tocActive');
 
-              const headings = document.querySelector('.toc-headings');
+              var headings = document.querySelector('.toc-headings');
               headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
                 }
               }, false);
 
@@ -59,7 +65,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer postContainer blogContainer"><div class="wrapper"><div class="lonePost"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle"><a href="/docs/blog/2020/01/23/streampipes_on_rpi">StreamPi(pes) - Running StreamPipes on Raspberry Pi</a></h1><p class="post-meta">January 23, 2020</p><div class="authorBlock"><p class="post-authorName"><a href="https://twitter.com/patrickwiener" target="_blank" rel="noreferrer no [...]
+        </script></nav></div><div class="container mainContainer postContainer blogContainer"><div class="wrapper"><div class="lonePost"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle"><a href="/docs/blog/2020/01/23/streampipes_on_rpi.html">StreamPi(pes) - Running StreamPipes on Raspberry Pi</a></h1><p class="post-meta">January 23, 2020</p><div class="authorBlock"><p class="post-authorName"><a href="https://twitter.com/patrickwiener" target="_blank" rel="noreferr [...]
 <strong><div style="float: left; padding-right: 40px;">5 minutes to read</div></strong>
 <br></p>
 <p>This is the start of a two part series on how we want to bring StreamPipes closer to the edge. The <a href="/docs/blog/2020/01/23/streampipes_on_rpi">first part</a> describes how we managed to build and deploy StreamPipes on one Raspberry Pi (Model 4), while the <a href="/docs/blog/2020/05/27/streampipes_on_k3s">second part</a> further covers how to deploy StreamPipes over a Kubernetes cluster of two Raspberry Pi's via K3s using our StreamPipes helm chart.</p>
@@ -83,7 +89,7 @@
 <p><img class="blog-image" style="max-width:100%;" src="/docs/blog/assets/2020-01-23/03_pipeline.png" alt="Simple pipeline visualizing and notifying about temperature values above threshold (here 65°C)"></p>
 <p>After saving and starting the pipeline, we built our dashboard based on the results of the pipeline, only showing values above 65°C. Additionally, we receive a notification for every event, that exceeds this temperature threshold.</p>
 <p><img class="blog-image" style="max-width:100%;" src="/docs/blog/assets/2020-01-23/04_dashboard.png" alt="Dashboard"></p>
-<h3><a class="anchor" aria-hidden="true" id="so-what-s-next"></a><a href="#so-what-s-next" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
+<h3><a class="anchor" aria-hidden="true" id="so-whats-next"></a><a href="#so-whats-next" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
 <p>Starting out as a simple hack session on a late afternoon, trying to test where we could potentially run StreamPipes on and push it to it's limits, we gained valueable insights on how to build and run it on various architectures. Even though we do not recommend deploying StreamPipes in it's full glory on single low-resourced devices such as Raspberry Pi's, we aim to bring certain algorithms closer to where data is generated - on the edge. Consequently - apart from x86 images - we plan [...]
 <ul>
 <li><strong><a href="/docs/blog/2020/01/23/streampipes_on_rpi">Part 1: StreamPi(pes) - Running StreamPipes on Raspberry Pi</a></strong></li>
@@ -95,7 +101,7 @@
 <li>[2] <a href="https://ownyourbits.com/2018/06/27/running-and-building-arm-docker-containers-in-x86/">Running and Building ARM Docker containers in x86</a></li>
 <li>[3] <a href="https://k3s.io/">K3s - lightweight Kubernetes distro</a></li>
 </ul>
-</span></div></div><div class="blogSocialSection"></div></div><div class="blog-recent"><a class="button" href="/docs/blog">Recent Posts</a></div></div></div><nav class="onPageNav"></nav></div><div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/docs/" class="nav-home"><img src="/docs/img/sp-logo-color.png" alt="Apache StreamPipes" width="66"/></a><div><h5>Docs</h5><a href="/docs/docs/user-guide-introduction">User Guide</a><a href="/docs/docs/dev-guide-introducti [...]
+</span></div></div><div class="blogSocialSection"></div></div><div class="blog-recent"><a class="button" href="/docs/blog/">Recent Posts</a></div></div></div><nav class="onPageNav"></nav></div><div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/docs/" class="nav-home"><img src="/docs/img/sp-logo-color.png" alt="Apache StreamPipes" width="66"/></a><div><h5>Docs</h5><a href="/docs/docs/user-guide-introduction">User Guide</a><a href="/docs/docs/dev-guide-introduct [...]
                 document.addEventListener('keyup', function(e) {
                   if (e.target !== document.body) {
                     return;
diff --git a/docs/blog/2020/01/23/streampipes_on_rpi/index.html b/docs/blog/2020/01/23/streampipes_on_rpi/index.html
deleted file mode 100644
index 3dbf9bf..0000000
--- a/docs/blog/2020/01/23/streampipes_on_rpi/index.html
+++ /dev/null
@@ -1,117 +0,0 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>StreamPi(pes) - Running StreamPipes on Raspberry Pi · Apache StreamPipes</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;img class=&quot;blog-image&quot; style=&quot;max-width:100%;&quot; src=&quot;/docs/blog/assets/2020-01-23/streampipes_raspberrypi.png&quot; alt=&quot;Stream [...]
-              window.dataLayer = window.dataLayer || [];
-              function gtag(){dataLayer.push(arguments); }
-              gtag('js', new Date());
-              gtag('config', 'UA-154181944-1');
-            </script><link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons"/><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick.min.css"/><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick-theme.min.css"/><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto"/><link rel="stylesheet" href="/docs/css/admonition.css"/><link rel="stylesheet" href="/docs [...]
-        document.addEventListener('DOMContentLoaded', function() {
-          addBackToTop(
-            {"zIndex":100}
-          )
-        });
-        </script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions"><h3>0.67.0</h3></a><div class="navigationWrapper navigationSlider"><na [...]
-            var coll = document.getElementsByClassName('collapsible');
-            var checkActiveCategory = true;
-            for (var i = 0; i < coll.length; i++) {
-              var links = coll[i].nextElementSibling.getElementsByTagName('*');
-              if (checkActiveCategory){
-                for (var j = 0; j < links.length; j++) {
-                  if (links[j].classList.contains('navListItemActive')){
-                    coll[i].nextElementSibling.classList.toggle('hide');
-                    coll[i].childNodes[1].classList.toggle('rotate');
-                    checkActiveCategory = false;
-                    break;
-                  }
-                }
-              }
-
-              coll[i].addEventListener('click', function() {
-                var arrow = this.childNodes[1];
-                arrow.classList.toggle('rotate');
-                var content = this.nextElementSibling;
-                content.classList.toggle('hide');
-              });
-            }
-
-            document.addEventListener('DOMContentLoaded', function() {
-              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
-              createToggler('#tocToggler', 'body', 'tocActive');
-
-              const headings = document.querySelector('.toc-headings');
-              headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
-                }
-              }, false);
-
-              function createToggler(togglerSelector, targetSelector, className) {
-                var toggler = document.querySelector(togglerSelector);
-                var target = document.querySelector(targetSelector);
-
-                if (!toggler) {
-                  return;
-                }
-
-                toggler.onclick = function(event) {
-                  event.preventDefault();
-
-                  target.classList.toggle(className);
-                };
-              }
-            });
-        </script></nav></div><div class="container mainContainer postContainer blogContainer"><div class="wrapper"><div class="lonePost"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle"><a href="/docs/blog/2020/01/23/streampipes_on_rpi">StreamPi(pes) - Running StreamPipes on Raspberry Pi</a></h1><p class="post-meta">January 23, 2020</p><div class="authorBlock"><p class="post-authorName"><a href="https://twitter.com/patrickwiener" target="_blank" rel="noreferrer no [...]
-<strong><div style="float: left; padding-right: 40px;">5 minutes to read</div></strong>
-<br></p>
-<p>This is the start of a two part series on how we want to bring StreamPipes closer to the edge. The <a href="/docs/blog/2020/01/23/streampipes_on_rpi">first part</a> describes how we managed to build and deploy StreamPipes on one Raspberry Pi (Model 4), while the <a href="/docs/blog/2020/05/27/streampipes_on_k3s">second part</a> further covers how to deploy StreamPipes over a Kubernetes cluster of two Raspberry Pi's via K3s using our StreamPipes helm chart.</p>
-<!--truncate-->
-<p>&lt;TL;DR&gt;</p>
-<p><em>With new advancements that came in the last StreamPipes release, we managed to reduce the required resources (mainly memory) drastically. To this extent, we cross-compiled StreamPipes Docker images for ARM support and deployed our lite version on a Raspberry Pi (Model 4). We showcase, that it is feasible to run analytical pipelines with ease and operate StreamPipes at moderate load.</em></p>
-<p>Apache StreamPipes (incubating) is a self-service (Industrial) IoT toolbox to enable non-technical users to easily connect, analyze and explore IoT data streams. Users can leverage algorithms from an extensible toolbox to model their analytical pipelines. By building on a microservice architecture, StreamPipes components can be distributed in a cluster (e.g. Kubernetes)  as well as run on a single node for prototypical and development purposes using Docker. With the latest release of  [...]
-<p>When users model their analytical pipelines using the graphical pipeline editor, the corresponding pipeline element containers, hosting these algorithms, are invoked by a rest call from the backend to start a new thread with the corresponding algorithm. In typical edge use cases such as in the industrial internet of things (IIoT), it is oftentimes neither feasible nor necessary to simply send all raw data to the cloud to perform analytics. On the contrary, requirements often induce th [...]
-<p><img class="blog-image" align="center" style="max-width:80%;" src="/docs/blog/assets/2020-01-23/00_idea.png" alt="StreamPipes lite on Raspberry Pi"></p>
-<p>StreamPipes Docker images were only built for x86 based architectures. However, oftentimes edge devices such as Raspberry Pi's or Nvidia Jetson Nano's run ARM based 32 or 64bit architectures. Thus, we could not simply use our existing Docker images to deploy StreamPipes as is. Luckily, Docker offers solutions to cross-compile images. Together with Docker‘s experimental manifest feature, the deployment works like a charms [<a href="https://docs.docker.com/engine/reference/commandline/m [...]
-<p><img class="blog-image" style="max-width:100%;" src="/docs/blog/assets/2020-01-23/01_start.png" alt="StreamPipes CLI starting StreamPipes lite version on Raspberry Pi 4"></p>
-<p>The figure shows StreamPipes CLI starting our internal <code>0.65.1-SNAPSHOT</code> version, where we tested the multiarch build of our images. As depicted, all StreamPipes lite services are started. Due to the fact, that we created a manifest for all our Docker images, we did not have to change a single image description specified in the various <code>docker-compose.yml</code> files in the service repository. This is pretty cool! The Docker daemon automatically pulls the correct imag [...]
-<p><img class="blog-image" style="max-width:100%;" src="/docs/blog/assets/2020-01-23/02_htop.png" alt="htop showing around 1.7GB memory consumption"></p>
-<h3><a class="anchor" aria-hidden="true" id="demo-temperature-monitoring-pipeline"></a><a href="#demo-temperature-monitoring-pipeline" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 [...]
-<p>To test our setup, we deployed a simple temperature monitoring pipeline, that throws a notification whenever the temperature value exceeds a certain threshold (in this case: 65°C) and visualizes the results in a basic dashboard (see figure). Therefore, we use existing pipeline elements of the algorithm toolbox provided within the lite version. Thereby, StreamPipes lite already hooks you up with sample data sources - in this case a flow rate sensor - producing temperature, as well as m [...]
-<ul>
-<li><strong>Data source:</strong> Flow rate sensor (mock data generating <code>&lt;timestamp;sensorid;massflow;temperature&gt;</code> each second)</li>
-<li><strong>Data processor:</strong> Numerical filter (specified temperature threshold: &gt; 65°C)</li>
-<li><strong>Data sinks:</strong> Dashboard visualization, Notification (internal)</li>
-</ul>
-<p><img class="blog-image" style="max-width:100%;" src="/docs/blog/assets/2020-01-23/03_pipeline.png" alt="Simple pipeline visualizing and notifying about temperature values above threshold (here 65°C)"></p>
-<p>After saving and starting the pipeline, we built our dashboard based on the results of the pipeline, only showing values above 65°C. Additionally, we receive a notification for every event, that exceeds this temperature threshold.</p>
-<p><img class="blog-image" style="max-width:100%;" src="/docs/blog/assets/2020-01-23/04_dashboard.png" alt="Dashboard"></p>
-<h3><a class="anchor" aria-hidden="true" id="so-what-s-next"></a><a href="#so-what-s-next" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
-<p>Starting out as a simple hack session on a late afternoon, trying to test where we could potentially run StreamPipes on and push it to it's limits, we gained valueable insights on how to build and run it on various architectures. Even though we do not recommend deploying StreamPipes in it's full glory on single low-resourced devices such as Raspberry Pi's, we aim to bring certain algorithms closer to where data is generated - on the edge. Consequently - apart from x86 images - we plan [...]
-<ul>
-<li><strong><a href="/docs/blog/2020/01/23/streampipes_on_rpi">Part 1: StreamPi(pes) - Running StreamPipes on Raspberry Pi</a></strong></li>
-<li><a href="/docs/blog/2020/05/27/streampipes_on_k3s">Part 2: Running StreamPipes the Kubernetes-Way using K3s</a></li>
-</ul>
-<h3><a class="anchor" aria-hidden="true" id="useful-links"></a><a href="#useful-links" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
-<ul>
-<li>[1] <a href="https://docs.docker.com/engine/reference/commandline/manifest/">Docker manifest docs</a></li>
-<li>[2] <a href="https://ownyourbits.com/2018/06/27/running-and-building-arm-docker-containers-in-x86/">Running and Building ARM Docker containers in x86</a></li>
-<li>[3] <a href="https://k3s.io/">K3s - lightweight Kubernetes distro</a></li>
-</ul>
-</span></div></div><div class="blogSocialSection"></div></div><div class="blog-recent"><a class="button" href="/docs/blog">Recent Posts</a></div></div></div><nav class="onPageNav"></nav></div><div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/docs/" class="nav-home"><img src="/docs/img/sp-logo-color.png" alt="Apache StreamPipes" width="66"/></a><div><h5>Docs</h5><a href="/docs/docs/user-guide-introduction">User Guide</a><a href="/docs/docs/dev-guide-introducti [...]
-                document.addEventListener('keyup', function(e) {
-                  if (e.target !== document.body) {
-                    return;
-                  }
-                  // keyCode for '/' (slash)
-                  if (e.keyCode === 191) {
-                    const search = document.getElementById('search_input_react');
-                    search && search.focus();
-                  }
-                });
-              </script><script>
-              var search = docsearch({
-                
-                apiKey: '0fedc89dddf2810657708b178e56ef02',
-                indexName: 'streampipes',
-                inputSelector: '#search_input_react',
-                algoliaOptions: {}
-              });
-            </script></body></html>
\ No newline at end of file
diff --git a/docs/blog/2020/05/19/release-0660.html b/docs/blog/2020/05/19/release-0660.html
index be77931..8974203 100644
--- a/docs/blog/2020/05/19/release-0660.html
+++ b/docs/blog/2020/05/19/release-0660.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Apache StreamPipes release 0.66.0 · Apache StreamPipes</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="**&lt;div style=&quot;float: left; padding-right: 40px;&quot;&gt;6 minutes to read&lt;/div&gt;**"/><meta name="docsearch:language" content="en"/><meta property="og:title" content [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Apache StreamPipes release 0.66.0 · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="**&lt;div style=&quot;float: left; padding-right: 40px;&quot;&gt;6 minutes to read&lt;/div&gt;**"/><meta name="docsearch:language" content="en"/><meta property [...]
               window.dataLayer = window.dataLayer || [];
               function gtag(){dataLayer.push(arguments); }
               gtag('js', new Date());
@@ -9,7 +9,7 @@
             {"zIndex":100}
           )
         });
-        </script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions"><h3>0.67.0</h3></a><div class="navigationWrapper navigationSlider"><na [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.67.0</h3></a>< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -37,10 +37,16 @@
               createToggler('#navToggler', '#docsNav', 'docsSliderActive');
               createToggler('#tocToggler', 'body', 'tocActive');
 
-              const headings = document.querySelector('.toc-headings');
+              var headings = document.querySelector('.toc-headings');
               headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
                 }
               }, false);
 
@@ -59,7 +65,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer postContainer blogContainer"><div class="wrapper"><div class="lonePost"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle"><a href="/docs/blog/2020/05/19/release-0660">Apache StreamPipes release 0.66.0</a></h1><p class="post-meta">May 19, 2020</p><div class="authorBlock"><p class="post-authorName"><a href="https://twitter.com/dominikjriemer" target="_blank" rel="noreferrer noopener">Dominik Riemer</a>< [...]
+        </script></nav></div><div class="container mainContainer postContainer blogContainer"><div class="wrapper"><div class="lonePost"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle"><a href="/docs/blog/2020/05/19/release-0660.html">Apache StreamPipes release 0.66.0</a></h1><p class="post-meta">May 19, 2020</p><div class="authorBlock"><p class="post-authorName"><a href="https://twitter.com/dominikjriemer" target="_blank" rel="noreferrer noopener">Dominik Riemer [...]
 <br></p>
 <p>The Apache StreamPipes (incubating) community is proud to announce Apache StreamPipes version 0.66.0! This release is our first official Apache release and brings some very cool features and improvements the community has worked on over the past months.</p>
 <!--truncate-->
@@ -95,7 +101,7 @@ Once the editor has been migrated as well (which is currently targeted for the u
 <li>processors-text-mining includes several processors relevant for text mining (e.g., chunking, language detection)</li>
 <li>New adapters for NETIO power sockets, and several new sinks (e.g., MQTT and Eclipse Ditto)</li>
 </ul>
-<h2><a class="anchor" aria-hidden="true" id="installation-deployment"></a><a href="#installation-deployment" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 [...]
+<h2><a class="anchor" aria-hidden="true" id="installation--deployment"></a><a href="#installation--deployment" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-. [...]
 <p>The community also improved the installation process. Now, the installer offered for download includes all three supported deployment options and tools:</p>
 <ul>
 <li>The installer, targeted at users, with installation scripts for Linux, MacOS and Windows</li>
@@ -114,7 +120,7 @@ Once the editor has been migrated as well (which is currently targeted for the u
 <h2><a class="anchor" aria-hidden="true" id="feedback"></a><a href="#feedback" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
 <p>We are absolutely open to your suggestions for further improvements! Let us know (by <a href="mailto:users@streampipes.apache.org">mail</a> or <a href="https://www.twitter.com/streampipes">twitter</a>) and we'll consider your feature request in the next release!</p>
 <p>And do not forget to subscribe to our new mailing lists: <a href="https://streampipes.apache.org/mailinglists.html">https://streampipes.apache.org/mailinglists.html</a></p>
-</span></div></div><div class="blogSocialSection"></div></div><div class="blog-recent"><a class="button" href="/docs/blog">Recent Posts</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#user-interface">User interface</a></li><li><a href="#apache-streampipes-extensions">Apache StreamPipes Extensions</a></li><li><a href="#installation-deployment">Installation &amp; Deployment</a></li><li><a href="#other-features-and-improvements">Other features and improvem [...]
+</span></div></div><div class="blogSocialSection"></div></div><div class="blog-recent"><a class="button" href="/docs/blog/">Recent Posts</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#user-interface">User interface</a></li><li><a href="#apache-streampipes-extensions">Apache StreamPipes Extensions</a></li><li><a href="#installation--deployment">Installation &amp; Deployment</a></li><li><a href="#other-features-and-improvements">Other features and improv [...]
                 document.addEventListener('keyup', function(e) {
                   if (e.target !== document.body) {
                     return;
diff --git a/docs/blog/2020/05/19/release-0660/index.html b/docs/blog/2020/05/19/release-0660/index.html
deleted file mode 100644
index be77931..0000000
--- a/docs/blog/2020/05/19/release-0660/index.html
+++ /dev/null
@@ -1,136 +0,0 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Apache StreamPipes release 0.66.0 · Apache StreamPipes</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="**&lt;div style=&quot;float: left; padding-right: 40px;&quot;&gt;6 minutes to read&lt;/div&gt;**"/><meta name="docsearch:language" content="en"/><meta property="og:title" content [...]
-              window.dataLayer = window.dataLayer || [];
-              function gtag(){dataLayer.push(arguments); }
-              gtag('js', new Date());
-              gtag('config', 'UA-154181944-1');
-            </script><link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons"/><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick.min.css"/><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick-theme.min.css"/><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto"/><link rel="stylesheet" href="/docs/css/admonition.css"/><link rel="stylesheet" href="/docs [...]
-        document.addEventListener('DOMContentLoaded', function() {
-          addBackToTop(
-            {"zIndex":100}
-          )
-        });
-        </script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions"><h3>0.67.0</h3></a><div class="navigationWrapper navigationSlider"><na [...]
-            var coll = document.getElementsByClassName('collapsible');
-            var checkActiveCategory = true;
-            for (var i = 0; i < coll.length; i++) {
-              var links = coll[i].nextElementSibling.getElementsByTagName('*');
-              if (checkActiveCategory){
-                for (var j = 0; j < links.length; j++) {
-                  if (links[j].classList.contains('navListItemActive')){
-                    coll[i].nextElementSibling.classList.toggle('hide');
-                    coll[i].childNodes[1].classList.toggle('rotate');
-                    checkActiveCategory = false;
-                    break;
-                  }
-                }
-              }
-
-              coll[i].addEventListener('click', function() {
-                var arrow = this.childNodes[1];
-                arrow.classList.toggle('rotate');
-                var content = this.nextElementSibling;
-                content.classList.toggle('hide');
-              });
-            }
-
-            document.addEventListener('DOMContentLoaded', function() {
-              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
-              createToggler('#tocToggler', 'body', 'tocActive');
-
-              const headings = document.querySelector('.toc-headings');
-              headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
-                }
-              }, false);
-
-              function createToggler(togglerSelector, targetSelector, className) {
-                var toggler = document.querySelector(togglerSelector);
-                var target = document.querySelector(targetSelector);
-
-                if (!toggler) {
-                  return;
-                }
-
-                toggler.onclick = function(event) {
-                  event.preventDefault();
-
-                  target.classList.toggle(className);
-                };
-              }
-            });
-        </script></nav></div><div class="container mainContainer postContainer blogContainer"><div class="wrapper"><div class="lonePost"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle"><a href="/docs/blog/2020/05/19/release-0660">Apache StreamPipes release 0.66.0</a></h1><p class="post-meta">May 19, 2020</p><div class="authorBlock"><p class="post-authorName"><a href="https://twitter.com/dominikjriemer" target="_blank" rel="noreferrer noopener">Dominik Riemer</a>< [...]
-<br></p>
-<p>The Apache StreamPipes (incubating) community is proud to announce Apache StreamPipes version 0.66.0! This release is our first official Apache release and brings some very cool features and improvements the community has worked on over the past months.</p>
-<!--truncate-->
-<p>The latest release brings major improvements to the live dashboard, the notification system, multiple new pipeline elements and StreamPipes Connect adapters, a simplified installation, more deployment options and a variety of bug fixes and minor improvements.
-The current release can be downloaded <a href="https://streampipes.apache.org/download.html">here</a>.</p>
-<h2><a class="anchor" aria-hidden="true" id="user-interface"></a><a href="#user-interface" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
-<p>This release introduces a completely redesigned live dashboard. The old dashboard had some issues, most importantly, widgets could not be freely moved on the dashboard panel and the layout of dashboard widget was not persisted.
-With the new dashboard, users are able to customize and layout widgets in a much easier and more powerful way. The dashboard brings the following improvements:</p>
-<ul>
-<li>Multiple dashboards can be created and viewed</li>
-<li>Widgets can be flexibly resized on a grid</li>
-<li>More configuration options for widgets, e.g., change the color and appearance of widgets.</li>
-<li>A presentation mode allows to display a live dashboard without the navigation bars.</li>
-</ul>
-<p>The new dashboard has full feature parity with the old dashboard in terms of available widgets. The new architecture allows us to integrate even more visualizations with less effort in the upcoming versions.</p>
-<div class="my-carousel">
-<img class="blog-image" style="max-width:100%;" src="/docs/blog/assets/2020-05-19/dashboard-02.png" alt="New dashboard">
-<img class="blog-image" style="max-width:100%;" src="/docs/blog/assets/2020-05-19/dashboard-01.png" alt="New dashboard">
-</div>
-<p>In addition, the notification system has been significantly improved. The new notification view now offers a chat-like interface which allows you to select notifications per pipeline. The history of notifications is fully available and can be opened by scrolling to the top - similar to the behaviour of popular messaging services:</p>
-<div class="my-carousel">
-<img class="blog-image" style="max-width:100%;" src="/docs/blog/assets/2020-05-19/notification-01.png" alt="New dashboard">
-<img class="blog-image" style="max-width:100%;" src="/docs/blog/assets/2020-05-19/notification-02.png" alt="New dashboard">
-</div> 
-<p>A technical note:
-Both features are part of our current effort to gradually migrate AngularJS components to Angular 9 (2+), now leaving the pipeline editor the only component that is still implemented in AngularJS.
-Once the editor has been migrated as well (which is currently targeted for the upcoming release 0.67.0), we'll be able to release global UI features (e.g., better user management) in a much faster way.</p>
-<h2><a class="anchor" aria-hidden="true" id="apache-streampipes-extensions"></a><a href="#apache-streampipes-extensions" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12  [...]
-<p>We also added several new adapters to connect data sources and pipeline elements:</p>
-<ul>
-<li>We added several new processors for handling boolean values, which are targeted towards better processing of PLC data.</li>
-<li>processors-geo-jvm includes more processors for geo operations, e.g., distance calculation, speed calculation and more.</li>
-<li>processors-text-mining includes several processors relevant for text mining (e.g., chunking, language detection)</li>
-<li>New adapters for NETIO power sockets, and several new sinks (e.g., MQTT and Eclipse Ditto)</li>
-</ul>
-<h2><a class="anchor" aria-hidden="true" id="installation-deployment"></a><a href="#installation-deployment" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 [...]
-<p>The community also improved the installation process. Now, the installer offered for download includes all three supported deployment options and tools:</p>
-<ul>
-<li>The installer, targeted at users, with installation scripts for Linux, MacOS and Windows</li>
-<li>The CLI, targeted at developers, for configurable deployment of individual services</li>
-<li>Helm charts for Kubernetes</li>
-</ul>
-<p>A very cool new feature are Docker images for ARM, which allow to run StreamPipes on a Raspberry Pi. This will be part of an upcoming blog post on running Apache StreamPipes at the edge.</p>
-<p>From now on, users are no longer required to enter the server IP upon startup, which should further reduce errors at installation time.</p>
-<h2><a class="anchor" aria-hidden="true" id="other-features-and-improvements"></a><a href="#other-features-and-improvements" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 [...]
-<ul>
-<li>Connect adapters expose their own icons and documentation.</li>
-<li>The UI has been upgraded to Angular 9 and the build has more optimizations enabled, leading to significant performance gains.</li>
-<li>Pipelines are now auto-saved, so that you can resume building your pipeline after refreshing the browser.</li>
-</ul>
-<p>See the <a href="https://issues.apache.org/jira/projects/STREAMPIPES/versions/12347025">release notes</a> for a complete list of new features and improvements.</p>
-<h2><a class="anchor" aria-hidden="true" id="feedback"></a><a href="#feedback" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>We are absolutely open to your suggestions for further improvements! Let us know (by <a href="mailto:users@streampipes.apache.org">mail</a> or <a href="https://www.twitter.com/streampipes">twitter</a>) and we'll consider your feature request in the next release!</p>
-<p>And do not forget to subscribe to our new mailing lists: <a href="https://streampipes.apache.org/mailinglists.html">https://streampipes.apache.org/mailinglists.html</a></p>
-</span></div></div><div class="blogSocialSection"></div></div><div class="blog-recent"><a class="button" href="/docs/blog">Recent Posts</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#user-interface">User interface</a></li><li><a href="#apache-streampipes-extensions">Apache StreamPipes Extensions</a></li><li><a href="#installation-deployment">Installation &amp; Deployment</a></li><li><a href="#other-features-and-improvements">Other features and improvem [...]
-                document.addEventListener('keyup', function(e) {
-                  if (e.target !== document.body) {
-                    return;
-                  }
-                  // keyCode for '/' (slash)
-                  if (e.keyCode === 191) {
-                    const search = document.getElementById('search_input_react');
-                    search && search.focus();
-                  }
-                });
-              </script><script>
-              var search = docsearch({
-                
-                apiKey: '0fedc89dddf2810657708b178e56ef02',
-                indexName: 'streampipes',
-                inputSelector: '#search_input_react',
-                algoliaOptions: {}
-              });
-            </script></body></html>
\ No newline at end of file
diff --git a/docs/blog/2020/05/27/streampipes_on_k3s.html b/docs/blog/2020/05/27/streampipes_on_k3s.html
index 0604bee..3ee8584 100644
--- a/docs/blog/2020/05/27/streampipes_on_k3s.html
+++ b/docs/blog/2020/05/27/streampipes_on_k3s.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Running StreamPipes the Kubernetes-Way using k3s · Apache StreamPipes</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;img class=&quot;blog-image&quot; style=&quot;max-width:100%;&quot; src=&quot;/docs/blog/assets/2020-05-27/streampipes_k3s.png&quot; alt=&quot;StreamPipes on k3 [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Running StreamPipes the Kubernetes-Way using k3s · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;img class=&quot;blog-image&quot; style=&quot;max-width:100%;&quot; src=&quot;/docs/blog/assets/2020-05-27/streampipes_k3s.png&quot; alt=&quo [...]
               window.dataLayer = window.dataLayer || [];
               function gtag(){dataLayer.push(arguments); }
               gtag('js', new Date());
@@ -9,7 +9,7 @@
             {"zIndex":100}
           )
         });
-        </script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions"><h3>0.67.0</h3></a><div class="navigationWrapper navigationSlider"><na [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.67.0</h3></a>< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -37,10 +37,16 @@
               createToggler('#navToggler', '#docsNav', 'docsSliderActive');
               createToggler('#tocToggler', 'body', 'tocActive');
 
-              const headings = document.querySelector('.toc-headings');
+              var headings = document.querySelector('.toc-headings');
               headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
                 }
               }, false);
 
@@ -59,7 +65,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer postContainer blogContainer"><div class="wrapper"><div class="lonePost"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle"><a href="/docs/blog/2020/05/27/streampipes_on_k3s">Running StreamPipes the Kubernetes-Way using k3s</a></h1><p class="post-meta">May 27, 2020</p><div class="authorBlock"><p class="post-authorName"><a href="https://twitter.com/patrickwiener" target="_blank" rel="noreferrer noopener" [...]
+        </script></nav></div><div class="container mainContainer postContainer blogContainer"><div class="wrapper"><div class="lonePost"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle"><a href="/docs/blog/2020/05/27/streampipes_on_k3s.html">Running StreamPipes the Kubernetes-Way using k3s</a></h1><p class="post-meta">May 27, 2020</p><div class="authorBlock"><p class="post-authorName"><a href="https://twitter.com/patrickwiener" target="_blank" rel="noreferrer noop [...]
 <strong><div style="float: left; padding-right: 40px;">15 minutes to read</div></strong>
 <br></p>
 <p>This blog post is the second part of a series on how we want to bring StreamPipes closer to the edge. The <a href="/docs/blog/2020/01/23/streampipes_on_rpi">first part</a> describes how we managed to build and deploy StreamPipes on one Raspberry Pi (Model 4), while the <a href="/docs/blog/2020/05/27/streampipes_on_k3s">second part</a> further covers how to deploy StreamPipes over a Kubernetes cluster of two Raspberry Pi's via k3s using our StreamPipes helm chart.</p>
@@ -225,7 +231,7 @@ nginx-5d4498d4f5-fcccq                         Running   streampi-02
 </code></pre>
 <p>That means, you can go and check the StreamPipes UI either on <code>http://streampi-01/</code> or <code>http://streampi-02/</code> - K8s service handles the routing to the nginx pod containing the UI - just to name one nice feature.</p>
 <p><img class="blog-image" style="max-width:100%;" src="/docs/blog/assets/2020-05-27/streampi_installation.png" alt="Installation"></p>
-<h2><a class="anchor" aria-hidden="true" id="sum-up-where-to-go-from-here"></a><a href="#sum-up-where-to-go-from-here" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 [...]
+<h2><a class="anchor" aria-hidden="true" id="sum-up--where-to-go-from-here"></a><a href="#sum-up--where-to-go-from-here" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12  [...]
 <p>Starting out as a simple hack session on a late afternoon, we build multi-archicture StreamPipes Docker images and deployed them on a Raspberry Pi in the first part of the series. Though, this is was feasible StreamPipes architectural microservice design provides a natural fit for a distributed cluster deployment. To this extent, we provide a StreamPipes Helm chart that lets you easily deploy StreamPipes in a one-liner in a Kubernetes cluster as showcased using a testbed of two Raspbe [...]
 <p>As of now, we let K8s handle the scheduling of containers for us in a random fashion. From here, we can further explore K8s feature such as <code>nodeSelector</code> or <code>nodeAffinity</code> that helps you use labels (<code>key=value</code> pairs) for pod to node assignment.</p>
 <p><img class="blog-image" style="max-width:60%;" src="/docs/blog/assets/2020-05-27/helm_k3s.png" alt="HelmK3s"></p>
@@ -239,7 +245,7 @@ nginx-5d4498d4f5-fcccq                         Running   streampi-02
 <li>[2] <a href="https://helm.sh/">Helm - the package manager for Kubernetes</a></li>
 <li>[3] <a href="https://github.com/apache/incubator-streampipes-installer/tree/dev/helm-chart">Github: StreamPipes Helm chart</a></li>
 </ul>
-</span></div></div><div class="blogSocialSection"></div></div><div class="blog-recent"><a class="button" href="/docs/blog">Recent Posts</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#introduction">Introduction</a></li><li><a href="#well-which-k-to-use-kubernetes-k3s">Well, which K to use? Kubernetes, K3s</a></li><li><a href="#streampipes-helm-chart">StreamPipes Helm Chart</a></li><li><a href="#the-almighty-streampi-k3s-cluster">The almighty StreamPi K3 [...]
+</span></div></div><div class="blogSocialSection"></div></div><div class="blog-recent"><a class="button" href="/docs/blog/">Recent Posts</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#introduction">Introduction</a></li><li><a href="#well-which-k-to-use-kubernetes-k3s">Well, which K to use? Kubernetes, K3s</a></li><li><a href="#streampipes-helm-chart">StreamPipes Helm Chart</a></li><li><a href="#the-almighty-streampi-k3s-cluster">The almighty StreamPi K [...]
                 document.addEventListener('keyup', function(e) {
                   if (e.target !== document.body) {
                     return;
diff --git a/docs/blog/2020/05/27/streampipes_on_k3s/index.html b/docs/blog/2020/05/27/streampipes_on_k3s/index.html
deleted file mode 100644
index 0604bee..0000000
--- a/docs/blog/2020/05/27/streampipes_on_k3s/index.html
+++ /dev/null
@@ -1,261 +0,0 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Running StreamPipes the Kubernetes-Way using k3s · Apache StreamPipes</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;img class=&quot;blog-image&quot; style=&quot;max-width:100%;&quot; src=&quot;/docs/blog/assets/2020-05-27/streampipes_k3s.png&quot; alt=&quot;StreamPipes on k3 [...]
-              window.dataLayer = window.dataLayer || [];
-              function gtag(){dataLayer.push(arguments); }
-              gtag('js', new Date());
-              gtag('config', 'UA-154181944-1');
-            </script><link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons"/><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick.min.css"/><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick-theme.min.css"/><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto"/><link rel="stylesheet" href="/docs/css/admonition.css"/><link rel="stylesheet" href="/docs [...]
-        document.addEventListener('DOMContentLoaded', function() {
-          addBackToTop(
-            {"zIndex":100}
-          )
-        });
-        </script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions"><h3>0.67.0</h3></a><div class="navigationWrapper navigationSlider"><na [...]
-            var coll = document.getElementsByClassName('collapsible');
-            var checkActiveCategory = true;
-            for (var i = 0; i < coll.length; i++) {
-              var links = coll[i].nextElementSibling.getElementsByTagName('*');
-              if (checkActiveCategory){
-                for (var j = 0; j < links.length; j++) {
-                  if (links[j].classList.contains('navListItemActive')){
-                    coll[i].nextElementSibling.classList.toggle('hide');
-                    coll[i].childNodes[1].classList.toggle('rotate');
-                    checkActiveCategory = false;
-                    break;
-                  }
-                }
-              }
-
-              coll[i].addEventListener('click', function() {
-                var arrow = this.childNodes[1];
-                arrow.classList.toggle('rotate');
-                var content = this.nextElementSibling;
-                content.classList.toggle('hide');
-              });
-            }
-
-            document.addEventListener('DOMContentLoaded', function() {
-              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
-              createToggler('#tocToggler', 'body', 'tocActive');
-
-              const headings = document.querySelector('.toc-headings');
-              headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
-                }
-              }, false);
-
-              function createToggler(togglerSelector, targetSelector, className) {
-                var toggler = document.querySelector(togglerSelector);
-                var target = document.querySelector(targetSelector);
-
-                if (!toggler) {
-                  return;
-                }
-
-                toggler.onclick = function(event) {
-                  event.preventDefault();
-
-                  target.classList.toggle(className);
-                };
-              }
-            });
-        </script></nav></div><div class="container mainContainer postContainer blogContainer"><div class="wrapper"><div class="lonePost"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle"><a href="/docs/blog/2020/05/27/streampipes_on_k3s">Running StreamPipes the Kubernetes-Way using k3s</a></h1><p class="post-meta">May 27, 2020</p><div class="authorBlock"><p class="post-authorName"><a href="https://twitter.com/patrickwiener" target="_blank" rel="noreferrer noopener" [...]
-<strong><div style="float: left; padding-right: 40px;">15 minutes to read</div></strong>
-<br></p>
-<p>This blog post is the second part of a series on how we want to bring StreamPipes closer to the edge. The <a href="/docs/blog/2020/01/23/streampipes_on_rpi">first part</a> describes how we managed to build and deploy StreamPipes on one Raspberry Pi (Model 4), while the <a href="/docs/blog/2020/05/27/streampipes_on_k3s">second part</a> further covers how to deploy StreamPipes over a Kubernetes cluster of two Raspberry Pi's via k3s using our StreamPipes helm chart.</p>
-<!--truncate-->
-<p><strong>&lt;TL;DR&gt;</strong></p>
-<p><strong>With new advancements that came in the last StreamPipes release, we managed to reduce the required resources (mainly memory) drastically. To this extent, we cross-compiled StreamPipes Docker images for ARM support and deployed our lite version on a Raspberry Pi (Model 4). We showcase, that it is feasible to run analytical pipelines with ease and operate StreamPipes at moderate load. Additionally, we demonstrate how to deploy StreamPipes over a two-node k3s cluster using our St [...]
-<p><img class="blog-image" style="max-width:80%;" src="/docs/blog/assets/2020-05-27/k3s.png" alt="K3s"></p>
-<h2><a class="anchor" aria-hidden="true" id="introduction"></a><a href="#introduction" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
-<p>While it is easy to get started with StreamPipes in no time using our single-node deployment <a href="/docs/docs/user-guide-installation">instructions</a> using Docker and Docker-Compose, StreamPipes naturally is designed to run in a distributed cluster setup through its microservice architecture.</p>
-<p>This architectural design paired with the advancements of multi-architecture StreamPipes images as described in the previous blog post allows us to run certain analytical pipeline element containers with ease on various target nodes as well as target hardware architecture wether it is X86, ARM32v7, or ARM64v8. This becomes more valuable, as we shift the focus away from centralized cloud or data center only deployments where we generally are provided with a homogenous compute landscape [...]
-<p>Thereby, having multi-architecture images in your repertoire is key to deal with the challenge of heterogeneity in compute resources along the edge-cloud continuum. However, there are other challenges that occur when dealing with distributed container deployments such as automating deployments itself, scaling them, managing the containerized applications, taking care of networking between services, or realizing fault-tolerance by comparing the desired state against the current one. If [...]
-<h2><a class="anchor" aria-hidden="true" id="well-which-k-to-use-kubernetes-k3s"></a><a href="#well-which-k-to-use-kubernetes-k3s" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5 [...]
-<p>Fortunately, there exists a few solutions in the container ecosystem with the open source container orchestrator <a href="https://kubernetes.io">Kubernetes</a> (K8s) being the defacto standard, thereby incorporating the best ideas of Google's internal large-scale container cluster management system <a href="https://kubernetes.io/blog/2015/04/borg-predecessor-to-kubernetes/">Borg</a> (see academic paper about the details published at <a href="https://research.google/pubs/pub43438/">Eur [...]
-<p>On the other hand, there exists <a href="https://k3s.io/">K3s</a>, a lightweight Kubernetes distro by Rancher that was introduced early 2019 and has since then gained huge popularity. As it is stated on their website:</p>
-<ul>
-<li><strong>Perfect for Edge</strong>: <em>K3s is a highly available, certified Kubernetes distribution designed for production workloads in unattended, resource-constrained, remote locations or inside IoT appliances</em></li>
-<li><strong>Simplified &amp; Secure</strong>: <em>K3s is packaged as a single &lt;40MB binary that reduces the dependencies and steps needed to install, run and auto-update a production Kubernetes cluster.</em></li>
-<li><strong>Optimized for ARM</strong>: <em>Both ARM64 and ARMv7 are supported with binaries and multiarch images available for both. K3s works great from something as small as a Raspberry Pi to an AWS a1.4xlarge 32GiB server.</em></li>
-</ul>
-<p>Thus, this lead us to the point to say, hey why not use K3s to manage StreamPipes in all its glory. The containerized microservice design in addition to the newly available multiarch images are a great fit.</p>
-<h2><a class="anchor" aria-hidden="true" id="streampipes-helm-chart"></a><a href="#streampipes-helm-chart" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0 [...]
-<p>While you can easily write an deploy K8s YAML-based manifests for your deployments and services and so on the standard way, it is way more convenient to leverage  <a href="https://helm.sh/">Helm</a>, the package manager for K8s. Helm describes complex, distributed deployments using <strong>charts</strong> in order to provide repeatable application installation, easy updates, rollbacks etc.</p>
-<p>To this extent, we wrote a Helm chart for StreamPipes that can be found on our Github <a href="https://github.com/apache/incubator-streampipes-installer/tree/dev/helm-chart">incubator-streampipes-installer</a> repository. This allows to deploy StreamPipes as one liner as shown later. Helm charts follow a certain directory structure as depicted in the following:</p>
-<pre><code class="hljs">helm-chart/
-  <span class="hljs-module-access"><span class="hljs-module"><span class="hljs-identifier">Chart</span>.</span></span>yaml
-  values.yaml
-  templates/<span class="hljs-operator">
-  ...
-</span></code></pre>
-<p>The <code>Chart.yaml</code> file contains a description of the chart, e.g., metadata such as chart name, version, maintainers etc.</p>
-<p>The <code>values.yaml</code> file contains default values for all charts and in our case serves the purpose to provide a central place to store all variable/values, e.g., <code>streampipes.registry: &quot;apachestreampipes&quot;</code>, that replace chart templates such as the registry and version of the StreamPipes backend image:</p>
-<pre><code class="hljs css language-yaml"><span class="hljs-string">...</span>
-<span class="hljs-attr">image:</span> <span class="hljs-string">{{</span> <span class="hljs-string">.Values.streampipes.registry</span> <span class="hljs-string">}}/backend:{{</span> <span class="hljs-string">.Values.streampipes.version</span> <span class="hljs-string">}}</span>
-<span class="hljs-string">...</span>
-</code></pre>
-<p>Lastly, the <code>template/</code> directory is for template files. When Helm evaluates a chart, it sends all of the files in this directory through the template rendering engine before collecting the results and finally forwarding them to K8s. If interested, you can read more on this in the <a href="https://helm.sh/docs/">official Helm documentation</a>.</p>
-<h2><a class="anchor" aria-hidden="true" id="the-almighty-streampi-k3s-cluster"></a><a href="#the-almighty-streampi-k3s-cluster" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S1 [...]
-<p>As pointed out in the first part of the series, we have gained valueable insights on how to run and deploy StreamPipes on a Raspberry Pi. This worked out so greatly, that we thought, why not step up the game, use another Pi and built the <strong>almighty StreamPi cluster</strong> by leveraging K3s for orchestration and management.</p>
-<p><strong>Note</strong>: We are aware that this is far off from a production-grade setup, especially running StreamPipes core services such as the central pipeline management backend, or the UI in a two-node cluster. However, it provides a solid starting point for more elaborate deployments along the edge-cloud continuum.</p>
-<p>As shown in the following figure, starting from the multiarch images hosted on <a href="https://hub.docker.com/search?q=apachestreampipes&amp;type=image">Dockerhub</a>, we first provisioned the two Pi's with Docker, install and setup K3s and finally deploy our StreamPipes helm chart in order for users to connect, analyze and exploit their IIoT data with StreamPipes.</p>
-<p><img class="blog-image" style="max-width:100%;" src="/docs/blog/assets/2020-05-27/deployment.png" alt="Deployment"></p>
-<p>In the remainder, we cover how we installed Helm and K3s to form our almighty StreamPi K3s cluster. At the time of writing, we tested our deployment using the latest version of the Docker, Helm as well as K3s in the following setup</p>
-<ul>
-<li>2x Raspberry Pi Model 4 (4GiB RAM): <code>streampi-01</code>, <code>streampi-02</code></li>
-<li>Raspbian Buster 10</li>
-<li>Docker 19.03.8</li>
-<li>Helm 3.1.2</li>
-<li>K3s v1.17.4+k3s1</li>
-</ul>
-<h3><a class="anchor" aria-hidden="true" id="1-install-docker"></a><a href="#1-install-docker" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
-<p>SSH into your Raspberry Pi's and run the following command:</p>
-<pre><code class="hljs css language-bash">curl -sSL https://get.docker.com | sh
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="2-install-k3s"></a><a href="#2-install-k3s" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
-<p>Now that we got Helm installed, we can proceed and install K3s. Thus, we must check wether we fulfill all the requirements. These are mainly network related, such that specific ports (server on <code>6443</code>) are accessible. You should carefully read about this in their <a href="https://rancher.com/docs/k3s/latest/en/installation/installation-requirements/">official documentation</a>.</p>
-<p>Other than that, lean back and enjoy - the installation happens so fast, you might miss it if you get a coffee :)</p>
-<h4><a class="anchor" aria-hidden="true" id="ssh-into-k3s-server-streampi-01"></a><a href="#ssh-into-k3s-server-streampi-01" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 [...]
-<p>On the server node, run the following command:</p>
-<pre><code class="hljs css language-bash">sudo curl -sfL https://get.k3s.io | sh -
-</code></pre>
-<p>A kubeconfig file is written to <code>/etc/rancher/k3s/k3s.yaml</code> and the service is automatically started or restarted. The install script will install k3s and additional utilities, such as <code>kubectl</code>, <code>crictl</code>, <code>k3s-killall.sh</code>, and <code>k3s-uninstall.sh</code>.</p>
-<p>The K3s installer creates a systemd service which can be used to <code>stop</code>, <code>start</code>, <code>restart</code> and check the <code>status</code> of the K3s server.</p>
-<pre><code class="hljs css language-bash">sudo systemctl status k3s.service
-
-● k3s.service - Lightweight Kubernetes
-   Loaded: loaded (/etc/systemd/system/k3s.service; enabled; vendor preset: enabled)
-   Active: active (running) since Sat 2020-04-11 15:54:07 BST; 3 days ago
-     Docs: https://k3s.io
-  Process: 10193 ExecStartPre=/sbin/modprobe br_netfilter (code=exited, status=0/SUCCESS)
-  Process: 10194 ExecStartPre=/sbin/modprobe overlay (code=exited, status=0/SUCCESS)
- Main PID: 10195 (k3s-server)
- (...)
-</code></pre>
-<p>Next, copy the server node token in order to connect additional agent nodes to the cluster.</p>
-<pre><code class="hljs css language-bash">sudo cat /var/lib/rancher/k3s/server/node-token
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="ssh-into-k3s-agent-streampi-02"></a><a href="#ssh-into-k3s-agent-streampi-02" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 1 [...]
-<p>Now, open a new terminal session and SSH into your agent and run the following command, thereby adding the copied <code>K3S_TOKEN</code> to connect to the server, that is specified using <code>K3S_URL</code>.</p>
-<pre><code class="hljs css language-bash">sudo curl -sfL https://get.k3s.io | K3S_URL=https://streampi-01:6443 \
-K3S_TOKEN=&lt;NODE_TOKEN&gt; sh -
-</code></pre>
-<p>The K3s installer creates a systemd service which can be used to <code>stop</code>, <code>start</code>, <code>restart</code> and check the <code>status</code> of the K3s agent.</p>
-<pre><code class="hljs css language-bash">sudo systemctl status k3s-agent.service
-
-● k3s-agent.service - Lightweight Kubernetes
-   Loaded: loaded (/etc/systemd/system/k3s-agent.service; enabled; vendor preset: enabled)
-   Active: active (running) since Sat 2020-04-11 16:05:37 BST; 3 days ago
-     Docs: https://k3s.io
-  Process: 24469 ExecStartPre=/sbin/modprobe br_netfilter (code=exited, status=0/SUCCESS)
-  Process: 24470 ExecStartPre=/sbin/modprobe overlay (code=exited, status=0/SUCCESS)
- Main PID: 24471 (k3s-agent)
- (...)
-</code></pre>
-<p>That's it ... that's all!</p>
-<p>When you go back to the terminal session on the K3s server you can list all nodes in the cluster using standard <code>kubectl</code> commands.</p>
-<pre><code class="hljs css language-bash">kubectl get nodes
-NAME              STATUS   ROLES    AGE   VERSION
-streampi-02   Ready    &lt;none&gt;   3d    v1.17.4+k3s1
-streampi-01   Ready    master   3d    v1.17.4+k3s1
-</code></pre>
-<p>Hmmm - but wait. We did only add one agent node to the cluster right? Well, that's true, however when installing K3s using the script the server automatically installs and runs an agent on the same node.</p>
-<h3><a class="anchor" aria-hidden="true" id="3-install-helm"></a><a href="#3-install-helm" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
-<p>SSH into the RPi that should act as the K3s server later on - in our case this is <code>streampi-01</code> and install Helm. Since we are using Helm 3 there is no need to install tiller. Thus, installing helm is as simple as running the following command:</p>
-<pre><code class="hljs css language-bash">curl -sSL https://get.helm.sh/helm-v3.1.2-linux-arm.tar.gz | sudo tar -xzf - -C /usr/<span class="hljs-built_in">local</span>/bin/ linux-arm/helm --strip-components=1
-</code></pre>
-<p>This command downloads the Helm binary release from Github, extracts only the binary and puts it in <code>/usr/local/bin</code>. Try go check <code>helm version</code> to see if it worked.</p>
-<pre><code class="hljs css language-bash">version.BuildInfo{Version:<span class="hljs-string">"v3.1.2"</span>, GitCommit:<span class="hljs-string">"d878d4d45863e42fd5cff6743294a11d28a9abce"</span>, GitTreeState:<span class="hljs-string">"clean"</span>, GoVersion:<span class="hljs-string">"go1.13.8"</span>}
-</code></pre>
-<p>To use Helm, we can set and export <code>KUBECONFIG</code> environment variable to point to the kubeconfig under <code>/etc/rancher/k3s/k3s.yaml</code>.</p>
-<pre><code class="hljs css language-bash"><span class="hljs-built_in">export</span> KUBECONFIG=/etc/rancher/k3s/k3s.yaml
-</code></pre>
-<p>Alternatively, if you want this permanently you can either add it to your <code>.bashrc</code>/<code>.zshrc</code>, or create a <code>.kube</code> directory in your home directory and symlink the <code>k3s.yaml</code>.</p>
-<pre><code class="hljs css language-bash">mkdir <span class="hljs-variable">$HOME</span>/.kube
-ln -s /etc/rancher/k3s/k3s.yaml <span class="hljs-variable">$HOME</span>/.kube/config
-</code></pre>
-<h2><a class="anchor" aria-hidden="true" id="deploy-streampipes-on-k3s-using-helm"></a><a href="#deploy-streampipes-on-k3s-using-helm" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 [...]
-<p>Now, that we have all set up, we can go ahead and deploy StreamPipes using our Helm chart. Therefore, we go to the server node (<code>streampi-01</code>), where we installed Helm. Next, we clone our StreamPipes installer repository (<code>dev</code> branch) and navigate to the helm-chart directory.</p>
-<p><strong>Note</strong>: At the point of writing, the helm chart is <strong>only</strong> available in the <code>dev</code> branch. This will change in the future as we update the repository.</p>
-<pre><code class="hljs css language-bash">git <span class="hljs-built_in">clone</span> -b dev --single-branch https://github.com/apache/incubator-streampipes-installer.git
-<span class="hljs-built_in">cd</span> incubator-streampipes-installer
-</code></pre>
-<p>At this point, we can leverage Helm's <code>install</code> command in order to install the StreamPipes Helm chart. Since Helm reads the K3s kubeconfig, it forwards the deployment request to K3s. As per default, we deploy StreamPipes <code>lite</code> version, where we only start standalone Java-based pipeline elements and disregard the ones building on top of our Flink wrapper.</p>
-<pre><code class="hljs css language-bash">helm install streampipes helm-chart
-
-NAME: streampipes
-LAST DEPLOYED: Tue Apr 14 18:13:19 2020
-NAMESPACE: default
-STATUS: deployed
-REVISION: 1
-TEST SUITE: None
-</code></pre>
-<p>Next, K3s receives this requests and goes ahead and downloads the corresponding Docker images and starts the deployments in the right order according to the specified dependencies, creates services as well as persistent volume claims when needed. This step takes some time depending on your internet connection and the hardware when starting the containers. You can check the status of the StreamPipes Helm installation using <code>kubectl get pods -o wide</code> (when adding <code>-w</co [...]
-<pre><code class="hljs css language-bash">kubectl get pods -o=custom-columns=NAME:.metadata.name,STATUS:.status.phase,NODE:.spec.nodeName
-
-NAME                                           STATUS    NODE
-activemq-66d58f47cf-b88nb                      Running   streampi-01
-zookeeper-5d9947686f-7vpjb                     Running   streampi-02
-couchdb-77db98cf7b-6nn99                       Running   streampi-02
-consul-55965f966b-tjcfb                        Running   streampi-02
-influxdb-b95b6479-mvgbg                        Running   streampi-02
-backend-6cdfb7bbf9-b4vgh                       Running   streampi-02
-pipeline-elements-all-jvm-64795974-g2xhv       Running   streampi-02
-kafka-657b5fb77-xtw8p                          Running   streampi-01
-connect-master-56f5f947d-n2t5b                 Running   streampi-01
-sources-watertank-simulator-6958f7844c-2jv78   Running   streampi-01
-connect-worker-fdbd6f464-m6vm8                 Running   streampi-01
-nginx-5d4498d4f5-fcccq                         Running   streampi-02
-</code></pre>
-<p>As can be seen, a fair amount of StreamPipes containers aka pods were deployed on <code>streampi-01</code> and <code>streampi-02</code>. When everything goes well, you should see all containers in the status <code>RUNNING</code> after a couple of minutes. To access K8s cluster UI pod a <code>NodePort</code> was created. The <code>NodePort</code> publishes the UI (nginx) service on every node using using its public IP and a port. Then you can access the service using any of the cluster [...]
-<pre><code class="hljs css language-yaml"><span class="hljs-attr">apiVersion:</span> <span class="hljs-string">v1</span>
-<span class="hljs-attr">kind:</span> <span class="hljs-string">Service</span>
-<span class="hljs-attr">metadata:</span>
-  <span class="hljs-attr">name:</span> <span class="hljs-string">nginx</span>
-<span class="hljs-attr">spec:</span>
-  <span class="hljs-attr">selector:</span>
-    <span class="hljs-attr">app:</span> <span class="hljs-string">nginx</span>
-  <span class="hljs-attr">type:</span> <span class="hljs-string">NodePort</span>
-  <span class="hljs-attr">ports:</span>
-    <span class="hljs-bullet">-</span> <span class="hljs-attr">name:</span> <span class="hljs-string">main</span>
-      <span class="hljs-attr">protocol:</span> <span class="hljs-string">TCP</span>
-      <span class="hljs-attr">port:</span> <span class="hljs-number">80</span> <span class="hljs-comment"># container port</span>
-      <span class="hljs-attr">targetPort:</span> <span class="hljs-number">80</span> <span class="hljs-comment"># node port</span>
-</code></pre>
-<p>That means, you can go and check the StreamPipes UI either on <code>http://streampi-01/</code> or <code>http://streampi-02/</code> - K8s service handles the routing to the nginx pod containing the UI - just to name one nice feature.</p>
-<p><img class="blog-image" style="max-width:100%;" src="/docs/blog/assets/2020-05-27/streampi_installation.png" alt="Installation"></p>
-<h2><a class="anchor" aria-hidden="true" id="sum-up-where-to-go-from-here"></a><a href="#sum-up-where-to-go-from-here" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 [...]
-<p>Starting out as a simple hack session on a late afternoon, we build multi-archicture StreamPipes Docker images and deployed them on a Raspberry Pi in the first part of the series. Though, this is was feasible StreamPipes architectural microservice design provides a natural fit for a distributed cluster deployment. To this extent, we provide a StreamPipes Helm chart that lets you easily deploy StreamPipes in a one-liner in a Kubernetes cluster as showcased using a testbed of two Raspbe [...]
-<p>As of now, we let K8s handle the scheduling of containers for us in a random fashion. From here, we can further explore K8s feature such as <code>nodeSelector</code> or <code>nodeAffinity</code> that helps you use labels (<code>key=value</code> pairs) for pod to node assignment.</p>
-<p><img class="blog-image" style="max-width:60%;" src="/docs/blog/assets/2020-05-27/helm_k3s.png" alt="HelmK3s"></p>
-<ul>
-<li><a href="/docs/blog/2020/01/23/streampipes_on_rpi">Part 1: StreamPi(pes) - Running StreamPipes on Raspberry Pi</a></li>
-<li><strong><a href="/docs/blog/2020/05/27/streampipes_on_k3s">Part 2: Running StreamPipes the Kubernetes-Way using K3s</a></strong></li>
-</ul>
-<h3><a class="anchor" aria-hidden="true" id="useful-links"></a><a href="#useful-links" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
-<ul>
-<li>[1] <a href="https://k3s.io/">K3s - lightweight Kubernetes distro</a></li>
-<li>[2] <a href="https://helm.sh/">Helm - the package manager for Kubernetes</a></li>
-<li>[3] <a href="https://github.com/apache/incubator-streampipes-installer/tree/dev/helm-chart">Github: StreamPipes Helm chart</a></li>
-</ul>
-</span></div></div><div class="blogSocialSection"></div></div><div class="blog-recent"><a class="button" href="/docs/blog">Recent Posts</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#introduction">Introduction</a></li><li><a href="#well-which-k-to-use-kubernetes-k3s">Well, which K to use? Kubernetes, K3s</a></li><li><a href="#streampipes-helm-chart">StreamPipes Helm Chart</a></li><li><a href="#the-almighty-streampi-k3s-cluster">The almighty StreamPi K3 [...]
-                document.addEventListener('keyup', function(e) {
-                  if (e.target !== document.body) {
-                    return;
-                  }
-                  // keyCode for '/' (slash)
-                  if (e.keyCode === 191) {
-                    const search = document.getElementById('search_input_react');
-                    search && search.focus();
-                  }
-                });
-              </script><script>
-              var search = docsearch({
-                
-                apiKey: '0fedc89dddf2810657708b178e56ef02',
-                indexName: 'streampipes',
-                inputSelector: '#search_input_react',
-                algoliaOptions: {}
-              });
-            </script></body></html>
\ No newline at end of file
diff --git a/docs/blog/atom.xml b/docs/blog/atom.xml
index f15740f..6357c85 100644
--- a/docs/blog/atom.xml
+++ b/docs/blog/atom.xml
@@ -2,8 +2,8 @@
 <feed xmlns="http://www.w3.org/2005/Atom">
     <id>https://streampipes.apache.org/docs/blog</id>
     <title>Apache StreamPipes Blog</title>
-    <updated>2020-05-27T06:00:00Z</updated>
-    <generator>Feed for Node.js</generator>
+    <updated>2020-05-27T06:00:00.000Z</updated>
+    <generator>https://github.com/jpmonette/feed</generator>
     <link rel="alternate" href="https://streampipes.apache.org/docs/blog"/>
     <subtitle>The best place to stay up-to-date with the latest Apache StreamPipes news and events.</subtitle>
     <logo>https://streampipes.apache.org/docs/img/sp-logo-color-docs.png</logo>
@@ -11,9 +11,8 @@
     <entry>
         <title type="html"><![CDATA[Running StreamPipes the Kubernetes-Way using k3s]]></title>
         <id>https://streampipes.apache.org/docs/blog/2020/05/27/streampipes_on_k3s.html</id>
-        <link href="https://streampipes.apache.org/docs/blog/2020/05/27/streampipes_on_k3s.html">
-        </link>
-        <updated>2020-05-27T06:00:00Z</updated>
+        <link href="https://streampipes.apache.org/docs/blog/2020/05/27/streampipes_on_k3s.html"/>
+        <updated>2020-05-27T06:00:00.000Z</updated>
         <summary type="html"><![CDATA[<p><img class="blog-image" style="max-width:100%;" src="/docs/blog/assets/2020-05-27/streampipes_k3s.png" alt="StreamPipes on k3s">
 <strong><div style="float: left; padding-right: 40px;">15 minutes to read</div></strong>
 <br></p>
@@ -27,9 +26,8 @@
     <entry>
         <title type="html"><![CDATA[Apache StreamPipes release 0.66.0]]></title>
         <id>https://streampipes.apache.org/docs/blog/2020/05/19/release-0660.html</id>
-        <link href="https://streampipes.apache.org/docs/blog/2020/05/19/release-0660.html">
-        </link>
-        <updated>2020-05-19T06:00:00Z</updated>
+        <link href="https://streampipes.apache.org/docs/blog/2020/05/19/release-0660.html"/>
+        <updated>2020-05-19T06:00:00.000Z</updated>
         <summary type="html"><![CDATA[<p><strong><div style="float: left; padding-right: 40px;">6 minutes to read</div></strong>
 <br></p>
 <p>The Apache StreamPipes (incubating) community is proud to announce Apache StreamPipes version 0.66.0! This release is our first official Apache release and brings some very cool features and improvements the community has worked on over the past months.</p>
@@ -42,9 +40,8 @@
     <entry>
         <title type="html"><![CDATA[StreamPi(pes) - Running StreamPipes on Raspberry Pi]]></title>
         <id>https://streampipes.apache.org/docs/blog/2020/01/23/streampipes_on_rpi.html</id>
-        <link href="https://streampipes.apache.org/docs/blog/2020/01/23/streampipes_on_rpi.html">
-        </link>
-        <updated>2020-01-23T06:00:00Z</updated>
+        <link href="https://streampipes.apache.org/docs/blog/2020/01/23/streampipes_on_rpi.html"/>
+        <updated>2020-01-23T06:00:00.000Z</updated>
         <summary type="html"><![CDATA[<p><img class="blog-image" style="max-width:100%;" src="/docs/blog/assets/2020-01-23/streampipes_raspberrypi.png" alt="StreamPipes on Raspberry Pi">
 <strong><div style="float: left; padding-right: 40px;">5 minutes to read</div></strong>
 <br></p>
@@ -58,9 +55,8 @@
     <entry>
         <title type="html"><![CDATA[Moving to the Apache Incubator]]></title>
         <id>https://streampipes.apache.org/docs/blog/2019/11/25/moving-to-the-apache-incubator.html</id>
-        <link href="https://streampipes.apache.org/docs/blog/2019/11/25/moving-to-the-apache-incubator.html">
-        </link>
-        <updated>2019-11-25T06:00:00Z</updated>
+        <link href="https://streampipes.apache.org/docs/blog/2019/11/25/moving-to-the-apache-incubator.html"/>
+        <updated>2019-11-25T06:00:00.000Z</updated>
         <summary type="html"><![CDATA[<p><strong><div style="float: left; padding-right: 40px;">8 minutes to read</div></strong>
 <br>
 Great news: StreamPipes is moving to the Apache Incubator!</p>
@@ -73,9 +69,8 @@ Great news: StreamPipes is moving to the Apache Incubator!</p>
     <entry>
         <title type="html"><![CDATA[StreamPipes release 0.65.0]]></title>
         <id>https://streampipes.apache.org/docs/blog/2019/11/23/release-0650.html</id>
-        <link href="https://streampipes.apache.org/docs/blog/2019/11/23/release-0650.html">
-        </link>
-        <updated>2019-11-23T06:00:00Z</updated>
+        <link href="https://streampipes.apache.org/docs/blog/2019/11/23/release-0650.html"/>
+        <updated>2019-11-23T06:00:00.000Z</updated>
         <summary type="html"><![CDATA[<p><strong><div style="float: left; padding-right: 40px;">5 minutes to read</div></strong>
 <br></p>
 <p>We are happy to announce StreamPipes version 0.65.0! This release brings performance improvements related to the installation process and further reduces the minimum hardware requirements to run StreamPipes.</p>
@@ -88,9 +83,8 @@ Great news: StreamPipes is moving to the Apache Incubator!</p>
     <entry>
         <title type="html"><![CDATA[StreamPipes release 0.64.0]]></title>
         <id>https://streampipes.apache.org/docs/blog/2019/09/19/release-0640.html</id>
-        <link href="https://streampipes.apache.org/docs/blog/2019/09/19/release-0640.html">
-        </link>
-        <updated>2019-09-19T06:00:00Z</updated>
+        <link href="https://streampipes.apache.org/docs/blog/2019/09/19/release-0640.html"/>
+        <updated>2019-09-19T06:00:00.000Z</updated>
         <summary type="html"><![CDATA[<p><strong><div style="float: left; padding-right: 40px;">5 minutes to read</div></strong>
 <br></p>
 <p>Usually, we try to publish a new StreamPipes release every three months. But after attending a very exciting <a href="https://www.apachecon.com/acna19/">ApacheCon</a> last week, where we worked with some Apache communities on a few really cool new features, we decided to release these features as soon as possible.
@@ -104,9 +98,8 @@ So here's StreamPipes 0.64.0!</p>
     <entry>
         <title type="html"><![CDATA[StreamPipes release 0.63.0]]></title>
         <id>https://streampipes.apache.org/docs/blog/2019/09/05/release-0630.html</id>
-        <link href="https://streampipes.apache.org/docs/blog/2019/09/05/release-0630.html">
-        </link>
-        <updated>2019-09-05T06:00:00Z</updated>
+        <link href="https://streampipes.apache.org/docs/blog/2019/09/05/release-0630.html"/>
+        <updated>2019-09-05T06:00:00.000Z</updated>
         <summary type="html"><![CDATA[<p><strong><div style="float: left; padding-right: 40px;">5 minutes to read</div></strong>
 <br></p>
 <p>StreamPipes version 0.63.0 has been released! Following our release plan to alternate between user-faced and backend-oriented releases, this release contains many (more than 70) features and improvements, mainly on the backend side.
@@ -120,9 +113,8 @@ The new version is available on Docker Hub and can be downloaded using our <a hr
     <entry>
         <title type="html"><![CDATA[StreamPipes release 0.62.0]]></title>
         <id>https://streampipes.apache.org/docs/blog/2019/05/23/release-0620.html</id>
-        <link href="https://streampipes.apache.org/docs/blog/2019/05/23/release-0620.html">
-        </link>
-        <updated>2019-05-23T06:00:00Z</updated>
+        <link href="https://streampipes.apache.org/docs/blog/2019/05/23/release-0620.html"/>
+        <updated>2019-05-23T06:00:00.000Z</updated>
         <summary type="html"><![CDATA[<p><strong><div style="float: left; padding-right: 40px;">6 minutes to read</div></strong>
 <br></p>
 <p>StreamPipes version 0.62.0 has been released! While the last version brought many features under the hood, this new version totally focuses on features and improvements visible to end users.
@@ -136,9 +128,8 @@ The new version is available on Docker Hub and can be downloaded using our <a hr
     <entry>
         <title type="html"><![CDATA[StreamPipes release 0.61.0]]></title>
         <id>https://streampipes.apache.org/docs/blog/2019/04/04/release-0610.html</id>
-        <link href="https://streampipes.apache.org/docs/blog/2019/04/04/release-0610.html">
-        </link>
-        <updated>2019-04-04T06:00:00Z</updated>
+        <link href="https://streampipes.apache.org/docs/blog/2019/04/04/release-0610.html"/>
+        <updated>2019-04-04T06:00:00.000Z</updated>
         <summary type="html"><![CDATA[<p><strong><div style="float: left; padding-right: 40px;">5 minutes to read</div></strong>
 <br></p>
 <p>We are proud to release StreamPipes version 0.61.0, which brings many improvements and some exciting new features that simplify pipeline development!
@@ -152,9 +143,8 @@ The new version, which is already available on Docker Hub and can be downloaded
     <entry>
         <title type="html"><![CDATA[ContainerCLI: A CLI tool for your Docker Application]]></title>
         <id>https://streampipes.apache.org/docs/blog/2018/11/24/container-cli.html</id>
-        <link href="https://streampipes.apache.org/docs/blog/2018/11/24/container-cli.html">
-        </link>
-        <updated>2018-11-24T06:00:00Z</updated>
+        <link href="https://streampipes.apache.org/docs/blog/2018/11/24/container-cli.html"/>
+        <updated>2018-11-24T06:00:00.000Z</updated>
         <summary type="html"><![CDATA[<p><strong><div style="float: left; padding-right: 40px;">6 minutes to read</div></strong>
 <br></p>
 <p>In this blog post, we show how we developed a CLI tool to install and manage StreamPipes.
@@ -169,9 +159,8 @@ All you need is a working docker-compose.yml file.</p>
     <entry>
         <title type="html"><![CDATA[Preview: StreamPipes release 0.60.0]]></title>
         <id>https://streampipes.apache.org/docs/blog/2018/09/17/preview-060.html</id>
-        <link href="https://streampipes.apache.org/docs/blog/2018/09/17/preview-060.html">
-        </link>
-        <updated>2018-09-17T06:00:00Z</updated>
+        <link href="https://streampipes.apache.org/docs/blog/2018/09/17/preview-060.html"/>
+        <updated>2018-09-17T06:00:00.000Z</updated>
         <summary type="html"><![CDATA[<p><strong><div style="float: left; padding-right: 40px;">5 minutes to read</div></strong>
 <br></p>
 <p>It's been a while since our last blog post. However, in the background we are working hard to release the next version of StreamPipes which is currently in the final phase.
@@ -185,9 +174,8 @@ In this post, we'd like to give you a preview of the upcoming StreamPipes versio
     <entry>
         <title type="html"><![CDATA[How to understand your machine data?]]></title>
         <id>https://streampipes.apache.org/docs/blog/2018/06/18/how-to-understand-your-machine-data.html</id>
-        <link href="https://streampipes.apache.org/docs/blog/2018/06/18/how-to-understand-your-machine-data.html">
-        </link>
-        <updated>2018-06-18T06:00:00Z</updated>
+        <link href="https://streampipes.apache.org/docs/blog/2018/06/18/how-to-understand-your-machine-data.html"/>
+        <updated>2018-06-18T06:00:00.000Z</updated>
         <summary type="html"><![CDATA[<p><strong><div style="float: left; padding-right: 40px;">8 minutes to read</div></strong>
 <br></p>
 <p>Data is the new oil. Probably everybody of you has heard or read this sentence before.
@@ -203,9 +191,8 @@ And how can we solve the big challenge to turn this raw data into insights that
     <entry>
         <title type="html"><![CDATA[Welcome to StreamPipes!]]></title>
         <id>https://streampipes.apache.org/docs/blog/2018/06/14/welcome.html</id>
-        <link href="https://streampipes.apache.org/docs/blog/2018/06/14/welcome.html">
-        </link>
-        <updated>2018-06-14T06:00:00Z</updated>
+        <link href="https://streampipes.apache.org/docs/blog/2018/06/14/welcome.html"/>
+        <updated>2018-06-14T06:00:00.000Z</updated>
         <summary type="html"><![CDATA[<p>Welcome to our new blog. StreamPipes is the new, easy-to-use self-service data analytics toolbox for the Industrial IoT. In the coming weeks, we'll publish a series of blog posts that explain some ideas of StreamPipes. You'll read about use cases, be...</p>]]></summary>
         <author>
             <name>Dominik Riemer</name>
diff --git a/docs/blog/feed.xml b/docs/blog/feed.xml
index 63f30df..306b165 100644
--- a/docs/blog/feed.xml
+++ b/docs/blog/feed.xml
@@ -5,8 +5,8 @@
         <link>https://streampipes.apache.org/docs/blog</link>
         <description>The best place to stay up-to-date with the latest Apache StreamPipes news and events.</description>
         <lastBuildDate>Wed, 27 May 2020 06:00:00 GMT</lastBuildDate>
-        <docs>http://blogs.law.harvard.edu/tech/rss</docs>
-        <generator>Feed for Node.js</generator>
+        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
+        <generator>https://github.com/jpmonette/feed</generator>
         <image>
             <title>Apache StreamPipes Blog</title>
             <url>https://streampipes.apache.org/docs/img/sp-logo-color-docs.png</url>
diff --git a/docs/blog/index.html b/docs/blog/index.html
index 1f44c0a..0882922 100644
--- a/docs/blog/index.html
+++ b/docs/blog/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Blog · Apache StreamPipes</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Self-Service Data Analytics"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Blog · Apache StreamPipes"/><meta property="og:type" content="website"/><meta property="og:url"  [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Blog · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Self-Service Data Analytics"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Blog · Apache StreamPipes"/><meta property="og:type" content="website"/><meta [...]
               window.dataLayer = window.dataLayer || [];
               function gtag(){dataLayer.push(arguments); }
               gtag('js', new Date());
@@ -9,7 +9,7 @@
             {"zIndex":100}
           )
         });
-        </script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="blog"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions"><h3>0.67.0</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul cla [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="blog"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.67.0</h3></a><div class="navigationWrapper [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -37,10 +37,16 @@
               createToggler('#navToggler', '#docsNav', 'docsSliderActive');
               createToggler('#tocToggler', 'body', 'tocActive');
 
-              const headings = document.querySelector('.toc-headings');
+              var headings = document.querySelector('.toc-headings');
               headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
                 }
               }, false);
 
@@ -59,45 +65,45 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer postContainer blogContainer"><div class="wrapper"><div class="posts"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle"><a href="/docs/blog/2020/05/27/streampipes_on_k3s">Running StreamPipes the Kubernetes-Way using k3s</a></h1><p class="post-meta">May 27, 2020</p><div class="authorBlock"><p class="post-authorName"><a href="https://twitter.com/patrickwiener" target="_blank" rel="noreferrer noopener">Pa [...]
+        </script></nav></div><div class="container mainContainer postContainer blogContainer"><div class="wrapper"><div class="posts"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle"><a href="/docs/blog/2020/05/27/streampipes_on_k3s.html">Running StreamPipes the Kubernetes-Way using k3s</a></h1><p class="post-meta">May 27, 2020</p><div class="authorBlock"><p class="post-authorName"><a href="https://twitter.com/patrickwiener" target="_blank" rel="noreferrer noopene [...]
 <strong><div style="float: left; padding-right: 40px;">15 minutes to read</div></strong>
 <br></p>
 <p>This blog post is the second part of a series on how we want to bring StreamPipes closer to the edge. The <a href="/docs/blog/2020/01/23/streampipes_on_rpi">first part</a> describes how we managed to build and deploy StreamPipes on one Raspberry Pi (Model 4), while the <a href="/docs/blog/2020/05/27/streampipes_on_k3s">second part</a> further covers how to deploy StreamPipes over a Kubernetes cluster of two Raspberry Pi's via k3s using our StreamPipes helm chart.</p>
-</span></div><div class="read-more"><a class="button" href="/docs/blog/2020/05/27/streampipes_on_k3s">Read More</a></div></article></div><div class="post"><header class="postHeader"><h1 class="postHeaderTitle"><a href="/docs/blog/2020/05/19/release-0660">Apache StreamPipes release 0.66.0</a></h1><p class="post-meta">May 19, 2020</p><div class="authorBlock"><p class="post-authorName"><a href="https://twitter.com/dominikjriemer" target="_blank" rel="noreferrer noopener">Dominik Riemer</a>< [...]
+</span></div><div class="read-more"><a class="button" href="/docs/blog/2020/05/27/streampipes_on_k3s.html">Read More</a></div></article></div><div class="post"><header class="postHeader"><h1 class="postHeaderTitle"><a href="/docs/blog/2020/05/19/release-0660.html">Apache StreamPipes release 0.66.0</a></h1><p class="post-meta">May 19, 2020</p><div class="authorBlock"><p class="post-authorName"><a href="https://twitter.com/dominikjriemer" target="_blank" rel="noreferrer noopener">Dominik R [...]
 <br></p>
 <p>The Apache StreamPipes (incubating) community is proud to announce Apache StreamPipes version 0.66.0! This release is our first official Apache release and brings some very cool features and improvements the community has worked on over the past months.</p>
-</span></div><div class="read-more"><a class="button" href="/docs/blog/2020/05/19/release-0660">Read More</a></div></article></div><div class="post"><header class="postHeader"><h1 class="postHeaderTitle"><a href="/docs/blog/2020/01/23/streampipes_on_rpi">StreamPi(pes) - Running StreamPipes on Raspberry Pi</a></h1><p class="post-meta">January 23, 2020</p><div class="authorBlock"><p class="post-authorName"><a href="https://twitter.com/patrickwiener" target="_blank" rel="noreferrer noopener [...]
+</span></div><div class="read-more"><a class="button" href="/docs/blog/2020/05/19/release-0660.html">Read More</a></div></article></div><div class="post"><header class="postHeader"><h1 class="postHeaderTitle"><a href="/docs/blog/2020/01/23/streampipes_on_rpi.html">StreamPi(pes) - Running StreamPipes on Raspberry Pi</a></h1><p class="post-meta">January 23, 2020</p><div class="authorBlock"><p class="post-authorName"><a href="https://twitter.com/patrickwiener" target="_blank" rel="noreferre [...]
 <strong><div style="float: left; padding-right: 40px;">5 minutes to read</div></strong>
 <br></p>
 <p>This is the start of a two part series on how we want to bring StreamPipes closer to the edge. The <a href="/docs/blog/2020/01/23/streampipes_on_rpi">first part</a> describes how we managed to build and deploy StreamPipes on one Raspberry Pi (Model 4), while the <a href="/docs/blog/2020/05/27/streampipes_on_k3s">second part</a> further covers how to deploy StreamPipes over a Kubernetes cluster of two Raspberry Pi's via K3s using our StreamPipes helm chart.</p>
-</span></div><div class="read-more"><a class="button" href="/docs/blog/2020/01/23/streampipes_on_rpi">Read More</a></div></article></div><div class="post"><header class="postHeader"><h1 class="postHeaderTitle"><a href="/docs/blog/2019/11/25/moving-to-the-apache-incubator">Moving to the Apache Incubator</a></h1><p class="post-meta">November 25, 2019</p><div class="authorBlock"><p class="post-authorName"><a href="https://twitter.com/dominikjriemer" target="_blank" rel="noreferrer noopener" [...]
+</span></div><div class="read-more"><a class="button" href="/docs/blog/2020/01/23/streampipes_on_rpi.html">Read More</a></div></article></div><div class="post"><header class="postHeader"><h1 class="postHeaderTitle"><a href="/docs/blog/2019/11/25/moving-to-the-apache-incubator.html">Moving to the Apache Incubator</a></h1><p class="post-meta">November 25, 2019</p><div class="authorBlock"><p class="post-authorName"><a href="https://twitter.com/dominikjriemer" target="_blank" rel="noreferrer [...]
 <br>
 Great news: StreamPipes is moving to the Apache Incubator!</p>
-</span></div><div class="read-more"><a class="button" href="/docs/blog/2019/11/25/moving-to-the-apache-incubator">Read More</a></div></article></div><div class="post"><header class="postHeader"><h1 class="postHeaderTitle"><a href="/docs/blog/2019/11/23/release-0650">StreamPipes release 0.65.0</a></h1><p class="post-meta">November 23, 2019</p><div class="authorBlock"><p class="post-authorName"><a href="https://twitter.com/dominikjriemer" target="_blank" rel="noreferrer noopener">Dominik R [...]
+</span></div><div class="read-more"><a class="button" href="/docs/blog/2019/11/25/moving-to-the-apache-incubator.html">Read More</a></div></article></div><div class="post"><header class="postHeader"><h1 class="postHeaderTitle"><a href="/docs/blog/2019/11/23/release-0650.html">StreamPipes release 0.65.0</a></h1><p class="post-meta">November 23, 2019</p><div class="authorBlock"><p class="post-authorName"><a href="https://twitter.com/dominikjriemer" target="_blank" rel="noreferrer noopener" [...]
 <br></p>
 <p>We are happy to announce StreamPipes version 0.65.0! This release brings performance improvements related to the installation process and further reduces the minimum hardware requirements to run StreamPipes.</p>
-</span></div><div class="read-more"><a class="button" href="/docs/blog/2019/11/23/release-0650">Read More</a></div></article></div><div class="post"><header class="postHeader"><h1 class="postHeaderTitle"><a href="/docs/blog/2019/09/19/release-0640">StreamPipes release 0.64.0</a></h1><p class="post-meta">September 19, 2019</p><div class="authorBlock"><p class="post-authorName"><a href="https://twitter.com/dominikjriemer" target="_blank" rel="noreferrer noopener">Dominik Riemer</a></p><div [...]
+</span></div><div class="read-more"><a class="button" href="/docs/blog/2019/11/23/release-0650.html">Read More</a></div></article></div><div class="post"><header class="postHeader"><h1 class="postHeaderTitle"><a href="/docs/blog/2019/09/19/release-0640.html">StreamPipes release 0.64.0</a></h1><p class="post-meta">September 19, 2019</p><div class="authorBlock"><p class="post-authorName"><a href="https://twitter.com/dominikjriemer" target="_blank" rel="noreferrer noopener">Dominik Riemer</ [...]
 <br></p>
 <p>Usually, we try to publish a new StreamPipes release every three months. But after attending a very exciting <a href="https://www.apachecon.com/acna19/">ApacheCon</a> last week, where we worked with some Apache communities on a few really cool new features, we decided to release these features as soon as possible.
 So here's StreamPipes 0.64.0!</p>
-</span></div><div class="read-more"><a class="button" href="/docs/blog/2019/09/19/release-0640">Read More</a></div></article></div><div class="post"><header class="postHeader"><h1 class="postHeaderTitle"><a href="/docs/blog/2019/09/05/release-0630">StreamPipes release 0.63.0</a></h1><p class="post-meta">September 5, 2019</p><div class="authorBlock"><p class="post-authorName"><a href="https://twitter.com/dominikjriemer" target="_blank" rel="noreferrer noopener">Dominik Riemer</a></p><div  [...]
+</span></div><div class="read-more"><a class="button" href="/docs/blog/2019/09/19/release-0640.html">Read More</a></div></article></div><div class="post"><header class="postHeader"><h1 class="postHeaderTitle"><a href="/docs/blog/2019/09/05/release-0630.html">StreamPipes release 0.63.0</a></h1><p class="post-meta">September 5, 2019</p><div class="authorBlock"><p class="post-authorName"><a href="https://twitter.com/dominikjriemer" target="_blank" rel="noreferrer noopener">Dominik Riemer</a [...]
 <br></p>
 <p>StreamPipes version 0.63.0 has been released! Following our release plan to alternate between user-faced and backend-oriented releases, this release contains many (more than 70) features and improvements, mainly on the backend side.
 The new version is available on Docker Hub and can be downloaded using our <a href="https://github.com/apache/incubator-streampipes-installer">installer</a>.</p>
-</span></div><div class="read-more"><a class="button" href="/docs/blog/2019/09/05/release-0630">Read More</a></div></article></div><div class="post"><header class="postHeader"><h1 class="postHeaderTitle"><a href="/docs/blog/2019/05/23/release-0620">StreamPipes release 0.62.0</a></h1><p class="post-meta">May 23, 2019</p><div class="authorBlock"><p class="post-authorName"><a href="http://twitter.com/dominikjriemer" target="_blank" rel="noreferrer noopener">Dominik Riemer</a></p><div class= [...]
+</span></div><div class="read-more"><a class="button" href="/docs/blog/2019/09/05/release-0630.html">Read More</a></div></article></div><div class="post"><header class="postHeader"><h1 class="postHeaderTitle"><a href="/docs/blog/2019/05/23/release-0620.html">StreamPipes release 0.62.0</a></h1><p class="post-meta">May 23, 2019</p><div class="authorBlock"><p class="post-authorName"><a href="http://twitter.com/dominikjriemer" target="_blank" rel="noreferrer noopener">Dominik Riemer</a></p>< [...]
 <br></p>
 <p>StreamPipes version 0.62.0 has been released! While the last version brought many features under the hood, this new version totally focuses on features and improvements visible to end users.
 The new version is available on Docker Hub and can be downloaded using our <a href="https://github.com/streampipes/streampipes-installer">installer</a>.</p>
-</span></div><div class="read-more"><a class="button" href="/docs/blog/2019/05/23/release-0620">Read More</a></div></article></div><div class="post"><header class="postHeader"><h1 class="postHeaderTitle"><a href="/docs/blog/2019/04/04/release-0610">StreamPipes release 0.61.0</a></h1><p class="post-meta">April 4, 2019</p><div class="authorBlock"><p class="post-authorName"><a href="http://twitter.com/dominikjriemer" target="_blank" rel="noreferrer noopener">Dominik Riemer</a></p><div class [...]
+</span></div><div class="read-more"><a class="button" href="/docs/blog/2019/05/23/release-0620.html">Read More</a></div></article></div><div class="post"><header class="postHeader"><h1 class="postHeaderTitle"><a href="/docs/blog/2019/04/04/release-0610.html">StreamPipes release 0.61.0</a></h1><p class="post-meta">April 4, 2019</p><div class="authorBlock"><p class="post-authorName"><a href="http://twitter.com/dominikjriemer" target="_blank" rel="noreferrer noopener">Dominik Riemer</a></p> [...]
 <br></p>
 <p>We are proud to release StreamPipes version 0.61.0, which brings many improvements and some exciting new features that simplify pipeline development!
 The new version, which is already available on Docker Hub and can be downloaded using our <a href="https://github.com/streampipes/streampipes-installer">installer</a> brings over 20 improvements. Under the hood, a reworked event model simplifies the development of new pipeline elements using the built-in SDK.</p>
-</span></div><div class="read-more"><a class="button" href="/docs/blog/2019/04/04/release-0610">Read More</a></div></article></div><div class="post"><header class="postHeader"><h1 class="postHeaderTitle"><a href="/docs/blog/2018/11/24/container-cli">ContainerCLI: A CLI tool for your Docker Application</a></h1><p class="post-meta">November 24, 2018</p><div class="authorBlock"><p class="post-authorName"><a href="http://twitter.com/philipp10der" target="_blank" rel="noreferrer noopener">Phi [...]
+</span></div><div class="read-more"><a class="button" href="/docs/blog/2019/04/04/release-0610.html">Read More</a></div></article></div><div class="post"><header class="postHeader"><h1 class="postHeaderTitle"><a href="/docs/blog/2018/11/24/container-cli.html">ContainerCLI: A CLI tool for your Docker Application</a></h1><p class="post-meta">November 24, 2018</p><div class="authorBlock"><p class="post-authorName"><a href="http://twitter.com/philipp10der" target="_blank" rel="noreferrer noo [...]
 <br></p>
 <p>In this blog post, we show how we developed a CLI tool to install and manage StreamPipes.
 In addition, we present a template project that enables you to easily create a CLI tool for your own docker application.
 All you need is a working docker-compose.yml file.</p>
-</span></div><div class="read-more"><a class="button" href="/docs/blog/2018/11/24/container-cli">Read More</a></div></article></div><div class="docs-prevnext"><a class="docs-next" href="/docs/blog/page2/">Next →</a></div></div></div></div></div><div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/docs/" class="nav-home"><img src="/docs/img/sp-logo-color.png" alt="Apache StreamPipes" width="66"/></a><div><h5>Docs</h5><a href="/docs/docs/user-guide-introduction">U [...]
+</span></div><div class="read-more"><a class="button" href="/docs/blog/2018/11/24/container-cli.html">Read More</a></div></article></div><div class="docs-prevnext"><a class="docs-next" href="/docs/blog/page2/">Next →</a></div></div></div></div></div><div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/docs/" class="nav-home"><img src="/docs/img/sp-logo-color.png" alt="Apache StreamPipes" width="66"/></a><div><h5>Docs</h5><a href="/docs/docs/user-guide-introducti [...]
                 document.addEventListener('keyup', function(e) {
                   if (e.target !== document.body) {
                     return;
diff --git a/docs/blog/page2/index.html b/docs/blog/page2/index.html
index 4a0b94b..acb0058 100644
--- a/docs/blog/page2/index.html
+++ b/docs/blog/page2/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Blog · Apache StreamPipes</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Self-Service Data Analytics"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Blog · Apache StreamPipes"/><meta property="og:type" content="website"/><meta property="og:url"  [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Blog · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Self-Service Data Analytics"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Blog · Apache StreamPipes"/><meta property="og:type" content="website"/><meta [...]
               window.dataLayer = window.dataLayer || [];
               function gtag(){dataLayer.push(arguments); }
               gtag('js', new Date());
@@ -9,7 +9,7 @@
             {"zIndex":100}
           )
         });
-        </script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="blog"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions"><h3>0.67.0</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul cla [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="blog"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.67.0</h3></a><div class="navigationWrapper [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -37,10 +37,16 @@
               createToggler('#navToggler', '#docsNav', 'docsSliderActive');
               createToggler('#tocToggler', 'body', 'tocActive');
 
-              const headings = document.querySelector('.toc-headings');
+              var headings = document.querySelector('.toc-headings');
               headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
                 }
               }, false);
 
@@ -59,17 +65,17 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer postContainer blogContainer"><div class="wrapper"><div class="posts"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle"><a href="/docs/blog/2018/09/17/preview-060">Preview: StreamPipes release 0.60.0</a></h1><p class="post-meta">September 17, 2018</p><div class="authorBlock"><p class="post-authorName"><a href="http://twitter.com/dominikjriemer" target="_blank" rel="noreferrer noopener">Dominik Riemer</ [...]
+        </script></nav></div><div class="container mainContainer postContainer blogContainer"><div class="wrapper"><div class="posts"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle"><a href="/docs/blog/2018/09/17/preview-060.html">Preview: StreamPipes release 0.60.0</a></h1><p class="post-meta">September 17, 2018</p><div class="authorBlock"><p class="post-authorName"><a href="http://twitter.com/dominikjriemer" target="_blank" rel="noreferrer noopener">Dominik Rie [...]
 <br></p>
 <p>It's been a while since our last blog post. However, in the background we are working hard to release the next version of StreamPipes which is currently in the final phase.
 In this post, we'd like to give you a preview of the upcoming StreamPipes version 0.60.0, which brings many new features and improvements.</p>
-</span></div><div class="read-more"><a class="button" href="/docs/blog/2018/09/17/preview-060">Read More</a></div></article></div><div class="post"><header class="postHeader"><h1 class="postHeaderTitle"><a href="/docs/blog/2018/06/18/how-to-understand-your-machine-data">How to understand your machine data?</a></h1><p class="post-meta">June 18, 2018</p><div class="authorBlock"><p class="post-authorName"><a href="http://twitter.com/philipp10der" target="_blank" rel="noreferrer noopener">Ph [...]
+</span></div><div class="read-more"><a class="button" href="/docs/blog/2018/09/17/preview-060.html">Read More</a></div></article></div><div class="post"><header class="postHeader"><h1 class="postHeaderTitle"><a href="/docs/blog/2018/06/18/how-to-understand-your-machine-data.html">How to understand your machine data?</a></h1><p class="post-meta">June 18, 2018</p><div class="authorBlock"><p class="post-authorName"><a href="http://twitter.com/philipp10der" target="_blank" rel="noreferrer no [...]
 <br></p>
 <p>Data is the new oil. Probably everybody of you has heard or read this sentence before.
 It is often stated how important data and data understanding is for companies today.
 But what does this actually mean?  How does the data look like that is produced by your machines and systems?
 And how can we solve the big challenge to turn this raw data into insights that can be understood by humans?</p>
-</span></div><div class="read-more"><a class="button" href="/docs/blog/2018/06/18/how-to-understand-your-machine-data">Read More</a></div></article></div><div class="post"><header class="postHeader"><h1 class="postHeaderTitle"><a href="/docs/blog/2018/06/14/welcome">Welcome to StreamPipes!</a></h1><p class="post-meta">June 14, 2018</p><div class="authorBlock"><p class="post-authorName"><a href="http://twitter.com/dominikjriemer" target="_blank" rel="noreferrer noopener">Dominik Riemer</a [...]
+</span></div><div class="read-more"><a class="button" href="/docs/blog/2018/06/18/how-to-understand-your-machine-data.html">Read More</a></div></article></div><div class="post"><header class="postHeader"><h1 class="postHeaderTitle"><a href="/docs/blog/2018/06/14/welcome.html">Welcome to StreamPipes!</a></h1><p class="post-meta">June 14, 2018</p><div class="authorBlock"><p class="post-authorName"><a href="http://twitter.com/dominikjriemer" target="_blank" rel="noreferrer noopener">Dominik [...]
 <p>Stay tuned!</p>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev" href="/docs/blog/">← Prev</a></div></div></div></div></div><div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/docs/" class="nav-home"><img src="/docs/img/sp-logo-color.png" alt="Apache StreamPipes" width="66"/></a><div><h5>Docs</h5><a href="/docs/docs/user-guide-introduction">User Guide</a><a href="/docs/docs/dev-guide-introduction">Developer Guide</a><a href="/docs/docs/faq-common-pr [...]
                 document.addEventListener('keyup', function(e) {
diff --git a/docs/css/main.css b/docs/css/main.css
index f1979b6..368235d 100644
--- a/docs/css/main.css
+++ b/docs/css/main.css
@@ -1 +1 @@
-a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,video{border:0;font:inherit;font-size:100%;margin:0;padding:0;vertical-align:baseline}b [...]
\ No newline at end of file
+a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,video{border:0;font:inherit;font-size:100%;margin:0;padding:0;vertical-align:baseline}b [...]
\ No newline at end of file
diff --git a/docs/css/prism.css b/docs/css/prism.css
index d783edb..2a84ffb 100644
--- a/docs/css/prism.css
+++ b/docs/css/prism.css
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2017-present, Facebook, Inc.
+ * Copyright (c) Facebook, Inc. and its affiliates.
  *
  * This source code is licensed under the MIT license found in the
  * LICENSE file in the root directory of this source tree.
diff --git a/docs/docs/0.55.2-pre-asf/dev-guide-architecture.html b/docs/docs/0.55.2-pre-asf/dev-guide-architecture.html
index 8ff4a19..60eea4f 100644
--- a/docs/docs/0.55.2-pre-asf/dev-guide-architecture.html
+++ b/docs/docs/0.55.2-pre-asf/dev-guide-architecture.html
@@ -1,6 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Architecture · Apache StreamPipes</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;The following picture illustrates the high-level architecture of StreamPipes:&lt;/p&gt;
-"/><meta name="docsearch:version" content="0.55.2-pre-asf"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Architecture · Apache StreamPipes"/><meta property="og:type" content="website"/><meta property="og:url" content="https://streampipes.apache.org/docs/"/><meta property="og:description" content="&lt;p&gt;The following picture illustrates the high-level architecture of StreamPipes:&lt;/p&gt;
-"/><meta property="og:image" content="https://streampipes.apache.org/docs/img/favicon.png"/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://streampipes.apache.org/docs/img/docusaurus.png"/><link rel="shortcut icon" href="/docs/img/favicon.png"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.css"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/atom-one-dark.min.css"/><lin [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Architecture · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="The following picture illustrates the high-level architecture of StreamPipes:"/><meta name="docsearch:version" content="0.55.2-pre-asf"/><meta name="docsearch:language" content="en [...]
               window.dataLayer = window.dataLayer || [];
               function gtag(){dataLayer.push(arguments); }
               gtag('js', new Date());
@@ -11,7 +9,7 @@
             {"zIndex":100}
           )
         });
-        </script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions"><h3>0.55.2-pre-asf</h3></a><div class="navigationWrapper navigationSli [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.55.2-pre-asf</ [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -39,10 +37,16 @@
               createToggler('#navToggler', '#docsNav', 'docsSliderActive');
               createToggler('#tocToggler', 'body', 'tocActive');
 
-              const headings = document.querySelector('.toc-headings');
+              var headings = document.querySelector('.toc-headings');
               headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
                 }
               }, false);
 
@@ -61,7 +65,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle">Architecture</h1></header><article><div><span><p>The following picture illustrates the high-level architecture of StreamPipes:</p>
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">Architecture</h1></header><article><div><span><p>The following picture illustrates the high-level architecture of StreamPipes:</p>
 <p><img src="/docs/img/architecture/high-level-architecture.png" alt="High Level Architecture of StreamPipes"></p>
 <p>Users mainly interact (besides other UI components) with the <em>Pipeline Editor</em> to create stream processing pipelines based on data streams, data processors and data sinks.
 These reusable pipeline elements are provided by self-contained <em>pipeline element containers</em>, each of them having a semantic description that specifies their characteristics (e.g., input, output and required user input for data processors).
@@ -100,7 +104,7 @@ In addition, required configuration parameters users can define during the pipel
 <p>Once new pipeline elements are imported into StreamPipes, we store all information provided by the description layer in a central repository and use this information to guide useres through the pipeline definition process.</p>
 <p>Don't worry - you will never be required to model RDF by yourself.
 Our SDK provides convenience methods that help creating the description automatically.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.55.2-pre-asf/dev-guide-introduction"><span class="arrow-prev">← </span><span>Introduction</span></a><a class="docs-next button" href="/docs/docs/0.55.2-pre-asf/dev-guide-development-environment"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#semantic-description">Semantic description</a></li></ul></n [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.55.2-pre-asf/dev-guide-introduction.html"><span class="arrow-prev">← </span><span>Introduction</span></a><a class="docs-next button" href="/docs/docs/0.55.2-pre-asf/dev-guide-development-environment.html"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#semantic-description">Semantic description</a></l [...]
                 document.addEventListener('keyup', function(e) {
                   if (e.target !== document.body) {
                     return;
diff --git a/docs/docs/0.55.2-pre-asf/dev-guide-architecture/index.html b/docs/docs/0.55.2-pre-asf/dev-guide-architecture/index.html
deleted file mode 100644
index 8ff4a19..0000000
--- a/docs/docs/0.55.2-pre-asf/dev-guide-architecture/index.html
+++ /dev/null
@@ -1,122 +0,0 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Architecture · Apache StreamPipes</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;The following picture illustrates the high-level architecture of StreamPipes:&lt;/p&gt;
-"/><meta name="docsearch:version" content="0.55.2-pre-asf"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Architecture · Apache StreamPipes"/><meta property="og:type" content="website"/><meta property="og:url" content="https://streampipes.apache.org/docs/"/><meta property="og:description" content="&lt;p&gt;The following picture illustrates the high-level architecture of StreamPipes:&lt;/p&gt;
-"/><meta property="og:image" content="https://streampipes.apache.org/docs/img/favicon.png"/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://streampipes.apache.org/docs/img/docusaurus.png"/><link rel="shortcut icon" href="/docs/img/favicon.png"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.css"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/atom-one-dark.min.css"/><lin [...]
-              window.dataLayer = window.dataLayer || [];
-              function gtag(){dataLayer.push(arguments); }
-              gtag('js', new Date());
-              gtag('config', 'UA-154181944-1');
-            </script><link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons"/><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick.min.css"/><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick-theme.min.css"/><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto"/><link rel="stylesheet" href="/docs/css/admonition.css"/><link rel="stylesheet" href="/docs [...]
-        document.addEventListener('DOMContentLoaded', function() {
-          addBackToTop(
-            {"zIndex":100}
-          )
-        });
-        </script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions"><h3>0.55.2-pre-asf</h3></a><div class="navigationWrapper navigationSli [...]
-            var coll = document.getElementsByClassName('collapsible');
-            var checkActiveCategory = true;
-            for (var i = 0; i < coll.length; i++) {
-              var links = coll[i].nextElementSibling.getElementsByTagName('*');
-              if (checkActiveCategory){
-                for (var j = 0; j < links.length; j++) {
-                  if (links[j].classList.contains('navListItemActive')){
-                    coll[i].nextElementSibling.classList.toggle('hide');
-                    coll[i].childNodes[1].classList.toggle('rotate');
-                    checkActiveCategory = false;
-                    break;
-                  }
-                }
-              }
-
-              coll[i].addEventListener('click', function() {
-                var arrow = this.childNodes[1];
-                arrow.classList.toggle('rotate');
-                var content = this.nextElementSibling;
-                content.classList.toggle('hide');
-              });
-            }
-
-            document.addEventListener('DOMContentLoaded', function() {
-              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
-              createToggler('#tocToggler', 'body', 'tocActive');
-
-              const headings = document.querySelector('.toc-headings');
-              headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
-                }
-              }, false);
-
-              function createToggler(togglerSelector, targetSelector, className) {
-                var toggler = document.querySelector(togglerSelector);
-                var target = document.querySelector(targetSelector);
-
-                if (!toggler) {
-                  return;
-                }
-
-                toggler.onclick = function(event) {
-                  event.preventDefault();
-
-                  target.classList.toggle(className);
-                };
-              }
-            });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle">Architecture</h1></header><article><div><span><p>The following picture illustrates the high-level architecture of StreamPipes:</p>
-<p><img src="/docs/img/architecture/high-level-architecture.png" alt="High Level Architecture of StreamPipes"></p>
-<p>Users mainly interact (besides other UI components) with the <em>Pipeline Editor</em> to create stream processing pipelines based on data streams, data processors and data sinks.
-These reusable pipeline elements are provided by self-contained <em>pipeline element containers</em>, each of them having a semantic description that specifies their characteristics (e.g., input, output and required user input for data processors).
-Each pipeline element container has a REST endpoint that provides these characteristics as a JSON-LD document.</p>
-<p>Pipeline element containers are built using one of several provided <em>wrappers</em>.
-Wrappers abstract from the underlying runtime stream processing framework.
-Currently, the StreamPipes framework provides wrappers for Apache Flink, Esper and algorithms running directly on the JVM.</p>
-<p>The <em>pipeline manager</em> manages the definition and execution of pipelines.
-When creating pipelines, the manager continuously matches the pipeline against its semantic description and provides user guidance in form of recommendations.
-Once a pipeline is started, the pipeline manager invokes the corresponding pipeline element containers.
-The container prepares the actual execution logic and submits the program to the underlying execution engine, e.g., the program is deployed in the Apache Flink cluster.</p>
-<p>Pipeline elements exchange data using one or more message brokers and protocols (e.g., Kafka or MQTT).
-StreamPipes does not rely on a specific broker or message format, but negotiates suitable brokers based on the capabilities of connected pipeline elements.</p>
-<p>Thus, StreamPipes provides a higher-level abstraction of existing stream processing technology by leveraging domain experts to create streaming analytics pipelines in a self-service manner.</p>
-<h2><a class="anchor" aria-hidden="true" id="semantic-description"></a><a href="#semantic-description" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1 [...]
-<p>Pipeline elements in StreamPipes are meant to be resuable:</p>
-<ul>
-<li>Data processors and data sink are generic (or domain-specific) elements that express their requirements and are able to operate on any stream that satisfies these requirements.</li>
-<li>Data processors and data sinks can be manually configured by offering possible configuration parameters which users can individually define when creating pipelines.</li>
-<li>Data streams can be connected to any data processor or data sink that matches the capabilities of the stream.</li>
-</ul>
-<p>When users create pipelines by connecting a data stream with a data processor (or further processors), the pipeline manager <em>matches</em> the input stream of a data processor against its requirements.
-This matching is performed based on the _semantic description of each element.
-The semantic description (technically an RDF graph serialized as JSON-LD) can be best understood by seeing it as an envelope around a pipeline element.
-It only provides metadata information, while we don't rely on any RDF at runtime for exchanging events between pipeline elements.
-While RDF-based metadata ensures good understanding of stream capabilities, lightweight event formats at runtime (such as JSON or Thrift) ensure fast processing of events.</p>
-<p>Let's look at an example stream that produces a continuous stream of vehicle positions as illustrated below:</p>
-<p><img src="/docs/img/architecture/semantic-description-stream.png" alt="Semantic description of data streams"></p>
-<p>While the runtime layer produces plain JSON by submitting actual values of the position and the vehicle's plate number, the description layer describes various characteristics of the stream:
-For instance, it defines the event schema (including, besides the data type and the runtime name of each property also a more fine-grained meaning of the property), quality aspects (e.g., the measurement unit of a property or the frequency) and the grounding (e.g., the format used at runtime and the communication protocol used for transmitting events).</p>
-<p>The same accounts for data processors and data sinks:</p>
-<p><img src="/docs/img/architecture/semantic-description-processor.png" alt="Semantic description of data processor"></p>
-<p>Data processors (and, with some differences, data sinks) are annotated by providing metadata information on their required input and output.
-For instance, we can define minimum schema requirements (such as geospatial coordinates that need to be provided by any stream that is connected to a processor), but also required (minimum or maximum) quality levels and supported transport protocols and formats.
-In addition, required configuration parameters users can define during the pipeline definition process are provided by the semantic description.</p>
-<p>Once new pipeline elements are imported into StreamPipes, we store all information provided by the description layer in a central repository and use this information to guide useres through the pipeline definition process.</p>
-<p>Don't worry - you will never be required to model RDF by yourself.
-Our SDK provides convenience methods that help creating the description automatically.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.55.2-pre-asf/dev-guide-introduction"><span class="arrow-prev">← </span><span>Introduction</span></a><a class="docs-next button" href="/docs/docs/0.55.2-pre-asf/dev-guide-development-environment"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#semantic-description">Semantic description</a></li></ul></n [...]
-                document.addEventListener('keyup', function(e) {
-                  if (e.target !== document.body) {
-                    return;
-                  }
-                  // keyCode for '/' (slash)
-                  if (e.keyCode === 191) {
-                    const search = document.getElementById('search_input_react');
-                    search && search.focus();
-                  }
-                });
-              </script><script>
-              var search = docsearch({
-                
-                apiKey: '0fedc89dddf2810657708b178e56ef02',
-                indexName: 'streampipes',
-                inputSelector: '#search_input_react',
-                algoliaOptions: {}
-              });
-            </script></body></html>
\ No newline at end of file
diff --git a/docs/docs/0.55.2-pre-asf/dev-guide-development-environment.html b/docs/docs/0.55.2-pre-asf/dev-guide-development-environment.html
index bf2eb40..606dabe 100644
--- a/docs/docs/0.55.2-pre-asf/dev-guide-development-environment.html
+++ b/docs/docs/0.55.2-pre-asf/dev-guide-development-environment.html
@@ -1,6 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Development Environment · Apache StreamPipes</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;In this section, we describe our recommended minimum setup for locally setting up a development instance of StreamPipes needed to develop, run and test new pipeline elements.&lt;/p&gt;
-"/><meta name="docsearch:version" content="0.55.2-pre-asf"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Development Environment · Apache StreamPipes"/><meta property="og:type" content="website"/><meta property="og:url" content="https://streampipes.apache.org/docs/"/><meta property="og:description" content="&lt;p&gt;In this section, we describe our recommended minimum setup for locally setting up a development instance of StreamPipes needed to develop, [...]
-"/><meta property="og:image" content="https://streampipes.apache.org/docs/img/favicon.png"/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://streampipes.apache.org/docs/img/docusaurus.png"/><link rel="shortcut icon" href="/docs/img/favicon.png"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.css"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/atom-one-dark.min.css"/><lin [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Development Environment · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="In this section, we describe our recommended minimum setup for locally setting up a development instance of StreamPipes needed to develop, run and test new pipeline elem [...]
               window.dataLayer = window.dataLayer || [];
               function gtag(){dataLayer.push(arguments); }
               gtag('js', new Date());
@@ -11,7 +9,7 @@
             {"zIndex":100}
           )
         });
-        </script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions"><h3>0.55.2-pre-asf</h3></a><div class="navigationWrapper navigationSli [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.55.2-pre-asf</ [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -39,10 +37,16 @@
               createToggler('#navToggler', '#docsNav', 'docsSliderActive');
               createToggler('#tocToggler', 'body', 'tocActive');
 
-              const headings = document.querySelector('.toc-headings');
+              var headings = document.querySelector('.toc-headings');
               headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
                 }
               }, false);
 
@@ -61,8 +65,8 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle">Development Environment</h1></header><article><div><span><p>In this section, we describe our recommended minimum setup for locally setting up a development instance of StreamPipes needed to develop, run and test new pipeline elements.</p>
-<h2><a class="anchor" aria-hidden="true" id="ide-required-dev-tools"></a><a href="#ide-required-dev-tools" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0 [...]
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">Development Environment</h1></header><article><div><span><p>In this section, we describe our recommended minimum setup for locally setting up a development instance of StreamPipes needed to develop, run and test new pipeline elements.</p>
+<h2><a class="anchor" aria-hidden="true" id="ide--required-dev-tools"></a><a href="#ide--required-dev-tools" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 [...]
 <p>StreamPipes does not have specific requirements on the IDE - so feel free to choose the IDE of your choice.
 The only requirements in terms of development tools are that you have Java 8 and Maven installed.</p>
 <h2><a class="anchor" aria-hidden="true" id="docker-based-local-streampipes-instance"></a><a href="#docker-based-local-streampipes-instance" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2  [...]
@@ -255,7 +259,7 @@ This sample project can be used to define new data processors and data sinks for
 <li><code>streampipes-wrapper-standalone</code> should be used in case you plan to connect a new data processor or data sink that does not use an external processing engine. Events are directly processed in a single-host fashion.</li>
 </ul>
 <p>Finally, this dependency will provide abstract classes to define data sources and streams.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.55.2-pre-asf/dev-guide-architecture"><span class="arrow-prev">← </span><span>dev-guide-architecture</span></a><a class="docs-next button" href="/docs/docs/0.55.2-pre-asf/dev-guide-tutorial-sources"><span>dev-guide-tutorial-sources</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#ide-required-dev-tools">IDE &amp;  [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.55.2-pre-asf/dev-guide-architecture.html"><span class="arrow-prev">← </span><span>dev-guide-architecture</span></a><a class="docs-next button" href="/docs/docs/0.55.2-pre-asf/dev-guide-tutorial-sources.html"><span>dev-guide-tutorial-sources</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#ide--required-dev-tools" [...]
                 document.addEventListener('keyup', function(e) {
                   if (e.target !== document.body) {
                     return;
diff --git a/docs/docs/0.55.2-pre-asf/dev-guide-development-environment/index.html b/docs/docs/0.55.2-pre-asf/dev-guide-development-environment/index.html
deleted file mode 100644
index bf2eb40..0000000
--- a/docs/docs/0.55.2-pre-asf/dev-guide-development-environment/index.html
+++ /dev/null
@@ -1,277 +0,0 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Development Environment · Apache StreamPipes</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;In this section, we describe our recommended minimum setup for locally setting up a development instance of StreamPipes needed to develop, run and test new pipeline elements.&lt;/p&gt;
-"/><meta name="docsearch:version" content="0.55.2-pre-asf"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Development Environment · Apache StreamPipes"/><meta property="og:type" content="website"/><meta property="og:url" content="https://streampipes.apache.org/docs/"/><meta property="og:description" content="&lt;p&gt;In this section, we describe our recommended minimum setup for locally setting up a development instance of StreamPipes needed to develop, [...]
-"/><meta property="og:image" content="https://streampipes.apache.org/docs/img/favicon.png"/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://streampipes.apache.org/docs/img/docusaurus.png"/><link rel="shortcut icon" href="/docs/img/favicon.png"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.css"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/atom-one-dark.min.css"/><lin [...]
-              window.dataLayer = window.dataLayer || [];
-              function gtag(){dataLayer.push(arguments); }
-              gtag('js', new Date());
-              gtag('config', 'UA-154181944-1');
-            </script><link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons"/><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick.min.css"/><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick-theme.min.css"/><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto"/><link rel="stylesheet" href="/docs/css/admonition.css"/><link rel="stylesheet" href="/docs [...]
-        document.addEventListener('DOMContentLoaded', function() {
-          addBackToTop(
-            {"zIndex":100}
-          )
-        });
-        </script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions"><h3>0.55.2-pre-asf</h3></a><div class="navigationWrapper navigationSli [...]
-            var coll = document.getElementsByClassName('collapsible');
-            var checkActiveCategory = true;
-            for (var i = 0; i < coll.length; i++) {
-              var links = coll[i].nextElementSibling.getElementsByTagName('*');
-              if (checkActiveCategory){
-                for (var j = 0; j < links.length; j++) {
-                  if (links[j].classList.contains('navListItemActive')){
-                    coll[i].nextElementSibling.classList.toggle('hide');
-                    coll[i].childNodes[1].classList.toggle('rotate');
-                    checkActiveCategory = false;
-                    break;
-                  }
-                }
-              }
-
-              coll[i].addEventListener('click', function() {
-                var arrow = this.childNodes[1];
-                arrow.classList.toggle('rotate');
-                var content = this.nextElementSibling;
-                content.classList.toggle('hide');
-              });
-            }
-
-            document.addEventListener('DOMContentLoaded', function() {
-              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
-              createToggler('#tocToggler', 'body', 'tocActive');
-
-              const headings = document.querySelector('.toc-headings');
-              headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
-                }
-              }, false);
-
-              function createToggler(togglerSelector, targetSelector, className) {
-                var toggler = document.querySelector(togglerSelector);
-                var target = document.querySelector(targetSelector);
-
-                if (!toggler) {
-                  return;
-                }
-
-                toggler.onclick = function(event) {
-                  event.preventDefault();
-
-                  target.classList.toggle(className);
-                };
-              }
-            });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle">Development Environment</h1></header><article><div><span><p>In this section, we describe our recommended minimum setup for locally setting up a development instance of StreamPipes needed to develop, run and test new pipeline elements.</p>
-<h2><a class="anchor" aria-hidden="true" id="ide-required-dev-tools"></a><a href="#ide-required-dev-tools" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0 [...]
-<p>StreamPipes does not have specific requirements on the IDE - so feel free to choose the IDE of your choice.
-The only requirements in terms of development tools are that you have Java 8 and Maven installed.</p>
-<h2><a class="anchor" aria-hidden="true" id="docker-based-local-streampipes-instance"></a><a href="#docker-based-local-streampipes-instance" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2  [...]
-<p>In order to quickly test developed pipeline elements without needing to install all services required by StreamPipes, we provide a lightweight docker-compose file for development purposes.
-If you have Docker installed on your development machine, simply run the following docker-compose file, which has been successfully tested on both Linux and Windows-based operating systems.</p>
-<h3><a class="anchor" aria-hidden="true" id="docker-compose-file"></a><a href="#docker-compose-file" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.2 [...]
-<p><details class="info">
-<summary>docker-compose.yml</summary></p>
-<h4><a class="anchor" aria-hidden="true" id="docker-compose"></a><a href="#docker-compose" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
-<pre><code class="hljs css language-yaml"><span class="hljs-attr">version:</span> <span class="hljs-string">"2"</span>
-<span class="hljs-attr">services:</span>
-  <span class="hljs-attr">consul:</span>
-    <span class="hljs-attr">image:</span> <span class="hljs-string">consul</span>
-    <span class="hljs-attr">environment:</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">"CONSUL_LOCAL_CONFIG={\"disable_update_check\": true}"</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">"CONSUL_BIND_INTERFACE=eth0"</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">"CONSUL_HTTP_ADDR=0.0.0.0"</span>
-    <span class="hljs-attr">entrypoint:</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">consul</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">agent</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">-server</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">-bootstrap-expect=1</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">-data-dir=/consul/data</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">-node=consul-one</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">-bind={{</span> <span class="hljs-string">GetInterfaceIP</span> <span class="hljs-string">"eth0"</span> <span class="hljs-string">}}</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">-client=0.0.0.0</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">-enable-script-checks=true</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">-ui</span>
-    <span class="hljs-attr">volumes:</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">./config/consul:/consul/data</span>
-    <span class="hljs-attr">ports:</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">"8500:8500"</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">"8600:8600"</span>
-    <span class="hljs-attr">networks:</span>
-      <span class="hljs-attr">spnet:</span>
-        <span class="hljs-attr">ipv4_address:</span> <span class="hljs-number">172.30</span><span class="hljs-number">.0</span><span class="hljs-number">.9</span>
-
-  <span class="hljs-attr">zookeeper:</span>
-    <span class="hljs-attr">image:</span> <span class="hljs-string">wurstmeister/zookeeper</span>
-    <span class="hljs-attr">ports:</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">"2181:2181"</span>
-    <span class="hljs-attr">networks:</span>
-      <span class="hljs-attr">spnet:</span>
-
-  <span class="hljs-attr">kafka:</span>
-    <span class="hljs-attr">image:</span> <span class="hljs-string">wurstmeister/kafka:0.10.0.1</span>
-    <span class="hljs-attr">ports:</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">"9092:9092"</span>
-    <span class="hljs-attr">environment:</span>
-      <span class="hljs-attr">KAFKA_ADVERTISED_HOST_NAME:</span> <span class="hljs-comment">###TODO ADD HOSTNAME HERE ###</span>
-      <span class="hljs-attr">KAFKA_ZOOKEEPER_CONNECT:</span> <span class="hljs-string">zookeeper:2181</span>
-    <span class="hljs-attr">volumes:</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">/var/run/docker.sock:/var/run/docker.sock</span>
-    <span class="hljs-attr">networks:</span>
-      <span class="hljs-attr">spnet:</span>
-
-  <span class="hljs-attr">backend:</span>
-    <span class="hljs-attr">image:</span> <span class="hljs-string">ipe-wim-gitlab.fzi.de:5000/streampipes/ce/backend:SNAPSHOT</span>
-    <span class="hljs-attr">depends_on:</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">"consul"</span>
-    <span class="hljs-attr">ports:</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">"8030:8030"</span>
-    <span class="hljs-attr">volumes:</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">./config:/root/.streampipes</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">./config/aduna:/root/.aduna</span>
-    <span class="hljs-attr">networks:</span>
-      <span class="hljs-attr">spnet:</span>
-
-  <span class="hljs-attr">activemq:</span>
-    <span class="hljs-attr">image:</span> <span class="hljs-string">ipe-wim-gitlab.fzi.de:5000/streampipes/services/activemq</span>
-    <span class="hljs-attr">ports:</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">"61616:61616"</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">"61614:61614"</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">"8161:8161"</span>
-    <span class="hljs-attr">networks:</span>
-      <span class="hljs-attr">spnet:</span>
-
-  <span class="hljs-attr">couchdb:</span>
-    <span class="hljs-attr">image:</span> <span class="hljs-string">couchdb</span>
-    <span class="hljs-attr">ports:</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">"5984:5984"</span>
-    <span class="hljs-attr">volumes:</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">./config/couchdb/data:/usr/local/var/lib/couchdb</span>
-    <span class="hljs-attr">networks:</span>
-      <span class="hljs-attr">spnet:</span>
-
-  <span class="hljs-attr">jobmanager:</span>
-    <span class="hljs-attr">image:</span> <span class="hljs-string">ipe-wim-gitlab.fzi.de:5000/streampipes/services/flink</span>
-    <span class="hljs-attr">ports:</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">"8081:8099"</span>
-    <span class="hljs-attr">command:</span> <span class="hljs-string">jobmanager</span>
-    <span class="hljs-attr">networks:</span>
-      <span class="hljs-attr">spnet:</span>
-
-  <span class="hljs-attr">taskmanager:</span>
-    <span class="hljs-attr">image:</span> <span class="hljs-string">ipe-wim-gitlab.fzi.de:5000/streampipes/services/flink</span>
-    <span class="hljs-attr">command:</span> <span class="hljs-string">taskmanager</span>
-    <span class="hljs-attr">environment:</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">FLINK_NUM_SLOTS=20</span>
-    <span class="hljs-attr">networks:</span>
-      <span class="hljs-attr">spnet:</span>
-
-  <span class="hljs-attr">nginx:</span>
-    <span class="hljs-attr">image:</span> <span class="hljs-string">ipe-wim-gitlab.fzi.de:5000/streampipes/ui/dev</span>
-    <span class="hljs-attr">ports:</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">"80:80"</span>
-    <span class="hljs-attr">depends_on:</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">backend</span>
-    <span class="hljs-attr">networks:</span>
-      <span class="hljs-attr">spnet:</span>
-
-<span class="hljs-attr">networks:</span>
-  <span class="hljs-attr">spnet:</span>
-    <span class="hljs-attr">driver:</span> <span class="hljs-string">bridge</span>
-    <span class="hljs-attr">ipam:</span>
-     <span class="hljs-attr">config:</span>
-       <span class="hljs-bullet">-</span> <span class="hljs-attr">subnet:</span> <span class="hljs-number">172.30</span><span class="hljs-number">.0</span><span class="hljs-number">.0</span><span class="hljs-string">/16</span>
-         <span class="hljs-attr">gateway:</span> <span class="hljs-number">172.30</span><span class="hljs-number">.0</span><span class="hljs-number">.1</span>
-</code></pre>
-<p></details></p>
-<p>Do not forget to replace the ##Add HOSTNAME## variable in the compose file with the hostname of your machine!</p>
-<h2><a class="anchor" aria-hidden="true" id="starter-projects"></a><a href="#starter-projects" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
-<p>Now, once you've started the development instance, you are ready to develop your very first pipeline element.
-Instead of starting from scratch, we recommend using either one of our sample projects as a starting point or one of our provided maven archetypes:</p>
-<h3><a class="anchor" aria-hidden="true" id="sample-projects"></a><a href="#sample-projects" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5  [...]
-<p>We provide basic skeletons for defining data sources, data processors and data sinks in form of sample projects.
-These are available on Github as defined below. Just clone the project and change the corresponding groupId and artifactId as you like.</p>
-<ul>
-<li><p>templates-sources (<a href="https://github.com/streampipes/templates-sources">https://github.com/streampipes/templates-sources</a>)
-This sample project can be used to connect new data streams with StreamPipes.</p></li>
-<li><p>templates-flink (<a href="https://github.com/streampipes/templates-flink">https://github.com/streampipes/templates-flink</a>)
-This sample project can be used to define new data processors and data sinks for StreamPipes that are executed in an Apache Flink cluster.</p></li>
-</ul>
-<h3><a class="anchor" aria-hidden="true" id="maven-archetypes"></a><a href="#maven-archetypes" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
-<p>(coming soon)</p>
-<h3><a class="anchor" aria-hidden="true" id="starting-from-scratch"></a><a href="#starting-from-scratch" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2 [...]
-<p>In order to develop a new pipeline element from scratch, you need to create a new Maven project and import the following dependencies:</p>
-<p><details class="info">
-<summary>pom.xml</summary></p>
-<pre><code class="hljs"><span class="hljs-tag">&lt;<span class="hljs-name">dependency</span>&gt;</span>
-    <span class="hljs-tag">&lt;<span class="hljs-name">groupId</span>&gt;</span>org.streampipes<span class="hljs-tag">&lt;/<span class="hljs-name">groupId</span>&gt;</span>
-    <span class="hljs-tag">&lt;<span class="hljs-name">artifactId</span>&gt;</span>streampipes-container-standalone<span class="hljs-tag">&lt;/<span class="hljs-name">artifactId</span>&gt;</span>
-    <span class="hljs-tag">&lt;<span class="hljs-name">version</span>&gt;</span>0.50.0<span class="hljs-tag">&lt;/<span class="hljs-name">version</span>&gt;</span>
-<span class="hljs-tag">&lt;/<span class="hljs-name">dependency</span>&gt;</span>
-
-<span class="hljs-tag">&lt;<span class="hljs-name">dependency</span>&gt;</span>
-    <span class="hljs-tag">&lt;<span class="hljs-name">groupId</span>&gt;</span>org.streampipes<span class="hljs-tag">&lt;/<span class="hljs-name">groupId</span>&gt;</span>
-    <span class="hljs-tag">&lt;<span class="hljs-name">artifactId</span>&gt;</span>streampipes-sdk<span class="hljs-tag">&lt;/<span class="hljs-name">artifactId</span>&gt;</span>
-    <span class="hljs-tag">&lt;<span class="hljs-name">version</span>&gt;</span>0.50.0<span class="hljs-tag">&lt;/<span class="hljs-name">version</span>&gt;</span>
-<span class="hljs-tag">&lt;/<span class="hljs-name">dependency</span>&gt;</span>
-
-<span class="hljs-tag">&lt;<span class="hljs-name">dependency</span>&gt;</span>
-    <span class="hljs-tag">&lt;<span class="hljs-name">groupId</span>&gt;</span>org.streampipes<span class="hljs-tag">&lt;/<span class="hljs-name">groupId</span>&gt;</span>
-    <span class="hljs-tag">&lt;<span class="hljs-name">artifactId</span>&gt;</span>streampipes-vocabulary<span class="hljs-tag">&lt;/<span class="hljs-name">artifactId</span>&gt;</span>
-    <span class="hljs-tag">&lt;<span class="hljs-name">version</span>&gt;</span>0.50.0<span class="hljs-tag">&lt;/<span class="hljs-name">version</span>&gt;</span>
-<span class="hljs-tag">&lt;/<span class="hljs-name">dependency</span>&gt;</span>
-
-<span class="hljs-comment">&lt;!-- This dependency needs to be imported if you plan to connect a new data stream with StreamPipes --&gt;</span>
-<span class="hljs-tag">&lt;<span class="hljs-name">dependency</span>&gt;</span>
-    <span class="hljs-tag">&lt;<span class="hljs-name">groupId</span>&gt;</span>org.streampipes<span class="hljs-tag">&lt;/<span class="hljs-name">groupId</span>&gt;</span>
-    <span class="hljs-tag">&lt;<span class="hljs-name">artifactId</span>&gt;</span>streampipes-sources<span class="hljs-tag">&lt;/<span class="hljs-name">artifactId</span>&gt;</span>
-    <span class="hljs-tag">&lt;<span class="hljs-name">version</span>&gt;</span>0.50.0<span class="hljs-tag">&lt;/<span class="hljs-name">version</span>&gt;</span>
-<span class="hljs-tag">&lt;/<span class="hljs-name">dependency</span>&gt;</span>
-
-<span class="hljs-comment">&lt;!-- This dependency needs to be imported if you plan to develop a new data processor or data sink using the Apache Flink wrapper --&gt;</span>
-<span class="hljs-tag">&lt;<span class="hljs-name">dependency</span>&gt;</span>
-    <span class="hljs-tag">&lt;<span class="hljs-name">groupId</span>&gt;</span>org.streampipes<span class="hljs-tag">&lt;/<span class="hljs-name">groupId</span>&gt;</span>
-    <span class="hljs-tag">&lt;<span class="hljs-name">artifactId</span>&gt;</span>streampipes-wrapper-flink<span class="hljs-tag">&lt;/<span class="hljs-name">artifactId</span>&gt;</span>
-    <span class="hljs-tag">&lt;<span class="hljs-name">version</span>&gt;</span>0.50.0<span class="hljs-tag">&lt;/<span class="hljs-name">version</span>&gt;</span>
-<span class="hljs-tag">&lt;/<span class="hljs-name">dependency</span>&gt;</span>
-
-<span class="hljs-comment">&lt;!-- This dependency needs to be imported if you plan to develop a new data processor or data sink which is running directly on the JVM --&gt;</span>
-<span class="hljs-tag">&lt;<span class="hljs-name">dependency</span>&gt;</span>
-    <span class="hljs-tag">&lt;<span class="hljs-name">groupId</span>&gt;</span>org.streampipes<span class="hljs-tag">&lt;/<span class="hljs-name">groupId</span>&gt;</span>
-    <span class="hljs-tag">&lt;<span class="hljs-name">artifactId</span>&gt;</span>streampipes-wrapper-standalone<span class="hljs-tag">&lt;/<span class="hljs-name">artifactId</span>&gt;</span>
-    <span class="hljs-tag">&lt;<span class="hljs-name">version</span>&gt;</span>0.50.0<span class="hljs-tag">&lt;/<span class="hljs-name">version</span>&gt;</span>
-<span class="hljs-tag">&lt;/<span class="hljs-name">dependency</span>&gt;</span>
-</code></pre>
-<p></details></p>
-<p>The following three dependencies are mandatory:</p>
-<ul>
-<li><code>streampipes-container-standalone</code>, defines that we are going to create a new pipeline element where the description will be accessible through an embedded web server.</li>
-<li><code>streampipes-sdk</code> imports the SDK which provides many convencience functions to create new pipeline elements.</li>
-<li><code>streampipes-vocabulary</code> imports various RDF vocabularies which are used by the SDK to auto-generate the semantic description of pipeline elements.</li>
-</ul>
-<p>The following three dependencies might be optional depending on the pipeline element type you plan to create:</p>
-<ul>
-<li><code>streampipes-sources</code> should be used in case you plan to connect a new data stream with StreamPipes.</li>
-<li><code>streampipes-wrapper-flink</code> should be used in case you plan to connect a new data processor or data sink that uses Apache Flink for processing events at runtime.</li>
-<li><code>streampipes-wrapper-standalone</code> should be used in case you plan to connect a new data processor or data sink that does not use an external processing engine. Events are directly processed in a single-host fashion.</li>
-</ul>
-<p>Finally, this dependency will provide abstract classes to define data sources and streams.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.55.2-pre-asf/dev-guide-architecture"><span class="arrow-prev">← </span><span>dev-guide-architecture</span></a><a class="docs-next button" href="/docs/docs/0.55.2-pre-asf/dev-guide-tutorial-sources"><span>dev-guide-tutorial-sources</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#ide-required-dev-tools">IDE &amp;  [...]
-                document.addEventListener('keyup', function(e) {
-                  if (e.target !== document.body) {
-                    return;
-                  }
-                  // keyCode for '/' (slash)
-                  if (e.keyCode === 191) {
-                    const search = document.getElementById('search_input_react');
-                    search && search.focus();
-                  }
-                });
-              </script><script>
-              var search = docsearch({
-                
-                apiKey: '0fedc89dddf2810657708b178e56ef02',
-                indexName: 'streampipes',
-                inputSelector: '#search_input_react',
-                algoliaOptions: {}
-              });
-            </script></body></html>
\ No newline at end of file
diff --git a/docs/docs/0.55.2-pre-asf/dev-guide-introduction.html b/docs/docs/0.55.2-pre-asf/dev-guide-introduction.html
index f872268..9a18015 100644
--- a/docs/docs/0.55.2-pre-asf/dev-guide-introduction.html
+++ b/docs/docs/0.55.2-pre-asf/dev-guide-introduction.html
@@ -1,6 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Introduction · Apache StreamPipes</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;StreamPipes is an open platform which can be easily extended at runtime by adding new data streams, data processors and data sinks.&lt;/p&gt;
-"/><meta name="docsearch:version" content="0.55.2-pre-asf"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Introduction · Apache StreamPipes"/><meta property="og:type" content="website"/><meta property="og:url" content="https://streampipes.apache.org/docs/"/><meta property="og:description" content="&lt;p&gt;StreamPipes is an open platform which can be easily extended at runtime by adding new data streams, data processors and data sinks.&lt;/p&gt;
-"/><meta property="og:image" content="https://streampipes.apache.org/docs/img/favicon.png"/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://streampipes.apache.org/docs/img/docusaurus.png"/><link rel="shortcut icon" href="/docs/img/favicon.png"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.css"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/atom-one-dark.min.css"/><lin [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Introduction · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="StreamPipes is an open platform which can be easily extended at runtime by adding new data streams, data processors and data sinks."/><meta name="docsearch:version" content="0.55.2 [...]
               window.dataLayer = window.dataLayer || [];
               function gtag(){dataLayer.push(arguments); }
               gtag('js', new Date());
@@ -11,7 +9,7 @@
             {"zIndex":100}
           )
         });
-        </script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions"><h3>0.55.2-pre-asf</h3></a><div class="navigationWrapper navigationSli [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.55.2-pre-asf</ [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -39,10 +37,16 @@
               createToggler('#navToggler', '#docsNav', 'docsSliderActive');
               createToggler('#tocToggler', 'body', 'tocActive');
 
-              const headings = document.querySelector('.toc-headings');
+              var headings = document.querySelector('.toc-headings');
               headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
                 }
               }, false);
 
@@ -61,7 +65,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle">Introduction</h1></header><article><div><span><p>StreamPipes is an open platform which can be easily extended at runtime by adding new data streams, data processors and data sinks.
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">Introduction</h1></header><article><div><span><p>StreamPipes is an open platform which can be easily extended at runtime by adding new data streams, data processors and data sinks.
 When developing new components, usually multiple elements, called <em>pipeline elements</em>, are bundled into a self-contained <em>pipeline element container</em>. This container is deployed as a standalone microservice. This service is self-descriptive and exposes its description (see below for a detailed explanation) to the StreamPipes management backend. Once the service is deployed, it can be installed using the StreamPipes UI and all elements provided by this service are ready to b [...]
 <p>To ease the extension of StreamPipes, we provide a powerful Software Development Kit (SDK) that allows you to define new pipeline elements for your StreamPipes instance.</p>
 <h2><a class="anchor" aria-hidden="true" id="concepts"></a><a href="#concepts" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
@@ -94,7 +98,7 @@ Sometimes you want to let the user define the output schema. In this case, a <em
 <h2><a class="anchor" aria-hidden="true" id="clients"></a><a href="#clients" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1- [...]
 <p>As stated in the beginning, pipeline element containers are deployed as self-contained microservices. The client types describes the environment this service is running in.
 Currently supported clients are <em>standalone</em>, which defines a standalone service that contains both the description and implementation part (which is often submitted to a computing cluster prior to pipeline execution) in addition to an embedded Jetty web server which creates a fat jar file, and <em>embedded</em>, which creates a war file that can be imported into an existing application server.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-next button" href="/docs/docs/0.55.2-pre-asf/dev-guide-architecture"><span>dev-guide-architecture</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#concepts">Concepts</a><ul class="toc-headings"><li><a href="#data-stream">Data Stream</a></li><li><a href="#data-processor">Data Processor</a></li><li><a href="#data-sink">Data Sink</a></li><li><a hr [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-next button" href="/docs/docs/0.55.2-pre-asf/dev-guide-architecture.html"><span>dev-guide-architecture</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#concepts">Concepts</a><ul class="toc-headings"><li><a href="#data-stream">Data Stream</a></li><li><a href="#data-processor">Data Processor</a></li><li><a href="#data-sink">Data Sink</a></li><li> [...]
                 document.addEventListener('keyup', function(e) {
                   if (e.target !== document.body) {
                     return;
diff --git a/docs/docs/0.55.2-pre-asf/dev-guide-introduction/index.html b/docs/docs/0.55.2-pre-asf/dev-guide-introduction/index.html
deleted file mode 100644
index f872268..0000000
--- a/docs/docs/0.55.2-pre-asf/dev-guide-introduction/index.html
+++ /dev/null
@@ -1,116 +0,0 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Introduction · Apache StreamPipes</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;StreamPipes is an open platform which can be easily extended at runtime by adding new data streams, data processors and data sinks.&lt;/p&gt;
-"/><meta name="docsearch:version" content="0.55.2-pre-asf"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Introduction · Apache StreamPipes"/><meta property="og:type" content="website"/><meta property="og:url" content="https://streampipes.apache.org/docs/"/><meta property="og:description" content="&lt;p&gt;StreamPipes is an open platform which can be easily extended at runtime by adding new data streams, data processors and data sinks.&lt;/p&gt;
-"/><meta property="og:image" content="https://streampipes.apache.org/docs/img/favicon.png"/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://streampipes.apache.org/docs/img/docusaurus.png"/><link rel="shortcut icon" href="/docs/img/favicon.png"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.css"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/atom-one-dark.min.css"/><lin [...]
-              window.dataLayer = window.dataLayer || [];
-              function gtag(){dataLayer.push(arguments); }
-              gtag('js', new Date());
-              gtag('config', 'UA-154181944-1');
-            </script><link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons"/><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick.min.css"/><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick-theme.min.css"/><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto"/><link rel="stylesheet" href="/docs/css/admonition.css"/><link rel="stylesheet" href="/docs [...]
-        document.addEventListener('DOMContentLoaded', function() {
-          addBackToTop(
-            {"zIndex":100}
-          )
-        });
-        </script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions"><h3>0.55.2-pre-asf</h3></a><div class="navigationWrapper navigationSli [...]
-            var coll = document.getElementsByClassName('collapsible');
-            var checkActiveCategory = true;
-            for (var i = 0; i < coll.length; i++) {
-              var links = coll[i].nextElementSibling.getElementsByTagName('*');
-              if (checkActiveCategory){
-                for (var j = 0; j < links.length; j++) {
-                  if (links[j].classList.contains('navListItemActive')){
-                    coll[i].nextElementSibling.classList.toggle('hide');
-                    coll[i].childNodes[1].classList.toggle('rotate');
-                    checkActiveCategory = false;
-                    break;
-                  }
-                }
-              }
-
-              coll[i].addEventListener('click', function() {
-                var arrow = this.childNodes[1];
-                arrow.classList.toggle('rotate');
-                var content = this.nextElementSibling;
-                content.classList.toggle('hide');
-              });
-            }
-
-            document.addEventListener('DOMContentLoaded', function() {
-              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
-              createToggler('#tocToggler', 'body', 'tocActive');
-
-              const headings = document.querySelector('.toc-headings');
-              headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
-                }
-              }, false);
-
-              function createToggler(togglerSelector, targetSelector, className) {
-                var toggler = document.querySelector(togglerSelector);
-                var target = document.querySelector(targetSelector);
-
-                if (!toggler) {
-                  return;
-                }
-
-                toggler.onclick = function(event) {
-                  event.preventDefault();
-
-                  target.classList.toggle(className);
-                };
-              }
-            });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle">Introduction</h1></header><article><div><span><p>StreamPipes is an open platform which can be easily extended at runtime by adding new data streams, data processors and data sinks.
-When developing new components, usually multiple elements, called <em>pipeline elements</em>, are bundled into a self-contained <em>pipeline element container</em>. This container is deployed as a standalone microservice. This service is self-descriptive and exposes its description (see below for a detailed explanation) to the StreamPipes management backend. Once the service is deployed, it can be installed using the StreamPipes UI and all elements provided by this service are ready to b [...]
-<p>To ease the extension of StreamPipes, we provide a powerful Software Development Kit (SDK) that allows you to define new pipeline elements for your StreamPipes instance.</p>
-<h2><a class="anchor" aria-hidden="true" id="concepts"></a><a href="#concepts" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>In this section, we briefly describe the main concepts of StreamPipes. Although it might give an abstract overview, we are sure that many concepts will be more clear once you've created your very first pipeline element yourself. So check out our tutorials!</p>
-<h3><a class="anchor" aria-hidden="true" id="data-stream"></a><a href="#data-stream" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>A <em>Data Stream</em> is the main concept to describe the source of a pipeline. <em>DataStreams</em> consist of
-an RDF <em>description</em> (which will be generated automatically when using the SDK) and a runtime
-<em>implementation</em>. The description includes information on the <em>schema</em> of a data stream, e.g., measurement properties the payload of a stream provides.
-Furthermore, the description contains information on the <em>grounding</em>, such as the transport format (e.g., JSON) and transport protoocol (e.g., MQTT or Kafka).
-One or more data streams are assigned to a <em>Data Source</em> to improve discovery of existing streams.</p>
-<h3><a class="anchor" aria-hidden="true" id="data-processor"></a><a href="#data-processor" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
-<p><em>Data Processors</em> transform on or more input event streams to an output event stream. Data processors can be stateless (e.g., filter operations on every event of an input stream) or stateful (e.g., time-based aggregations using sliding windows).
-Similar to data streams, processors consist of an RDF <em>description</em> and a corresponding <em>implementation</em>. The description is being used by the StreamPipes backend in order to determine the compatibility of a data processor and an input event stream and includes information the required minimum event schema as well as required user input and the definition of the output event stream.</p>
-<p>The implementation of a data processor can be defined using a set of provided <em>runtime wrappers</em>. These wrappers define where computation logic actually takes place once a pipeline was started. We currently provide runtime wrappers for various Big Data processing engines (e.g., Apache Flink) and lightweight standalone processors.</p>
-<h3><a class="anchor" aria-hidden="true" id="data-sink"></a><a href="#data-sink" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
-<p>The concept of <em>Data Sinks</em> is very similar to the concept of data processors with the exception that sinks do not produce any output streams.
-Therefore, sinks are used in StreamPipes to mark the end of a pipeline and reflect 3rd party applications, notifications or dashboard components.</p>
-<h3><a class="anchor" aria-hidden="true" id="static-property"></a><a href="#static-property" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5  [...]
-<p>Some data processors or data sinks might require input from users when pipelines are created using these elements.
-For instance, a generic filter component might require information on the filter operation and a threshold value.
-Such required user input can be modeled by defining <em>static properties</em>. Static properties can be defined in many ways, e.g., plain text input, selections (e.g., radio buttons) or can be linked to separately stored domain knowledge.
-The SDK contains many convenient functions that help you defining static properties.</p>
-<h3><a class="anchor" aria-hidden="true" id="output-strategy"></a><a href="#output-strategy" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5  [...]
-<p>As mentioned above, data processors also define the output event schema. However, as data processors in StreamPipes are often generic and can therefore be linked to any event stream that matches the input requirement of a data processor, the exact output schema is not known in the development phase when a data processor is defined.
-Therefore, data processors define their output using <em>output strategies</em>. Such strategies describe the transformation process, i.e., how an input stream is transformed to an output stream.
-Multiple pre-defined output strategies exist that you can choose depending on the behaviour of a data processor.
-For instance, the output schema of a filter component is usually similar to the input schema, so you would use a <em>KeepOutputStrategy</em>.
-On the other hand, an enrichment component usually adds additional properties to an input schema - this can be defined using a <em>AppendOutputStrategy</em>.
-Sometimes you want to let the user define the output schema. In this case, a <em>CustomOutputStrategy</em> can be defined.</p>
-<h2><a class="anchor" aria-hidden="true" id="clients"></a><a href="#clients" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1- [...]
-<p>As stated in the beginning, pipeline element containers are deployed as self-contained microservices. The client types describes the environment this service is running in.
-Currently supported clients are <em>standalone</em>, which defines a standalone service that contains both the description and implementation part (which is often submitted to a computing cluster prior to pipeline execution) in addition to an embedded Jetty web server which creates a fat jar file, and <em>embedded</em>, which creates a war file that can be imported into an existing application server.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-next button" href="/docs/docs/0.55.2-pre-asf/dev-guide-architecture"><span>dev-guide-architecture</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#concepts">Concepts</a><ul class="toc-headings"><li><a href="#data-stream">Data Stream</a></li><li><a href="#data-processor">Data Processor</a></li><li><a href="#data-sink">Data Sink</a></li><li><a hr [...]
-                document.addEventListener('keyup', function(e) {
-                  if (e.target !== document.body) {
-                    return;
-                  }
-                  // keyCode for '/' (slash)
-                  if (e.keyCode === 191) {
-                    const search = document.getElementById('search_input_react');
-                    search && search.focus();
-                  }
-                });
-              </script><script>
-              var search = docsearch({
-                
-                apiKey: '0fedc89dddf2810657708b178e56ef02',
-                indexName: 'streampipes',
-                inputSelector: '#search_input_react',
-                algoliaOptions: {}
-              });
-            </script></body></html>
\ No newline at end of file
diff --git a/docs/docs/0.55.2-pre-asf/dev-guide-sdk-guide-processors.html b/docs/docs/0.55.2-pre-asf/dev-guide-sdk-guide-processors.html
index a7d8a7f..7a8cef4 100644
--- a/docs/docs/0.55.2-pre-asf/dev-guide-sdk-guide-processors.html
+++ b/docs/docs/0.55.2-pre-asf/dev-guide-sdk-guide-processors.html
@@ -1,6 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>SDK Guide Processors · Apache StreamPipes</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;h2&gt;&lt;a class=&quot;anchor&quot; aria-hidden=&quot;true&quot; id=&quot;project-setup&quot;&gt;&lt;/a&gt;&lt;a href=&quot;#project-setup&quot; aria-hidden=&quot;true&quot; class=&quot; [...]
-"/><meta name="docsearch:version" content="0.55.2-pre-asf"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="SDK Guide Processors · Apache StreamPipes"/><meta property="og:type" content="website"/><meta property="og:url" content="https://streampipes.apache.org/docs/"/><meta property="og:description" content="&lt;h2&gt;&lt;a class=&quot;anchor&quot; aria-hidden=&quot;true&quot; id=&quot;project-setup&quot;&gt;&lt;/a&gt;&lt;a href=&quot;#project-setup&quot;  [...]
-"/><meta property="og:image" content="https://streampipes.apache.org/docs/img/favicon.png"/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://streampipes.apache.org/docs/img/docusaurus.png"/><link rel="shortcut icon" href="/docs/img/favicon.png"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.css"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/atom-one-dark.min.css"/><lin [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>SDK Guide Processors · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="## Project Setup"/><meta name="docsearch:version" content="0.55.2-pre-asf"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="SDK Guide Proce [...]
               window.dataLayer = window.dataLayer || [];
               function gtag(){dataLayer.push(arguments); }
               gtag('js', new Date());
@@ -11,7 +9,7 @@
             {"zIndex":100}
           )
         });
-        </script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions"><h3>0.55.2-pre-asf</h3></a><div class="navigationWrapper navigationSli [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.55.2-pre-asf</ [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -39,10 +37,16 @@
               createToggler('#navToggler', '#docsNav', 'docsSliderActive');
               createToggler('#tocToggler', 'body', 'tocActive');
 
-              const headings = document.querySelector('.toc-headings');
+              var headings = document.querySelector('.toc-headings');
               headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
                 }
               }, false);
 
@@ -61,11 +65,11 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle">SDK Guide Processors</h1></header><article><div><span><h2><a class="anchor" aria-hidden="true" id="project-setup"></a><a href="#project-setup" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3 [...]
-<p>(coming soon, please check the <a href="/docs/docs/0.55.2-pre-asf/dev-guide-tutorial-processors">tutorial</a> to learn how to define data processors)</p>
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">SDK Guide Processors</h1></header><article><div><span><h2><a class="anchor" aria-hidden="true" id="project-setup"></a><a href="#project-setup" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule= [...]
+<p>(coming soon, please check the <a href="/docs/docs/0.55.2-pre-asf/dev-guide-tutorial-processors.html">tutorial</a> to learn how to define data processors)</p>
 <h2><a class="anchor" aria-hidden="true" id="sdk-reference"></a><a href="#sdk-reference" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
 <p>The complete SDK reference for defining data processors will follow soon. Please check the SDK's Javadoc for now!</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.55.2-pre-asf/dev-guide-sdk-guide-sources"><span class="arrow-prev">← </span><span>SDK Guide: Data Sources</span></a><a class="docs-next button" href="/docs/docs/0.55.2-pre-asf/dev-guide-sdk-guide-sinks"><span>SDK Guide: Data Sinks</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#project-setup">Project Setup</a></ [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.55.2-pre-asf/dev-guide-sdk-guide-sources.html"><span class="arrow-prev">← </span><span>SDK Guide: Data Sources</span></a><a class="docs-next button" href="/docs/docs/0.55.2-pre-asf/dev-guide-sdk-guide-sinks.html"><span>SDK Guide: Data Sinks</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#project-setup">Project S [...]
                 document.addEventListener('keyup', function(e) {
                   if (e.target !== document.body) {
                     return;
diff --git a/docs/docs/0.55.2-pre-asf/dev-guide-sdk-guide-processors/index.html b/docs/docs/0.55.2-pre-asf/dev-guide-sdk-guide-processors/index.html
deleted file mode 100644
index a7d8a7f..0000000
--- a/docs/docs/0.55.2-pre-asf/dev-guide-sdk-guide-processors/index.html
+++ /dev/null
@@ -1,87 +0,0 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>SDK Guide Processors · Apache StreamPipes</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;h2&gt;&lt;a class=&quot;anchor&quot; aria-hidden=&quot;true&quot; id=&quot;project-setup&quot;&gt;&lt;/a&gt;&lt;a href=&quot;#project-setup&quot; aria-hidden=&quot;true&quot; class=&quot; [...]
-"/><meta name="docsearch:version" content="0.55.2-pre-asf"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="SDK Guide Processors · Apache StreamPipes"/><meta property="og:type" content="website"/><meta property="og:url" content="https://streampipes.apache.org/docs/"/><meta property="og:description" content="&lt;h2&gt;&lt;a class=&quot;anchor&quot; aria-hidden=&quot;true&quot; id=&quot;project-setup&quot;&gt;&lt;/a&gt;&lt;a href=&quot;#project-setup&quot;  [...]
-"/><meta property="og:image" content="https://streampipes.apache.org/docs/img/favicon.png"/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://streampipes.apache.org/docs/img/docusaurus.png"/><link rel="shortcut icon" href="/docs/img/favicon.png"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.css"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/atom-one-dark.min.css"/><lin [...]
-              window.dataLayer = window.dataLayer || [];
-              function gtag(){dataLayer.push(arguments); }
-              gtag('js', new Date());
-              gtag('config', 'UA-154181944-1');
-            </script><link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons"/><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick.min.css"/><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick-theme.min.css"/><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto"/><link rel="stylesheet" href="/docs/css/admonition.css"/><link rel="stylesheet" href="/docs [...]
-        document.addEventListener('DOMContentLoaded', function() {
-          addBackToTop(
-            {"zIndex":100}
-          )
-        });
-        </script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions"><h3>0.55.2-pre-asf</h3></a><div class="navigationWrapper navigationSli [...]
-            var coll = document.getElementsByClassName('collapsible');
-            var checkActiveCategory = true;
-            for (var i = 0; i < coll.length; i++) {
-              var links = coll[i].nextElementSibling.getElementsByTagName('*');
-              if (checkActiveCategory){
-                for (var j = 0; j < links.length; j++) {
-                  if (links[j].classList.contains('navListItemActive')){
-                    coll[i].nextElementSibling.classList.toggle('hide');
-                    coll[i].childNodes[1].classList.toggle('rotate');
-                    checkActiveCategory = false;
-                    break;
-                  }
-                }
-              }
-
-              coll[i].addEventListener('click', function() {
-                var arrow = this.childNodes[1];
-                arrow.classList.toggle('rotate');
-                var content = this.nextElementSibling;
-                content.classList.toggle('hide');
-              });
-            }
-
-            document.addEventListener('DOMContentLoaded', function() {
-              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
-              createToggler('#tocToggler', 'body', 'tocActive');
-
-              const headings = document.querySelector('.toc-headings');
-              headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
-                }
-              }, false);
-
-              function createToggler(togglerSelector, targetSelector, className) {
-                var toggler = document.querySelector(togglerSelector);
-                var target = document.querySelector(targetSelector);
-
-                if (!toggler) {
-                  return;
-                }
-
-                toggler.onclick = function(event) {
-                  event.preventDefault();
-
-                  target.classList.toggle(className);
-                };
-              }
-            });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle">SDK Guide Processors</h1></header><article><div><span><h2><a class="anchor" aria-hidden="true" id="project-setup"></a><a href="#project-setup" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3 [...]
-<p>(coming soon, please check the <a href="/docs/docs/0.55.2-pre-asf/dev-guide-tutorial-processors">tutorial</a> to learn how to define data processors)</p>
-<h2><a class="anchor" aria-hidden="true" id="sdk-reference"></a><a href="#sdk-reference" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
-<p>The complete SDK reference for defining data processors will follow soon. Please check the SDK's Javadoc for now!</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.55.2-pre-asf/dev-guide-sdk-guide-sources"><span class="arrow-prev">← </span><span>SDK Guide: Data Sources</span></a><a class="docs-next button" href="/docs/docs/0.55.2-pre-asf/dev-guide-sdk-guide-sinks"><span>SDK Guide: Data Sinks</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#project-setup">Project Setup</a></ [...]
-                document.addEventListener('keyup', function(e) {
-                  if (e.target !== document.body) {
-                    return;
-                  }
-                  // keyCode for '/' (slash)
-                  if (e.keyCode === 191) {
-                    const search = document.getElementById('search_input_react');
-                    search && search.focus();
-                  }
-                });
-              </script><script>
-              var search = docsearch({
-                
-                apiKey: '0fedc89dddf2810657708b178e56ef02',
-                indexName: 'streampipes',
-                inputSelector: '#search_input_react',
-                algoliaOptions: {}
-              });
-            </script></body></html>
\ No newline at end of file
diff --git a/docs/docs/0.55.2-pre-asf/dev-guide-sdk-guide-sinks.html b/docs/docs/0.55.2-pre-asf/dev-guide-sdk-guide-sinks.html
index f98eef0..c409994 100644
--- a/docs/docs/0.55.2-pre-asf/dev-guide-sdk-guide-sinks.html
+++ b/docs/docs/0.55.2-pre-asf/dev-guide-sdk-guide-sinks.html
@@ -1,6 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>SDK Guide Sinks · Apache StreamPipes</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;h2&gt;&lt;a class=&quot;anchor&quot; aria-hidden=&quot;true&quot; id=&quot;project-setup&quot;&gt;&lt;/a&gt;&lt;a href=&quot;#project-setup&quot; aria-hidden=&quot;true&quot; class=&quot;hash- [...]
-"/><meta name="docsearch:version" content="0.55.2-pre-asf"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="SDK Guide Sinks · Apache StreamPipes"/><meta property="og:type" content="website"/><meta property="og:url" content="https://streampipes.apache.org/docs/"/><meta property="og:description" content="&lt;h2&gt;&lt;a class=&quot;anchor&quot; aria-hidden=&quot;true&quot; id=&quot;project-setup&quot;&gt;&lt;/a&gt;&lt;a href=&quot;#project-setup&quot; aria- [...]
-"/><meta property="og:image" content="https://streampipes.apache.org/docs/img/favicon.png"/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://streampipes.apache.org/docs/img/docusaurus.png"/><link rel="shortcut icon" href="/docs/img/favicon.png"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.css"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/atom-one-dark.min.css"/><lin [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>SDK Guide Sinks · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="## Project Setup"/><meta name="docsearch:version" content="0.55.2-pre-asf"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="SDK Guide Sinks · Ap [...]
               window.dataLayer = window.dataLayer || [];
               function gtag(){dataLayer.push(arguments); }
               gtag('js', new Date());
@@ -11,7 +9,7 @@
             {"zIndex":100}
           )
         });
-        </script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions"><h3>0.55.2-pre-asf</h3></a><div class="navigationWrapper navigationSli [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.55.2-pre-asf</ [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -39,10 +37,16 @@
               createToggler('#navToggler', '#docsNav', 'docsSliderActive');
               createToggler('#tocToggler', 'body', 'tocActive');
 
-              const headings = document.querySelector('.toc-headings');
+              var headings = document.querySelector('.toc-headings');
               headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
                 }
               }, false);
 
@@ -61,11 +65,11 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle">SDK Guide Sinks</h1></header><article><div><span><h2><a class="anchor" aria-hidden="true" id="project-setup"></a><a href="#project-setup" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69 [...]
-<p>(coming soon, please check the <a href="/docs/docs/0.55.2-pre-asf/dev-guide-tutorial-processors">tutorial</a> to learn how to define sinks)</p>
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">SDK Guide Sinks</h1></header><article><div><span><h2><a class="anchor" aria-hidden="true" id="project-setup"></a><a href="#project-setup" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="even [...]
+<p>(coming soon, please check the <a href="/docs/docs/0.55.2-pre-asf/dev-guide-tutorial-processors.html">tutorial</a> to learn how to define sinks)</p>
 <h2><a class="anchor" aria-hidden="true" id="sdk-reference"></a><a href="#sdk-reference" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
 <p>The complete SDK reference for defining data sinks will follow soon. Please check the SDK's Javadoc for now!</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.55.2-pre-asf/dev-guide-sdk-guide-processors"><span class="arrow-prev">← </span><span>SDK Guide: Data Processors</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#project-setup">Project Setup</a></li><li><a href="#sdk-reference">SDK reference</a></li></ul></nav></div><div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/doc [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.55.2-pre-asf/dev-guide-sdk-guide-processors.html"><span class="arrow-prev">← </span><span>SDK Guide: Data Processors</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#project-setup">Project Setup</a></li><li><a href="#sdk-reference">SDK reference</a></li></ul></nav></div><div><footer class="nav-footer" id="footer"><section class="sitemap"><a href= [...]
                 document.addEventListener('keyup', function(e) {
                   if (e.target !== document.body) {
                     return;
diff --git a/docs/docs/0.55.2-pre-asf/dev-guide-sdk-guide-sinks/index.html b/docs/docs/0.55.2-pre-asf/dev-guide-sdk-guide-sinks/index.html
deleted file mode 100644
index f98eef0..0000000
--- a/docs/docs/0.55.2-pre-asf/dev-guide-sdk-guide-sinks/index.html
+++ /dev/null
@@ -1,87 +0,0 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>SDK Guide Sinks · Apache StreamPipes</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;h2&gt;&lt;a class=&quot;anchor&quot; aria-hidden=&quot;true&quot; id=&quot;project-setup&quot;&gt;&lt;/a&gt;&lt;a href=&quot;#project-setup&quot; aria-hidden=&quot;true&quot; class=&quot;hash- [...]
-"/><meta name="docsearch:version" content="0.55.2-pre-asf"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="SDK Guide Sinks · Apache StreamPipes"/><meta property="og:type" content="website"/><meta property="og:url" content="https://streampipes.apache.org/docs/"/><meta property="og:description" content="&lt;h2&gt;&lt;a class=&quot;anchor&quot; aria-hidden=&quot;true&quot; id=&quot;project-setup&quot;&gt;&lt;/a&gt;&lt;a href=&quot;#project-setup&quot; aria- [...]
-"/><meta property="og:image" content="https://streampipes.apache.org/docs/img/favicon.png"/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://streampipes.apache.org/docs/img/docusaurus.png"/><link rel="shortcut icon" href="/docs/img/favicon.png"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.css"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/atom-one-dark.min.css"/><lin [...]
-              window.dataLayer = window.dataLayer || [];
-              function gtag(){dataLayer.push(arguments); }
-              gtag('js', new Date());
-              gtag('config', 'UA-154181944-1');
-            </script><link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons"/><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick.min.css"/><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick-theme.min.css"/><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto"/><link rel="stylesheet" href="/docs/css/admonition.css"/><link rel="stylesheet" href="/docs [...]
-        document.addEventListener('DOMContentLoaded', function() {
-          addBackToTop(
-            {"zIndex":100}
-          )
-        });
-        </script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions"><h3>0.55.2-pre-asf</h3></a><div class="navigationWrapper navigationSli [...]
-            var coll = document.getElementsByClassName('collapsible');
-            var checkActiveCategory = true;
-            for (var i = 0; i < coll.length; i++) {
-              var links = coll[i].nextElementSibling.getElementsByTagName('*');
-              if (checkActiveCategory){
-                for (var j = 0; j < links.length; j++) {
-                  if (links[j].classList.contains('navListItemActive')){
-                    coll[i].nextElementSibling.classList.toggle('hide');
-                    coll[i].childNodes[1].classList.toggle('rotate');
-                    checkActiveCategory = false;
-                    break;
-                  }
-                }
-              }
-
-              coll[i].addEventListener('click', function() {
-                var arrow = this.childNodes[1];
-                arrow.classList.toggle('rotate');
-                var content = this.nextElementSibling;
-                content.classList.toggle('hide');
-              });
-            }
-
-            document.addEventListener('DOMContentLoaded', function() {
-              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
-              createToggler('#tocToggler', 'body', 'tocActive');
-
-              const headings = document.querySelector('.toc-headings');
-              headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
-                }
-              }, false);
-
-              function createToggler(togglerSelector, targetSelector, className) {
-                var toggler = document.querySelector(togglerSelector);
-                var target = document.querySelector(targetSelector);
-
-                if (!toggler) {
-                  return;
-                }
-
-                toggler.onclick = function(event) {
-                  event.preventDefault();
-
-                  target.classList.toggle(className);
-                };
-              }
-            });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle">SDK Guide Sinks</h1></header><article><div><span><h2><a class="anchor" aria-hidden="true" id="project-setup"></a><a href="#project-setup" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69 [...]
-<p>(coming soon, please check the <a href="/docs/docs/0.55.2-pre-asf/dev-guide-tutorial-processors">tutorial</a> to learn how to define sinks)</p>
-<h2><a class="anchor" aria-hidden="true" id="sdk-reference"></a><a href="#sdk-reference" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
-<p>The complete SDK reference for defining data sinks will follow soon. Please check the SDK's Javadoc for now!</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.55.2-pre-asf/dev-guide-sdk-guide-processors"><span class="arrow-prev">← </span><span>SDK Guide: Data Processors</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#project-setup">Project Setup</a></li><li><a href="#sdk-reference">SDK reference</a></li></ul></nav></div><div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/doc [...]
-                document.addEventListener('keyup', function(e) {
-                  if (e.target !== document.body) {
-                    return;
-                  }
-                  // keyCode for '/' (slash)
-                  if (e.keyCode === 191) {
-                    const search = document.getElementById('search_input_react');
-                    search && search.focus();
-                  }
-                });
-              </script><script>
-              var search = docsearch({
-                
-                apiKey: '0fedc89dddf2810657708b178e56ef02',
-                indexName: 'streampipes',
-                inputSelector: '#search_input_react',
-                algoliaOptions: {}
-              });
-            </script></body></html>
\ No newline at end of file
diff --git a/docs/docs/0.55.2-pre-asf/dev-guide-sdk-guide-sources.html b/docs/docs/0.55.2-pre-asf/dev-guide-sdk-guide-sources.html
index d37b017..e83378f 100644
--- a/docs/docs/0.55.2-pre-asf/dev-guide-sdk-guide-sources.html
+++ b/docs/docs/0.55.2-pre-asf/dev-guide-sdk-guide-sources.html
@@ -1,6 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>SDK Guide Sources · Apache StreamPipes</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;h2&gt;&lt;a class=&quot;anchor&quot; aria-hidden=&quot;true&quot; id=&quot;project-setup&quot;&gt;&lt;/a&gt;&lt;a href=&quot;#project-setup&quot; aria-hidden=&quot;true&quot; class=&quot;has [...]
-"/><meta name="docsearch:version" content="0.55.2-pre-asf"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="SDK Guide Sources · Apache StreamPipes"/><meta property="og:type" content="website"/><meta property="og:url" content="https://streampipes.apache.org/docs/"/><meta property="og:description" content="&lt;h2&gt;&lt;a class=&quot;anchor&quot; aria-hidden=&quot;true&quot; id=&quot;project-setup&quot;&gt;&lt;/a&gt;&lt;a href=&quot;#project-setup&quot; ari [...]
-"/><meta property="og:image" content="https://streampipes.apache.org/docs/img/favicon.png"/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://streampipes.apache.org/docs/img/docusaurus.png"/><link rel="shortcut icon" href="/docs/img/favicon.png"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.css"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/atom-one-dark.min.css"/><lin [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>SDK Guide Sources · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="## Project Setup"/><meta name="docsearch:version" content="0.55.2-pre-asf"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="SDK Guide Sources  [...]
               window.dataLayer = window.dataLayer || [];
               function gtag(){dataLayer.push(arguments); }
               gtag('js', new Date());
@@ -11,7 +9,7 @@
             {"zIndex":100}
           )
         });
-        </script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions"><h3>0.55.2-pre-asf</h3></a><div class="navigationWrapper navigationSli [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.55.2-pre-asf</ [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -39,10 +37,16 @@
               createToggler('#navToggler', '#docsNav', 'docsSliderActive');
               createToggler('#tocToggler', 'body', 'tocActive');
 
-              const headings = document.querySelector('.toc-headings');
+              var headings = document.querySelector('.toc-headings');
               headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
                 }
               }, false);
 
@@ -61,7 +65,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle">SDK Guide Sources</h1></header><article><div><span><h2><a class="anchor" aria-hidden="true" id="project-setup"></a><a href="#project-setup" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1. [...]
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">SDK Guide Sources</h1></header><article><div><span><h2><a class="anchor" aria-hidden="true" id="project-setup"></a><a href="#project-setup" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="ev [...]
 <p>Open the IDE of your choice and create a new maven project. Add the following dependencies to your pom file:</p>
 <p><details class="info">
 <summary>pom.xml</summary></p>
@@ -121,7 +125,7 @@
 </code></pre>
 <h2><a class="anchor" aria-hidden="true" id="sdk-reference"></a><a href="#sdk-reference" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
 <p>The complete SDK reference for defining data processors will follow soon. Please check the SDK's Javadoc for now!</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.55.2-pre-asf/dev-guide-tutorial-processors"><span class="arrow-prev">← </span><span>dev-guide-tutorial-processors</span></a><a class="docs-next button" href="/docs/docs/0.55.2-pre-asf/dev-guide-sdk-guide-processors"><span>SDK Guide: Data Processors</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#project-setup">P [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.55.2-pre-asf/dev-guide-tutorial-processors.html"><span class="arrow-prev">← </span><span>dev-guide-tutorial-processors</span></a><a class="docs-next button" href="/docs/docs/0.55.2-pre-asf/dev-guide-sdk-guide-processors.html"><span>SDK Guide: Data Processors</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#projec [...]
                 document.addEventListener('keyup', function(e) {
                   if (e.target !== document.body) {
                     return;
diff --git a/docs/docs/0.55.2-pre-asf/dev-guide-sdk-guide-sources/index.html b/docs/docs/0.55.2-pre-asf/dev-guide-sdk-guide-sources/index.html
deleted file mode 100644
index d37b017..0000000
--- a/docs/docs/0.55.2-pre-asf/dev-guide-sdk-guide-sources/index.html
+++ /dev/null
@@ -1,143 +0,0 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>SDK Guide Sources · Apache StreamPipes</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;h2&gt;&lt;a class=&quot;anchor&quot; aria-hidden=&quot;true&quot; id=&quot;project-setup&quot;&gt;&lt;/a&gt;&lt;a href=&quot;#project-setup&quot; aria-hidden=&quot;true&quot; class=&quot;has [...]
-"/><meta name="docsearch:version" content="0.55.2-pre-asf"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="SDK Guide Sources · Apache StreamPipes"/><meta property="og:type" content="website"/><meta property="og:url" content="https://streampipes.apache.org/docs/"/><meta property="og:description" content="&lt;h2&gt;&lt;a class=&quot;anchor&quot; aria-hidden=&quot;true&quot; id=&quot;project-setup&quot;&gt;&lt;/a&gt;&lt;a href=&quot;#project-setup&quot; ari [...]
-"/><meta property="og:image" content="https://streampipes.apache.org/docs/img/favicon.png"/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://streampipes.apache.org/docs/img/docusaurus.png"/><link rel="shortcut icon" href="/docs/img/favicon.png"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.css"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/atom-one-dark.min.css"/><lin [...]
-              window.dataLayer = window.dataLayer || [];
-              function gtag(){dataLayer.push(arguments); }
-              gtag('js', new Date());
-              gtag('config', 'UA-154181944-1');
-            </script><link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons"/><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick.min.css"/><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick-theme.min.css"/><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto"/><link rel="stylesheet" href="/docs/css/admonition.css"/><link rel="stylesheet" href="/docs [...]
-        document.addEventListener('DOMContentLoaded', function() {
-          addBackToTop(
-            {"zIndex":100}
-          )
-        });
-        </script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions"><h3>0.55.2-pre-asf</h3></a><div class="navigationWrapper navigationSli [...]
-            var coll = document.getElementsByClassName('collapsible');
-            var checkActiveCategory = true;
-            for (var i = 0; i < coll.length; i++) {
-              var links = coll[i].nextElementSibling.getElementsByTagName('*');
-              if (checkActiveCategory){
-                for (var j = 0; j < links.length; j++) {
-                  if (links[j].classList.contains('navListItemActive')){
-                    coll[i].nextElementSibling.classList.toggle('hide');
-                    coll[i].childNodes[1].classList.toggle('rotate');
-                    checkActiveCategory = false;
-                    break;
-                  }
-                }
-              }
-
-              coll[i].addEventListener('click', function() {
-                var arrow = this.childNodes[1];
-                arrow.classList.toggle('rotate');
-                var content = this.nextElementSibling;
-                content.classList.toggle('hide');
-              });
-            }
-
-            document.addEventListener('DOMContentLoaded', function() {
-              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
-              createToggler('#tocToggler', 'body', 'tocActive');
-
-              const headings = document.querySelector('.toc-headings');
-              headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
-                }
-              }, false);
-
-              function createToggler(togglerSelector, targetSelector, className) {
-                var toggler = document.querySelector(togglerSelector);
-                var target = document.querySelector(targetSelector);
-
-                if (!toggler) {
-                  return;
-                }
-
-                toggler.onclick = function(event) {
-                  event.preventDefault();
-
-                  target.classList.toggle(className);
-                };
-              }
-            });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle">SDK Guide Sources</h1></header><article><div><span><h2><a class="anchor" aria-hidden="true" id="project-setup"></a><a href="#project-setup" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1. [...]
-<p>Open the IDE of your choice and create a new maven project. Add the following dependencies to your pom file:</p>
-<p><details class="info">
-<summary>pom.xml</summary></p>
-<pre><code class="hljs css language-xml"><span class="hljs-tag">&lt;<span class="hljs-name">dependency</span>&gt;</span>
-    <span class="hljs-tag">&lt;<span class="hljs-name">groupId</span>&gt;</span>org.streampipes<span class="hljs-tag">&lt;/<span class="hljs-name">groupId</span>&gt;</span>
-    <span class="hljs-tag">&lt;<span class="hljs-name">artifactId</span>&gt;</span>streampipes-container-standalone<span class="hljs-tag">&lt;/<span class="hljs-name">artifactId</span>&gt;</span>
-    <span class="hljs-tag">&lt;<span class="hljs-name">version</span>&gt;</span>0.50.0<span class="hljs-tag">&lt;/<span class="hljs-name">version</span>&gt;</span>
-<span class="hljs-tag">&lt;/<span class="hljs-name">dependency</span>&gt;</span>
-
-<span class="hljs-tag">&lt;<span class="hljs-name">dependency</span>&gt;</span>
-    <span class="hljs-tag">&lt;<span class="hljs-name">groupId</span>&gt;</span>org.streampipes<span class="hljs-tag">&lt;/<span class="hljs-name">groupId</span>&gt;</span>
-    <span class="hljs-tag">&lt;<span class="hljs-name">artifactId</span>&gt;</span>streampipes-sdk<span class="hljs-tag">&lt;/<span class="hljs-name">artifactId</span>&gt;</span>
-    <span class="hljs-tag">&lt;<span class="hljs-name">version</span>&gt;</span>0.50.0<span class="hljs-tag">&lt;/<span class="hljs-name">version</span>&gt;</span>
-<span class="hljs-tag">&lt;/<span class="hljs-name">dependency</span>&gt;</span>
-
-<span class="hljs-comment">&lt;!-- This dependency needs to be imported if you plan to connect a new data stream with StreamPipes --&gt;</span>
-<span class="hljs-tag">&lt;<span class="hljs-name">dependency</span>&gt;</span>
-    <span class="hljs-tag">&lt;<span class="hljs-name">groupId</span>&gt;</span>org.streampipes<span class="hljs-tag">&lt;/<span class="hljs-name">groupId</span>&gt;</span>
-    <span class="hljs-tag">&lt;<span class="hljs-name">artifactId</span>&gt;</span>streampipes-sources<span class="hljs-tag">&lt;/<span class="hljs-name">artifactId</span>&gt;</span>
-    <span class="hljs-tag">&lt;<span class="hljs-name">version</span>&gt;</span>0.50.0<span class="hljs-tag">&lt;/<span class="hljs-name">version</span>&gt;</span>
-<span class="hljs-tag">&lt;/<span class="hljs-name">dependency</span>&gt;</span>
-</code></pre>
-<p></details></p>
-<p>Now you need to create three new classes:</p>
-<p>First, create a new class <code>MyStreamController</code> as follows:</p>
-<pre><code class="hljs css language-java"><span class="hljs-keyword">import</span> org.streampipes.model.SpDataStream;
-<span class="hljs-keyword">import</span> org.streampipes.model.graph.DataSourceDescription;
-<span class="hljs-keyword">import</span> org.streampipes.sources.AbstractAlreadyExistingStream;
-
-<span class="hljs-keyword">public</span> <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">MyStreamController</span> <span class="hljs-keyword">extends</span> <span class="hljs-title">AbstractAlreadyExistingStream</span> </span>{
-
-  <span class="hljs-meta">@Override</span>
-  <span class="hljs-function"><span class="hljs-keyword">public</span> SpDataStream <span class="hljs-title">declareModel</span><span class="hljs-params">(DataSourceDescription sep)</span> </span>{
-
-  }
-}
-</code></pre>
-<p>Next, create a new class <code>MyStreamSource</code> as follows:</p>
-<pre><code class="hljs css language-java"><span class="hljs-keyword">import</span> org.streampipes.container.declarer.EventStreamDeclarer;
-<span class="hljs-keyword">import</span> org.streampipes.container.declarer.SemanticEventProducerDeclarer;
-<span class="hljs-keyword">import</span> org.streampipes.model.graph.DataSourceDescription;
-
-<span class="hljs-keyword">import</span> java.util.List;
-
-<span class="hljs-keyword">public</span> <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">MyStreamSource</span> <span class="hljs-keyword">implements</span> <span class="hljs-title">SemanticEventProducerDeclarer</span> </span>{
-
-    <span class="hljs-meta">@Override</span>
-    <span class="hljs-function"><span class="hljs-keyword">public</span> DataSourceDescription <span class="hljs-title">declareModel</span><span class="hljs-params">()</span> </span>{
-      <span class="hljs-keyword">return</span> <span class="hljs-keyword">null</span>;
-    }
-
-    <span class="hljs-meta">@Override</span>
-    <span class="hljs-function"><span class="hljs-keyword">public</span> List&lt;EventStreamDeclarer&gt; <span class="hljs-title">getEventStreams</span><span class="hljs-params">()</span> </span>{
-        <span class="hljs-keyword">return</span> <span class="hljs-keyword">null</span>;
-    }
-}
-</code></pre>
-<h2><a class="anchor" aria-hidden="true" id="sdk-reference"></a><a href="#sdk-reference" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
-<p>The complete SDK reference for defining data processors will follow soon. Please check the SDK's Javadoc for now!</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.55.2-pre-asf/dev-guide-tutorial-processors"><span class="arrow-prev">← </span><span>dev-guide-tutorial-processors</span></a><a class="docs-next button" href="/docs/docs/0.55.2-pre-asf/dev-guide-sdk-guide-processors"><span>SDK Guide: Data Processors</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#project-setup">P [...]
-                document.addEventListener('keyup', function(e) {
-                  if (e.target !== document.body) {
-                    return;
-                  }
-                  // keyCode for '/' (slash)
-                  if (e.keyCode === 191) {
-                    const search = document.getElementById('search_input_react');
-                    search && search.focus();
-                  }
-                });
-              </script><script>
-              var search = docsearch({
-                
-                apiKey: '0fedc89dddf2810657708b178e56ef02',
-                indexName: 'streampipes',
-                inputSelector: '#search_input_react',
-                algoliaOptions: {}
-              });
-            </script></body></html>
\ No newline at end of file
diff --git a/docs/docs/0.55.2-pre-asf/dev-guide-tutorial-processors.html b/docs/docs/0.55.2-pre-asf/dev-guide-tutorial-processors.html
index e0ad90d..a25624c 100644
--- a/docs/docs/0.55.2-pre-asf/dev-guide-tutorial-processors.html
+++ b/docs/docs/0.55.2-pre-asf/dev-guide-tutorial-processors.html
@@ -1,6 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Tutorial: Data Processors · Apache StreamPipes</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;In this tutorial, we will add a new data processor using the Apache Flink wrapper.&lt;/p&gt;
-"/><meta name="docsearch:version" content="0.55.2-pre-asf"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Tutorial: Data Processors · Apache StreamPipes"/><meta property="og:type" content="website"/><meta property="og:url" content="https://streampipes.apache.org/docs/"/><meta property="og:description" content="&lt;p&gt;In this tutorial, we will add a new data processor using the Apache Flink wrapper.&lt;/p&gt;
-"/><meta property="og:image" content="https://streampipes.apache.org/docs/img/favicon.png"/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://streampipes.apache.org/docs/img/docusaurus.png"/><link rel="shortcut icon" href="/docs/img/favicon.png"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.css"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/atom-one-dark.min.css"/><lin [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Tutorial: Data Processors · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="In this tutorial, we will add a new data processor using the Apache Flink wrapper."/><meta name="docsearch:version" content="0.55.2-pre-asf"/><meta name="docsearch:lan [...]
               window.dataLayer = window.dataLayer || [];
               function gtag(){dataLayer.push(arguments); }
               gtag('js', new Date());
@@ -11,7 +9,7 @@
             {"zIndex":100}
           )
         });
-        </script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions"><h3>0.55.2-pre-asf</h3></a><div class="navigationWrapper navigationSli [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.55.2-pre-asf</ [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -39,10 +37,16 @@
               createToggler('#navToggler', '#docsNav', 'docsSliderActive');
               createToggler('#tocToggler', 'body', 'tocActive');
 
-              const headings = document.querySelector('.toc-headings');
+              var headings = document.querySelector('.toc-headings');
               headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
                 }
               }, false);
 
@@ -61,10 +65,10 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle">Tutorial: Data Processors</h1></header><article><div><span><p>In this tutorial, we will add a new data processor using the Apache Flink wrapper.</p>
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">Tutorial: Data Processors</h1></header><article><div><span><p>In this tutorial, we will add a new data processor using the Apache Flink wrapper.</p>
 <p>From an architectural point of view, we will create a self-contained service that includes the description of the data processor and a Flink-compatible implementation.
 Once a pipeline is started that uses this data processor, the implementation is submitted to an Apache Flink cluster.</p>
-<p>If this is the first time you are extending StreamPipes, we recommend doing the <a href="/docs/docs/0.55.2-pre-asf/dev-guide-tutorial-sources">data source tutorial</a> first.</p>
+<p>If this is the first time you are extending StreamPipes, we recommend doing the <a href="/docs/docs/0.55.2-pre-asf/dev-guide-tutorial-sources.html">data source tutorial</a> first.</p>
 <h2><a class="anchor" aria-hidden="true" id="objective"></a><a href="#objective" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
 <p>We are going to create a new data processor that realized a simple geofencing algorithm - we detect vehicles that enter a specified radius around a user-defined location.
 This pipeline element will be a generic element that works with any event stream that provides geospatial coordinates in form of a latitude/longitude pair.</p>
@@ -94,7 +98,7 @@ You should see a structure like this:</p>
 <p>Besides the basic project skeleton, the sample project also includes an example Dockerfile you can use to package your application into a Docker container.</p>
 </div>
 <p><strong>Option 2: Start a new project from scratch</strong></p>
-<p>If you want to start from scratch, we refer to the <a href="/docs/docs/0.55.2-pre-asf/dev-guide-sdk-guide-processors">Processor SDK guide</a> which provides instructions on the general project setup.</p>
+<p>If you want to start from scratch, we refer to the <a href="/docs/docs/0.55.2-pre-asf/dev-guide-sdk-guide-processors.html">Processor SDK guide</a> which provides instructions on the general project setup.</p>
 <h2><a class="anchor" aria-hidden="true" id="adding-data-processor-requirements"></a><a href="#adding-data-processor-requirements" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5 [...]
 <p>Now we will add a new data stream definition.
 First, open the class <code>GeofencingController</code> which should look as follows:</p>
@@ -150,7 +154,7 @@ The radius can be defined by adding a simple required text field to the descript
 In addition, we can assign a <em>value specification</em> to the parameter indicating the value range we support.
 Our example supports a radius value between 0 and 1000 with a granularity of 1.
 In the StreamPipes UI, a required text parameter is rendered as a text input field, in case we provide an optional value specification, a slider input is automatically generated.</p>
-<p>Such user-defined parameters are called <em>static properties</em>. There are many different types of static properties (see the <a href="/docs/docs/0.55.2-pre-asf/dev-guide-sdk-guide-processors">Processor SDK</a> for an overview).</p>
+<p>Such user-defined parameters are called <em>static properties</em>. There are many different types of static properties (see the <a href="/docs/docs/0.55.2-pre-asf/dev-guide-sdk-guide-processors.html">Processor SDK</a> for an overview).</p>
 <p>One example are <em>DomainProperties</em> we use for defining the center of the geofence.
 Our data processor requires a lat/lng pair that marks the center of the geofence.
 However, letting users directly input latitude and longitude coordinates wouldn't be very user-friendly.
@@ -422,8 +426,8 @@ To install the just created element, open the StreamPipes UI and follow the manu
 <h2><a class="anchor" aria-hidden="true" id="read-more"></a><a href="#read-more" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
 <p>Congratulations! You've just created your first data processor for StreamPipes.
 There are many more things to explore and data processors can be defined in much more detail using multiple wrappers.
-Follow our <a href="/docs/docs/0.55.2-pre-asf/dev-guide-sdk-guide-sources">SDK guide</a> to see what's possible!</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.55.2-pre-asf/dev-guide-tutorial-sources"><span class="arrow-prev">← </span><span>dev-guide-tutorial-sources</span></a><a class="docs-next button" href="/docs/docs/0.55.2-pre-asf/dev-guide-sdk-guide-sources"><span>SDK Guide: Data Sources</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#objective">Objective</a></li [...]
+Follow our <a href="/docs/docs/0.55.2-pre-asf/dev-guide-sdk-guide-sources.html">SDK guide</a> to see what's possible!</p>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.55.2-pre-asf/dev-guide-tutorial-sources.html"><span class="arrow-prev">← </span><span>dev-guide-tutorial-sources</span></a><a class="docs-next button" href="/docs/docs/0.55.2-pre-asf/dev-guide-sdk-guide-sources.html"><span>SDK Guide: Data Sources</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#objective">Objecti [...]
                 document.addEventListener('keyup', function(e) {
                   if (e.target !== document.body) {
                     return;
diff --git a/docs/docs/0.55.2-pre-asf/dev-guide-tutorial-processors/index.html b/docs/docs/0.55.2-pre-asf/dev-guide-tutorial-processors/index.html
deleted file mode 100644
index e0ad90d..0000000
--- a/docs/docs/0.55.2-pre-asf/dev-guide-tutorial-processors/index.html
+++ /dev/null
@@ -1,445 +0,0 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Tutorial: Data Processors · Apache StreamPipes</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;In this tutorial, we will add a new data processor using the Apache Flink wrapper.&lt;/p&gt;
-"/><meta name="docsearch:version" content="0.55.2-pre-asf"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Tutorial: Data Processors · Apache StreamPipes"/><meta property="og:type" content="website"/><meta property="og:url" content="https://streampipes.apache.org/docs/"/><meta property="og:description" content="&lt;p&gt;In this tutorial, we will add a new data processor using the Apache Flink wrapper.&lt;/p&gt;
-"/><meta property="og:image" content="https://streampipes.apache.org/docs/img/favicon.png"/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://streampipes.apache.org/docs/img/docusaurus.png"/><link rel="shortcut icon" href="/docs/img/favicon.png"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.css"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/atom-one-dark.min.css"/><lin [...]
-              window.dataLayer = window.dataLayer || [];
-              function gtag(){dataLayer.push(arguments); }
-              gtag('js', new Date());
-              gtag('config', 'UA-154181944-1');
-            </script><link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons"/><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick.min.css"/><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick-theme.min.css"/><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto"/><link rel="stylesheet" href="/docs/css/admonition.css"/><link rel="stylesheet" href="/docs [...]
-        document.addEventListener('DOMContentLoaded', function() {
-          addBackToTop(
-            {"zIndex":100}
-          )
-        });
-        </script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions"><h3>0.55.2-pre-asf</h3></a><div class="navigationWrapper navigationSli [...]
-            var coll = document.getElementsByClassName('collapsible');
-            var checkActiveCategory = true;
-            for (var i = 0; i < coll.length; i++) {
-              var links = coll[i].nextElementSibling.getElementsByTagName('*');
-              if (checkActiveCategory){
-                for (var j = 0; j < links.length; j++) {
-                  if (links[j].classList.contains('navListItemActive')){
-                    coll[i].nextElementSibling.classList.toggle('hide');
-                    coll[i].childNodes[1].classList.toggle('rotate');
-                    checkActiveCategory = false;
-                    break;
-                  }
-                }
-              }
-
-              coll[i].addEventListener('click', function() {
-                var arrow = this.childNodes[1];
-                arrow.classList.toggle('rotate');
-                var content = this.nextElementSibling;
-                content.classList.toggle('hide');
-              });
-            }
-
-            document.addEventListener('DOMContentLoaded', function() {
-              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
-              createToggler('#tocToggler', 'body', 'tocActive');
-
-              const headings = document.querySelector('.toc-headings');
-              headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
-                }
-              }, false);
-
-              function createToggler(togglerSelector, targetSelector, className) {
-                var toggler = document.querySelector(togglerSelector);
-                var target = document.querySelector(targetSelector);
-
-                if (!toggler) {
-                  return;
-                }
-
-                toggler.onclick = function(event) {
-                  event.preventDefault();
-
-                  target.classList.toggle(className);
-                };
-              }
-            });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle">Tutorial: Data Processors</h1></header><article><div><span><p>In this tutorial, we will add a new data processor using the Apache Flink wrapper.</p>
-<p>From an architectural point of view, we will create a self-contained service that includes the description of the data processor and a Flink-compatible implementation.
-Once a pipeline is started that uses this data processor, the implementation is submitted to an Apache Flink cluster.</p>
-<p>If this is the first time you are extending StreamPipes, we recommend doing the <a href="/docs/docs/0.55.2-pre-asf/dev-guide-tutorial-sources">data source tutorial</a> first.</p>
-<h2><a class="anchor" aria-hidden="true" id="objective"></a><a href="#objective" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
-<p>We are going to create a new data processor that realized a simple geofencing algorithm - we detect vehicles that enter a specified radius around a user-defined location.
-This pipeline element will be a generic element that works with any event stream that provides geospatial coordinates in form of a latitude/longitude pair.</p>
-<p>The algorithm outputs every location event once the position has entered the geofence.</p>
-<div class="admonition note">
-<div class="admonition-title">Note</div>
-<p>The implementation in this tutorial is pretty simple - our processor will fire an event every time the GPS location is inside the geofence.
-       In a real-world application, you would probably want to define a pattern that recognizes the _first_ event a vehicle enters the geofence.<br/>
-       This can be easily done using a CEP library, e.g., Apache Flink CEP.</p>
-</div>
-<h2><a class="anchor" aria-hidden="true" id="project-setup"></a><a href="#project-setup" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
-<p>Similar to the data source tutorial, there are two options to start a new project (option 1 is recommended):</p>
-<p><strong>Option 1: Using a template project</strong></p>
-<p>Clone the following project from our Github repo: <a href="https://github.com/streampipes/templates-flink">https://github.com/streampipes/templates-flink</a></p>
-<p>Import the project into an IDE of your choice.
-You should see a structure like this:</p>
-<p><img src="/docs/img/tutorial-processors/project-structure-processor.PNG" alt="Project Structure Data Processor"></p>
-<p>Rename the classes (or create new classes by copying these files) as follows:</p>
-<ul>
-<li><code>ProcessorTemplateController.java</code> to <code>GeofencingController.java</code></li>
-<li><code>ProcessorTemplateFlatMap.java</code> to <code>GeofencingProcessor.java</code></li>
-<li><code>ProcessorTemplateParameters.java</code> to <code>GeofencingParameters.java</code></li>
-<li><code>ProcessorTemplateProgram.java</code> to <code>GeofencingProgram.java</code></li>
-</ul>
-<div class="admonition tip">
-<div class="admonition-title">Tip</div>
-<p>Besides the basic project skeleton, the sample project also includes an example Dockerfile you can use to package your application into a Docker container.</p>
-</div>
-<p><strong>Option 2: Start a new project from scratch</strong></p>
-<p>If you want to start from scratch, we refer to the <a href="/docs/docs/0.55.2-pre-asf/dev-guide-sdk-guide-processors">Processor SDK guide</a> which provides instructions on the general project setup.</p>
-<h2><a class="anchor" aria-hidden="true" id="adding-data-processor-requirements"></a><a href="#adding-data-processor-requirements" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5 [...]
-<p>Now we will add a new data stream definition.
-First, open the class <code>GeofencingController</code> which should look as follows:</p>
-<pre><code class="hljs css language-java"><span class="hljs-keyword">import</span> org.streampipes.model.graph.DataProcessorDescription;
-<span class="hljs-keyword">import</span> org.streampipes.model.graph.DataProcessorInvocation;
-<span class="hljs-keyword">import</span> org.streampipes.wrapper.flink.AbstractFlinkAgentDeclarer;
-<span class="hljs-keyword">import</span> org.streampipes.wrapper.flink.FlinkSepaRuntime;
-
-<span class="hljs-keyword">public</span> <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">GeofencingController</span> <span class="hljs-keyword">extends</span> <span class="hljs-title">FlinkDataProcessorDeclarer</span>&lt;<span class="hljs-title">GeofencingParameters</span>&gt; </span>{
-
-    <span class="hljs-meta">@Override</span>
-    <span class="hljs-function"><span class="hljs-keyword">public</span> DataProcessorDescription <span class="hljs-title">declareModel</span><span class="hljs-params">()</span> </span>{
-
-    }
-
-    <span class="hljs-meta">@Override</span>
-    <span class="hljs-function"><span class="hljs-keyword">protected</span> FlinkDataProcessorRuntime&lt;GeofencingParameters&gt; <span class="hljs-title">getRuntime</span><span class="hljs-params">(DataProcessorInvocation sepaInvocation)</span> </span>{
-
-    }
-}
-</code></pre>
-<p>In this class, we need to implement two methods: The <code>declareModel</code> method is used to define abstract stream requirements such as event properties that must be present in any input stream that is later connected to the element using the StreamPipes UI.
-The second method, <code>getRuntime</code> is used to create and deploy the parameterized Flink program once a pipeline using this element is started.</p>
-<p>Similar to data sources, the SDK provides a builder class to generate the description for data processors.
-add the following lines to the <code>declareModel</code> method:</p>
-<pre><code class="hljs css language-java"><span class="hljs-keyword">return</span> ProcessingElementBuilder.create(<span class="hljs-string">"geofencing-flink"</span>, <span class="hljs-string">"Geofencing"</span>, <span class="hljs-string">"A simple geofencing data processor "</span> +
-            <span class="hljs-string">"using the Apache Flink wrapper"</span>)
-</code></pre>
-<p>This creates a new data processor with the ID, title and description assigned to the element builder.
-Next, we add some <em>stream requirements</em> to the description. As we'd like to develop a generic pipeline element that works with any event that provides a lat/lng pair, we define two stream requirements as stated below:</p>
-<pre><code class="hljs css language-java">.requiredStream(StreamRequirementsBuilder
-    .create()
-    .requiredPropertyWithUnaryMapping(EpRequirements.domainPropertyReq(Geo.lat),
-            Labels.from(<span class="hljs-string">"latitude-field"</span>, <span class="hljs-string">"Latitude"</span>, <span class="hljs-string">"The event "</span> +
-            <span class="hljs-string">"property containing the latitude value"</span>), PropertyScope.MEASUREMENT_PROPERTY)
-    .requiredPropertyWithUnaryMapping(EpRequirements.domainPropertyReq(Geo.lng),
-            Labels.from(<span class="hljs-string">"longitude-field"</span>, <span class="hljs-string">"Longitude"</span>, <span class="hljs-string">"The event "</span> +
-                    <span class="hljs-string">"property containing the longitude value"</span>), PropertyScope.MEASUREMENT_PROPERTY)
-    .build())
-</code></pre>
-<p>The first line, <code>.requiredStream()</code> defines that we want a data processor with exactly one input stream. Adding more stream requirements would create elements with multiple input connectors in StreamPipes.
-Stream requirements can be assigned by using the <code>StreamRequirementsBuilder</code> class.
-In our example, we define two requirements, so-called <em>domain property requirements</em>. In contrast to <em>data type requirements</em> where we'd expect an event property with a field of a specific data type (e.g., float), domain property requirements expect a specific domain property, e.g., from a vocabulary such as the WGS84 Geo vocab.</p>
-<p>Once a pipeline is deployed, we are interested in the actual field (and its field name) that contains the latitude and longitude values.
-In some cases, there might me more than one field that satisfies a property requirement and we would like users to select the property the geofencing component should operate on.
-Therefore, our example uses the method <code>requiredPropertyWithUnaryMapping</code>, which will map a requirement to a real event property of an input stream and  let the user choose the appropriate field in the StreamPipes UI when pipelines are defined.</p>
-<p>Finally, the <code>PropertyScope</code> indicates that the required property is a measurement value (in contrast to a dimension value). This allows us later to provide improved user guidance in the pipeline editor.</p>
-<p>Besides requirements, users should be able to define the center coordinate of the Geofence and the size of the fence defined as a radius around the center in meters.
-The radius can be defined by adding a simple required text field to the description:</p>
-<pre><code class="hljs css language-java">.requiredIntegerParameter(<span class="hljs-string">"radius"</span>, <span class="hljs-string">"Geofence Size"</span>, <span class="hljs-string">"The size of the circular geofence in meters."</span>, <span class="hljs-number">0</span>, <span class="hljs-number">1000</span>, <span class="hljs-number">1</span>)
-</code></pre>
-<p>Similar to mapping properties, text parameters have an internalId (radius), a label and a description.
-In addition, we can assign a <em>value specification</em> to the parameter indicating the value range we support.
-Our example supports a radius value between 0 and 1000 with a granularity of 1.
-In the StreamPipes UI, a required text parameter is rendered as a text input field, in case we provide an optional value specification, a slider input is automatically generated.</p>
-<p>Such user-defined parameters are called <em>static properties</em>. There are many different types of static properties (see the <a href="/docs/docs/0.55.2-pre-asf/dev-guide-sdk-guide-processors">Processor SDK</a> for an overview).</p>
-<p>One example are <em>DomainProperties</em> we use for defining the center of the geofence.
-Our data processor requires a lat/lng pair that marks the center of the geofence.
-However, letting users directly input latitude and longitude coordinates wouldn't be very user-friendly.
-Therefore, we can link required text parameters to <em>ontology concepts</em>. By understanding the required input, the StreamPipes UI is able to determine which user interface works best for a specific concept.</p>
-<p>Add the following line to the <code>declareModel</code> method:</p>
-<pre><code class="hljs css language-java">.requiredOntologyConcept(Labels.from(<span class="hljs-string">"location"</span>, <span class="hljs-string">"Geofence Center"</span>, <span class="hljs-string">"Provide the coordinate of the "</span> +
-    <span class="hljs-string">"geofence center"</span>), OntologyProperties.mandatory(Geo.lat), OntologyProperties.mandatory(Geo.lng))
-
-</code></pre>
-<p>We've now defined that we would like to receive an instance that provides a latitude and a longitude coordinate.
-Users can input these values either manually, or they can look up <em>domain knowledge</em> (part of the StreamPipes Enterprise Edition), i.e., knowledge stored isolated from the stream definition.</p>
-<p>Finally, we need to define technical requirements of the data processor, called <em>groundings</em>.
-StreamPipes supports various runtime data formats (e.g., JSON or Thrift) and various protocols (e.g., Kafka or JMS).
-Each component defines supports formats and protocol separately.
-For our example, we'd like to support JSON-based messages and Kafka as input and output broker protocol, so append the following:</p>
-<pre><code class="hljs css language-java">.supportedProtocols(SupportedProtocols.kafka())
-.supportedFormats(SupportedFormats.jsonFormat())
-.build();
-</code></pre>
-<p>Now we need to define the output of our Geofencing pipeline element.
-As explained in the first section, the element should fire every time some geo-located entity arrives within the defined geofence.
-Therefore, the processor outputs the same schema as it receives as an input.
-Although we don't know the exact input right now as it depends on the stream users connect in StreamPipes when creating pipelines, we can define an <em>output strategy</em> as follows:</p>
-<pre><code class="hljs css language-java">.outputStrategy(OutputStrategies.keep())
-</code></pre>
-<p>This defines a <em>KeepOutputStrategy</em>, i.e., the input event schema is not modified by the processor.
-There are many more output strategies you can define depending on the functionality you desire, e.g., <em>AppendOutput</em> for defining a processor that enriches events or <em>CustomOutput</em> in case you would like users to select the output by themselves.</p>
-<p>That's it! We've now defined input requirements, required user input, technical requirements concerned with data format and protocol and an output strategy.
-In the next section, you will learn how to extract these parameters once the pipeline element is invoked after a pipeline was created.</p>
-<h2><a class="anchor" aria-hidden="true" id="pipeline-element-invocation"></a><a href="#pipeline-element-invocation" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 1 [...]
-<p>Once users start a pipeline that uses our geofencing component, the <em>getRuntime</em> method in our class is called. The class <code>DataSinkInovcation</code> includes a graph that contains information on the configuration parameters a users has selected in the pipeline editor and information on the acutal streams that are connected to the pipeline element.</p>
-<p>Before we explain in more detail how to extract these values from the processor invocation, we need to adapt a little helper class.
-Open the file <code>GeofencingParameters</code> and modify it as follows:</p>
-<pre><code class="hljs css language-java"><span class="hljs-keyword">public</span> <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">GeofencingParameters</span> <span class="hljs-keyword">extends</span> <span class="hljs-title">EventProcessorBindingParams</span> </span>{
-
-  <span class="hljs-keyword">private</span> String latitudeFieldName;
-  <span class="hljs-keyword">private</span> String longitudeFieldName;
-
-  <span class="hljs-keyword">private</span> Float centerLatitude;
-  <span class="hljs-keyword">private</span> Float centerLongitude;
-
-  <span class="hljs-keyword">private</span> Integer radius;
-
-  <span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-title">GeofencingParameters</span><span class="hljs-params">(DataProcessorInvocation graph, String latitudeFieldName, String longitudeFieldName,
-                              Float centerLatitude, Float centerLongitude, Integer radius)</span> </span>{
-    <span class="hljs-keyword">super</span>(graph);
-    <span class="hljs-keyword">this</span>.latitudeFieldName = latitudeFieldName;
-    <span class="hljs-keyword">this</span>.longitudeFieldName = longitudeFieldName;
-    <span class="hljs-keyword">this</span>.centerLatitude = centerLatitude;
-    <span class="hljs-keyword">this</span>.centerLongitude = centerLongitude;
-    <span class="hljs-keyword">this</span>.radius = radius;
-  }
-
-  <span class="hljs-function"><span class="hljs-keyword">public</span> String <span class="hljs-title">getLatitudeFieldName</span><span class="hljs-params">()</span> </span>{
-    <span class="hljs-keyword">return</span> latitudeFieldName;
-  }
-
-  <span class="hljs-function"><span class="hljs-keyword">public</span> String <span class="hljs-title">getLongitudeFieldName</span><span class="hljs-params">()</span> </span>{
-    <span class="hljs-keyword">return</span> longitudeFieldName;
-  }
-
-  <span class="hljs-function"><span class="hljs-keyword">public</span> Float <span class="hljs-title">getCenterLatitude</span><span class="hljs-params">()</span> </span>{
-    <span class="hljs-keyword">return</span> centerLatitude;
-  }
-
-  <span class="hljs-function"><span class="hljs-keyword">public</span> Float <span class="hljs-title">getCenterLongitude</span><span class="hljs-params">()</span> </span>{
-    <span class="hljs-keyword">return</span> centerLongitude;
-  }
-
-  <span class="hljs-function"><span class="hljs-keyword">public</span> Integer <span class="hljs-title">getRadius</span><span class="hljs-params">()</span> </span>{
-    <span class="hljs-keyword">return</span> radius;
-  }
-</code></pre>
-<p>This simple Pojo class will later serve to store user-defined parameters in a single object.</p>
-<p>Now we go back to the controller class and extract these values from the invocation object.</p>
-<p>First, add the following line to the <code>getRuntime</code> method:</p>
-<pre><code class="hljs css language-java">ProcessingElementParameterExtractor extractor =
-    ProcessingElementParameterExtractor.from(dataProcessorInvocation);
-</code></pre>
-<p>The extractor provides convenience methods to extract the relevant information from the <code>DataProcessorInvocation</code> object.</p>
-<p>Next, we are interested in the fields of the input event stream that contains the latitude and longitude value we would like to compute against the geofence center location as follows:</p>
-<pre><code class="hljs css language-java">String latitudeFieldName = extractor.mappingPropertyValue(<span class="hljs-string">"latitude-field"</span>);
-String longitudeFieldName = extractor.mappingPropertyValue(<span class="hljs-string">"longitude-field"</span>);
-</code></pre>
-<p>We use the same <code>internalId</code> we've used to define the mapping property requirements in the <code>declareModel</code> method.</p>
-<p>Next, for extracting the geofence center coordinates, we use the following statements:</p>
-<pre><code class="hljs css language-java">Float centerLatitude = extractor.supportedOntologyPropertyValue(<span class="hljs-string">"location"</span>, Geo.lat, Float<span class="hljs-class">.<span class="hljs-keyword">class</span>)</span>;
-Float centerLongitude = extractor.supportedOntologyPropertyValue(<span class="hljs-string">"location"</span>, Geo.lng, Float<span class="hljs-class">.<span class="hljs-keyword">class</span>)</span>;
-</code></pre>
-<p>The radius value can be extracted as follows:</p>
-<pre><code class="hljs css language-java">Integer radius = extractor.singleValueParameter(<span class="hljs-string">"radius"</span>, Integer<span class="hljs-class">.<span class="hljs-keyword">class</span>)</span>;
-</code></pre>
-<p>Now we can create a new instance of our previously created parameter class:</p>
-<pre><code class="hljs css language-java">GeofencingParameters params = <span class="hljs-keyword">new</span> GeofencingParameters(dataProcessorInvocation, latitudeFieldName,
-            longitudeFieldName, centerLatitude, centerLongitude, radius);
-</code></pre>
-<p>Finally, return an instance of the class <code>GeofencingProgram</code>:</p>
-<pre><code class="hljs css language-java"><span class="hljs-keyword">return</span> <span class="hljs-keyword">new</span> GeofencingProgram(params);
-</code></pre>
-<div class="admonition tip">
-<div class="admonition-title">Info</div>
-<p>The line above uses the Flink MiniCluster to start the Flink program for debugging purposes.
-       Before you build the project and use it in a real environment, replace the line as follows, which triggers cluster execution:
-       <code>return new GeofencingProgram(params, new FlinkDeploymentConfig(Config.JAR_FILE, Config.INSTANCE.getFlinkHost(), Config.INSTANCE.getFlinkPort())</code></p>
-</div>
-<p>Great! That's all we need to describe a data processor for usage in StreamPipes. Your controller class should look as follows:</p>
-<pre><code class="hljs css language-java"><span class="hljs-keyword">import</span> org.streampipes.model.graph.DataProcessorDescription;
-<span class="hljs-keyword">import</span> org.streampipes.model.graph.DataProcessorInvocation;
-<span class="hljs-keyword">import</span> org.streampipes.model.schema.PropertyScope;
-<span class="hljs-keyword">import</span> org.streampipes.sdk.builder.ProcessingElementBuilder;
-<span class="hljs-keyword">import</span> org.streampipes.sdk.builder.StreamRequirementsBuilder;
-<span class="hljs-keyword">import</span> org.streampipes.sdk.extractor.ProcessingElementParameterExtractor;
-<span class="hljs-keyword">import</span> org.streampipes.sdk.helpers.EpRequirements;
-<span class="hljs-keyword">import</span> org.streampipes.sdk.helpers.Labels;
-<span class="hljs-keyword">import</span> org.streampipes.sdk.helpers.OntologyProperties;
-<span class="hljs-keyword">import</span> org.streampipes.sdk.helpers.OutputStrategies;
-<span class="hljs-keyword">import</span> org.streampipes.sdk.helpers.SupportedFormats;
-<span class="hljs-keyword">import</span> org.streampipes.sdk.helpers.SupportedProtocols;
-<span class="hljs-keyword">import</span> org.streampipes.vocabulary.Geo;
-<span class="hljs-keyword">import</span> org.streampipes.wrapper.flink.FlinkDataProcessorDeclarer;
-<span class="hljs-keyword">import</span> org.streampipes.wrapper.flink.FlinkDataProcessorRuntime;
-
-<span class="hljs-keyword">public</span> <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">GeofencingController</span> <span class="hljs-keyword">extends</span> <span class="hljs-title">FlinkDataProcessorDeclarer</span>&lt;<span class="hljs-title">GeofencingParameters</span>&gt; </span>{
-
-  <span class="hljs-meta">@Override</span>
-  <span class="hljs-function"><span class="hljs-keyword">protected</span> FlinkDataProcessorRuntime&lt;GeofencingParameters&gt; <span class="hljs-title">getRuntime</span><span class="hljs-params">(DataProcessorInvocation dataProcessorInvocation)</span> </span>{
-    ProcessingElementParameterExtractor extractor = ProcessingElementParameterExtractor.from(dataProcessorInvocation);
-
-    String latitudeFieldName = extractor.mappingPropertyValue(<span class="hljs-string">"latitude-field"</span>);
-    String longitudeFieldName = extractor.mappingPropertyValue(<span class="hljs-string">"longitude-field"</span>);
-
-    Float centerLatitude = extractor.supportedOntologyPropertyValue(<span class="hljs-string">"location"</span>, Geo.lat, Float<span class="hljs-class">.<span class="hljs-keyword">class</span>)</span>;
-    Float centerLongitude = extractor.supportedOntologyPropertyValue(<span class="hljs-string">"location"</span>, Geo.lng, Float<span class="hljs-class">.<span class="hljs-keyword">class</span>)</span>;
-
-    Integer radius = extractor.singleValueParameter(<span class="hljs-string">"radius"</span>, Integer<span class="hljs-class">.<span class="hljs-keyword">class</span>)</span>;
-
-    GeofencingParameters params = <span class="hljs-keyword">new</span> GeofencingParameters(dataProcessorInvocation, latitudeFieldName,
-            longitudeFieldName, centerLatitude, centerLongitude, radius);
-
-    <span class="hljs-keyword">return</span> <span class="hljs-keyword">new</span> GeofencingProgram(params);
-  }
-
-  <span class="hljs-meta">@Override</span>
-  <span class="hljs-function"><span class="hljs-keyword">public</span> DataProcessorDescription <span class="hljs-title">declareModel</span><span class="hljs-params">()</span> </span>{
-    <span class="hljs-keyword">return</span> ProcessingElementBuilder.create(<span class="hljs-string">"geofencing-flink"</span>, <span class="hljs-string">"Geofencing"</span>, <span class="hljs-string">"A simple geofencing data processor "</span> +
-            <span class="hljs-string">"using the Apache Flink wrapper"</span>)
-            .requiredStream(StreamRequirementsBuilder
-                    .create()
-                    .requiredPropertyWithUnaryMapping(EpRequirements.domainPropertyReq(Geo.lat),
-                            Labels.from(<span class="hljs-string">"latitude-field"</span>, <span class="hljs-string">"Latitude"</span>, <span class="hljs-string">"The event "</span> +
-                            <span class="hljs-string">"property containing the latitude value"</span>), PropertyScope.MEASUREMENT_PROPERTY)
-                    .requiredPropertyWithUnaryMapping(EpRequirements.domainPropertyReq(Geo.lng),
-                            Labels.from(<span class="hljs-string">"longitude-field"</span>, <span class="hljs-string">"Longitude"</span>, <span class="hljs-string">"The event "</span> +
-                                    <span class="hljs-string">"property containing the longitude value"</span>), PropertyScope.MEASUREMENT_PROPERTY)
-                    .build())
-            .requiredIntegerParameter(<span class="hljs-string">"radius"</span>, <span class="hljs-string">"Geofence Size"</span>, <span class="hljs-string">"The size of the circular geofence in meters."</span>,
-                    <span class="hljs-number">0</span>, <span class="hljs-number">1000</span>, <span class="hljs-number">1</span>)
-            .requiredOntologyConcept(Labels.from(<span class="hljs-string">"location"</span>, <span class="hljs-string">"Geofence Center"</span>, <span class="hljs-string">"Provide the coordinate of the "</span> +
-                    <span class="hljs-string">"geofence center"</span>), OntologyProperties.mandatory(Geo.lat), OntologyProperties.mandatory(Geo.lng))
-            .supportedProtocols(SupportedProtocols.kafka())
-            .supportedFormats(SupportedFormats.jsonFormat())
-            .outputStrategy(OutputStrategies.keep())
-            .build();
-  }
-}
-
-</code></pre>
-<h2><a class="anchor" aria-hidden="true" id="adding-an-implementation"></a><a href="#adding-an-implementation" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-. [...]
-<p>Everything we need to do now is to add an implementation which does not differ from writing an Apache Flink topology.</p>
-<p>Open the class <code>GeofencingProcessor.java</code> and add the following piece of code, which realizes the Geofencing functionality:</p>
-<pre><code class="hljs css language-java"><span class="hljs-keyword">public</span> <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">GeofencingProcessor</span> <span class="hljs-keyword">implements</span> <span class="hljs-title">FlatMapFunction</span>&lt;<span class="hljs-title">Map</span>&lt;<span class="hljs-title">String</span>, <span class="hljs-title">Object</span>&gt;, <span class="hljs-title">Map</span>&lt;<span class="hljs-title">String</s [...]
-
-  <span class="hljs-keyword">private</span> String latitudeFieldName;
-  <span class="hljs-keyword">private</span> String longitudeFieldName;
-
-  <span class="hljs-keyword">private</span> Float centerLatitude;
-  <span class="hljs-keyword">private</span> Float centerLongitude;
-
-  <span class="hljs-keyword">private</span> Integer radius;
-
-  <span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-title">GeofencingProcessor</span><span class="hljs-params">(String latitudeFieldName, String longitudeFieldName, Float centerLatitude, Float centerLongitude, Integer radius)</span> </span>{
-    <span class="hljs-keyword">this</span>.latitudeFieldName = latitudeFieldName;
-    <span class="hljs-keyword">this</span>.longitudeFieldName = longitudeFieldName;
-    <span class="hljs-keyword">this</span>.centerLatitude = centerLatitude;
-    <span class="hljs-keyword">this</span>.centerLongitude = centerLongitude;
-    <span class="hljs-keyword">this</span>.radius = radius;
-  }
-
-  <span class="hljs-meta">@Override</span>
-  <span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">flatMap</span><span class="hljs-params">(Map&lt;String, Object&gt; in, Collector&lt;Map&lt;String, Object&gt;&gt; out)</span> <span class="hljs-keyword">throws</span> Exception </span>{
-    Float latitude = Float.parseFloat(String.valueOf(in.get(latitudeFieldName)));
-    Float longitude = Float.parseFloat(String.valueOf(in.get(longitudeFieldName)));
-
-    Float distance = distFrom(latitude, longitude, centerLatitude, centerLongitude);
-
-    <span class="hljs-keyword">if</span> (distance &lt;= radius) {
-      out.collect(in);
-    }
-  }
-
-  <span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">static</span> Float <span class="hljs-title">distFrom</span><span class="hljs-params">(<span class="hljs-keyword">float</span> lat1, <span class="hljs-keyword">float</span> lng1, <span class="hljs-keyword">float</span> lat2, <span class="hljs-keyword">float</span> lng2)</span> </span>{
-    <span class="hljs-keyword">double</span> earthRadius = <span class="hljs-number">6371000</span>;
-    <span class="hljs-keyword">double</span> dLat = Math.toRadians(lat2-lat1);
-    <span class="hljs-keyword">double</span> dLng = Math.toRadians(lng2-lng1);
-    <span class="hljs-keyword">double</span> a = Math.sin(dLat/<span class="hljs-number">2</span>) * Math.sin(dLat/<span class="hljs-number">2</span>) +
-            Math.cos(Math.toRadians(lat1)) * Math.cos(Math.toRadians(lat2)) *
-                    Math.sin(dLng/<span class="hljs-number">2</span>) * Math.sin(dLng/<span class="hljs-number">2</span>);
-    <span class="hljs-keyword">double</span> c = <span class="hljs-number">2</span> * Math.atan2(Math.sqrt(a), Math.sqrt(<span class="hljs-number">1</span>-a));
-    <span class="hljs-keyword">return</span> (<span class="hljs-keyword">float</span>) (earthRadius * c);
-  }
-
-}
-</code></pre>
-<p>We won't go into details here as this isn't StreamPipes-related code, but in general the class extracts latitude and longitude fields from the input event (which is provided as a map data type) and calculates the distance between the geofence center and these coordinates.
-If the distance is below the given radius, the event is forwarded to the next operator.</p>
-<p>Finally, we need to connect this program to the Flink topology. StreamPipes automatically adds things like the Kafka consumer and producer, so that you only need to invoke the actual geofencing processor.
-Open the file <code>GeofencingProgram</code> and append the following line inside the <code>getApplicationLogic()</code> method:</p>
-<pre><code class="hljs css language-java"><span class="hljs-keyword">return</span> dataStreams[<span class="hljs-number">0</span>].flatMap(<span class="hljs-keyword">new</span> GeofencingProcessor(params.getLatitudeFieldName(), params.getLongitudeFieldName(),
-    params.getCenterLatitude(), params.getCenterLongitude(), params.getRadius()));
-</code></pre>
-<div class="admonition info">
-<div class="admonition-title">Info</div>
-<p>Although you could pass the <code>GeofencingParameters</code> class directly to the <code>GeofencingProcessor</code>, in our example we extract the properties to the class.
-       This is due to the circumstance that the parameter class currently is not serializable and Flink requires all classes to be serializable.
-       Future versions will fix this bug in StreamPipes.</p>
-</div>
-<h2><a class="anchor" aria-hidden="true" id="preparing-the-container"></a><a href="#preparing-the-container" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 [...]
-<p>The final step is to define the deployment type of our new data source. In this tutorial, we will create a so-called <code>StandaloneModelSubmitter</code>.
-This client will start an embedded web server that provides the description of our data source and automatically submits the program to the registered Apache Flink cluster.</p>
-<p>Create a new class <code>Main</code> that implements <code>StandaloneModelSubmitter</code> and add the following code into the main method:</p>
-<pre><code class="hljs css language-java"><span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">static</span> <span class="hljs-keyword">void</span> <span class="hljs-title">main</span><span class="hljs-params">(String[] args)</span> </span>{
-
-   DeclarersSingleton.getInstance().add(<span class="hljs-keyword">new</span> GeofencingController());
-
-   <span class="hljs-keyword">new</span> Main().init(Config.INSTANCE);
-
-}
-</code></pre>
-<div class="admonition info">
-<div class="admonition-title">Info</div>
-<p>In the example above, we make use of a class `Config`.
-       This class contains both mandatory and additional configuration parameters required by a pipeline element container.
-       These values are stored in the Consul-based key-value store of your StreamPipes installation.
-       The SDK guide contains a detailed manual on managing container configurations.
-</p>
-</div>
-<h2><a class="anchor" aria-hidden="true" id="starting-the-container"></a><a href="#starting-the-container" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0 [...]
-<div class="admonition tip">
-<div class="admonition-title">Tip</div>
-<p>By default, the container registers itself using the hostname later used by the Docker container, leading to a 404 error when you try to access an RDF description.
-       For local development, you need to change the hostname in Consul to `localhost`.
-       Open the class `TemplateConfig.java` and change the value defined in the `HOST` variable from `template-flink` to `localhost`.
-</p>
-</div>
-<div class="admonition tip">
-<div class="admonition-title">Tip</div>
-<p> The default port of all pipeline element containers as defined in the `Config` file is port 8090.
-       If you'd like to run mutliple containers at the same time on your development machine, you can modify the port in the `Config.java` class.
-</p>
-</div>
-<p>Now we are ready to start our container!</p>
-<p>Execute the main method in the class <code>Main</code> we've just created, open a web browser and navigate to <a href="http://localhost:8090">http://localhost:8090</a>.</p>
-<p>You should see something as follows:</p>
-<p><img src="/docs/img/tutorial-processors/pe-overview-flink.PNG" alt="Pipeline Element Container Overview (Flink)"></p>
-<p>Click on the link of the data source to see the RDF description of the pipeline element.</p>
-<p><img src="/docs/img/tutorial-processors/pe-rdf-geofencing.PNG" alt="Geofencing RDF description"></p>
-<p>The container automatically registers itself in the Consul installation of StreamPipes.
-To install the just created element, open the StreamPipes UI and follow the manual provided in the <a href="user-guide-processing-elements.md">user guide</a>.</p>
-<h2><a class="anchor" aria-hidden="true" id="read-more"></a><a href="#read-more" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
-<p>Congratulations! You've just created your first data processor for StreamPipes.
-There are many more things to explore and data processors can be defined in much more detail using multiple wrappers.
-Follow our <a href="/docs/docs/0.55.2-pre-asf/dev-guide-sdk-guide-sources">SDK guide</a> to see what's possible!</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.55.2-pre-asf/dev-guide-tutorial-sources"><span class="arrow-prev">← </span><span>dev-guide-tutorial-sources</span></a><a class="docs-next button" href="/docs/docs/0.55.2-pre-asf/dev-guide-sdk-guide-sources"><span>SDK Guide: Data Sources</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#objective">Objective</a></li [...]
-                document.addEventListener('keyup', function(e) {
-                  if (e.target !== document.body) {
-                    return;
-                  }
-                  // keyCode for '/' (slash)
-                  if (e.keyCode === 191) {
-                    const search = document.getElementById('search_input_react');
-                    search && search.focus();
-                  }
-                });
-              </script><script>
-              var search = docsearch({
-                
-                apiKey: '0fedc89dddf2810657708b178e56ef02',
-                indexName: 'streampipes',
-                inputSelector: '#search_input_react',
-                algoliaOptions: {}
-              });
-            </script></body></html>
\ No newline at end of file
diff --git a/docs/docs/0.55.2-pre-asf/dev-guide-tutorial-sources.html b/docs/docs/0.55.2-pre-asf/dev-guide-tutorial-sources.html
index 9574fae..fab749a 100644
--- a/docs/docs/0.55.2-pre-asf/dev-guide-tutorial-sources.html
+++ b/docs/docs/0.55.2-pre-asf/dev-guide-tutorial-sources.html
@@ -1,6 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Tutorial: Data Sources · Apache StreamPipes</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;In this tutorial, we will add a new data source consisting of a single data stream. The source will be provided as a standalone component (i.e., the description will be accessible  [...]
-"/><meta name="docsearch:version" content="0.55.2-pre-asf"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Tutorial: Data Sources · Apache StreamPipes"/><meta property="og:type" content="website"/><meta property="og:url" content="https://streampipes.apache.org/docs/"/><meta property="og:description" content="&lt;p&gt;In this tutorial, we will add a new data source consisting of a single data stream. The source will be provided as a standalone component ( [...]
-"/><meta property="og:image" content="https://streampipes.apache.org/docs/img/favicon.png"/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://streampipes.apache.org/docs/img/docusaurus.png"/><link rel="shortcut icon" href="/docs/img/favicon.png"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.css"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/atom-one-dark.min.css"/><lin [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Tutorial: Data Sources · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="In this tutorial, we will add a new data source consisting of a single data stream. The source will be provided as a standalone component (i.e., the description will be a [...]
               window.dataLayer = window.dataLayer || [];
               function gtag(){dataLayer.push(arguments); }
               gtag('js', new Date());
@@ -11,7 +9,7 @@
             {"zIndex":100}
           )
         });
-        </script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions"><h3>0.55.2-pre-asf</h3></a><div class="navigationWrapper navigationSli [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.55.2-pre-asf</ [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -39,10 +37,16 @@
               createToggler('#navToggler', '#docsNav', 'docsSliderActive');
               createToggler('#tocToggler', 'body', 'tocActive');
 
-              const headings = document.querySelector('.toc-headings');
+              var headings = document.querySelector('.toc-headings');
               headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
                 }
               }, false);
 
@@ -61,7 +65,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle">Tutorial: Data Sources</h1></header><article><div><span><p>In this tutorial, we will add a new data source consisting of a single data stream. The source will be provided as a standalone component (i.e., the description will be accessible through an integrated web server).</p>
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">Tutorial: Data Sources</h1></header><article><div><span><p>In this tutorial, we will add a new data source consisting of a single data stream. The source will be provided as a standalone component (i.e., the description will be accessible through an integrated web server).</p>
 <h2><a class="anchor" aria-hidden="true" id="objective"></a><a href="#objective" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
 <p>We are going to create a new data stream that is produced by a GPS sensor installed in a delivery vehicle.
 The sensor produces a continuous stream of events that contain the current timestamp, the current lat/lng position of the vehicle and the plate number of the vehicle.
@@ -90,7 +94,7 @@ You should see a structure like this:</p>
 </p>
 </div>
 <p><strong>Option 2: Start a new project from scratch</strong></p>
-<p>If you want to start from scratch, we refer to the <a href="/docs/docs/0.55.2-pre-asf/dev-guide-sdk-guide-processors">Sources SDK guide</a> which provides instructions on the general project setup.</p>
+<p>If you want to start from scratch, we refer to the <a href="/docs/docs/0.55.2-pre-asf/dev-guide-sdk-guide-processors.html">Sources SDK guide</a> which provides instructions on the general project setup.</p>
 <h2><a class="anchor" aria-hidden="true" id="adding-a-data-stream-description"></a><a href="#adding-a-data-stream-description" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13. [...]
 <p>Now we will add a new data stream definition.
 First, open the class <code>VehicleStream</code> which should look as follows:</p>
@@ -221,8 +225,8 @@ To install the just created element, open the StreamPipes UI and follow the manu
 <h2><a class="anchor" aria-hidden="true" id="read-more"></a><a href="#read-more" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
 <p>Congratulations! You've just created your first pipeline element for StreamPipes.
 There are many more things to explore and data sources can be defined in much more detail.
-Follow our <a href="/docs/docs/0.55.2-pre-asf/dev-guide-sdk-guide-sources">SDK guide</a> to see what's possible!</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.55.2-pre-asf/dev-guide-development-environment"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/docs/0.55.2-pre-asf/dev-guide-tutorial-processors"><span>dev-guide-tutorial-processors</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#objective">Objective</a></li><l [...]
+Follow our <a href="/docs/docs/0.55.2-pre-asf/dev-guide-sdk-guide-sources.html">SDK guide</a> to see what's possible!</p>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.55.2-pre-asf/dev-guide-development-environment.html"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/docs/0.55.2-pre-asf/dev-guide-tutorial-processors.html"><span>dev-guide-tutorial-processors</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#objective">Objective< [...]
                 document.addEventListener('keyup', function(e) {
                   if (e.target !== document.body) {
                     return;
diff --git a/docs/docs/0.55.2-pre-asf/dev-guide-tutorial-sources/index.html b/docs/docs/0.55.2-pre-asf/dev-guide-tutorial-sources/index.html
deleted file mode 100644
index 9574fae..0000000
--- a/docs/docs/0.55.2-pre-asf/dev-guide-tutorial-sources/index.html
+++ /dev/null
@@ -1,244 +0,0 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Tutorial: Data Sources · Apache StreamPipes</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;In this tutorial, we will add a new data source consisting of a single data stream. The source will be provided as a standalone component (i.e., the description will be accessible  [...]
-"/><meta name="docsearch:version" content="0.55.2-pre-asf"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Tutorial: Data Sources · Apache StreamPipes"/><meta property="og:type" content="website"/><meta property="og:url" content="https://streampipes.apache.org/docs/"/><meta property="og:description" content="&lt;p&gt;In this tutorial, we will add a new data source consisting of a single data stream. The source will be provided as a standalone component ( [...]
-"/><meta property="og:image" content="https://streampipes.apache.org/docs/img/favicon.png"/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://streampipes.apache.org/docs/img/docusaurus.png"/><link rel="shortcut icon" href="/docs/img/favicon.png"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.css"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/atom-one-dark.min.css"/><lin [...]
-              window.dataLayer = window.dataLayer || [];
-              function gtag(){dataLayer.push(arguments); }
-              gtag('js', new Date());
-              gtag('config', 'UA-154181944-1');
-            </script><link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons"/><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick.min.css"/><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick-theme.min.css"/><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto"/><link rel="stylesheet" href="/docs/css/admonition.css"/><link rel="stylesheet" href="/docs [...]
-        document.addEventListener('DOMContentLoaded', function() {
-          addBackToTop(
-            {"zIndex":100}
-          )
-        });
-        </script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions"><h3>0.55.2-pre-asf</h3></a><div class="navigationWrapper navigationSli [...]
-            var coll = document.getElementsByClassName('collapsible');
-            var checkActiveCategory = true;
-            for (var i = 0; i < coll.length; i++) {
-              var links = coll[i].nextElementSibling.getElementsByTagName('*');
-              if (checkActiveCategory){
-                for (var j = 0; j < links.length; j++) {
-                  if (links[j].classList.contains('navListItemActive')){
-                    coll[i].nextElementSibling.classList.toggle('hide');
-                    coll[i].childNodes[1].classList.toggle('rotate');
-                    checkActiveCategory = false;
-                    break;
-                  }
-                }
-              }
-
-              coll[i].addEventListener('click', function() {
-                var arrow = this.childNodes[1];
-                arrow.classList.toggle('rotate');
-                var content = this.nextElementSibling;
-                content.classList.toggle('hide');
-              });
-            }
-
-            document.addEventListener('DOMContentLoaded', function() {
-              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
-              createToggler('#tocToggler', 'body', 'tocActive');
-
-              const headings = document.querySelector('.toc-headings');
-              headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
-                }
-              }, false);
-
-              function createToggler(togglerSelector, targetSelector, className) {
-                var toggler = document.querySelector(togglerSelector);
-                var target = document.querySelector(targetSelector);
-
-                if (!toggler) {
-                  return;
-                }
-
-                toggler.onclick = function(event) {
-                  event.preventDefault();
-
-                  target.classList.toggle(className);
-                };
-              }
-            });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle">Tutorial: Data Sources</h1></header><article><div><span><p>In this tutorial, we will add a new data source consisting of a single data stream. The source will be provided as a standalone component (i.e., the description will be accessible through an integrated web server).</p>
-<h2><a class="anchor" aria-hidden="true" id="objective"></a><a href="#objective" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
-<p>We are going to create a new data stream that is produced by a GPS sensor installed in a delivery vehicle.
-The sensor produces a continuous stream of events that contain the current timestamp, the current lat/lng position of the vehicle and the plate number of the vehicle.
-Events are published in a JSON format as follows:</p>
-<pre><code class="hljs css language-json">{
-  <span class="hljs-attr">"timestamp"</span> : <span class="hljs-number">145838399</span>,
-  <span class="hljs-attr">"latitude"</span> : <span class="hljs-number">37.04</span>,
-  <span class="hljs-attr">"longitude"</span> : <span class="hljs-number">17.04</span>,
-  <span class="hljs-attr">"plateNumber"</span> : <span class="hljs-string">"KA-AB 123"</span>
-}
-</code></pre>
-<p>These events are published to a Kafka broker using the topic <code>org.streampipes.tutorial.vehicle</code>.</p>
-<p>In the following section, we show how to describe this stream in a form that allows you to import and use it in StreamPipes.</p>
-<h2><a class="anchor" aria-hidden="true" id="project-setup"></a><a href="#project-setup" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
-<p>Currently, there are two options to start a new project (option 1 is recommended):</p>
-<p><strong>Option 1: Using a template project</strong></p>
-<p>Clone the following project from our Github repo: <a href="https://github.com/streampipes/templates-sources">https://github.com/streampipes/templates-sources</a></p>
-<p>Import the project into an IDE of your choice.
-You should see a structure like this:</p>
-<p><img src="/docs/img/tutorial-sources/project-structure.PNG" alt="Project Structure"></p>
-<p>Rename the class <code>TemplateSource.java</code> to <code>VehicleSource.java</code> and the class <code>TemplateStream.java</code> to <code>VehicleStream.java</code>.</p>
-<p>That's it, go to the next section to learn how to create your first data stream!</p>
-<div class="admonition tip">
-<div class="admonition-title">Tip</div>
-<p>Besides the basic project skeleton, the sample project also includes an example Dockerfile you can use to package your application into a Docker container.
-</p>
-</div>
-<p><strong>Option 2: Start a new project from scratch</strong></p>
-<p>If you want to start from scratch, we refer to the <a href="/docs/docs/0.55.2-pre-asf/dev-guide-sdk-guide-processors">Sources SDK guide</a> which provides instructions on the general project setup.</p>
-<h2><a class="anchor" aria-hidden="true" id="adding-a-data-stream-description"></a><a href="#adding-a-data-stream-description" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13. [...]
-<p>Now we will add a new data stream definition.
-First, open the class <code>VehicleStream</code> which should look as follows:</p>
-<pre><code class="hljs css language-java"><span class="hljs-keyword">package</span> org.streampipes.tutorial.source;
-
-<span class="hljs-keyword">import</span> org.streampipes.model.EventStream;
-<span class="hljs-keyword">import</span> de.fzi.cep.sepa.model.impl.graph.SepDescription;
-<span class="hljs-keyword">import</span> de.fzi.cep.sepa.sources.AbstractAlreadyExistingStream;
-
-<span class="hljs-keyword">public</span> <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">VehiclePositionStream</span> <span class="hljs-keyword">extends</span> <span class="hljs-title">AbstractAlreadyExistingStream</span> </span>{
-
-  <span class="hljs-meta">@Override</span>
-  <span class="hljs-function"><span class="hljs-keyword">public</span> EventStream <span class="hljs-title">declareModel</span><span class="hljs-params">(SepDescription sep)</span> </span>{
-
-
-  }
-}
-</code></pre>
-<p>This class extends the class <code>AbstractAlreadyExistingStream</code>. This class indicates that we only want to describe an already existing stream (e.g., a stream that already sends data to an existing Kafka broker).
-In contrast, if you'd plan to define a stream that produces data (e.g., simulates vehicle positions directly from this module), you could extend the class <code>AbstractAdapterIncludedStream</code>.</p>
-<p>Now we will add the definition of the data stream. Add the following code inside of the <code>declareModel</code> method:</p>
-<pre><code class="hljs css language-java"><span class="hljs-keyword">return</span> DataStreamBuilder.create(<span class="hljs-string">"vehicle-position"</span>, <span class="hljs-string">"Vehicle Position"</span>, <span class="hljs-string">"An event stream "</span> +
-          <span class="hljs-string">"that produces current vehicle positions"</span>)
-</code></pre>
-<p>This line creates a new instance of the SDK's <code>DataStreamBuilder</code> by providing three basic parameters:
-The first parameter must be a unique identifier of your data stream.
-The second and third parameters indicate a label and a description of your stream.
-These values will later be used in the StreamPipes UI to display stream details in a human-readable manner.</p>
-<p>Next, we will add the properties as stated above to the stream definition by adding the following lines:</p>
-<pre><code class="hljs css language-java">.property(EpProperties.timestampProperty(<span class="hljs-string">"timestamp"</span>))
-.property(EpProperties.stringEp(Labels.from(<span class="hljs-string">"plate-number"</span>, <span class="hljs-string">"Plate Number"</span>, <span class="hljs-string">"Denotes the plate number of the vehicle"</span>), <span class="hljs-string">"plateNumber"</span>, <span class="hljs-string">"http://my.company/plateNumber"</span>))
-.property(EpProperties.doubleEp(Labels.from(<span class="hljs-string">"latitude"</span>, <span class="hljs-string">"Latitude"</span>, <span class="hljs-string">"Denotes the latitude value of the vehicle's position"</span>), <span class="hljs-string">"latitude"</span>, Geo.lat))
-.property(EpProperties.doubleEp(Labels.from(<span class="hljs-string">"longitude"</span>, <span class="hljs-string">"Longitude"</span>, <span class="hljs-string">"Denotes the longitude value of the vehicle's position"</span>), <span class="hljs-string">"longitude"</span>, Geo.lng))
-</code></pre>
-<p>These four <em>event properties</em> compose our <em>event schema</em>. An event property must, at least, provide the following attributes:</p>
-<ul>
-<li><strong>Runtime Name</strong>. The runtime name indicates the key of the property at runtime, e.g., if our JSON message contains a structure such as <code>{&quot;plateNumber&quot; : &quot;KA-F 123&quot;}</code>, the runtime name must be <code>plateNumber</code>.</li>
-<li><strong>Runtime Type</strong>. An event property must have a primitive type (we will later see how to model more complex properties such as lists and nested properties).
-The type must be an instance of <code>XMLSchema</code> primitives, however, the SDK provides convenience methods to provide the property type.</li>
-<li><strong>Domain Property</strong>. The domain property indicates the semantics of the event property. For instance, the <code>latitude</code> property is linked to the <code>http://www.w3.org/2003/01/geo/wgs84_pos#lat</code> property of the WGS84 vocabulary.
-The domain property should be an URI as part of an existing or domain-specific vocabulary. The SDK provides convenience methods for popuplar vocabularies (e.g., Schema.org, Dolce or WGS84).</li>
-</ul>
-<p>In order to complete the minimum required specification of an event stream, we need to provide information on the transport format and protocol of the data stream at runtime.</p>
-<p>This can be achieved by extending the builder with the respective properties:</p>
-<pre><code class="hljs css language-java">.format(Formats.jsonFormat())
-.protocol(Protocols.kafka(<span class="hljs-string">"ipe-koi15.fzi.de"</span>, <span class="hljs-number">9092</span>, <span class="hljs-string">"org.streampipes.tutorial.vehicle"</span>))
-.build();
-</code></pre>
-<p>In this example, we defined that the data stream consists of events in a JSON format and that Kafka is used as a message broker to transmit events.
-The last build() method call triggers the construction of the RDF-based data stream definition.</p>
-<p>That's it! In the next section, we will connect the data stream to a source and inspect the generated RDF description.</p>
-<h2><a class="anchor" aria-hidden="true" id="adding-a-source-description"></a><a href="#adding-a-source-description" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 1 [...]
-<p>A data source can be seen like a container for a set of data streams. Usually, a data source includes events that are logically or physically connected.
-For instance, in our example we would add other streams produced by vehicle sensors (such as fuel consumption) to the same data source description.</p>
-<p>Open the class <code>VehicleSource</code> which should look as follows:</p>
-<pre><code class="hljs css language-java"><span class="hljs-keyword">import</span> org.streampipes.container.declarer.EventStreamDeclarer;
-<span class="hljs-keyword">import</span> org.streampipes.container.declarer.SemanticEventProducerDeclarer;
-<span class="hljs-keyword">import</span> org.streampipes.model.graph.DataSourceDescription;
-<span class="hljs-keyword">import</span> org.streampipes.sdk.builder.DataSourceBuilder;
-
-<span class="hljs-keyword">import</span> java.util.Arrays;
-<span class="hljs-keyword">import</span> java.util.List;
-
-<span class="hljs-keyword">public</span> <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">TemplateSource</span> <span class="hljs-keyword">implements</span> <span class="hljs-title">SemanticEventProducerDeclarer</span> </span>{
-
-    <span class="hljs-meta">@Override</span>
-    <span class="hljs-function"><span class="hljs-keyword">public</span> DataSourceDescription <span class="hljs-title">declareModel</span><span class="hljs-params">()</span> </span>{
-        <span class="hljs-keyword">return</span> DataSourceBuilder.create(<span class="hljs-string">"template-source"</span>, <span class="hljs-string">"Template Source"</span>, <span class="hljs-string">"This is a "</span> +
-                <span class="hljs-string">"template to build your first StreamPipes source"</span>)
-                .build();
-
-    }
-
-    <span class="hljs-meta">@Override</span>
-    <span class="hljs-function"><span class="hljs-keyword">public</span> List&lt;EventStreamDeclarer&gt; <span class="hljs-title">getEventStreams</span><span class="hljs-params">()</span> </span>{
-        <span class="hljs-keyword">return</span> Arrays.asList(<span class="hljs-keyword">new</span> TemplateStream());
-    }
-}
-</code></pre>
-<p>First, we need to define the source. Similar to data streams, a source consists of an id, a human-readable name and a description.
-Replace the content defined in the <code>declareModel</code> method with the following code:</p>
-<pre><code class="hljs css language-java"><span class="hljs-keyword">return</span> DataSourceBuilder.create(<span class="hljs-string">"source-vehicle"</span>, <span class="hljs-string">"Vehicle Source"</span>, <span class="hljs-string">"A data source that "</span> +
-    <span class="hljs-string">"holds event streams produced by vehicles."</span>)
-    .build();
-</code></pre>
-<p>Now we need to add the data stream we created before. This can be done by including the stream into the <code>getEventStreams</code> method:</p>
-<pre><code class="hljs css language-java"><span class="hljs-meta">@Override</span>
-    <span class="hljs-function"><span class="hljs-keyword">public</span> List&lt;EventStreamDeclarer&gt; <span class="hljs-title">getEventStreams</span><span class="hljs-params">()</span> </span>{
-    <span class="hljs-keyword">return</span> Arrays.asList(<span class="hljs-keyword">new</span> VehicleStream());
-}
-</code></pre>
-<h2><a class="anchor" aria-hidden="true" id="preparing-the-container"></a><a href="#preparing-the-container" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 [...]
-<p>The final step is to define the deployment type of our new data source. In this tutorial, we will create a so-called <code>StandaloneModelSubmitter</code>.
-This client will start an embedded web server that provides the description of our data source.</p>
-<p>Create a new class <code>Main</code> that implements <code>StandaloneModelSubmitter</code> and add the following code into the main method:</p>
-<pre><code class="hljs css language-java"><span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">static</span> <span class="hljs-keyword">void</span> <span class="hljs-title">main</span><span class="hljs-params">(String[] args)</span> </span>{
-
-   DeclarersSingleton.getInstance().add(<span class="hljs-keyword">new</span> VehicleSource());
-
-   <span class="hljs-keyword">new</span> Main().init(TemplateConfig.INSTANCE);
-
-}
-</code></pre>
-<p>This code adds the <code>VehicleSource</code> and sets the port where the web server will be available. Finally, the <code>init</code> method is called
-which triggers the generation of the corresponding RDF description and startup of the web server.</p>
-<div class="admonition info">
-<div class="admonition-title">Info</div>
-<p>In the example above, we make use of a class `TemplateConfig`.
-       This class contains both mandatory and additional configuration parameters required by a pipeline element container.
-       These values are stored in the Consul-based key-value store of your StreamPipes installation.
-       The SDK guide contains a detailed manual on managing container configurations.</p>
-</div>
-<h2><a class="anchor" aria-hidden="true" id="starting-the-container"></a><a href="#starting-the-container" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0 [...]
-<div class="admonition tip">
-<div class="admonition-title">Tip</div>
-<p>By default, the container registers itself using the hostname later used by the Docker container, leading to a 404 error when you try to access an RDF description.
-       For local development, you need to change the hostname in Consul to `localhost`.
-       Open the class `TemplateConfig.java` and change the value defined in the `HOST` variable from `template-sources` to `localhost`.</p>
-</div>
-<p>Now we are ready to start our first container!</p>
-<p>Execute the main method in the class <code>Main</code> we've just created, open a web browser and navigate to <a href="http://localhost:8090">http://localhost:8090</a>.</p>
-<p>You should see something as follows:</p>
-<p><img src="/docs/img/tutorial-sources/pe-overview.PNG" alt="Pipeline Element Container Overview"></p>
-<p>Click on the link of the data source to see the RDF description of the pipeline element.</p>
-<p><img src="/docs/img/tutorial-sources/pe-rdf.PNG" alt="Pipeline Element RDF description"></p>
-<p>The container automatically registers itself in the Consul installation of StreamPipes.
-To install the just created element, open the StreamPipes UI and follow the manual provided in the <a href="user-guide-processing-elements.md">user guide</a>.</p>
-<h2><a class="anchor" aria-hidden="true" id="read-more"></a><a href="#read-more" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
-<p>Congratulations! You've just created your first pipeline element for StreamPipes.
-There are many more things to explore and data sources can be defined in much more detail.
-Follow our <a href="/docs/docs/0.55.2-pre-asf/dev-guide-sdk-guide-sources">SDK guide</a> to see what's possible!</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.55.2-pre-asf/dev-guide-development-environment"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/docs/0.55.2-pre-asf/dev-guide-tutorial-processors"><span>dev-guide-tutorial-processors</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#objective">Objective</a></li><l [...]
-                document.addEventListener('keyup', function(e) {
-                  if (e.target !== document.body) {
-                    return;
-                  }
-                  // keyCode for '/' (slash)
-                  if (e.keyCode === 191) {
-                    const search = document.getElementById('search_input_react');
-                    search && search.focus();
-                  }
-                });
-              </script><script>
-              var search = docsearch({
-                
-                apiKey: '0fedc89dddf2810657708b178e56ef02',
-                indexName: 'streampipes',
-                inputSelector: '#search_input_react',
-                algoliaOptions: {}
-              });
-            </script></body></html>
\ No newline at end of file
diff --git a/docs/docs/0.55.2-pre-asf/faq-common-problems.html b/docs/docs/0.55.2-pre-asf/faq-common-problems.html
index eb7b91a..909f1fd 100644
--- a/docs/docs/0.55.2-pre-asf/faq-common-problems.html
+++ b/docs/docs/0.55.2-pre-asf/faq-common-problems.html
@@ -1,10 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Common Problems · Apache StreamPipes</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;ul&gt;
-&lt;li&gt;Windows 10: Consul, Kafka, Zookeeper, or Kafka-Rest did not start&lt;/li&gt;
-&lt;/ul&gt;
-"/><meta name="docsearch:version" content="0.55.2-pre-asf"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Common Problems · Apache StreamPipes"/><meta property="og:type" content="website"/><meta property="og:url" content="https://streampipes.apache.org/docs/"/><meta property="og:description" content="&lt;ul&gt;
-&lt;li&gt;Windows 10: Consul, Kafka, Zookeeper, or Kafka-Rest did not start&lt;/li&gt;
-&lt;/ul&gt;
-"/><meta property="og:image" content="https://streampipes.apache.org/docs/img/favicon.png"/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://streampipes.apache.org/docs/img/docusaurus.png"/><link rel="shortcut icon" href="/docs/img/favicon.png"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.css"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/atom-one-dark.min.css"/><lin [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Common Problems · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="* Windows 10: Consul, Kafka, Zookeeper, or Kafka-Rest did not start"/><meta name="docsearch:version" content="0.55.2-pre-asf"/><meta name="docsearch:language" content="en"/><met [...]
               window.dataLayer = window.dataLayer || [];
               function gtag(){dataLayer.push(arguments); }
               gtag('js', new Date());
@@ -15,7 +9,7 @@
             {"zIndex":100}
           )
         });
-        </script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions"><h3>0.55.2-pre-asf</h3></a><div class="navigationWrapper navigationSli [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.55.2-pre-asf</ [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -43,10 +37,16 @@
               createToggler('#navToggler', '#docsNav', 'docsSliderActive');
               createToggler('#tocToggler', 'body', 'tocActive');
 
-              const headings = document.querySelector('.toc-headings');
+              var headings = document.querySelector('.toc-headings');
               headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
                 }
               }, false);
 
@@ -65,7 +65,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle">Common Problems</h1></header><article><div><span><ul>
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">Common Problems</h1></header><article><div><span><ul>
 <li>Windows 10: Consul, Kafka, Zookeeper, or Kafka-Rest did not start</li>
 <li>Linux / OSX: Consul does not start</li>
 <li>Run StreamPipes in a VM in Windows</li>
diff --git a/docs/docs/0.55.2-pre-asf/faq-common-problems/index.html b/docs/docs/0.55.2-pre-asf/faq-common-problems/index.html
deleted file mode 100644
index eb7b91a..0000000
--- a/docs/docs/0.55.2-pre-asf/faq-common-problems/index.html
+++ /dev/null
@@ -1,127 +0,0 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Common Problems · Apache StreamPipes</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;ul&gt;
-&lt;li&gt;Windows 10: Consul, Kafka, Zookeeper, or Kafka-Rest did not start&lt;/li&gt;
-&lt;/ul&gt;
-"/><meta name="docsearch:version" content="0.55.2-pre-asf"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Common Problems · Apache StreamPipes"/><meta property="og:type" content="website"/><meta property="og:url" content="https://streampipes.apache.org/docs/"/><meta property="og:description" content="&lt;ul&gt;
-&lt;li&gt;Windows 10: Consul, Kafka, Zookeeper, or Kafka-Rest did not start&lt;/li&gt;
-&lt;/ul&gt;
-"/><meta property="og:image" content="https://streampipes.apache.org/docs/img/favicon.png"/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://streampipes.apache.org/docs/img/docusaurus.png"/><link rel="shortcut icon" href="/docs/img/favicon.png"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.css"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/atom-one-dark.min.css"/><lin [...]
-              window.dataLayer = window.dataLayer || [];
-              function gtag(){dataLayer.push(arguments); }
-              gtag('js', new Date());
-              gtag('config', 'UA-154181944-1');
-            </script><link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons"/><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick.min.css"/><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick-theme.min.css"/><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto"/><link rel="stylesheet" href="/docs/css/admonition.css"/><link rel="stylesheet" href="/docs [...]
-        document.addEventListener('DOMContentLoaded', function() {
-          addBackToTop(
-            {"zIndex":100}
-          )
-        });
-        </script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions"><h3>0.55.2-pre-asf</h3></a><div class="navigationWrapper navigationSli [...]
-            var coll = document.getElementsByClassName('collapsible');
-            var checkActiveCategory = true;
-            for (var i = 0; i < coll.length; i++) {
-              var links = coll[i].nextElementSibling.getElementsByTagName('*');
-              if (checkActiveCategory){
-                for (var j = 0; j < links.length; j++) {
-                  if (links[j].classList.contains('navListItemActive')){
-                    coll[i].nextElementSibling.classList.toggle('hide');
-                    coll[i].childNodes[1].classList.toggle('rotate');
-                    checkActiveCategory = false;
-                    break;
-                  }
-                }
-              }
-
-              coll[i].addEventListener('click', function() {
-                var arrow = this.childNodes[1];
-                arrow.classList.toggle('rotate');
-                var content = this.nextElementSibling;
-                content.classList.toggle('hide');
-              });
-            }
-
-            document.addEventListener('DOMContentLoaded', function() {
-              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
-              createToggler('#tocToggler', 'body', 'tocActive');
-
-              const headings = document.querySelector('.toc-headings');
-              headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
-                }
-              }, false);
-
-              function createToggler(togglerSelector, targetSelector, className) {
-                var toggler = document.querySelector(togglerSelector);
-                var target = document.querySelector(targetSelector);
-
-                if (!toggler) {
-                  return;
-                }
-
-                toggler.onclick = function(event) {
-                  event.preventDefault();
-
-                  target.classList.toggle(className);
-                };
-              }
-            });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle">Common Problems</h1></header><article><div><span><ul>
-<li>Windows 10: Consul, Kafka, Zookeeper, or Kafka-Rest did not start</li>
-<li>Linux / OSX: Consul does not start</li>
-<li>Run StreamPipes in a VM in Windows</li>
-<li>Only few processors are available in the pipeline editor</li>
-<li>No data is shown in the live dashbord</li>
-<li>Windows 10: Should I use settings windows containers or docker containers?</li>
-<li>Help us to improve StreamPipes and this documentation</li>
-</ul>
-<h2><a class="anchor" aria-hidden="true" id="windows-10-consul-kafka-zookeeper-or-kafka-rest-did-not-start"></a><a href="#windows-10-consul-kafka-zookeeper-or-kafka-rest-did-not-start" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-. [...]
-<p><strong>Problem:</strong> You get an error message similar to: <code>ERROR: for consul Cannot start service consul: b'driver failed programming external connectivity on endpoint sp-test_consul_1 (eae0457fc03c1364b8e81a6e155ca4b95ee1e1d01bb3c1aa9dd5192bdcb7b91a): Error starting userland proxy: mkdir /port/tcp:0.0.0.0:8600:tcp:172.30.0.9:8600: input/output error</code></p>
-<p><strong>Solution:</strong> To resolve this problem, stop StreamPipes with <code>streampipes stop</code> and restart Docker via the Docker settings in the task bar.
-After Docker was restarted, run <code>streampipes start</code>.</p>
-<h2><a class="anchor" aria-hidden="true" id="consul-does-not-start"></a><a href="#consul-does-not-start" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2 [...]
-<p><strong>Problem:</strong> After starting StreamPipes with <code>streampipes start</code>, there is an error with Consul:</p>
-<p><strong>Solution:</strong> To resolve this, execute <code>streampipes stop</code>, wait a minute and start it again with <code>streampipes start</code>. If you've installed an old version of StreamPipes (before the installer was available), make sure that no network suffixed with <code>spnet</code> exists in Docker. Type <code>docker network ls</code> to check and <code>docker network rm NETWORK_NAME</code> to remove the existing network before running the installer.</p>
-<h2><a class="anchor" aria-hidden="true" id="run-streampipes-in-a-vm-in-windows"></a><a href="#run-streampipes-in-a-vm-in-windows" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5 [...]
-<p><strong>Problem:</strong> StreamPipes does not work properly with Docker under Windows 8 or earlier versions.</p>
-<p><strong>Solution:</strong> We do support virtual machines (VMs), but if you run them under Windows, there might be problems with docker and its network configurations.
-Please use Windows 10, OSX or Linux.
-You can also use a VM from a cloud provider to test StreamPipes.</p>
-<h2><a class="anchor" aria-hidden="true" id="only-few-processors-are-available-in-the-pipeline-editor"></a><a href="#only-few-processors-are-available-in-the-pipeline-editor" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.2 [...]
-<p><strong>Problem:</strong> In the Pipeline Editor, only a few processors can be used in pipelines.</p>
-<p><strong>Solution:</strong> In the demo/desktop version, we only integrated a few processors. To ensure that you can easily try out StreamPipes (even on your laptop),
-we tried to make it as lightweight as possible. If you are interested in more sophisticated algorithms, pleas contact us.</p>
-<h2><a class="anchor" aria-hidden="true" id="no-data-is-shown-in-the-live-dashboard"></a><a href="#no-data-is-shown-in-the-live-dashboard" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1. [...]
-<p><strong>Problem:</strong> The live dashboard does not show any data.</p>
-<p><strong>Solution:</strong> If this is the case, your IP is probably configured wrong.
-You can reinstall the system by running <code>streampipes clean</code> and then <code>streampipes start</code> again.
-This will delete all StreamPipes configurations. StreamPipes is designed as a server application and requires a fixed IP.
-We created a version to easily run it on your laptop and test it, but on your laptop you usually get a new IP when you change the network.
-This problem only occurs in testing scenarios, in production scenarios the IP can also be changed manually without data loss.</p>
-<h2><a class="anchor" aria-hidden="true" id="windows-10-should-i-use-settings-windows-containers-or-docker-containers"></a><a href="#windows-10-should-i-use-settings-windows-containers-or-docker-containers" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C1 [...]
-<p><strong>Problem:</strong> StreamPipes does not work with Windows 10.</p>
-<p><strong>Solution:</strong> You should use docker containers. Go to the docker settings on our taks bar and select 'Switch to Docker containers'.</p>
-<h2><a class="anchor" aria-hidden="true" id="help-us-to-improve-streampipes-and-this-documentation"></a><a href="#help-us-to-improve-streampipes-and-this-documentation" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2. [...]
-<p>Help us to improve this section.
-If you have any problems with the system or with the documentation, do not hesitate to contact us.
-Our goal is to continuously improve StreamPipes.
-Your help and feedback is welcome.</p>
-</span></div></article></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#windows-10-consul-kafka-zookeeper-or-kafka-rest-did-not-start">Windows 10: Consul, Kafka, Zookeeper, or Kafka-Rest did not start</a></li><li><a href="#consul-does-not-start">Consul does not start</a></li><li><a href="#run-streampipes-in-a-vm-in-windows">Run StreamPipes in a VM in Windows</a></li><li><a href="#only-few-processors-are-available-in-the-pipe [...]
-                document.addEventListener('keyup', function(e) {
-                  if (e.target !== document.body) {
-                    return;
-                  }
-                  // keyCode for '/' (slash)
-                  if (e.keyCode === 191) {
-                    const search = document.getElementById('search_input_react');
-                    search && search.focus();
-                  }
-                });
-              </script><script>
-              var search = docsearch({
-                
-                apiKey: '0fedc89dddf2810657708b178e56ef02',
-                indexName: 'streampipes',
-                inputSelector: '#search_input_react',
-                algoliaOptions: {}
-              });
-            </script></body></html>
\ No newline at end of file
diff --git a/docs/docs/0.55.2-pre-asf/pipeline-elements.html b/docs/docs/0.55.2-pre-asf/pipeline-elements.html
index 8721fc3..d35e6a4 100644
--- a/docs/docs/0.55.2-pre-asf/pipeline-elements.html
+++ b/docs/docs/0.55.2-pre-asf/pipeline-elements.html
@@ -1,6 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pipeline Elements · Apache StreamPipes</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;Starting from StreamPipes version 0.62.0, this section will contain an overview of currently available pipeline elements.&lt;/p&gt;
-"/><meta name="docsearch:version" content="0.55.2-pre-asf"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Pipeline Elements · Apache StreamPipes"/><meta property="og:type" content="website"/><meta property="og:url" content="https://streampipes.apache.org/docs/"/><meta property="og:description" content="&lt;p&gt;Starting from StreamPipes version 0.62.0, this section will contain an overview of currently available pipeline elements.&lt;/p&gt;
-"/><meta property="og:image" content="https://streampipes.apache.org/docs/img/favicon.png"/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://streampipes.apache.org/docs/img/docusaurus.png"/><link rel="shortcut icon" href="/docs/img/favicon.png"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.css"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/atom-one-dark.min.css"/><lin [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pipeline Elements · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Starting from StreamPipes version 0.62.0, this section will contain an overview of currently available pipeline elements."/><meta name="docsearch:version" content="0.55.2-pre- [...]
               window.dataLayer = window.dataLayer || [];
               function gtag(){dataLayer.push(arguments); }
               gtag('js', new Date());
@@ -11,7 +9,7 @@
             {"zIndex":100}
           )
         });
-        </script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions"><h3>0.55.2-pre-asf</h3></a><div class="navigationWrapper navigationSli [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.55.2-pre-asf</ [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -39,10 +37,16 @@
               createToggler('#navToggler', '#docsNav', 'docsSliderActive');
               createToggler('#tocToggler', 'body', 'tocActive');
 
-              const headings = document.querySelector('.toc-headings');
+              var headings = document.querySelector('.toc-headings');
               headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
                 }
               }, false);
 
@@ -61,7 +65,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle">Pipeline Elements</h1></header><article><div><span><p>Starting from StreamPipes version 0.62.0, this section will contain an overview of currently available pipeline elements.</p>
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">Pipeline Elements</h1></header><article><div><span><p>Starting from StreamPipes version 0.62.0, this section will contain an overview of currently available pipeline elements.</p>
 <p>See a preview of these elements by opening the docs of the <a href="next/pipeline-elements">pre-release version</a>!</p>
 </span></div></article></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/docs/" class="nav-home"><img src="/docs/img/sp-logo-color.png" alt="Apache StreamPipes" width="66"/></a><div><h5>Docs</h5><a href="/docs/docs/user-guide-introduction">User Guide</a><a href="/docs/docs/dev-guide-introduction">Developer Guide</a><a href="/docs/docs/faq-common-problems">Frequently Asked Qu [...]
                 document.addEventListener('keyup', function(e) {
diff --git a/docs/docs/0.55.2-pre-asf/pipeline-elements/index.html b/docs/docs/0.55.2-pre-asf/pipeline-elements/index.html
deleted file mode 100644
index 8721fc3..0000000
--- a/docs/docs/0.55.2-pre-asf/pipeline-elements/index.html
+++ /dev/null
@@ -1,85 +0,0 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pipeline Elements · Apache StreamPipes</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;Starting from StreamPipes version 0.62.0, this section will contain an overview of currently available pipeline elements.&lt;/p&gt;
-"/><meta name="docsearch:version" content="0.55.2-pre-asf"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Pipeline Elements · Apache StreamPipes"/><meta property="og:type" content="website"/><meta property="og:url" content="https://streampipes.apache.org/docs/"/><meta property="og:description" content="&lt;p&gt;Starting from StreamPipes version 0.62.0, this section will contain an overview of currently available pipeline elements.&lt;/p&gt;
-"/><meta property="og:image" content="https://streampipes.apache.org/docs/img/favicon.png"/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://streampipes.apache.org/docs/img/docusaurus.png"/><link rel="shortcut icon" href="/docs/img/favicon.png"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.css"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/atom-one-dark.min.css"/><lin [...]
-              window.dataLayer = window.dataLayer || [];
-              function gtag(){dataLayer.push(arguments); }
-              gtag('js', new Date());
-              gtag('config', 'UA-154181944-1');
-            </script><link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons"/><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick.min.css"/><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick-theme.min.css"/><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto"/><link rel="stylesheet" href="/docs/css/admonition.css"/><link rel="stylesheet" href="/docs [...]
-        document.addEventListener('DOMContentLoaded', function() {
-          addBackToTop(
-            {"zIndex":100}
-          )
-        });
-        </script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions"><h3>0.55.2-pre-asf</h3></a><div class="navigationWrapper navigationSli [...]
-            var coll = document.getElementsByClassName('collapsible');
-            var checkActiveCategory = true;
-            for (var i = 0; i < coll.length; i++) {
-              var links = coll[i].nextElementSibling.getElementsByTagName('*');
-              if (checkActiveCategory){
-                for (var j = 0; j < links.length; j++) {
-                  if (links[j].classList.contains('navListItemActive')){
-                    coll[i].nextElementSibling.classList.toggle('hide');
-                    coll[i].childNodes[1].classList.toggle('rotate');
-                    checkActiveCategory = false;
-                    break;
-                  }
-                }
-              }
-
-              coll[i].addEventListener('click', function() {
-                var arrow = this.childNodes[1];
-                arrow.classList.toggle('rotate');
-                var content = this.nextElementSibling;
-                content.classList.toggle('hide');
-              });
-            }
-
-            document.addEventListener('DOMContentLoaded', function() {
-              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
-              createToggler('#tocToggler', 'body', 'tocActive');
-
-              const headings = document.querySelector('.toc-headings');
-              headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
-                }
-              }, false);
-
-              function createToggler(togglerSelector, targetSelector, className) {
-                var toggler = document.querySelector(togglerSelector);
-                var target = document.querySelector(targetSelector);
-
-                if (!toggler) {
-                  return;
-                }
-
-                toggler.onclick = function(event) {
-                  event.preventDefault();
-
-                  target.classList.toggle(className);
-                };
-              }
-            });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle">Pipeline Elements</h1></header><article><div><span><p>Starting from StreamPipes version 0.62.0, this section will contain an overview of currently available pipeline elements.</p>
-<p>See a preview of these elements by opening the docs of the <a href="next/pipeline-elements">pre-release version</a>!</p>
-</span></div></article></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/docs/" class="nav-home"><img src="/docs/img/sp-logo-color.png" alt="Apache StreamPipes" width="66"/></a><div><h5>Docs</h5><a href="/docs/docs/user-guide-introduction">User Guide</a><a href="/docs/docs/dev-guide-introduction">Developer Guide</a><a href="/docs/docs/faq-common-problems">Frequently Asked Qu [...]
-                document.addEventListener('keyup', function(e) {
-                  if (e.target !== document.body) {
-                    return;
-                  }
-                  // keyCode for '/' (slash)
-                  if (e.keyCode === 191) {
-                    const search = document.getElementById('search_input_react');
-                    search && search.focus();
-                  }
-                });
-              </script><script>
-              var search = docsearch({
-                
-                apiKey: '0fedc89dddf2810657708b178e56ef02',
-                indexName: 'streampipes',
-                inputSelector: '#search_input_react',
-                algoliaOptions: {}
-              });
-            </script></body></html>
\ No newline at end of file
diff --git a/docs/docs/0.55.2-pre-asf/privacy.html b/docs/docs/0.55.2-pre-asf/privacy.html
index 7781989..63b0865 100644
--- a/docs/docs/0.55.2-pre-asf/privacy.html
+++ b/docs/docs/0.55.2-pre-asf/privacy.html
@@ -1,6 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Datenschutzerklärung · Apache StreamPipes</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;h2&gt;&lt;a class=&quot;anchor&quot; aria-hidden=&quot;true&quot; id=&quot;verantwortliche-stelle&quot;&gt;&lt;/a&gt;&lt;a href=&quot;#verantwortliche-stelle&quot; aria-hidden=&quot;true& [...]
-"/><meta name="docsearch:version" content="0.55.2-pre-asf"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Datenschutzerklärung · Apache StreamPipes"/><meta property="og:type" content="website"/><meta property="og:url" content="https://streampipes.apache.org/docs/"/><meta property="og:description" content="&lt;h2&gt;&lt;a class=&quot;anchor&quot; aria-hidden=&quot;true&quot; id=&quot;verantwortliche-stelle&quot;&gt;&lt;/a&gt;&lt;a href=&quot;#verantwortl [...]
-"/><meta property="og:image" content="https://streampipes.apache.org/docs/img/favicon.png"/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://streampipes.apache.org/docs/img/docusaurus.png"/><link rel="shortcut icon" href="/docs/img/favicon.png"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.css"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/atom-one-dark.min.css"/><lin [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Datenschutzerklärung · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="## Verantwortliche Stelle"/><meta name="docsearch:version" content="0.55.2-pre-asf"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Datens [...]
               window.dataLayer = window.dataLayer || [];
               function gtag(){dataLayer.push(arguments); }
               gtag('js', new Date());
@@ -11,7 +9,7 @@
             {"zIndex":100}
           )
         });
-        </script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions"><h3>0.55.2-pre-asf</h3></a><div class="navigationWrapper navigationSli [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.55.2-pre-asf</ [...]
 <p>FZI Forschungszentrum Informatik
 Haid-und-Neu-Straße 10-14
 76131 Karlsruhe</p>
diff --git a/docs/docs/0.55.2-pre-asf/privacy/index.html b/docs/docs/0.55.2-pre-asf/privacy/index.html
deleted file mode 100644
index 7781989..0000000
--- a/docs/docs/0.55.2-pre-asf/privacy/index.html
+++ /dev/null
@@ -1,61 +0,0 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Datenschutzerklärung · Apache StreamPipes</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;h2&gt;&lt;a class=&quot;anchor&quot; aria-hidden=&quot;true&quot; id=&quot;verantwortliche-stelle&quot;&gt;&lt;/a&gt;&lt;a href=&quot;#verantwortliche-stelle&quot; aria-hidden=&quot;true& [...]
-"/><meta name="docsearch:version" content="0.55.2-pre-asf"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Datenschutzerklärung · Apache StreamPipes"/><meta property="og:type" content="website"/><meta property="og:url" content="https://streampipes.apache.org/docs/"/><meta property="og:description" content="&lt;h2&gt;&lt;a class=&quot;anchor&quot; aria-hidden=&quot;true&quot; id=&quot;verantwortliche-stelle&quot;&gt;&lt;/a&gt;&lt;a href=&quot;#verantwortl [...]
-"/><meta property="og:image" content="https://streampipes.apache.org/docs/img/favicon.png"/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://streampipes.apache.org/docs/img/docusaurus.png"/><link rel="shortcut icon" href="/docs/img/favicon.png"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.css"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/atom-one-dark.min.css"/><lin [...]
-              window.dataLayer = window.dataLayer || [];
-              function gtag(){dataLayer.push(arguments); }
-              gtag('js', new Date());
-              gtag('config', 'UA-154181944-1');
-            </script><link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons"/><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick.min.css"/><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick-theme.min.css"/><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto"/><link rel="stylesheet" href="/docs/css/admonition.css"/><link rel="stylesheet" href="/docs [...]
-        document.addEventListener('DOMContentLoaded', function() {
-          addBackToTop(
-            {"zIndex":100}
-          )
-        });
-        </script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions"><h3>0.55.2-pre-asf</h3></a><div class="navigationWrapper navigationSli [...]
-<p>FZI Forschungszentrum Informatik
-Haid-und-Neu-Straße 10-14
-76131 Karlsruhe</p>
-<p>E-Mail: <a href="mailto:datenschutz@fzi.de">datenschutz@fzi.de</a></p>
-<h2><a class="anchor" aria-hidden="true" id="besuch-der-webseite"></a><a href="#besuch-der-webseite" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.2 [...]
-<p>Wenn Sie auf unsere Webseite zugreifen werden automatisch folgende Informationen über Sie in Form von Server-Logfiles gespeichert:</p>
-<ul>
-<li>Ihr Webbrowser</li>
-<li>Ihr Betriebssystem</li>
-<li>Ihre IP-Adresse und Port</li>
-<li>Die aufgerufene Webseite oder Bestandteile davon</li>
-<li>Die Webseite, von der Sie uns besuchen</li>
-<li>Der Zugriffszeitpunkt</li>
-<li>Diese Daten werden auf Basis von Art. 6 Abs. 1 lit. f DSGVO erhoben und der Zweck der Datenerhebung ist der Betrieb, die Wartung und der Schutz unserer Systeme. Die Daten fallen standardmäßig bei jedem Verbindungsaufbau mit einem Webserver im Internet an. Tritt ein Fehler bei der Nutzung unserer Webseite auf oder vermuten wir einen Angriff oder eine missbräuchliche Nutzung, dienen diese Daten dazu das eingetretene Szenario zu reproduzieren. Ihre IP-Adresse wird zusätzlich dazu genutz [...]
-</ul>
-<h2><a class="anchor" aria-hidden="true" id="cookies-und-analyse-tool"></a><a href="#cookies-und-analyse-tool" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-. [...]
-<p>Auf dieser Website werden unter Einsatz der Webanalysedienst-Software Matomo (<a href="http://www.matomo.org">www.matomo.org</a>), einem Dienst des Anbieters InnoCraft Ltd., 150 Willis St, 6011 Wellington, Neuseeland, („Mataomo“) auf Basis unseres berechtigten Interesses an der statistischen Analyse des Nutzerverhaltens zu Optimierungszwecken unserer Webseite gemäß Art. 6 Abs. 1 lit. f DSGVO Daten gesammelt und gespeichert. Aus diesen Daten können zum selben Zweck pseudonymisierte Nut [...]
-<h2><a class="anchor" aria-hidden="true" id="ihre-rechte"></a><a href="#ihre-rechte" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>Als Betroffener einer Datenerfassung stehen Ihnen umfassende Rechte zu (Art. 15-23 DSGVO):</p>
-<ul>
-<li>Das Recht jederzeit Auskunft über Ihre bei uns gespeicherten Daten zu erhalten</li>
-<li>Das Recht die Einschränkung der Verarbeitung Ihrer Daten zu fordern oder der Verarbeitung zu widersprechen</li>
-<li>Das Recht die Sperrung oder Löschung Ihrer Daten zu verlangen</li>
-<li>Das Recht die Ihre Daten berichtigen zu lassen</li>
-<li>Das Recht Ihre bei uns gespeicherten Daten in einem maschinenlesbaren Format zu erhalten („Datenübertragbarkeit“)</li>
-<li>Möchten Sie Ihre Rechte geltend machen, schicken Sie uns einfach eine E-Mail an die oben genannte Kontaktadresse (<a href="mailto:datenschutz@fzi.de">datenschutz@fzi.de</a>). Zusätzlich haben Sie natürlich jederzeit das Recht sich, bei Verdacht auf einen Verstoß gegen das Datenschutzrecht, bei der zuständigen Aufsichtsbehörde zu melden.</li>
-</ul>
-</span></div></article></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#verantwortliche-stelle">Verantwortliche Stelle</a></li><li><a href="#besuch-der-webseite">Besuch der Webseite</a></li><li><a href="#cookies-und-analyse-tool">Cookies und Analyse-Tool</a></li><li><a href="#ihre-rechte">Ihre Rechte</a></li></ul></nav></div><div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/docs/" class="nav-home [...]
-                document.addEventListener('keyup', function(e) {
-                  if (e.target !== document.body) {
-                    return;
-                  }
-                  // keyCode for '/' (slash)
-                  if (e.keyCode === 191) {
-                    const search = document.getElementById('search_input_react');
-                    search && search.focus();
-                  }
-                });
-              </script><script>
-              var search = docsearch({
-                
-                apiKey: '0fedc89dddf2810657708b178e56ef02',
-                indexName: 'streampipes',
-                inputSelector: '#search_input_react',
-                algoliaOptions: {}
-              });
-            </script></body></html>
\ No newline at end of file
diff --git a/docs/docs/0.55.2-pre-asf/user-guide-getting-started.html b/docs/docs/0.55.2-pre-asf/user-guide-getting-started.html
index 156d4b3..5e4b683 100644
--- a/docs/docs/0.55.2-pre-asf/user-guide-getting-started.html
+++ b/docs/docs/0.55.2-pre-asf/user-guide-getting-started.html
@@ -1,6 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Getting Started · Apache StreamPipes</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;This quick start explains how StreamPipes can be set up in the browser.&lt;/p&gt;
-"/><meta name="docsearch:version" content="0.55.2-pre-asf"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Getting Started · Apache StreamPipes"/><meta property="og:type" content="website"/><meta property="og:url" content="https://streampipes.apache.org/docs/"/><meta property="og:description" content="&lt;p&gt;This quick start explains how StreamPipes can be set up in the browser.&lt;/p&gt;
-"/><meta property="og:image" content="https://streampipes.apache.org/docs/img/favicon.png"/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://streampipes.apache.org/docs/img/docusaurus.png"/><link rel="shortcut icon" href="/docs/img/favicon.png"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.css"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/atom-one-dark.min.css"/><lin [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Getting Started · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="This quick start explains how StreamPipes can be set up in the browser."/><meta name="docsearch:version" content="0.55.2-pre-asf"/><meta name="docsearch:language" content="en"/> [...]
               window.dataLayer = window.dataLayer || [];
               function gtag(){dataLayer.push(arguments); }
               gtag('js', new Date());
@@ -11,7 +9,7 @@
             {"zIndex":100}
           )
         });
-        </script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions"><h3>0.55.2-pre-asf</h3></a><div class="navigationWrapper navigationSli [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.55.2-pre-asf</ [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -39,10 +37,16 @@
               createToggler('#navToggler', '#docsNav', 'docsSliderActive');
               createToggler('#tocToggler', 'body', 'tocActive');
 
-              const headings = document.querySelector('.toc-headings');
+              var headings = document.querySelector('.toc-headings');
               headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
                 }
               }, false);
 
@@ -61,7 +65,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle">Getting Started</h1></header><article><div><span><p>This quick start explains how StreamPipes can be set up in the browser.
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">Getting Started</h1></header><article><div><span><p>This quick start explains how StreamPipes can be set up in the browser.
 Before starting with this guide, all steps from the installation guide must be finished successfully and StreamPipes must be up and running.
 Navigate to the StreamPipes graphical user interface in the browser.
 Use the IP or hostname of the server StreamPipes is running on.</p>
@@ -274,8 +278,8 @@ Since the system currently uses simulated data each time the situation occurs a
 It is recommended to stop the last pipeline, because it will keep creating notifications ;)</p>
 <p>We hope we gave you an easy quick start into StreamPipes.
 If you have any questions or suggestions, just send us an email.
-From here on you can explore all features in the <a href="/docs/docs/0.55.2-pre-asf/user-guide-introduction-old">User Guide</a> or go to the <a href="/docs/docs/0.55.2-pre-asf/dev-guide-introduction">Developer Guide</a> to learn how to write your own StreamPipes processing elements.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.55.2-pre-asf/user-guide-introduction"><span class="arrow-prev">← </span><span>Overview</span></a><a class="docs-next button" href="/docs/docs/0.55.2-pre-asf/user-guide-installation"><span>Installation</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#setup-streampipes">Setup StreamPipes</a></li><li><a href="#first [...]
+From here on you can explore all features in the <a href="/docs/docs/0.55.2-pre-asf/user-guide-introduction-old.html">User Guide</a> or go to the <a href="/docs/docs/0.55.2-pre-asf/dev-guide-introduction.html">Developer Guide</a> to learn how to write your own StreamPipes processing elements.</p>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.55.2-pre-asf/user-guide-introduction.html"><span class="arrow-prev">← </span><span>Overview</span></a><a class="docs-next button" href="/docs/docs/0.55.2-pre-asf/user-guide-installation.html"><span>Installation</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#setup-streampipes">Setup StreamPipes</a></li><li><a hr [...]
                 document.addEventListener('keyup', function(e) {
                   if (e.target !== document.body) {
                     return;
diff --git a/docs/docs/0.55.2-pre-asf/user-guide-getting-started/index.html b/docs/docs/0.55.2-pre-asf/user-guide-getting-started/index.html
deleted file mode 100644
index 156d4b3..0000000
--- a/docs/docs/0.55.2-pre-asf/user-guide-getting-started/index.html
+++ /dev/null
@@ -1,297 +0,0 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Getting Started · Apache StreamPipes</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;This quick start explains how StreamPipes can be set up in the browser.&lt;/p&gt;
-"/><meta name="docsearch:version" content="0.55.2-pre-asf"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Getting Started · Apache StreamPipes"/><meta property="og:type" content="website"/><meta property="og:url" content="https://streampipes.apache.org/docs/"/><meta property="og:description" content="&lt;p&gt;This quick start explains how StreamPipes can be set up in the browser.&lt;/p&gt;
-"/><meta property="og:image" content="https://streampipes.apache.org/docs/img/favicon.png"/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://streampipes.apache.org/docs/img/docusaurus.png"/><link rel="shortcut icon" href="/docs/img/favicon.png"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.css"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/atom-one-dark.min.css"/><lin [...]
-              window.dataLayer = window.dataLayer || [];
-              function gtag(){dataLayer.push(arguments); }
-              gtag('js', new Date());
-              gtag('config', 'UA-154181944-1');
-            </script><link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons"/><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick.min.css"/><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick-theme.min.css"/><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto"/><link rel="stylesheet" href="/docs/css/admonition.css"/><link rel="stylesheet" href="/docs [...]
-        document.addEventListener('DOMContentLoaded', function() {
-          addBackToTop(
-            {"zIndex":100}
-          )
-        });
-        </script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions"><h3>0.55.2-pre-asf</h3></a><div class="navigationWrapper navigationSli [...]
-            var coll = document.getElementsByClassName('collapsible');
-            var checkActiveCategory = true;
-            for (var i = 0; i < coll.length; i++) {
-              var links = coll[i].nextElementSibling.getElementsByTagName('*');
-              if (checkActiveCategory){
-                for (var j = 0; j < links.length; j++) {
-                  if (links[j].classList.contains('navListItemActive')){
-                    coll[i].nextElementSibling.classList.toggle('hide');
-                    coll[i].childNodes[1].classList.toggle('rotate');
-                    checkActiveCategory = false;
-                    break;
-                  }
-                }
-              }
-
-              coll[i].addEventListener('click', function() {
-                var arrow = this.childNodes[1];
-                arrow.classList.toggle('rotate');
-                var content = this.nextElementSibling;
-                content.classList.toggle('hide');
-              });
-            }
-
-            document.addEventListener('DOMContentLoaded', function() {
-              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
-              createToggler('#tocToggler', 'body', 'tocActive');
-
-              const headings = document.querySelector('.toc-headings');
-              headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
-                }
-              }, false);
-
-              function createToggler(togglerSelector, targetSelector, className) {
-                var toggler = document.querySelector(togglerSelector);
-                var target = document.querySelector(targetSelector);
-
-                if (!toggler) {
-                  return;
-                }
-
-                toggler.onclick = function(event) {
-                  event.preventDefault();
-
-                  target.classList.toggle(className);
-                };
-              }
-            });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle">Getting Started</h1></header><article><div><span><p>This quick start explains how StreamPipes can be set up in the browser.
-Before starting with this guide, all steps from the installation guide must be finished successfully and StreamPipes must be up and running.
-Navigate to the StreamPipes graphical user interface in the browser.
-Use the IP or hostname of the server StreamPipes is running on.</p>
-<p>This guide consists of three steps.
-First, StreamPipes is configured, then all pipeline elements are installed.
-In the end of this quick start, you will create your first pipelines.
-Now lets begin with setting up StreamPipes.</p>
-<h2><a class="anchor" aria-hidden="true" id="setup-streampipes"></a><a href="#setup-streampipes" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2- [...]
-<p>In the browser you should see the image below.
-To set up the system enter a user email address and a password and click on install.
-Do NOT change the advanced settings, just click on install.
-The installation might take some time, continue by clicking on &quot;Go to login page&quot;, once all components are successfully configured.
-If there is a problem with any of the components, please restart the whole system and delete the &quot;config&quot; directory on the server.
-This directory is in the same folder as the docker-compose.yml file.</p>
-<p>On the login page, enter your credentials, then you should be forwarded to the home page.
-Congratulations! You've just configured your first StreamPipes instance.
-The system configured all components by itself and the individual StreamPipes services are now ready.</p>
-<div class="my-carousel">
-    <img src="/docs/img/quickstart/setup/01_register_user.png" alt="Set Up User">
-    <img src="/docs/img/quickstart/setup/02_user_set_up.png" alt="SetUp StreamPipes Components">
-    <img src="/docs/img/quickstart/setup/03_login.png" alt="Go to login page">
-    <img src="/docs/img/quickstart/setup/04_home.png" alt="Home page">
-</div>
-<h2><a class="anchor" aria-hidden="true" id="first-examples"></a><a href="#first-examples" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
-<p>In this tutorial, you will create two simple pipelines that demonstrate the basic functionality of StreamPipes.
-The first example deals with monitoring a flow rate sensor.
-This pipeline ensures that everything works properly and data is sent through the whole system.
-In the second example we model a more complex situation detection pipeline that triggers a notification.
-Let's start with our first pipeline.
-If you have problems with any of the examples, please send us an email.
-We are happy to help you.</p>
-<h2><a class="anchor" aria-hidden="true" id="data-simulation"></a><a href="#data-simulation" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5  [...]
-<p>All the data sources that we have integrated in the StreamPipes demonstrator are simulated according to real world sensors.
-For example a flow rate sensor in a water pipe, which measures how much water flows in that pipe or a water level sensor in a water tank, that reports how high the water level is in the tank.
-In the next section you will use the flow rate sensor to build your first pipeline.</p>
-<h2><a class="anchor" aria-hidden="true" id="flow-rate-visualization"></a><a href="#flow-rate-visualization" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 [...]
-<p>In the first example, we create a live line chart to monitor the value of the mass flow from a flow rate sensor.</p>
-<h3><a class="anchor" aria-hidden="true" id="create-pipeline"></a><a href="#create-pipeline" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5  [...]
-<ul>
-<li>As a first step go to the pipeline editor</li>
-<li>Select the <strong>FRS1</strong> (Flow Rate Source 1)source</li>
-<li>Then navigate to the <strong>Data Sink</strong> tab</li>
-<li>Select the <strong>DS</strong> (Dashboard Sink) and connect the source with the sink</li>
-<li>After connecting the elements save the pipeline by clicking on the save button on the top left corner</li>
-<li>In the save menu add a name <em>Flow Rate Monitoring</em> and a description <em>This is my very first pipeline!</em></li>
-<li>Also select the <strong>Start pipeline immediatly</strong> checkbox</li>
-<li>Then click the button <strong>Save and go to pipeline view</strong></li>
-<li>You are navigated to the pipeline view and a confirmation that the pipeline was started successfully should be shown</li>
-</ul>
-<div class="my-carousel">
-    <img src="/docs/img/quickstart/examples/01_example1_empty.png" alt="Show Pipeline Editor Sources">
-    <img src="/docs/img/quickstart/examples/02_example1_source.png" alt="Sources">
-    <img src="/docs/img/quickstart/examples/03_example1_pipeline_finished.png" alt="Pipeline Finished">
-    <img src="/docs/img/quickstart/examples/04_example1_save.png" alt="Saved Pipeline">
-    <img src="/docs/img/quickstart/examples/05_example1_pipeline_started.png" alt="Pipeline 01 Started">
-</div>
-<h3><a class="anchor" aria-hidden="true" id="create-visualization"></a><a href="#create-visualization" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1 [...]
-<ul>
-<li>After we have created the pipeline we must create the line chart</li>
-<li>Navigate to the <strong>Live Dashboard</strong> of StreamPipes</li>
-<li>Click on the <strong>Add visualization</strong> button</li>
-<li>Select the just created pipeline <strong>Flow Rate Monitoring</strong> and click the <strong>next</strong> button</li>
-<li>For the visualization select the <strong>Line Chart</strong> and click <strong>next</strong> again</li>
-<li>Now you have to enter the configuration for the line chart
-<ul>
-<li>Select time mapping: <strong>timestamp</strong></li>
-<li>Select number mapping: <strong>mass_flow</strong></li>
-<li>Range Minimum: <strong>0</strong></li>
-<li>Range Maximum: <strong>10</strong></li>
-</ul></li>
-<li>When all parameters are set correctly click the next button again.</li>
-<li>Congratulation you created the first pipeline and should now see the line chart</li>
-</ul>
-<div class="my-carousel">
-    <img src="/docs/img/quickstart/examples/06_example01_live_visualisation.png" alt="Visualize Pipeline">
-    <img src="/docs/img/quickstart/examples/07_example01_first_step.png" alt="Configure Visualization Step 1">
-    <img src="/docs/img/quickstart/examples/08_example01_second_step.png" alt="Configure Visualization Step 2">
-    <img src="/docs/img/quickstart/examples/09_example01_third_step.png" alt="Configure Visualization Step 3">
-    <img src="/docs/img/quickstart/examples/10_example1_finished.png" alt="Pipeline 01 Done">
-</div>
-<h2><a class="anchor" aria-hidden="true" id="condition-monitoring-of-a-water-tank"></a><a href="#condition-monitoring-of-a-water-tank" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 [...]
-<p>In our second example we are going to create a more complex pipeline.
-This pipeline has two sources, the flow rate sensor from the previous example and a source measuring the water level in a tank.
-Our goal is to send a notification when the flow rate stops and the water level in the water tank sinks too fast.
-In this case a service technician should check the system as soon as possible.
-This example should just illustrate how the individual components work.
-Since the system currently uses simulated data each time the situation occurs a notification is triggered.</p>
-<p>Now lets start!</p>
-<h3><a class="anchor" aria-hidden="true" id="build-the-pipeline"></a><a href="#build-the-pipeline" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22- [...]
-<ul>
-<li>First we have to select the <strong>FRS1</strong> (Flow Rate Sensor 1) and <strong>WL1</strong> (Water Level) form the sources tab</li>
-<li>In a first step we want to detect when the flow rate stops</li>
-<li>Use the <strong>NF</strong> (Numerical Filter) from the processing elements tab and connect it to the <strong>FRS1</strong> source</li>
-<li>Configure the <strong>Numerical Filter</strong>:
-<ul>
-<li>Field name for filter operator: <strong>mass_flow</strong></li>
-<li>Filter Operation: <strong>&lt;</strong></li>
-<li>Threshold value: <strong>1</strong></li>
-</ul></li>
-</ul>
-<div class="my-carousel">
-    <img src="/docs/img/quickstart/examples/11_example2_start.png" alt="Start Example 2">
-    <img src="/docs/img/quickstart/examples/12_example2_numerical.png" alt="Select Numericl Filter">
-    <img src="/docs/img/quickstart/examples/13_example2_configure_numerical.png" alt="Configure Numerical Filter">
-</div>
-<ul>
-<li>As a next step we add an aggregation to the water level. This reduces the inaccuracies we have because the water moves in the tank.</li>
-<li>Select the <strong>A</strong> (Aggregation) processing element</li>
-<li>Connect the <strong>WL1</strong> with <strong>A</strong></li>
-<li>Configure <strong>Aggregation</strong>:
-<ul>
-<li>Property Selection: <strong>level</strong></li>
-<li>Operation: <strong>Average</strong></li>
-<li>Time Window Size: <strong>10</strong></li>
-<li>Output Frequency: <strong>1</strong></li>
-<li>Groupe By: <strong>None</strong></li>
-</ul></li>
-</ul>
-<div class="my-carousel">
-    <img src="/docs/img/quickstart/examples/14_example2_aggregate.png" alt="Select Aggregation">
-    <img src="/docs/img/quickstart/examples/15_example2_configure_aggregate.png" alt="Configure Aggregation">
-</div>
-<ul>
-<li>With the next processing element we check if the water level decreases too fast</li>
-<li>Select <strong>I</strong> (Increase) and connect it to <strong>A</strong></li>
-<li>Configure <strong>Increase</strong>:
-<ul>
-<li>Timestamp field: <strong>timestamp</strong></li>
-<li>Value to observe: <strong>aggregatedValue</strong> (This value is created by previous element)</li>
-<li>Group by: <strong>sensorId</strong></li>
-<li>Increase / Decrease: <strong>Decrease</strong></li>
-<li>Percentage of Increase / Decrease: <strong>20</strong></li>
-<li>Time Window Length: <strong>10</strong></li>
-<li>Select Output: <strong>All</strong></li>
-</ul></li>
-</ul>
-<div class="my-carousel">
-    <img src="/docs/img/quickstart/examples/16_example2_increase.png" alt="Select Increase">
-    <img src="/docs/img/quickstart/examples/17_example2_configure1_increase.png" alt="Configute 01 Increase">
-    <img src="/docs/img/quickstart/examples/18_example2_configure2_increase.png" alt="Configute 02 Increase">
-</div>
-<ul>
-<li>Now we connect the two stream with the sequence element, which checks if both events occur in a certain time</li>
-<li>Select <strong>S</strong> (Sequence) and connect both data streams to it</li>
-<li>Configure <strong>Sequence</strong>:
-<ul>
-<li>Time Window Size: <strong>1</strong></li>
-<li>Time Unit: <strong>sec</strong></li>
-</ul></li>
-</ul>
-<div class="my-carousel">
-    <img src="/docs/img/quickstart/examples/19_example2_sequence.png" alt="Select Sequence Detection">
-    <img src="/docs/img/quickstart/examples/20_example2_configure_sequence.png" alt="ConfigureSequence Detection">
-</div>
-<ul>
-<li>Now we create a notification for the service technician that something is wrong with the system</li>
-<li>Select <strong>N</strong> (Notification) from the data sink tab</li>
-<li>Connect <strong>S</strong>  with <strong>N</strong></li>
-<li>Configure <strong>Notification</strong>:
-<ul>
-<li>Notification title: <strong>Alarm</strong></li>
-<li>Content: <strong>One notification was triggered by our first complex pipeline. Yeahhhh!</strong></li>
-</ul></li>
-</ul>
-<div class="my-carousel">
-    <img src="/docs/img/quickstart/examples/21_example2_notification.png" alt="Select Notification">
-    <img src="/docs/img/quickstart/examples/22_example2_configure_notification.png" alt="Configure Notification">
-</div>
-<ul>
-<li>Add the dashboard sink to the increase element to monitor the preliminary results</li>
-<li>Select <strong>DS</strong> and connect to <strong>I</strong></li>
-</ul>
-<div class="my-carousel">
-    <img src="/docs/img/quickstart/examples/23_example2_dashboard_sink.png" alt="Select Dashboard">
-</div>
-<ul>
-<li>Save the pipeline</li>
-<li>Save configuration:
-<ul>
-<li>Pipeline Name: <strong>Second Pipeline</strong></li>
-<li>Description: <strong>Complex monitorung rule</strong></li>
-<li>Start pipeline immediately: <strong>CHECK</strong></li>
-</ul></li>
-<li>Click <strong>Save and go to pipeline view</strong></li>
-</ul>
-<div class="my-carousel">
-    <img src="/docs/img/quickstart/examples/24_example2_save.png" alt="Save Pipeline">
-</div>
-<ul>
-<li>All pipeline elements should be started successfully</li>
-<li>It can be seen that the elements run on different technologies, in flink and a java container
-<ul>
-<li><a href="http://pe-flink-examples:8090">http://pe-flink-examples:8090</a></li>
-<li><a href="http://pe-jvm-examples:8090">http://pe-jvm-examples:8090</a></li>
-</ul></li>
-<li>Go to visualization and create <strong>Raw Data</strong> visualization for the new pipeline</li>
-</ul>
-<div class="my-carousel">
-    <img src="/docs/img/quickstart/examples/25_example2_started.png" alt="Pipeline Started Sucessfull">
-    <img src="/docs/img/quickstart/examples/26_example2_visualisation.png" alt="Add Visualization">
-</div>
-<ul>
-<li>Every time you can see output in the <strong>Raw Data</strong> visualization of the new pipeline and the <strong>Line Chart</strong> from the first example are zero, a Notification is triggered by the pipeline.</li>
-<li>Go to the <strong>Notifications</strong> view and have a look at the notification</li>
-</ul>
-<div class="my-carousel">
-    <img src="/docs/img/quickstart/examples/27_example2_notification.png" alt="Show Notification">
-</div>
-<p>Congratulation you finished the quick start!
-It is recommended to stop the last pipeline, because it will keep creating notifications ;)</p>
-<p>We hope we gave you an easy quick start into StreamPipes.
-If you have any questions or suggestions, just send us an email.
-From here on you can explore all features in the <a href="/docs/docs/0.55.2-pre-asf/user-guide-introduction-old">User Guide</a> or go to the <a href="/docs/docs/0.55.2-pre-asf/dev-guide-introduction">Developer Guide</a> to learn how to write your own StreamPipes processing elements.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.55.2-pre-asf/user-guide-introduction"><span class="arrow-prev">← </span><span>Overview</span></a><a class="docs-next button" href="/docs/docs/0.55.2-pre-asf/user-guide-installation"><span>Installation</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#setup-streampipes">Setup StreamPipes</a></li><li><a href="#first [...]
-                document.addEventListener('keyup', function(e) {
-                  if (e.target !== document.body) {
-                    return;
-                  }
-                  // keyCode for '/' (slash)
-                  if (e.keyCode === 191) {
-                    const search = document.getElementById('search_input_react');
-                    search && search.focus();
-                  }
-                });
-              </script><script>
-              var search = docsearch({
-                
-                apiKey: '0fedc89dddf2810657708b178e56ef02',
-                indexName: 'streampipes',
-                inputSelector: '#search_input_react',
-                algoliaOptions: {}
-              });
-            </script></body></html>
\ No newline at end of file
diff --git a/docs/docs/0.55.2-pre-asf/user-guide-installation.html b/docs/docs/0.55.2-pre-asf/user-guide-installation.html
index 669cec7..1aa2c2c 100644
--- a/docs/docs/0.55.2-pre-asf/user-guide-installation.html
+++ b/docs/docs/0.55.2-pre-asf/user-guide-installation.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Installation · Apache StreamPipes</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;div class=&quot;admonition error&quot;&gt;"/><meta name="docsearch:version" content="0.55.2-pre-asf"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Installation [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Installation · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;div class=&quot;admonition error&quot;&gt;"/><meta name="docsearch:version" content="0.55.2-pre-asf"/><meta name="docsearch:language" content="en"/><meta property="og:title" co [...]
               window.dataLayer = window.dataLayer || [];
               function gtag(){dataLayer.push(arguments); }
               gtag('js', new Date());
@@ -9,7 +9,7 @@
             {"zIndex":100}
           )
         });
-        </script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions"><h3>0.55.2-pre-asf</h3></a><div class="navigationWrapper navigationSli [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.55.2-pre-asf</ [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -37,10 +37,16 @@
               createToggler('#navToggler', '#docsNav', 'docsSliderActive');
               createToggler('#tocToggler', 'body', 'tocActive');
 
-              const headings = document.querySelector('.toc-headings');
+              var headings = document.querySelector('.toc-headings');
               headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
                 }
               }, false);
 
@@ -59,7 +65,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle">Installation</h1></header><article><div><span><div class="admonition error">
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">Installation</h1></header><article><div><span><div class="admonition error">
 <div class="admonition-title">StreamPipes desktop version</div>
 <p>StreamPipes usually runs on a big data infrastructure. We did our best that you can install it yourself with less powerful hardware, even on your laptop.<br/>
     If you have any problems or are interested in a production system please <a href="mailto:feedback@streampipes.org">contact us</a>!</p>
@@ -109,7 +115,7 @@ In the desktop version, only a limited amount of processors is available to ensu
 <p><a href="https://github.com/streampipes/streampipes-installer" target="_blank">Download Installer on GitHub</a></p>
 <p>After installing it, open your browser and navigate to <code>localhost</code>.</p>
 <p>Now you can continue with the tutorial on page <a href="user-guide-getting-started.md">Getting Started</a>.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.55.2-pre-asf/user-guide-getting-started"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/docs/0.55.2-pre-asf/user-guide-tour"><span>Tour</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#prerequisites">Prerequisites</a><ul class="toc-headings"><li><a href="#suppor [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.55.2-pre-asf/user-guide-getting-started.html"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/docs/0.55.2-pre-asf/user-guide-tour.html"><span>Tour</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#prerequisites">Prerequisites</a><ul class="toc-headings"><li><a hre [...]
                 document.addEventListener('keyup', function(e) {
                   if (e.target !== document.body) {
                     return;
diff --git a/docs/docs/0.55.2-pre-asf/user-guide-installation/index.html b/docs/docs/0.55.2-pre-asf/user-guide-installation/index.html
deleted file mode 100644
index 669cec7..0000000
--- a/docs/docs/0.55.2-pre-asf/user-guide-installation/index.html
+++ /dev/null
@@ -1,131 +0,0 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Installation · Apache StreamPipes</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;div class=&quot;admonition error&quot;&gt;"/><meta name="docsearch:version" content="0.55.2-pre-asf"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Installation [...]
-              window.dataLayer = window.dataLayer || [];
-              function gtag(){dataLayer.push(arguments); }
-              gtag('js', new Date());
-              gtag('config', 'UA-154181944-1');
-            </script><link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons"/><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick.min.css"/><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick-theme.min.css"/><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto"/><link rel="stylesheet" href="/docs/css/admonition.css"/><link rel="stylesheet" href="/docs [...]
-        document.addEventListener('DOMContentLoaded', function() {
-          addBackToTop(
-            {"zIndex":100}
-          )
-        });
-        </script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions"><h3>0.55.2-pre-asf</h3></a><div class="navigationWrapper navigationSli [...]
-            var coll = document.getElementsByClassName('collapsible');
-            var checkActiveCategory = true;
-            for (var i = 0; i < coll.length; i++) {
-              var links = coll[i].nextElementSibling.getElementsByTagName('*');
-              if (checkActiveCategory){
-                for (var j = 0; j < links.length; j++) {
-                  if (links[j].classList.contains('navListItemActive')){
-                    coll[i].nextElementSibling.classList.toggle('hide');
-                    coll[i].childNodes[1].classList.toggle('rotate');
-                    checkActiveCategory = false;
-                    break;
-                  }
-                }
-              }
-
-              coll[i].addEventListener('click', function() {
-                var arrow = this.childNodes[1];
-                arrow.classList.toggle('rotate');
-                var content = this.nextElementSibling;
-                content.classList.toggle('hide');
-              });
-            }
-
-            document.addEventListener('DOMContentLoaded', function() {
-              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
-              createToggler('#tocToggler', 'body', 'tocActive');
-
-              const headings = document.querySelector('.toc-headings');
-              headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
-                }
-              }, false);
-
-              function createToggler(togglerSelector, targetSelector, className) {
-                var toggler = document.querySelector(togglerSelector);
-                var target = document.querySelector(targetSelector);
-
-                if (!toggler) {
-                  return;
-                }
-
-                toggler.onclick = function(event) {
-                  event.preventDefault();
-
-                  target.classList.toggle(className);
-                };
-              }
-            });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle">Installation</h1></header><article><div><span><div class="admonition error">
-<div class="admonition-title">StreamPipes desktop version</div>
-<p>StreamPipes usually runs on a big data infrastructure. We did our best that you can install it yourself with less powerful hardware, even on your laptop.<br/>
-    If you have any problems or are interested in a production system please <a href="mailto:feedback@streampipes.org">contact us</a>!</p>
-</div>
-<h2><a class="anchor" aria-hidden="true" id="prerequisites"></a><a href="#prerequisites" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
-<p>StreamPipes is a modern web application, therefore you need Chrome (recommended) or Firefox to test it.</p>
-<h3><a class="anchor" aria-hidden="true" id="supported-operating-systems"></a><a href="#supported-operating-systems" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 1 [...]
-<p>We rely on Docker and support three operating systems for the StreamPipes system</p>
-<ul>
-<li>Linux</li>
-<li>OSX</li>
-<li>Windows 10
-<ul>
-<li>Please note that older Windows versions are not compatible with Docker. Also Linux VMs under Windows might not work, due to network problems with docker.</li>
-</ul></li>
-</ul>
-<h3><a class="anchor" aria-hidden="true" id="installation"></a><a href="#installation" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
-<p>You need to have Docker installed on your system before you continue with the installation guide.</p>
-<div class="admonition info">
-<div class="admonition-title">Install Docker</div>
-<p>Go to https://docs.docker.com/installation/ and follow the instructions to install Docker for your OS. Make sure docker can be started as a non-root user (described in the installation manual, don’t forget to log out and in again) and check that Docker is installed correctly by executing docker-run hello-world</p>
-</div>
-<div class="admonition info">
-<div class="admonition-title">Configure Docker</div>
-<p>By default, Docker uses only a limited number of CPU cores and memory.
-       If you run StreamPipes on Windows or on a Mac you need to adjust the default settings.
-       To do that, click on the Docker icon in your tab bar and open the preferences.
-       Go to the advanced preferences and set the **number of CPUs to 6** (recommended) and the **Memory to 8GB**.
-       After changing the settings, Docker needs to be restarted.</p></div>
-<div class="admonition warn">
-<div class="admonition-title">Server Recommendations</div>
-<p>
-<li>Unix based OS is recommended (also works with Windows)</li>
-    <li>min. 12 GB RAM (16 recommended)</li>
-    <li>Docker (latest version, see instructions above)</li>
-    <li>Docker Compose (latest version., see instructions above)</li>
-</p>
-</div>
-<h2><a class="anchor" aria-hidden="true" id="install-streampipes"></a><a href="#install-streampipes" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.2 [...]
-<p>We provide a script to install, stop, and start StreamPipes.</p>
-<p>The installer is available in two different versions, one to run StreamPipes on your laptop and another big data version which is intended to be run on a more powerful computer or server.
-In the desktop version, only a limited amount of processors is available to ensure that the system also runs with less memory.</p>
-<div class="admonition info">
-<div class="admonition-title">Installation might take some minutes</div>
-<p> StreamPipes is a modular, easily extensible system consisting of several micro services.
-       The installer automatically downloads all required services. Depending on your internet connection, the first installation may take some while.</p></div>
-<p><a href="https://github.com/streampipes/streampipes-installer" target="_blank">Download Installer on GitHub</a></p>
-<p>After installing it, open your browser and navigate to <code>localhost</code>.</p>
-<p>Now you can continue with the tutorial on page <a href="user-guide-getting-started.md">Getting Started</a>.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.55.2-pre-asf/user-guide-getting-started"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/docs/0.55.2-pre-asf/user-guide-tour"><span>Tour</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#prerequisites">Prerequisites</a><ul class="toc-headings"><li><a href="#suppor [...]
-                document.addEventListener('keyup', function(e) {
-                  if (e.target !== document.body) {
-                    return;
-                  }
-                  // keyCode for '/' (slash)
-                  if (e.keyCode === 191) {
-                    const search = document.getElementById('search_input_react');
-                    search && search.focus();
-                  }
-                });
-              </script><script>
-              var search = docsearch({
-                
-                apiKey: '0fedc89dddf2810657708b178e56ef02',
-                indexName: 'streampipes',
-                inputSelector: '#search_input_react',
-                algoliaOptions: {}
-              });
-            </script></body></html>
\ No newline at end of file
diff --git a/docs/docs/0.55.2-pre-asf/user-guide-introduction.html b/docs/docs/0.55.2-pre-asf/user-guide-introduction.html
index 02b5f0a..14798e5 100644
--- a/docs/docs/0.55.2-pre-asf/user-guide-introduction.html
+++ b/docs/docs/0.55.2-pre-asf/user-guide-introduction.html
@@ -1,6 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Introduction · Apache StreamPipes</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;StreamPipes is a framework that enables users to work with data streams.&lt;/p&gt;
-"/><meta name="docsearch:version" content="0.55.2-pre-asf"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Introduction · Apache StreamPipes"/><meta property="og:type" content="website"/><meta property="og:url" content="https://streampipes.apache.org/docs/"/><meta property="og:description" content="&lt;p&gt;StreamPipes is a framework that enables users to work with data streams.&lt;/p&gt;
-"/><meta property="og:image" content="https://streampipes.apache.org/docs/img/favicon.png"/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://streampipes.apache.org/docs/img/docusaurus.png"/><link rel="shortcut icon" href="/docs/img/favicon.png"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.css"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/atom-one-dark.min.css"/><lin [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Introduction · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="StreamPipes is a framework that enables users to work with data streams."/><meta name="docsearch:version" content="0.55.2-pre-asf"/><meta name="docsearch:language" content="en"/><m [...]
               window.dataLayer = window.dataLayer || [];
               function gtag(){dataLayer.push(arguments); }
               gtag('js', new Date());
@@ -11,7 +9,7 @@
             {"zIndex":100}
           )
         });
-        </script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions"><h3>0.55.2-pre-asf</h3></a><div class="navigationWrapper navigationSli [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.55.2-pre-asf</ [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -39,10 +37,16 @@
               createToggler('#navToggler', '#docsNav', 'docsSliderActive');
               createToggler('#tocToggler', 'body', 'tocActive');
 
-              const headings = document.querySelector('.toc-headings');
+              var headings = document.querySelector('.toc-headings');
               headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
                 }
               }, false);
 
@@ -61,7 +65,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle">Introduction</h1></header><article><div><span><p>StreamPipes is a framework that enables users to work with data streams.
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">Introduction</h1></header><article><div><span><p>StreamPipes is a framework that enables users to work with data streams.
 It uses a lot of different technologies especially form the fields of big data, distributed computing and semantic web.
 One of the core concepts of StreamPipes is to add a higher semantic layer on top of big data processing technologies to ease their usage.
 StreamPipes is not just a UI, it is a framework with a lot of different capabilities, like modelling new data processing pipelines, execute them in a distributed environment.
@@ -101,9 +105,9 @@ The graphical user interface is designed for domain experts who want to analyze
 The SDK can be used by software developers to extend the framework with new functionality.
 After importing newly developed pipeline elements, they are available to all users of StreamPipes.</p>
 <h2><a class="anchor" aria-hidden="true" id="next-steps"></a><a href="#next-steps" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
-<p>To test StreamPipes on your local environment go to the <a href="/docs/docs/0.55.2-pre-asf/user-guide-installation">installation guide</a>.
-If you are further interested in the concepts of StreamPipes continue with the <a href="/docs/docs/0.55.2-pre-asf/user-guide-tour">tour</a>.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-next button" href="/docs/docs/0.55.2-pre-asf/user-guide-getting-started"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#pipelines">Pipelines</a></li><li><a href="#data-streams">Data Streams</a></li><li><a href="#processing-elements">Processing Elements</a></li><li><a href="#data-sinks">Data Sinks</a></li><li><a href="#target-audien [...]
+<p>To test StreamPipes on your local environment go to the <a href="/docs/docs/0.55.2-pre-asf/user-guide-installation.html">installation guide</a>.
+If you are further interested in the concepts of StreamPipes continue with the <a href="/docs/docs/0.55.2-pre-asf/user-guide-tour.html">tour</a>.</p>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-next button" href="/docs/docs/0.55.2-pre-asf/user-guide-getting-started.html"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#pipelines">Pipelines</a></li><li><a href="#data-streams">Data Streams</a></li><li><a href="#processing-elements">Processing Elements</a></li><li><a href="#data-sinks">Data Sinks</a></li><li><a href="#target-a [...]
                 document.addEventListener('keyup', function(e) {
                   if (e.target !== document.body) {
                     return;
diff --git a/docs/docs/0.55.2-pre-asf/user-guide-introduction/index.html b/docs/docs/0.55.2-pre-asf/user-guide-introduction/index.html
deleted file mode 100644
index 02b5f0a..0000000
--- a/docs/docs/0.55.2-pre-asf/user-guide-introduction/index.html
+++ /dev/null
@@ -1,125 +0,0 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Introduction · Apache StreamPipes</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;StreamPipes is a framework that enables users to work with data streams.&lt;/p&gt;
-"/><meta name="docsearch:version" content="0.55.2-pre-asf"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Introduction · Apache StreamPipes"/><meta property="og:type" content="website"/><meta property="og:url" content="https://streampipes.apache.org/docs/"/><meta property="og:description" content="&lt;p&gt;StreamPipes is a framework that enables users to work with data streams.&lt;/p&gt;
-"/><meta property="og:image" content="https://streampipes.apache.org/docs/img/favicon.png"/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://streampipes.apache.org/docs/img/docusaurus.png"/><link rel="shortcut icon" href="/docs/img/favicon.png"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.css"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/atom-one-dark.min.css"/><lin [...]
-              window.dataLayer = window.dataLayer || [];
-              function gtag(){dataLayer.push(arguments); }
-              gtag('js', new Date());
-              gtag('config', 'UA-154181944-1');
-            </script><link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons"/><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick.min.css"/><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick-theme.min.css"/><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto"/><link rel="stylesheet" href="/docs/css/admonition.css"/><link rel="stylesheet" href="/docs [...]
-        document.addEventListener('DOMContentLoaded', function() {
-          addBackToTop(
-            {"zIndex":100}
-          )
-        });
-        </script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions"><h3>0.55.2-pre-asf</h3></a><div class="navigationWrapper navigationSli [...]
-            var coll = document.getElementsByClassName('collapsible');
-            var checkActiveCategory = true;
-            for (var i = 0; i < coll.length; i++) {
-              var links = coll[i].nextElementSibling.getElementsByTagName('*');
-              if (checkActiveCategory){
-                for (var j = 0; j < links.length; j++) {
-                  if (links[j].classList.contains('navListItemActive')){
-                    coll[i].nextElementSibling.classList.toggle('hide');
-                    coll[i].childNodes[1].classList.toggle('rotate');
-                    checkActiveCategory = false;
-                    break;
-                  }
-                }
-              }
-
-              coll[i].addEventListener('click', function() {
-                var arrow = this.childNodes[1];
-                arrow.classList.toggle('rotate');
-                var content = this.nextElementSibling;
-                content.classList.toggle('hide');
-              });
-            }
-
-            document.addEventListener('DOMContentLoaded', function() {
-              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
-              createToggler('#tocToggler', 'body', 'tocActive');
-
-              const headings = document.querySelector('.toc-headings');
-              headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
-                }
-              }, false);
-
-              function createToggler(togglerSelector, targetSelector, className) {
-                var toggler = document.querySelector(togglerSelector);
-                var target = document.querySelector(targetSelector);
-
-                if (!toggler) {
-                  return;
-                }
-
-                toggler.onclick = function(event) {
-                  event.preventDefault();
-
-                  target.classList.toggle(className);
-                };
-              }
-            });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle">Introduction</h1></header><article><div><span><p>StreamPipes is a framework that enables users to work with data streams.
-It uses a lot of different technologies especially form the fields of big data, distributed computing and semantic web.
-One of the core concepts of StreamPipes is to add a higher semantic layer on top of big data processing technologies to ease their usage.
-StreamPipes is not just a UI, it is a framework with a lot of different capabilities, like modelling new data processing pipelines, execute them in a distributed environment.
-On top it uses semantics to provide guidance to non-technical people for better analyzing their data streams in a self-service manner.</p>
-<h2><a class="anchor" aria-hidden="true" id="pipelines"></a><a href="#pipelines" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
-<p>The core concept of StreamPipes are data processing pipelines.
-Those pipelines use data from different sources (Data Streams), then transform it via Processing Elements and store them in an database or send it to third party systems (Data Sinks).
-A brief introduction is given in the following sections.
-At the next page a detailed tour through StreamPies explains all the different features that are available.</p>
-<h2><a class="anchor" aria-hidden="true" id="data-streams"></a><a href="#data-streams" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
-<p>Data Streams represent the primary source for data in StreamPipes.
-A stream is an ordered sequence of events, where an event is described as one or more observation values.
-Those events can come from different sources like sensors, machines, log files or many more.
-It does not matter what kind of serialization format the events have or which kind of transportation protocol the individual data streams use.
-As long as a semantic description is provided StreamPipes is capable of processing the data.</p>
-<h2><a class="anchor" aria-hidden="true" id="processing-elements"></a><a href="#processing-elements" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.2 [...]
-<p>Processing Elements are defined as an processor that transforms one or more input event streams to an output event stream.
-Those transformations can be rather simple like filtering out events based on a predefined rule or more complex by applying algorithms on the data.<br>
-Processing elements define stream requirements that are a set of minimum properties an incoming event stream must provide.
-Furthermore, Processing Elements describe their output based on a set of output strategies.
-They also describe further (human) input in form of configuration parameters.
-The Processing Elements can be implemented in multiple technologies.
-This information is not necessary when constructing a pipeline, the user does not need to know where and how the actual algorithm is deployed and executed.
-During the modelling phase it is possible to set configuration parameters, wich are then injected into the program when it is started.
-A description is provided for all parameters and it is ensured by the system that the user can just enter semantically correct values.</p>
-<h2><a class="anchor" aria-hidden="true" id="data-sinks"></a><a href="#data-sinks" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
-<p>Data Sinks consume event streams similar to processing elements with the difference that sinks do not provide an output stream, i.e., they are defined as sinks that perform some action or trigger a visualization as a result of a stream transformation.
-The sinks also define stream requirements that must be fulfilled.
-In a pipeline it is not necessary to use a processing element to transform data.
-Often it can make sense to just use a data sink and connect it directly to the sensor to store the raw data into a data store for offline analysis.
-This is very simple with StreamPipes and no additional code must be written to create such a data lake.</p>
-<h2><a class="anchor" aria-hidden="true" id="target-audience"></a><a href="#target-audience" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5  [...]
-<p>StreamPipes focuses on multiple target groups.
-This guide is for users who interact with the graphical user interface in the browser.
-If you are interested in the technical details or plan to extend the system with new algorithms, please read the Developer Guide.
-The graphical user interface is designed for domain experts who want to analyze data, but are not interested in technical details and do not want to write code.
-The SDK can be used by software developers to extend the framework with new functionality.
-After importing newly developed pipeline elements, they are available to all users of StreamPipes.</p>
-<h2><a class="anchor" aria-hidden="true" id="next-steps"></a><a href="#next-steps" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
-<p>To test StreamPipes on your local environment go to the <a href="/docs/docs/0.55.2-pre-asf/user-guide-installation">installation guide</a>.
-If you are further interested in the concepts of StreamPipes continue with the <a href="/docs/docs/0.55.2-pre-asf/user-guide-tour">tour</a>.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-next button" href="/docs/docs/0.55.2-pre-asf/user-guide-getting-started"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#pipelines">Pipelines</a></li><li><a href="#data-streams">Data Streams</a></li><li><a href="#processing-elements">Processing Elements</a></li><li><a href="#data-sinks">Data Sinks</a></li><li><a href="#target-audien [...]
-                document.addEventListener('keyup', function(e) {
-                  if (e.target !== document.body) {
-                    return;
-                  }
-                  // keyCode for '/' (slash)
-                  if (e.keyCode === 191) {
-                    const search = document.getElementById('search_input_react');
-                    search && search.focus();
-                  }
-                });
-              </script><script>
-              var search = docsearch({
-                
-                apiKey: '0fedc89dddf2810657708b178e56ef02',
-                indexName: 'streampipes',
-                inputSelector: '#search_input_react',
-                algoliaOptions: {}
-              });
-            </script></body></html>
\ No newline at end of file
diff --git a/docs/docs/0.55.2-pre-asf/user-guide-processing-elements.html b/docs/docs/0.55.2-pre-asf/user-guide-processing-elements.html
index 6e31114..99cb892 100644
--- a/docs/docs/0.55.2-pre-asf/user-guide-processing-elements.html
+++ b/docs/docs/0.55.2-pre-asf/user-guide-processing-elements.html
@@ -1,6 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Processing Elements · Apache StreamPipes</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;This page explains all the Procesing Elements that are available in the StreamPipes Starter Kit.&lt;/p&gt;
-"/><meta name="docsearch:version" content="0.55.2-pre-asf"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Processing Elements · Apache StreamPipes"/><meta property="og:type" content="website"/><meta property="og:url" content="https://streampipes.apache.org/docs/"/><meta property="og:description" content="&lt;p&gt;This page explains all the Procesing Elements that are available in the StreamPipes Starter Kit.&lt;/p&gt;
-"/><meta property="og:image" content="https://streampipes.apache.org/docs/img/favicon.png"/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://streampipes.apache.org/docs/img/docusaurus.png"/><link rel="shortcut icon" href="/docs/img/favicon.png"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.css"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/atom-one-dark.min.css"/><lin [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Processing Elements · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="This page explains all the Procesing Elements that are available in the StreamPipes Starter Kit."/><meta name="docsearch:version" content="0.55.2-pre-asf"/><meta name="docse [...]
               window.dataLayer = window.dataLayer || [];
               function gtag(){dataLayer.push(arguments); }
               gtag('js', new Date());
@@ -11,7 +9,7 @@
             {"zIndex":100}
           )
         });
-        </script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions"><h3>0.55.2-pre-asf</h3></a><div class="navigationWrapper navigationSli [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.55.2-pre-asf</ [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -39,10 +37,16 @@
               createToggler('#navToggler', '#docsNav', 'docsSliderActive');
               createToggler('#tocToggler', 'body', 'tocActive');
 
-              const headings = document.querySelector('.toc-headings');
+              var headings = document.querySelector('.toc-headings');
               headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
                 }
               }, false);
 
@@ -61,7 +65,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle">Processing Elements</h1></header><article><div><span><p>This page explains all the Procesing Elements that are available in the StreamPipes Starter Kit.
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">Processing Elements</h1></header><article><div><span><p>This page explains all the Procesing Elements that are available in the StreamPipes Starter Kit.
 New Processing Elements can also be included during runtime.
 The once presented on this page come with StreamPipes and cen be used immediately.
 The next section &quot;Developer Guide&quot; explains how new Processing Elements can be implemented and integrated into StreamPipes.</p>
@@ -164,7 +168,7 @@ Example Event:
 <div class="admonition-title">Elasticsearch</div>
 <p>Stores data in an Elasticsearch cluster</p>
 </div>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.55.2-pre-asf/user-guide-tour"><span class="arrow-prev">← </span><span>Tour</span></a><a class="docs-next button" href="/docs/docs/0.55.2-pre-asf/user-guide-software-components"><span>Software Components</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#data-streams">Data Streams</a></li><li><a href="#processing-el [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.55.2-pre-asf/user-guide-tour.html"><span class="arrow-prev">← </span><span>Tour</span></a><a class="docs-next button" href="/docs/docs/0.55.2-pre-asf/user-guide-software-components.html"><span>Software Components</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#data-streams">Data Streams</a></li><li><a href="#pro [...]
                 document.addEventListener('keyup', function(e) {
                   if (e.target !== document.body) {
                     return;
diff --git a/docs/docs/0.55.2-pre-asf/user-guide-processing-elements/index.html b/docs/docs/0.55.2-pre-asf/user-guide-processing-elements/index.html
deleted file mode 100644
index 6e31114..0000000
--- a/docs/docs/0.55.2-pre-asf/user-guide-processing-elements/index.html
+++ /dev/null
@@ -1,186 +0,0 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Processing Elements · Apache StreamPipes</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;This page explains all the Procesing Elements that are available in the StreamPipes Starter Kit.&lt;/p&gt;
-"/><meta name="docsearch:version" content="0.55.2-pre-asf"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Processing Elements · Apache StreamPipes"/><meta property="og:type" content="website"/><meta property="og:url" content="https://streampipes.apache.org/docs/"/><meta property="og:description" content="&lt;p&gt;This page explains all the Procesing Elements that are available in the StreamPipes Starter Kit.&lt;/p&gt;
-"/><meta property="og:image" content="https://streampipes.apache.org/docs/img/favicon.png"/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://streampipes.apache.org/docs/img/docusaurus.png"/><link rel="shortcut icon" href="/docs/img/favicon.png"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.css"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/atom-one-dark.min.css"/><lin [...]
-              window.dataLayer = window.dataLayer || [];
-              function gtag(){dataLayer.push(arguments); }
-              gtag('js', new Date());
-              gtag('config', 'UA-154181944-1');
-            </script><link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons"/><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick.min.css"/><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick-theme.min.css"/><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto"/><link rel="stylesheet" href="/docs/css/admonition.css"/><link rel="stylesheet" href="/docs [...]
-        document.addEventListener('DOMContentLoaded', function() {
-          addBackToTop(
-            {"zIndex":100}
-          )
-        });
-        </script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions"><h3>0.55.2-pre-asf</h3></a><div class="navigationWrapper navigationSli [...]
-            var coll = document.getElementsByClassName('collapsible');
-            var checkActiveCategory = true;
-            for (var i = 0; i < coll.length; i++) {
-              var links = coll[i].nextElementSibling.getElementsByTagName('*');
-              if (checkActiveCategory){
-                for (var j = 0; j < links.length; j++) {
-                  if (links[j].classList.contains('navListItemActive')){
-                    coll[i].nextElementSibling.classList.toggle('hide');
-                    coll[i].childNodes[1].classList.toggle('rotate');
-                    checkActiveCategory = false;
-                    break;
-                  }
-                }
-              }
-
-              coll[i].addEventListener('click', function() {
-                var arrow = this.childNodes[1];
-                arrow.classList.toggle('rotate');
-                var content = this.nextElementSibling;
-                content.classList.toggle('hide');
-              });
-            }
-
-            document.addEventListener('DOMContentLoaded', function() {
-              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
-              createToggler('#tocToggler', 'body', 'tocActive');
-
-              const headings = document.querySelector('.toc-headings');
-              headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
-                }
-              }, false);
-
-              function createToggler(togglerSelector, targetSelector, className) {
-                var toggler = document.querySelector(togglerSelector);
-                var target = document.querySelector(targetSelector);
-
-                if (!toggler) {
-                  return;
-                }
-
-                toggler.onclick = function(event) {
-                  event.preventDefault();
-
-                  target.classList.toggle(className);
-                };
-              }
-            });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle">Processing Elements</h1></header><article><div><span><p>This page explains all the Procesing Elements that are available in the StreamPipes Starter Kit.
-New Processing Elements can also be included during runtime.
-The once presented on this page come with StreamPipes and cen be used immediately.
-The next section &quot;Developer Guide&quot; explains how new Processing Elements can be implemented and integrated into StreamPipes.</p>
-<h2><a class="anchor" aria-hidden="true" id="data-streams"></a><a href="#data-streams" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
-<p><details class="info">
-<summary>Water Level</summary></p>
-<pre><code class="hljs">    Example Event
-      {
-            &quot;underflow&quot;: false,
-            &quot;overflow&quot;: false,
-            &quot;level&quot;: 74.2184,
-            &quot;timestamp&quot;: 1515450274503,
-            &quot;sensorId&quot;: &quot;level01&quot;
-        }
-</code></pre>
-<p></details></p>
-<p><details class="info">
-<summary>Flow Rate</summary></p>
-<pre><code class="hljs">    Example Event:
-        {
-            &quot;mass_flow&quot;:5.344,
-            &quot;temperature&quot;:45.8665,
-            &quot;timestamp&quot;:1515450053387,
-            &quot;sensorId&quot;:&quot;flowrate01&quot;
-        }
-</code></pre>
-<p></details></p>
-<p><details class="info">
-<summary>Pressure Tank</summary></p>
-<pre><code class="hljs">Example Event:
-    {
-        &quot;pressure&quot;: 57.1648,
-        &quot;timestamp&quot;: 1515450424800,
-        &quot;sensorId&quot;: &quot;pressure01&quot;
-    }
-</code></pre>
-<p></details></p>
-<p><details class="info">
-<summary>Vehicle Position</summary>
-Example Event:
-{
-&quot;latitude&quot;: 40.7551,
-&quot;plateNumber&quot;: &quot;level02&quot;,
-&quot;timestamp&quot;: 1515450606449,
-&quot;longitude&quot;: -73.953
-}
-</details></p>
-<h2><a class="anchor" aria-hidden="true" id="processing-elements"></a><a href="#processing-elements" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.2 [...]
-<div class="admonition info">
-<div class="admonition-title">Numerical Filter</div>
-<p>Filters numerical values based on a given threshold</p>
-</div>
-<div class="admonition info">
-<div class="admonition-title">Projection</div>
-<p>Outputs a subset of an incoming event, e.g., if the input event contains both temperature and machineId, only the temperature can be send to the next component</p>
-</div>
-<div class="admonition info">
-<div class="admonition-title">Text Filter</div>
-<p>Filters text-based fields based on a filter condition</p>
-</div>
-<div class="admonition info">
-<div class="admonition-title">Aggregation</div>
-<p> Can be used to aggregate measurements, e.g., to calculate the average temperature during the last 10 minutes</p>
-</div>
-<div class="admonition info">
-<div class="admonition-title">Peak Detection</div>
-<p>This component detects peaks in time series data</p>
-</div>
-<div class="admonition info">
-<div class="admonition-title">Timestamp Enrichment</div>
-<p>Appends the current time to any incoming event</p>
-</div>
-<div class="admonition info">
-<div class="admonition-title">Increase</div>
-<p>Detects the increase of a value over time, e.g., a 10-percent-increase of the temperature within 5 minutes</p>
-</div>
-<div class="admonition info">
-<div class="admonition-title">Co-Occurrence</div>
-<p>Can be used to detect the co-occurrence of two events, e.g., a high temperature occurs together with high dust particle level within 10 minutes
-</p>
-</div>
-<h2><a class="anchor" aria-hidden="true" id="data-sinks"></a><a href="#data-sinks" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
-<div class="admonition info">
-<div class="admonition-title">Notification</div>
-<p>Creates a notification in the ProaSense UI.</p>
-</div>
-<div class="admonition info">
-<div class="admonition-title">Dashboard</div>
-<p>Forwards events to the visualization component</p>
-</div>
-<div class="admonition info">
-<div class="admonition-title">CouchDB</div>
-<p>Stores data in a CouchDB database</p>
-</div>
-<div class="admonition info">
-<div class="admonition-title">Kafka Publisher</div>
-<p>Forwards data to a Kafka cluster</p>
-</div>
-<div class="admonition info">
-<div class="admonition-title">Elasticsearch</div>
-<p>Stores data in an Elasticsearch cluster</p>
-</div>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.55.2-pre-asf/user-guide-tour"><span class="arrow-prev">← </span><span>Tour</span></a><a class="docs-next button" href="/docs/docs/0.55.2-pre-asf/user-guide-software-components"><span>Software Components</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#data-streams">Data Streams</a></li><li><a href="#processing-el [...]
-                document.addEventListener('keyup', function(e) {
-                  if (e.target !== document.body) {
-                    return;
-                  }
-                  // keyCode for '/' (slash)
-                  if (e.keyCode === 191) {
-                    const search = document.getElementById('search_input_react');
-                    search && search.focus();
-                  }
-                });
-              </script><script>
-              var search = docsearch({
-                
-                apiKey: '0fedc89dddf2810657708b178e56ef02',
-                indexName: 'streampipes',
-                inputSelector: '#search_input_react',
-                algoliaOptions: {}
-              });
-            </script></body></html>
\ No newline at end of file
diff --git a/docs/docs/0.55.2-pre-asf/user-guide-software-components.html b/docs/docs/0.55.2-pre-asf/user-guide-software-components.html
index e58abc4..252d84f 100644
--- a/docs/docs/0.55.2-pre-asf/user-guide-software-components.html
+++ b/docs/docs/0.55.2-pre-asf/user-guide-software-components.html
@@ -1,6 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Software Components · Apache StreamPipes</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;This page contains all the software components that can be used within the StreamPipes framework.&lt;/p&gt;
-"/><meta name="docsearch:version" content="0.55.2-pre-asf"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Software Components · Apache StreamPipes"/><meta property="og:type" content="website"/><meta property="og:url" content="https://streampipes.apache.org/docs/"/><meta property="og:description" content="&lt;p&gt;This page contains all the software components that can be used within the StreamPipes framework.&lt;/p&gt;
-"/><meta property="og:image" content="https://streampipes.apache.org/docs/img/favicon.png"/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://streampipes.apache.org/docs/img/docusaurus.png"/><link rel="shortcut icon" href="/docs/img/favicon.png"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.css"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/atom-one-dark.min.css"/><lin [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Software Components · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="This page contains all the software components that can be used within the StreamPipes framework."/><meta name="docsearch:version" content="0.55.2-pre-asf"/><meta name="docs [...]
               window.dataLayer = window.dataLayer || [];
               function gtag(){dataLayer.push(arguments); }
               gtag('js', new Date());
@@ -11,7 +9,7 @@
             {"zIndex":100}
           )
         });
-        </script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions"><h3>0.55.2-pre-asf</h3></a><div class="navigationWrapper navigationSli [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.55.2-pre-asf</ [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -39,10 +37,16 @@
               createToggler('#navToggler', '#docsNav', 'docsSliderActive');
               createToggler('#tocToggler', 'body', 'tocActive');
 
-              const headings = document.querySelector('.toc-headings');
+              var headings = document.querySelector('.toc-headings');
               headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
                 }
               }, false);
 
@@ -61,9 +65,9 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle">Software Components</h1></header><article><div><span><p>This page contains all the software components that can be used within the StreamPipes framework.
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">Software Components</h1></header><article><div><span><p>This page contains all the software components that can be used within the StreamPipes framework.
 Some of them are mandatory but others are just necessary for a special capabilities.
-In the <a href="/docs/docs/0.55.2-pre-asf/user-guide-installation">Installation Guide</a> we  already provide a docker-compose.yml file with all the necessary components
+In the <a href="/docs/docs/0.55.2-pre-asf/user-guide-installation.html">Installation Guide</a> we  already provide a docker-compose.yml file with all the necessary components
 for a minimal setup.
 Extend this configuration files with further containers described on this page and configure StreamPipes
 according to your needs.</p>
@@ -335,7 +339,7 @@ developed pipeline elements.</p>
     <span class="hljs-attr">spnet:</span>
 </code></pre>
 <p></details></p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.55.2-pre-asf/user-guide-processing-elements"><span class="arrow-prev">← </span><span>Previous</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#streampipes-framework">StreamPipes Framework</a></li><li><a href="#streampipes-services">StreamPipes Services</a></li><li><a href="#processing-elements">Processing Elements</a><ul class="toc-headings"><li> [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.55.2-pre-asf/user-guide-processing-elements.html"><span class="arrow-prev">← </span><span>Previous</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#streampipes-framework">StreamPipes Framework</a></li><li><a href="#streampipes-services">StreamPipes Services</a></li><li><a href="#processing-elements">Processing Elements</a><ul class="toc-headings" [...]
                 document.addEventListener('keyup', function(e) {
                   if (e.target !== document.body) {
                     return;
diff --git a/docs/docs/0.55.2-pre-asf/user-guide-software-components/index.html b/docs/docs/0.55.2-pre-asf/user-guide-software-components/index.html
deleted file mode 100644
index e58abc4..0000000
--- a/docs/docs/0.55.2-pre-asf/user-guide-software-components/index.html
+++ /dev/null
@@ -1,357 +0,0 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Software Components · Apache StreamPipes</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;This page contains all the software components that can be used within the StreamPipes framework.&lt;/p&gt;
-"/><meta name="docsearch:version" content="0.55.2-pre-asf"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Software Components · Apache StreamPipes"/><meta property="og:type" content="website"/><meta property="og:url" content="https://streampipes.apache.org/docs/"/><meta property="og:description" content="&lt;p&gt;This page contains all the software components that can be used within the StreamPipes framework.&lt;/p&gt;
-"/><meta property="og:image" content="https://streampipes.apache.org/docs/img/favicon.png"/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://streampipes.apache.org/docs/img/docusaurus.png"/><link rel="shortcut icon" href="/docs/img/favicon.png"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.css"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/atom-one-dark.min.css"/><lin [...]
-              window.dataLayer = window.dataLayer || [];
-              function gtag(){dataLayer.push(arguments); }
-              gtag('js', new Date());
-              gtag('config', 'UA-154181944-1');
-            </script><link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons"/><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick.min.css"/><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick-theme.min.css"/><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto"/><link rel="stylesheet" href="/docs/css/admonition.css"/><link rel="stylesheet" href="/docs [...]
-        document.addEventListener('DOMContentLoaded', function() {
-          addBackToTop(
-            {"zIndex":100}
-          )
-        });
-        </script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions"><h3>0.55.2-pre-asf</h3></a><div class="navigationWrapper navigationSli [...]
-            var coll = document.getElementsByClassName('collapsible');
-            var checkActiveCategory = true;
-            for (var i = 0; i < coll.length; i++) {
-              var links = coll[i].nextElementSibling.getElementsByTagName('*');
-              if (checkActiveCategory){
-                for (var j = 0; j < links.length; j++) {
-                  if (links[j].classList.contains('navListItemActive')){
-                    coll[i].nextElementSibling.classList.toggle('hide');
-                    coll[i].childNodes[1].classList.toggle('rotate');
-                    checkActiveCategory = false;
-                    break;
-                  }
-                }
-              }
-
-              coll[i].addEventListener('click', function() {
-                var arrow = this.childNodes[1];
-                arrow.classList.toggle('rotate');
-                var content = this.nextElementSibling;
-                content.classList.toggle('hide');
-              });
-            }
-
-            document.addEventListener('DOMContentLoaded', function() {
-              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
-              createToggler('#tocToggler', 'body', 'tocActive');
-
-              const headings = document.querySelector('.toc-headings');
-              headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
-                }
-              }, false);
-
-              function createToggler(togglerSelector, targetSelector, className) {
-                var toggler = document.querySelector(togglerSelector);
-                var target = document.querySelector(targetSelector);
-
-                if (!toggler) {
-                  return;
-                }
-
-                toggler.onclick = function(event) {
-                  event.preventDefault();
-
-                  target.classList.toggle(className);
-                };
-              }
-            });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle">Software Components</h1></header><article><div><span><p>This page contains all the software components that can be used within the StreamPipes framework.
-Some of them are mandatory but others are just necessary for a special capabilities.
-In the <a href="/docs/docs/0.55.2-pre-asf/user-guide-installation">Installation Guide</a> we  already provide a docker-compose.yml file with all the necessary components
-for a minimal setup.
-Extend this configuration files with further containers described on this page and configure StreamPipes
-according to your needs.</p>
-<h2><a class="anchor" aria-hidden="true" id="streampipes-framework"></a><a href="#streampipes-framework" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2 [...]
-<p><details class="tip">
-<summary>StreamPipes Backend</summary></p>
-<h4><a class="anchor" aria-hidden="true" id="description"></a><a href="#description" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>The StreamPipes Backend is the main component of the StreamPipes Framework. It contains the application logic to create and execute pipelines.
-Furthermore, it provides a REST-API that is used by other components for communication.</p>
-<h4><a class="anchor" aria-hidden="true" id="docker-compose"></a><a href="#docker-compose" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
-<pre><code class="hljs css language-yaml"><span class="hljs-attr">backend:</span>
-  <span class="hljs-attr">image:</span> <span class="hljs-string">streampipes/backend</span>
-  <span class="hljs-attr">depends_on:</span>
-    <span class="hljs-bullet">-</span> <span class="hljs-string">"consul"</span>
-  <span class="hljs-attr">ports:</span>
-    <span class="hljs-bullet">-</span> <span class="hljs-string">"8030:8030"</span>
-  <span class="hljs-attr">volumes:</span>
-    <span class="hljs-bullet">-</span> <span class="hljs-string">./config:/root/.streampipes</span>
-    <span class="hljs-bullet">-</span> <span class="hljs-string">./config/aduna:/root/.aduna</span>
-  <span class="hljs-attr">networks:</span>
-    <span class="hljs-attr">spnet:</span>
-</code></pre>
-<p></details></p>
-<p><details class="tip">
-<summary>StreamPipes UI</summary></p>
-<h4><a class="anchor" aria-hidden="true" id="description-1"></a><a href="#description-1" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
-<p>This service uses nginx and contains the UI of StreamPipes.
-The UI can, for example, be used to import new pipeline elements, create new pipelines and manage the pipeline
-execution. The UI communicates with the backend via the REST interface.</p>
-<h4><a class="anchor" aria-hidden="true" id="docker-compose-1"></a><a href="#docker-compose-1" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
-<pre><code class="hljs css language-yaml"><span class="hljs-attr">nginx:</span>
-  <span class="hljs-attr">image:</span> <span class="hljs-string">streampipes/ui</span>
-  <span class="hljs-attr">ports:</span>
-    <span class="hljs-bullet">-</span> <span class="hljs-string">"80:80"</span>
-  <span class="hljs-attr">depends_on:</span>
-    <span class="hljs-bullet">-</span> <span class="hljs-string">backend</span>
-  <span class="hljs-attr">networks:</span>
-    <span class="hljs-attr">spnet:</span>
-</code></pre>
-<p></details></p>
-<h2><a class="anchor" aria-hidden="true" id="streampipes-services"></a><a href="#streampipes-services" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1 [...]
-<p><details class="tip">
-<summary>Consul</summary></p>
-<h4><a class="anchor" aria-hidden="true" id="description-2"></a><a href="#description-2" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
-<p>Consul is used to store configuration parameters of the backend service and processing elements.
-It is further used for service discovery. Once a processing element container is started in the network, it is
-automatically discovered via the service discovery feature of Consul.</p>
-<h4><a class="anchor" aria-hidden="true" id="docker-compose-2"></a><a href="#docker-compose-2" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
-<pre><code class="hljs css language-yaml"><span class="hljs-attr">consul:</span>
-    <span class="hljs-attr">image:</span> <span class="hljs-string">consul</span>
-    <span class="hljs-attr">environment:</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">"CONSUL_LOCAL_CONFIG={\"disable_update_check\": true}"</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">"CONSUL_BIND_INTERFACE=eth0"</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">"CONSUL_HTTP_ADDR=0.0.0.0"</span>
-    <span class="hljs-attr">entrypoint:</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">consul</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">agent</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">-server</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">-bootstrap-expect=1</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">-data-dir=/consul/data</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">-node=consul-one</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">-bind={{</span> <span class="hljs-string">GetInterfaceIP</span> <span class="hljs-string">"eth0"</span> <span class="hljs-string">}}</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">-client=0.0.0.0</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">-enable-script-checks=true</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">-ui</span>
-    <span class="hljs-attr">volumes:</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">./config/consul:/consul/data</span>
-    <span class="hljs-attr">ports:</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">"8500:8500"</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">"8600:8600"</span>
-    <span class="hljs-attr">networks:</span>
-      <span class="hljs-attr">spnet:</span>
-        <span class="hljs-attr">ipv4_address:</span> <span class="hljs-number">172.30</span><span class="hljs-number">.0</span><span class="hljs-number">.9</span>
-</code></pre>
-<p></details></p>
-<p><details class="tip">
-<summary>Zookeeper</summary></p>
-<h4><a class="anchor" aria-hidden="true" id="description-3"></a><a href="#description-3" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
-<p>Apache Kafka and Apache Flink require zookeeper to manage their clusters.</p>
-<h4><a class="anchor" aria-hidden="true" id="docker-compose-3"></a><a href="#docker-compose-3" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
-<pre><code class="hljs css language-yaml"><span class="hljs-attr">zookeeper:</span>
-    <span class="hljs-attr">image:</span> <span class="hljs-string">wurstmeister/zookeeper</span>
-    <span class="hljs-attr">ports:</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">"2181:2181"</span>
-    <span class="hljs-attr">networks:</span>
-      <span class="hljs-attr">spnet:</span>
-</code></pre>
-<p></details></p>
-<p><details class="tip">
-<summary>Kafka</summary></p>
-<h4><a class="anchor" aria-hidden="true" id="description-4"></a><a href="#description-4" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
-<p>Kafka is used as the primary message broker. It is possible to use other brokers or even multiple message brokers in a single pipeline, but Kafka is the
-default. The communication between the processing elements in a pipeline is mostly done via Kafka.</p>
-<h4><a class="anchor" aria-hidden="true" id="docker-compose-4"></a><a href="#docker-compose-4" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
-<pre><code class="hljs css language-yaml">  <span class="hljs-attr">kafka:</span>
-    <span class="hljs-attr">image:</span> <span class="hljs-string">wurstmeister/kafka:0.10.0.1</span>
-    <span class="hljs-attr">ports:</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">"9092:9092"</span>
-    <span class="hljs-attr">environment:</span>
-      <span class="hljs-attr">KAFKA_ADVERTISED_HOST_NAME:</span> <span class="hljs-comment">###TODO ADD HOSTNAME HERE ###</span>
-      <span class="hljs-attr">KAFKA_ZOOKEEPER_CONNECT:</span> <span class="hljs-string">zookeeper:2181</span>
-    <span class="hljs-attr">volumes:</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">/var/run/docker.sock:/var/run/docker.sock</span>
-    <span class="hljs-attr">networks:</span>
-      <span class="hljs-attr">spnet:</span>
-</code></pre>
-<p></details></p>
-<p><details class="tip">
-<summary>ActiveMQ</summary></p>
-<h4><a class="anchor" aria-hidden="true" id="description-5"></a><a href="#description-5" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
-<p>ActiveMQ is another message broker which can be used in addition to Kafka. Currently, the main purpose is to provide
-an endpoint for the websocket connections required by the real-time dashboard of the StreamPipes UI.</p>
-<h4><a class="anchor" aria-hidden="true" id="docker-compose-5"></a><a href="#docker-compose-5" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
-<pre><code class="hljs css language-yaml"><span class="hljs-attr">activemq:</span>
-  <span class="hljs-attr">image:</span> <span class="hljs-string">streampipes/activemq</span>
-  <span class="hljs-attr">ports:</span>
-    <span class="hljs-bullet">-</span> <span class="hljs-string">"61616:61616"</span>
-    <span class="hljs-bullet">-</span> <span class="hljs-string">"61614:61614"</span>
-    <span class="hljs-bullet">-</span> <span class="hljs-string">"8161:8161"</span>
-  <span class="hljs-attr">networks:</span>
-    <span class="hljs-attr">spnet:</span>
-
-    <span class="hljs-string">```</span>
-<span class="hljs-string">&lt;/details&gt;</span>
-
-<span class="hljs-string">&lt;details</span> <span class="hljs-string">class="tip"&gt;</span>
-<span class="hljs-string">&lt;summary&gt;CouchDB&lt;/summary&gt;</span>
-
-<span class="hljs-comment">#### Description</span>
-<span class="hljs-string">CouchDB</span> <span class="hljs-string">is</span> <span class="hljs-string">the</span> <span class="hljs-string">main</span> <span class="hljs-string">database</span> <span class="hljs-string">for</span> <span class="hljs-string">StreamPipes</span> <span class="hljs-string">data</span> <span class="hljs-string">that</span> <span class="hljs-string">needs</span> <span class="hljs-string">to</span> <span class="hljs-string">be</span> <span class="hljs-string">per [...]
-
-<span class="hljs-comment">#### Docker Compose</span>
-<span class="hljs-string">```yaml</span>
-<span class="hljs-attr">couchdb:</span>
-  <span class="hljs-attr">image:</span> <span class="hljs-string">couchdb</span>
-  <span class="hljs-attr">ports:</span>
-    <span class="hljs-bullet">-</span> <span class="hljs-string">"5984:5984"</span>
-  <span class="hljs-attr">volumes:</span>
-    <span class="hljs-bullet">-</span> <span class="hljs-string">./config/couchdb/data:/usr/local/var/lib/couchdb</span>
-  <span class="hljs-attr">networks:</span>
-    <span class="hljs-attr">spnet:</span>
-</code></pre>
-<p></details></p>
-<p><details class="tip">
-<summary>Flink</summary></p>
-<h4><a class="anchor" aria-hidden="true" id="description-6"></a><a href="#description-6" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
-<p>This service sets up a sample flink cluster with one jobmanager and one taskmanager. Although this cluster can be used for testing, it is not recommended for production use.</p>
-<h4><a class="anchor" aria-hidden="true" id="docker-compose-6"></a><a href="#docker-compose-6" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
-<pre><code class="hljs css language-yaml"><span class="hljs-attr">jobmanager:</span>
-  <span class="hljs-attr">image:</span> <span class="hljs-string">streampipes/flink</span>
-  <span class="hljs-attr">ports:</span>
-    <span class="hljs-bullet">-</span> <span class="hljs-string">"8081:8099"</span>
-  <span class="hljs-attr">command:</span> <span class="hljs-string">jobmanager</span>
-  <span class="hljs-attr">networks:</span>
-    <span class="hljs-attr">spnet:</span>
-
-
-<span class="hljs-attr">taskmanager:</span>
-  <span class="hljs-attr">image:</span> <span class="hljs-string">ipe-wim-gitlab.fzi.de:5000/streampipes/services/flink</span>
-  <span class="hljs-attr">command:</span> <span class="hljs-string">taskmanager</span>
-  <span class="hljs-attr">environment:</span>
-    <span class="hljs-bullet">-</span> <span class="hljs-string">FLINK_NUM_SLOTS=20</span>
-  <span class="hljs-attr">networks:</span>
-    <span class="hljs-attr">spnet:</span>
-</code></pre>
-<p></details></p>
-<h2><a class="anchor" aria-hidden="true" id="processing-elements"></a><a href="#processing-elements" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.2 [...]
-<p><details class="tip">
-<summary>PE Examples Sources</summary></p>
-<h4><a class="anchor" aria-hidden="true" id="description-7"></a><a href="#description-7" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
-<p>This Processing Element Container contains several sample data sources that can be used to work with StreamPipes.
-It consists of sources descriptions and data simulators that constantly produce data.</p>
-<h4><a class="anchor" aria-hidden="true" id="docker-compose-7"></a><a href="#docker-compose-7" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
-<pre><code class="hljs css language-yaml">    <span class="hljs-attr">pe-examples-sources:</span>
-      <span class="hljs-attr">image: streampipes/pe-examples-sources:</span>
-      <span class="hljs-attr">depends_on:</span>
-        <span class="hljs-bullet">-</span> <span class="hljs-string">"consul"</span>
-      <span class="hljs-attr">ports:</span>
-        <span class="hljs-bullet">-</span> <span class="hljs-string">"8098:8090"</span>
-      <span class="hljs-attr">networks:</span>
-        <span class="hljs-attr">spnet:</span>
-</code></pre>
-<p></details></p>
-<p><details class="tip">
-<summary>PE Examples JVM</summary></p>
-<h4><a class="anchor" aria-hidden="true" id="description-8"></a><a href="#description-8" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
-<p>This Processing Element Container contains some sink example implementations, like for example the real-time
-dashboard. This can be used to visualize data within StreamPipes.</p>
-<h4><a class="anchor" aria-hidden="true" id="docker-compose-8"></a><a href="#docker-compose-8" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
-<pre><code class="hljs css language-yaml">      <span class="hljs-attr">pe-exanmples-jvm:</span>
-        <span class="hljs-attr">image:</span> <span class="hljs-string">streampipes/pe-examples-jvm</span>
-        <span class="hljs-attr">depends_on:</span>
-          <span class="hljs-bullet">-</span> <span class="hljs-string">"consul"</span>
-        <span class="hljs-attr">environment:</span>
-          <span class="hljs-bullet">-</span> <span class="hljs-string">STREAMPIPES_HOST=###TODO</span> <span class="hljs-string">ADD</span> <span class="hljs-string">HOSTNAME</span> <span class="hljs-string">HERE</span> <span class="hljs-comment">###</span>
-        <span class="hljs-attr">ports:</span>
-          <span class="hljs-bullet">-</span> <span class="hljs-string">"8096:8090"</span>
-        <span class="hljs-attr">networks:</span>
-          <span class="hljs-attr">spnet:</span>
-</code></pre>
-<p></details></p>
-<p><details class="tip">
-<summary>PE Examples Flink</summary></p>
-<h4><a class="anchor" aria-hidden="true" id="description-9"></a><a href="#description-9" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
-<p>The Flink Samples Processing Element Container contains some example algorithms that can be used within processing
-pipelines in the pipeline editor. Those algorithms are deployed to a Flink cluster once the pipeline is started.</p>
-<h4><a class="anchor" aria-hidden="true" id="docker-compose-9"></a><a href="#docker-compose-9" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
-<pre><code class="hljs css language-yaml">  <span class="hljs-attr">pe-flink-samples:</span>
-    <span class="hljs-attr">image:</span> <span class="hljs-string">streampipes/pe-examples-flink</span>
-    <span class="hljs-attr">depends_on:</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">"consul"</span>
-    <span class="hljs-attr">ports:</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">"8094:8090"</span>
-    <span class="hljs-attr">volumes:</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">./config:/root/.streampipes</span>
-    <span class="hljs-attr">networks:</span>
-      <span class="hljs-attr">spnet:</span>
-</code></pre>
-<p></details></p>
-<h3><a class="anchor" aria-hidden="true" id="third-party-services"></a><a href="#third-party-services" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1 [...]
-<p><details class="tip">
-<summary>Elasticsearch</summary></p>
-<h4><a class="anchor" aria-hidden="true" id="description-10"></a><a href="#description-10" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
-<p>This service can be used to run Elasticsearch. Data can be written into Elasticsearch with the Elasticsearch
-sink of the PE Flink samples conatiner.</p>
-<h4><a class="anchor" aria-hidden="true" id="docker-compose-10"></a><a href="#docker-compose-10" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2- [...]
-<pre><code class="hljs css language-yaml"><span class="hljs-attr">elasticsearch:</span>
-  <span class="hljs-attr">image:</span> <span class="hljs-string">ipe-wim-gitlab.fzi.de:5000/streampipes/services/elasticsearch</span>
-  <span class="hljs-attr">ports:</span>
-    <span class="hljs-bullet">-</span> <span class="hljs-string">"9200:9200"</span>
-    <span class="hljs-bullet">-</span> <span class="hljs-string">"9300:9300"</span>
-  <span class="hljs-attr">volumes:</span>
-    <span class="hljs-bullet">-</span> <span class="hljs-string">./config/elasticsearch/data:/usr/share/elasticsearch/data</span>
-  <span class="hljs-attr">networks:</span>
-    <span class="hljs-attr">spnet:</span>
-</code></pre>
-<p></details></p>
-<p><details class="tip">
-<summary>Kibana</summary></p>
-<h4><a class="anchor" aria-hidden="true" id="description-11"></a><a href="#description-11" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
-<p>Kibana is used to visualize data that is written into Elasticsearch. It can be used in addition to our live dashboard
-to analyse and visualize historic data.</p>
-<h4><a class="anchor" aria-hidden="true" id="docker-compose-11"></a><a href="#docker-compose-11" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2- [...]
-<pre><code class="hljs css language-yaml"><span class="hljs-attr">kibana:</span>
-  <span class="hljs-attr">image:</span> <span class="hljs-string">kibana:5.2.2</span>
-  <span class="hljs-attr">ports:</span>
-    <span class="hljs-bullet">-</span> <span class="hljs-string">"5601:5601"</span>
-  <span class="hljs-attr">volumes:</span>
-    <span class="hljs-bullet">-</span> <span class="hljs-string">./config/kibana/kibana.yml:/opt/kibana/config/kibana.yml</span>
-  <span class="hljs-attr">environment:</span>
-    <span class="hljs-bullet">-</span> <span class="hljs-string">ELASTICSEARCH_URL=http://elasticsearch:9200</span>
-  <span class="hljs-attr">networks:</span>
-    <span class="hljs-attr">spnet:</span>
-</code></pre>
-<p></details></p>
-<p><details class="tip">
-<summary>Kafka Web Console</summary></p>
-<h4><a class="anchor" aria-hidden="true" id="description-12"></a><a href="#description-12" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
-<p>The kafka web console can be used to monitor the kafka cluster. This is a good tool for debugging your newly
-developed pipeline elements.</p>
-<h4><a class="anchor" aria-hidden="true" id="docker-compose-12"></a><a href="#docker-compose-12" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2- [...]
-<pre><code class="hljs css language-yaml"><span class="hljs-attr">kafka-web-console:</span>
-  <span class="hljs-attr">image:</span> <span class="hljs-string">hwestphal/kafka-web-console</span>
-  <span class="hljs-attr">ports:</span>
-    <span class="hljs-bullet">-</span> <span class="hljs-string">"9000:9000"</span>
-  <span class="hljs-attr">volumes:</span>
-    <span class="hljs-bullet">-</span> <span class="hljs-string">./config:/data</span>
-  <span class="hljs-attr">networks:</span>
-    <span class="hljs-attr">spnet:</span>
-</code></pre>
-<p></details></p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.55.2-pre-asf/user-guide-processing-elements"><span class="arrow-prev">← </span><span>Previous</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#streampipes-framework">StreamPipes Framework</a></li><li><a href="#streampipes-services">StreamPipes Services</a></li><li><a href="#processing-elements">Processing Elements</a><ul class="toc-headings"><li> [...]
-                document.addEventListener('keyup', function(e) {
-                  if (e.target !== document.body) {
-                    return;
-                  }
-                  // keyCode for '/' (slash)
-                  if (e.keyCode === 191) {
-                    const search = document.getElementById('search_input_react');
-                    search && search.focus();
-                  }
-                });
-              </script><script>
-              var search = docsearch({
-                
-                apiKey: '0fedc89dddf2810657708b178e56ef02',
-                indexName: 'streampipes',
-                inputSelector: '#search_input_react',
-                algoliaOptions: {}
-              });
-            </script></body></html>
\ No newline at end of file
diff --git a/docs/docs/0.55.2-pre-asf/user-guide-tour.html b/docs/docs/0.55.2-pre-asf/user-guide-tour.html
index 901eb7b..447556c 100644
--- a/docs/docs/0.55.2-pre-asf/user-guide-tour.html
+++ b/docs/docs/0.55.2-pre-asf/user-guide-tour.html
@@ -1,6 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Tour · Apache StreamPipes</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;StreamPipes is a framework that enables domain experts to model and execute stream processing pipelines in a big data infrastructure.&lt;/p&gt;
-"/><meta name="docsearch:version" content="0.55.2-pre-asf"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Tour · Apache StreamPipes"/><meta property="og:type" content="website"/><meta property="og:url" content="https://streampipes.apache.org/docs/"/><meta property="og:description" content="&lt;p&gt;StreamPipes is a framework that enables domain experts to model and execute stream processing pipelines in a big data infrastructure.&lt;/p&gt;
-"/><meta property="og:image" content="https://streampipes.apache.org/docs/img/favicon.png"/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://streampipes.apache.org/docs/img/docusaurus.png"/><link rel="shortcut icon" href="/docs/img/favicon.png"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.css"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/atom-one-dark.min.css"/><lin [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Tour · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="StreamPipes is a framework that enables domain experts to model and execute stream processing pipelines in a big data infrastructure."/><meta name="docsearch:version" content="0.55.2-pre-a [...]
               window.dataLayer = window.dataLayer || [];
               function gtag(){dataLayer.push(arguments); }
               gtag('js', new Date());
@@ -11,7 +9,7 @@
             {"zIndex":100}
           )
         });
-        </script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions"><h3>0.55.2-pre-asf</h3></a><div class="navigationWrapper navigationSli [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.55.2-pre-asf</ [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -39,10 +37,16 @@
               createToggler('#navToggler', '#docsNav', 'docsSliderActive');
               createToggler('#tocToggler', 'body', 'tocActive');
 
-              const headings = document.querySelector('.toc-headings');
+              var headings = document.querySelector('.toc-headings');
               headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
                 }
               }, false);
 
@@ -61,7 +65,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle">Tour</h1></header><article><div><span><p>StreamPipes is a framework that enables domain experts to model and execute stream processing pipelines in a big data infrastructure.
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">Tour</h1></header><article><div><span><p>StreamPipes is a framework that enables domain experts to model and execute stream processing pipelines in a big data infrastructure.
 The graphical user interface of StreamPipes is a web application that provides an easy to use solution for domain experts.
 In this page, an overview of the many features of StreamPipes is given. We will tour through all features and explain what they do and how users can interact with them.</p>
 <p>First of all, a user needs to log in to the system.
@@ -85,7 +89,7 @@ top left to open the details view of the navigation menu.</p>
 This is one of the central features of StreamPipes, since graphical modeling of pipelines takes place in this view.</p>
 <p>On the top we can see three tabs: <strong>Data Streams</strong>, <strong>Processing Elements</strong>, and <strong>Data Sinks</strong>.
 Each tab contains multiple pipeline elements, which can be installed at runtime.
-The installation of pipeline elements is explained later in section <a href="/docs/docs/0.55.2-pre-asf/user-guide-tour#install-pipeline-elements">Install Pipeline Elements</a>.</p>
+The installation of pipeline elements is explained later in section <a href="/docs/docs/0.55.2-pre-asf/user-guide-tour.html#install-pipeline-elements">Install Pipeline Elements</a>.</p>
 <div class="my-carousel">
     <img src="/docs/img/features/editor/1_data_streams.png" alt="Data Streams">
     <img src="/docs/img/features/editor/2_processing_elements.png" alt="Processing Elements">
@@ -295,7 +299,7 @@ Sometimes it is also necessary to re-import the pipeline element description, ei
 <p>Congratulations! You've just finished your first tour of StreamPipes.
 Although there's still more to learn, we introduced most of the currently available features.
 On the next page, the different processing elements that come with the installation are explained.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.55.2-pre-asf/user-guide-installation"><span class="arrow-prev">← </span><span>Installation</span></a><a class="docs-next button" href="/docs/docs/0.55.2-pre-asf/user-guide-processing-elements"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#home">Home</a></li><li><a href="#pipeline-editor">Pipeline Ed [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.55.2-pre-asf/user-guide-installation.html"><span class="arrow-prev">← </span><span>Installation</span></a><a class="docs-next button" href="/docs/docs/0.55.2-pre-asf/user-guide-processing-elements.html"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#home">Home</a></li><li><a href="#pipeline-editor">P [...]
                 document.addEventListener('keyup', function(e) {
                   if (e.target !== document.body) {
                     return;
diff --git a/docs/docs/0.55.2-pre-asf/user-guide-tour/index.html b/docs/docs/0.55.2-pre-asf/user-guide-tour/index.html
deleted file mode 100644
index 901eb7b..0000000
--- a/docs/docs/0.55.2-pre-asf/user-guide-tour/index.html
+++ /dev/null
@@ -1,317 +0,0 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Tour · Apache StreamPipes</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;StreamPipes is a framework that enables domain experts to model and execute stream processing pipelines in a big data infrastructure.&lt;/p&gt;
-"/><meta name="docsearch:version" content="0.55.2-pre-asf"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Tour · Apache StreamPipes"/><meta property="og:type" content="website"/><meta property="og:url" content="https://streampipes.apache.org/docs/"/><meta property="og:description" content="&lt;p&gt;StreamPipes is a framework that enables domain experts to model and execute stream processing pipelines in a big data infrastructure.&lt;/p&gt;
-"/><meta property="og:image" content="https://streampipes.apache.org/docs/img/favicon.png"/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://streampipes.apache.org/docs/img/docusaurus.png"/><link rel="shortcut icon" href="/docs/img/favicon.png"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.css"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/atom-one-dark.min.css"/><lin [...]
-              window.dataLayer = window.dataLayer || [];
-              function gtag(){dataLayer.push(arguments); }
-              gtag('js', new Date());
-              gtag('config', 'UA-154181944-1');
-            </script><link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons"/><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick.min.css"/><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick-theme.min.css"/><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto"/><link rel="stylesheet" href="/docs/css/admonition.css"/><link rel="stylesheet" href="/docs [...]
-        document.addEventListener('DOMContentLoaded', function() {
-          addBackToTop(
-            {"zIndex":100}
-          )
-        });
-        </script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions"><h3>0.55.2-pre-asf</h3></a><div class="navigationWrapper navigationSli [...]
-            var coll = document.getElementsByClassName('collapsible');
-            var checkActiveCategory = true;
-            for (var i = 0; i < coll.length; i++) {
-              var links = coll[i].nextElementSibling.getElementsByTagName('*');
-              if (checkActiveCategory){
-                for (var j = 0; j < links.length; j++) {
-                  if (links[j].classList.contains('navListItemActive')){
-                    coll[i].nextElementSibling.classList.toggle('hide');
-                    coll[i].childNodes[1].classList.toggle('rotate');
-                    checkActiveCategory = false;
-                    break;
-                  }
-                }
-              }
-
-              coll[i].addEventListener('click', function() {
-                var arrow = this.childNodes[1];
-                arrow.classList.toggle('rotate');
-                var content = this.nextElementSibling;
-                content.classList.toggle('hide');
-              });
-            }
-
-            document.addEventListener('DOMContentLoaded', function() {
-              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
-              createToggler('#tocToggler', 'body', 'tocActive');
-
-              const headings = document.querySelector('.toc-headings');
-              headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
-                }
-              }, false);
-
-              function createToggler(togglerSelector, targetSelector, className) {
-                var toggler = document.querySelector(togglerSelector);
-                var target = document.querySelector(targetSelector);
-
-                if (!toggler) {
-                  return;
-                }
-
-                toggler.onclick = function(event) {
-                  event.preventDefault();
-
-                  target.classList.toggle(className);
-                };
-              }
-            });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle">Tour</h1></header><article><div><span><p>StreamPipes is a framework that enables domain experts to model and execute stream processing pipelines in a big data infrastructure.
-The graphical user interface of StreamPipes is a web application that provides an easy to use solution for domain experts.
-In this page, an overview of the many features of StreamPipes is given. We will tour through all features and explain what they do and how users can interact with them.</p>
-<p>First of all, a user needs to log in to the system.
-The credentials for the user are specified during the installation process.</p>
-<p><img src="/docs/img/features/login.png" alt="StreamPipes Login"></p>
-<h2><a class="anchor" aria-hidden="true" id="home"></a><a href="#home" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
-<p>After logging in, the user is redirected on to the home page.
-The home page gives an overview over the different features available in the StreamPipes UI.</p>
-<p>On the left, the navigation menu can be seen.
-You can either use the icons on the left side or click on the menu icon on the
-top left to open the details view of the navigation menu.</p>
-<p>On the top right, a link refers to the documentation and the logout button is present.</p>
-<div class="my-carousel">
-    <img src="/docs/img/features/home/home.png" alt="Home">
-    <img src="/docs/img/features/home/menu.png" alt="Menu">
-    <img src="/docs/img/features/home/open_menu.png" alt="Open Menu">
-    <img src="/docs/img/features/home/logout.png" alt="Logout">
-</div>
-<h2><a class="anchor" aria-hidden="true" id="pipeline-editor"></a><a href="#pipeline-editor" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5  [...]
-<p>The first feature we are going to explain is the Pipeline Editor.
-This is one of the central features of StreamPipes, since graphical modeling of pipelines takes place in this view.</p>
-<p>On the top we can see three tabs: <strong>Data Streams</strong>, <strong>Processing Elements</strong>, and <strong>Data Sinks</strong>.
-Each tab contains multiple pipeline elements, which can be installed at runtime.
-The installation of pipeline elements is explained later in section <a href="/docs/docs/0.55.2-pre-asf/user-guide-tour#install-pipeline-elements">Install Pipeline Elements</a>.</p>
-<div class="my-carousel">
-    <img src="/docs/img/features/editor/1_data_streams.png" alt="Data Streams">
-    <img src="/docs/img/features/editor/2_processing_elements.png" alt="Processing Elements">
-    <img src="/docs/img/features/editor/3_data_sinks.png" alt="Data Sinks">
-</div>
-<p>There are multiple ways to search for a pipeline element.
-The easiest way is to enter a search term in the search field on the top left corner.
-The system filters the elements according to the search term and only presents the relevant ones.
-Another way is to select one of the categories from the drop down menu.
-The system then filters the elements according to the selected category.
-The category of an element is defined by its functionality.</p>
-<div class="my-carousel">
-    <img src="/docs/img/features/editor/4_text_filter.png" alt="Text Filter">
-    <img src="/docs/img/features/editor/5_category_drop_down.png" alt="Category Drop Down">
-    <img src="/docs/img/features/editor/6_category_filter.png" alt="Category Filter">
-</div>
-<p>Modelling of a pipeline starts with choosing one ore more data sources. Therefore a data stream must be selected
-and moved into the editor via drag and drop.
-After adding a data stream, we can select a processing element to transform the events of the data stream.
-This is done again by dragging the processing element icon into our editor.
-The mouse can be used to connect the two elements.
-It is automatically checked in the background if the two elements are semantically compatible.
-If this check is successful, a configuration menu is shown. It contains the parameters that can be modified by the
-user. For all parameters, a description is provided and the system also prevents the user from entering parameters that
-are not correct, according to the semantic description of the element.
-It is also ensured that all required parameters are provided by the user, otherwise an error message is displayed.</p>
-<div class="my-carousel">
-    <img src="/docs/img/features/editor/7_connect_elements.png" alt="Connect Elements">
-    <img src="/docs/img/features/editor/8_configure_element.png" alt="Configure Elements">
-</div>
-<p>When the user tries to connect two elements that are not compatible, the system shows a <strong>connection error</strong> message.
-The example illustrated below shows such a case. The user tried to connect a text filter to a temperature sensor.
-This is not possible since the text filter processing element requires at least one event property of type string, which is not provided by the temperature sensor.</p>
-<p><img src="../img/features/editor/9_connection_error.png" alt="Connection Error"></p>
-<p>To further improve the usability, multiple ways are available to connect new elements besides the drag and drop option.
-Each processing element has multiple short-cut buttons to connect it with another element.
-The first one can be used to get a suggestion of all elements that are compatible with the current element.
-The second one gives a recommendation on the elements the user might want to connect, based on the usage of the component in
-other pipelines.
-There is also a button to open the documentation of a selected element.
-Elements can be deleted by clicking the 'delete' button.
-Each element can also be re-configured at a later point in time using the configuration button.
-There is one important aspect about re-configuration of pipeline elements you need to be aware of: Only elements that are not yet connected to another element can be modified.
-The reason for this behaviour is that some of the following elements might rely on the configuration of previous elements.
-This way it is ensured that the user can not change the behaviour of the pipeline by accident.</p>
-<div class="my-carousel">
-    <img src="/docs/img/features/editor/10_shortcut_buttons.png" alt="Shortcut Buttons">
-    <img src="/docs/img/features/editor/11_compatible_elements.png" alt="Compatible Elements">
-    <img src="/docs/img/features/editor/12_recommend_elements.png" alt="Recommended elements">
-</div>
-<p>After the pipeline is completely modelled, the editor looks similar to the first image below.
-Especially for larger pipelines, the auto layout button in the editor menu might be helpful.
-With this button, the pipeline will be beautifully aligned in the editor, helping users to get a better overview of the complete pipeline.
-On the top left corner of the editor, the 'save' button can be found.
-After the modelling of the pipeline is done, use this button to save and execute the pipeline.
-A save dialogue pops up when clicking the save button.
-The pipeline title must be entered and an additional description can be provided.
-It is recommended to always provide a description, because it makes it easier for other users to understand the meaning of the pipeline.
-In the save menu, the user can either just store the pipeline configuration or store it and immediately start the pipeline.
-Once the pipeline is executed, the user is redirected to the <em>Manage Pipeline</em> view.
-In this view, the user gets immediate feedback whether all components did start correctly and the pipeline is up and running.
-This view also shows that individual elements might run in different environments on different servers.
-If there is an error during the execution, a notification containing a (hopefully) detailed error description is provided in this view.</p>
-<div class="my-carousel">
-    <img src="/docs/img/features/editor/13_save_adjust.png" alt="Save adjust delete">
-    <img src="/docs/img/features/editor/14_save_dialogue.png" alt="Complete pipeline">
-    <img src="/docs/img/features/editor/15_pipeline_sucessfully_started.png" alt="Pipeline sucessfully started">
-</div>
-<h2><a class="anchor" aria-hidden="true" id="manage-pipelines"></a><a href="#manage-pipelines" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
-<p>The <em>Manage Pipelines</em> view provides an overview of all existing pipelines.
-Existing pipelines can be managed using this view.
-For instance, users can start and stop pipelines or delete them when they are not longer needed.
-Pipeline actions can be performed by clicking one of the buttons next to each pipeline.
-For each pipeline, the title and description is displayed in the table.
-By clicking the edit button, they can also be inspected in more detail.</p>
-<div class="my-carousel">
-    <img src="/docs/img/features/manage_pipelines/1_pipeline_overview.png" alt="Pipeline Overview">
-    <img src="/docs/img/features/manage_pipelines/2_start_stop_pipeline.png" alt="Start stop Pipelines">
-    <img src="/docs/img/features/manage_pipelines/3_delete_pipeline.png" alt="Delete Pipelines">
-    <img src="/docs/img/features/manage_pipelines/4_pipeline_deleted.png" alt="Delete Pipelines">
-</div>
-<p>In a setting with many defined pipelines, it can get really hard to keep track of all pipelines.
-This is why we introduce categories.
-A category is a set of pipelines that can be defined by users in order to better organize pipelines.
-By clicking on the &quot;Manage Categories&quot; button on the top left, a new category can be added to StreamPipes.
-In this example, we create a new category named &quot;New Demo Category&quot;.
-After saving a category, pipelines can be added to the newly created category.
-The new category is then presented as a tab in the <em>Pipeline Management</em> view.
-This tab contains all previously defined pipelines.</p>
-<div class="my-carousel">
-    <img src="/docs/img/features/manage_pipelines/5_pipeline_category.png" alt="Pipeline Category">
-    <img src="/docs/img/features/manage_pipelines/6_add_category.png" alt="Add Pipeline Category">
-    <img src="/docs/img/features/manage_pipelines/7_new_category.png" alt="New Category">
-    <img src="/docs/img/features/manage_pipelines/8_show_new_category.png" alt="Show new Category">
-</div>
-<h2><a class="anchor" aria-hidden="true" id="live-dashboard"></a><a href="#live-dashboard" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
-<p>The live dashboard can be used for multiple use cases.
-It is a good way to live monitor a running system in a dashboard, but it can also be used during the pipeline development to get a fast feedback from newly created pipelines.
-Below is a screenshot of an example dashboard showing the current value of a water level, which further shows a line chart and a map.
-All pipelines that contain the &quot;Dashboard Sink&quot; can be visualized in this view.
-To add a new visualisation, click on the &quot;Add visualisation&quot; button on the top left corner.
-Afterwards, a three-step configuration menu is shown.
-The first step is to select the pipeline that should be visualized.
-In the second step, the type of visualization can be defined.
-Currently. 9 different types are available, including line charts, various map visualizations and data tables.
-After selecting the type (in our example &quot;Gauge&quot;), you can select the specific measurement values of the data stream that should be displayed.
-In the example below, the water level value should be monitored and the gauge value should range from 0 to 100.
-Once all steps are completed, the new visualization is placed on the dashboard and live data is presented as soon as it becomes available.</p>
-<div class="my-carousel">
-    <img src="/docs/img/features/dashboard/01_dashboard.png" alt="Screenshot of live dashboard">
-    <img src="/docs/img/features/dashboard/06_add_new.png" alt="New Visualization">
-    <img src="/docs/img/features/dashboard/02_new_visualisation.png" alt="Select Pipeline to visualize">
-    <img src="/docs/img/features/dashboard/03_select_gauge.png" alt="Select Visualization Type">
-    <img src="/docs/img/features/dashboard/04_configure_gauge.png" alt="Configure  Visualzation">
-    <img src="/docs/img/features/dashboard/05_new_gauge_done.png" alt="Show new Visualzation">
-</div>
-<h2><a class="anchor" aria-hidden="true" id="file-download"></a><a href="#file-download" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
-<p>With the file download,  it is possible to download stored files directly from Elasticsearch.
-This can be very useful for example when a data dumb is needed for a specific time range.
-All data that is written into Elasticsearch using the <em>Elasticsearch Sink</em> can be accessed by the file downloader.
-A common use case is to download data for offline analysis and to train a machine learning algorithm.
-First, an index must be defined, afterwards, the time range must be set.
-A date picker helps users to enter the time range.
-When a user clicks the &quot;Create File&quot; button the file is created.
-All files stored on the server can be downloaded via the download button.
-If the files are not longer needed, they can be deleted by clicking the delete button.
-This will remove the file from the server.
-Since data is stored in Elasticsearch anyways. it is recommended not to store the files for a longer period of time on the server.
-When a file is needed again at a later point in time it is easy to create it again.
-This way a lot of disk space on the server can be saved, especially when the files are rather large.</p>
-<div class="my-carousel">
-    <img src="/docs/img/features/file_download/01_file_download.png" alt="File Download">
-    <img src="/docs/img/features/file_download/02_file_download.png" alt="File Download with selected time range">
-    <img src="/docs/img/features/file_download/03_file_downloaded.png" alt="File Download with new File">
-</div>
-<h2><a class="anchor" aria-hidden="true" id="notifications"></a><a href="#notifications" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
-<p>Notifications are a good solution to notify someone when a specific situation occurs.
-A notification can be created by using the notification sink in the pipeline editor.
-When using such a sink a configuration dialogue is presented to the user.
-In this dialogue the user must provide enough information to resolve the solution when it occurs.
-The message can be nicely configured in the message editor.
-It is also possible to embed values of the event that triggered the notification.
-This can be done with the #property# notation.
-All available properties are presented in the notification configurator.
-When the notification is triggered the #property# template is replaced with the actual value of the property.</p>
-<div class="my-carousel">
-    <img src="/docs/img/features/notification/01_select_notification_sink.png" alt="Select Notification">
-    <img src="/docs/img/features/notification/02_configure_notification.png" alt="Configure Notification">
-    <img src="/docs/img/features/notification/03_use_event_properties.png" alt="Use Event Properties">
-</div>
-<p>A pop up icon on the notification tab in the menu shows the user how many unread notifications currently are in the system.
-This icon also alerts users when new notifications occur.
-In the notification overview all notifications are listed.
-On the top are the new notifications that are not read yet.
-A user can mark them as read by clicking on the little envelope icon.
-Those notifications are then no longer in the unread section, but they remain in the &quot;All Messages&quot; view.
-This way it is possible to keep track of all notifications and have a look at them at a later point in time.</p>
-<div class="my-carousel">
-    <img src="/docs/img/features/notification/04_new_notification.png" alt="New Notification">
-    <img src="/docs/img/features/notification/05_mark_read.png" alt="Mark Notification as read">
-    <img src="/docs/img/features/notification/06_marked_as_read.png" alt="Notification read">
-</div>
-<h2><a class="anchor" aria-hidden="true" id="install-pipeline-elements"></a><a href="#install-pipeline-elements" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c [...]
-<p>StreamPipes is highly configurable and extensible.
-Pipeline elements can be added and removed during runtime.
-This can be done in the &quot;Install Pipeline Elements&quot; view.
-All available pipeline elements are shown here and can be selected to install or uninstall.
-It is also possible to select multiple or all of them and then install them all together.
-When a new element is installed by the user it is automatically available in the &quot;Pipeline Editor&quot; and can be used for pipelines.
-Elements that are uninstalled are removed from the system.
-They can not longer be used within pipelines.</p>
-<div class="my-carousel">
-    <img src="/docs/img/features/install_elements/01_install_elements.png" alt="Install Elements View">
-    <img src="/docs/img/features/install_elements/02_install_absence.png" alt="Insall new Element">
-    <img src="/docs/img/features/install_elements/03_installed_absence.png" alt="Installation Successful">
-    <img src="/docs/img/features/install_elements/04_abcense_in_editor.png" alt="Show new installed element">
-</div>
-<h2><a class="anchor" aria-hidden="true" id="my-elements"></a><a href="#my-elements" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<p>The &quot;My Elements&quot; view gives a quick overview over all installed pipeline elements.
-Here they can be inspected and the description can be re-imported.
-In this view it is also possible to have a look at the JSON-LD representation of each element.
-This is not important for a user, but it is worth noting that the system uses this machine understandable format to support the user.
-For example all the information of the sources, like data schema or unit information is in the JSON-LD meta data.</p>
-<div class="my-carousel">
-    <img src="/docs/img/features/my_elements/01_my_elements.png" alt="My Elements Overview">
-    <img src="/docs/img/features/my_elements/02_my_elements_jsonls.png" alt="View JSON-LD">
-    <img src="/docs/img/features/my_elements/03_jsonld.png" alt="See JSON-LD">
-</div>
-<h2><a class="anchor" aria-hidden="true" id="configuration"></a><a href="#configuration" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
-<p>The last feature is the <em>configuration view</em>.
-Here, it is possible to change the configuration parameters of installed components.
-All components containing processing elements automatically register in StreamPipes when they are started in the same network as the backend component.
-Once a container is registered it is represented in the configuration view.
-The green dot on the top left indicates that tha container is running properly.
-When there is a problem with a container the green dot changes to red and the user knows there is a problem.
-To configure the parameters the top right arrow of a configuration box must be clicked.
-Then the configuration menu pops up.
-Within there it is possible to change the parameters of a service.
-To make the changes persistent the &quot;Update&quot; button must be clicked.
-A user should keep in mind that sometimes it is necessary to restart a container when the parameters are changed.
-Sometimes it is also necessary to re-import the pipeline element description, either by uninstalling and re-installing them after the container restart or be reloading the description in the &quot;My elements&quot; view.</p>
-<div class="my-carousel">
-    <img src="/docs/img/features/configuration/01_configuration_overview.png" alt="Configuration Overview">
-    <img src="/docs/img/features/configuration/02_status.png" alt="Status of Processing Element Containers">
-    <img src="/docs/img/features/configuration/03_change_config.png" alt="Change Configuration">
-</div>
-<p>Congratulations! You've just finished your first tour of StreamPipes.
-Although there's still more to learn, we introduced most of the currently available features.
-On the next page, the different processing elements that come with the installation are explained.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.55.2-pre-asf/user-guide-installation"><span class="arrow-prev">← </span><span>Installation</span></a><a class="docs-next button" href="/docs/docs/0.55.2-pre-asf/user-guide-processing-elements"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#home">Home</a></li><li><a href="#pipeline-editor">Pipeline Ed [...]
-                document.addEventListener('keyup', function(e) {
-                  if (e.target !== document.body) {
-                    return;
-                  }
-                  // keyCode for '/' (slash)
-                  if (e.keyCode === 191) {
-                    const search = document.getElementById('search_input_react');
-                    search && search.focus();
-                  }
-                });
-              </script><script>
-              var search = docsearch({
-                
-                apiKey: '0fedc89dddf2810657708b178e56ef02',
-                indexName: 'streampipes',
-                inputSelector: '#search_input_react',
-                algoliaOptions: {}
-              });
-            </script></body></html>
\ No newline at end of file
diff --git a/docs/docs/0.61.0-pre-asf/dev-guide-archetype.html b/docs/docs/0.61.0-pre-asf/dev-guide-archetype.html
index 66cf418..047cbad 100644
--- a/docs/docs/0.61.0-pre-asf/dev-guide-archetype.html
+++ b/docs/docs/0.61.0-pre-asf/dev-guide-archetype.html
@@ -1,6 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Start Developing · Apache StreamPipes</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;In this tutorial we explain how you can use the Maven archetypes to develop your own StreamPipes processors and sinks.&lt;/p&gt;
-"/><meta name="docsearch:version" content="0.61.0-pre-asf"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Start Developing · Apache StreamPipes"/><meta property="og:type" content="website"/><meta property="og:url" content="https://streampipes.apache.org/docs/"/><meta property="og:description" content="&lt;p&gt;In this tutorial we explain how you can use the Maven archetypes to develop your own StreamPipes processors and sinks.&lt;/p&gt;
-"/><meta property="og:image" content="https://streampipes.apache.org/docs/img/favicon.png"/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://streampipes.apache.org/docs/img/docusaurus.png"/><link rel="shortcut icon" href="/docs/img/favicon.png"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.css"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/atom-one-dark.min.css"/><lin [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Start Developing · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="In this tutorial we explain how you can use the Maven archetypes to develop your own StreamPipes processors and sinks."/><meta name="docsearch:version" content="0.61.0-pre-asf" [...]
               window.dataLayer = window.dataLayer || [];
               function gtag(){dataLayer.push(arguments); }
               gtag('js', new Date());
@@ -11,7 +9,7 @@
             {"zIndex":100}
           )
         });
-        </script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions"><h3>0.61.0-pre-asf</h3></a><div class="navigationWrapper navigationSli [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.61.0-pre-asf</ [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -39,10 +37,16 @@
               createToggler('#navToggler', '#docsNav', 'docsSliderActive');
               createToggler('#tocToggler', 'body', 'tocActive');
 
-              const headings = document.querySelector('.toc-headings');
+              var headings = document.querySelector('.toc-headings');
               headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
                 }
               }, false);
 
@@ -61,7 +65,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle">Start Developing</h1></header><article><div><span><p>In this tutorial we explain how you can use the Maven archetypes to develop your own StreamPipes processors and sinks.
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">Start Developing</h1></header><article><div><span><p>In this tutorial we explain how you can use the Maven archetypes to develop your own StreamPipes processors and sinks.
 We use IntelliJ in this tutorial, but it works with any IDE of your choice.</p>
 <h2><a class="anchor" aria-hidden="true" id="prerequisites"></a><a href="#prerequisites" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
 <p>You need to have Maven installed, further you need an up and running StreamPipes installation on your development computer.
@@ -165,7 +169,7 @@ In case you opened the StreamPipes installation for the first time, it should ha
 Now you should see logging messages in your console and, once you've created a visualisation, you can also see the resulting events of your component in StreamPipes.</p>
 <p>Congratulations, you have just created your first processor!
 From here on you can start experimenting and implement your own algorithms.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.61.0-pre-asf/dev-guide-development-environment"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/docs/0.61.0-pre-asf/dev-guide-tutorial-sources"><span>dev-guide-tutorial-sources</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#prerequisites">Prerequisites</a></li> [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.61.0-pre-asf/dev-guide-development-environment.html"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/docs/0.61.0-pre-asf/dev-guide-tutorial-sources.html"><span>dev-guide-tutorial-sources</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#prerequisites">Prerequisite [...]
                 document.addEventListener('keyup', function(e) {
                   if (e.target !== document.body) {
                     return;
diff --git a/docs/docs/0.61.0-pre-asf/dev-guide-archetype/index.html b/docs/docs/0.61.0-pre-asf/dev-guide-archetype/index.html
deleted file mode 100644
index 66cf418..0000000
--- a/docs/docs/0.61.0-pre-asf/dev-guide-archetype/index.html
+++ /dev/null
@@ -1,187 +0,0 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Start Developing · Apache StreamPipes</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;In this tutorial we explain how you can use the Maven archetypes to develop your own StreamPipes processors and sinks.&lt;/p&gt;
-"/><meta name="docsearch:version" content="0.61.0-pre-asf"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Start Developing · Apache StreamPipes"/><meta property="og:type" content="website"/><meta property="og:url" content="https://streampipes.apache.org/docs/"/><meta property="og:description" content="&lt;p&gt;In this tutorial we explain how you can use the Maven archetypes to develop your own StreamPipes processors and sinks.&lt;/p&gt;
-"/><meta property="og:image" content="https://streampipes.apache.org/docs/img/favicon.png"/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://streampipes.apache.org/docs/img/docusaurus.png"/><link rel="shortcut icon" href="/docs/img/favicon.png"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.css"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/atom-one-dark.min.css"/><lin [...]
-              window.dataLayer = window.dataLayer || [];
-              function gtag(){dataLayer.push(arguments); }
-              gtag('js', new Date());
-              gtag('config', 'UA-154181944-1');
-            </script><link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons"/><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick.min.css"/><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick-theme.min.css"/><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto"/><link rel="stylesheet" href="/docs/css/admonition.css"/><link rel="stylesheet" href="/docs [...]
-        document.addEventListener('DOMContentLoaded', function() {
-          addBackToTop(
-            {"zIndex":100}
-          )
-        });
-        </script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions"><h3>0.61.0-pre-asf</h3></a><div class="navigationWrapper navigationSli [...]
-            var coll = document.getElementsByClassName('collapsible');
-            var checkActiveCategory = true;
-            for (var i = 0; i < coll.length; i++) {
-              var links = coll[i].nextElementSibling.getElementsByTagName('*');
-              if (checkActiveCategory){
-                for (var j = 0; j < links.length; j++) {
-                  if (links[j].classList.contains('navListItemActive')){
-                    coll[i].nextElementSibling.classList.toggle('hide');
-                    coll[i].childNodes[1].classList.toggle('rotate');
-                    checkActiveCategory = false;
-                    break;
-                  }
-                }
-              }
-
-              coll[i].addEventListener('click', function() {
-                var arrow = this.childNodes[1];
-                arrow.classList.toggle('rotate');
-                var content = this.nextElementSibling;
-                content.classList.toggle('hide');
-              });
-            }
-
-            document.addEventListener('DOMContentLoaded', function() {
-              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
-              createToggler('#tocToggler', 'body', 'tocActive');
-
-              const headings = document.querySelector('.toc-headings');
-              headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
-                }
-              }, false);
-
-              function createToggler(togglerSelector, targetSelector, className) {
-                var toggler = document.querySelector(togglerSelector);
-                var target = document.querySelector(targetSelector);
-
-                if (!toggler) {
-                  return;
-                }
-
-                toggler.onclick = function(event) {
-                  event.preventDefault();
-
-                  target.classList.toggle(className);
-                };
-              }
-            });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle">Start Developing</h1></header><article><div><span><p>In this tutorial we explain how you can use the Maven archetypes to develop your own StreamPipes processors and sinks.
-We use IntelliJ in this tutorial, but it works with any IDE of your choice.</p>
-<h2><a class="anchor" aria-hidden="true" id="prerequisites"></a><a href="#prerequisites" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
-<p>You need to have Maven installed, further you need an up and running StreamPipes installation on your development computer.
-To ease the configuration of environment variables, we use the IntelliJ <a href="https://plugins.jetbrains.com/plugin/7861-envfile">env Plugin</a>.
-Install this in IntelliJ. The development also works without the plugin, then you have to set the environment variables manually instead of using the env configuration file.</p>
-<h2><a class="anchor" aria-hidden="true" id="create-project"></a><a href="#create-project" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
-<p>To create a new project, we provide multiple Maven Archteypes.
-Currently, we have archetypes for the JVM and Flink wrappers, each for processors and sinks.
-The commands required to create a new pipeline element project can be found below. Make sure that you select a version compatible with your StreamPipes installation.
-Copy the command into your terminal to create a new project.
-The project will be created in the current folder.
-First, the <code>groupId</code> of the resulting Maven artifact must be set.
-We use <code>groupId</code>: <code>org.example</code> and <code>artifactId</code>: <code>ExampleProcessor</code>.
-You can keep the default values for the other settings, confirm them by hitting enter.
-Now, a new folder with the name <code>ExampleProcessor</code> is generated.</p>
-<pre><code class="hljs css language-bash">mvn archetype:generate                                           \
-  -DarchetypeGroupId=org.streampipes                             \
-  -DarchetypeArtifactId=streampipes-archetype-pe-processors-jvm  \
-  -DarchetypeVersion=0.62.0
-</code></pre>
-<p><details class="info">
-<summary>Select: [Processors / Sinks] [JVM / Flink]</summary></p>
-<h2><a class="anchor" aria-hidden="true" id="processors-jvm"></a><a href="#processors-jvm" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
-<pre><code class="hljs css language-bash">mvn archetype:generate                                           \
-  -DarchetypeGroupId=org.streampipes                             \
-  -DarchetypeArtifactId=streampipes-archetype-pe-processors-jvm  \
-  -DarchetypeVersion=0.62.0
-</code></pre>
-<h2><a class="anchor" aria-hidden="true" id="processors-flink"></a><a href="#processors-flink" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
-<pre><code class="hljs css language-bash">mvn archetype:generate                                           \
-  -DarchetypeGroupId=org.streampipes                             \
-  -DarchetypeArtifactId=streampipes-archetype-pe-processors-flink  \
-  -DarchetypeVersion=0.62.0
-</code></pre>
-<h2><a class="anchor" aria-hidden="true" id="sinks-jvm"></a><a href="#sinks-jvm" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
-<pre><code class="hljs css language-bash">mvn archetype:generate                                           \
-  -DarchetypeGroupId=org.streampipes                             \
-  -DarchetypeArtifactId=streampipes-archetype-pe-sinks-jvm  \
-  -DarchetypeVersion=0.62.0
-</code></pre>
-<h2><a class="anchor" aria-hidden="true" id="sinks-flink"></a><a href="#sinks-flink" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
-<pre><code class="hljs css language-bash">mvn archetype:generate                                           \
-  -DarchetypeGroupId=org.streampipes                             \
-  -DarchetypeArtifactId=streampipes-archetype-pe-sinks-flink  \
-  -DarchetypeVersion=0.62.0
-</code></pre>
-<p></details></p>
-<h2><a class="anchor" aria-hidden="true" id="edit-processor"></a><a href="#edit-processor" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
-<p>Open the project in your IDE.
-If everything worked, the structure should look similar to the following image.
-The <em>config</em> package contains all the configuration parameters of your processors / sinks.
-In the <em>main</em> package, it is defined which processors / sinks you want to activate and the <em>pe.processor.example</em> package contains three classes with the application logic.
-For details, have a look at the other parts of the Developer Guide, where these classes are explained in more depth.</p>
-<p><img src="/docs/img/archetype/project_structure.png" width="30%" alt="Project Structure"></p>
-<p>Open the class <em>Example</em> and edit the <code>onEvent</code> method to print the incoming event, log it to the console and send it to the next component without changing it.</p>
-<pre><code class="hljs css language-java"><span class="hljs-meta">@Override</span>
-<span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">onEvent</span><span class="hljs-params">(Map&lt;String, Object&gt; in, String sourceInfo, SpOutputCollector out)</span> </span>{
-    <span class="hljs-comment">// Print the incoming event on the console</span>
-    System.out.println(in);
-
-    <span class="hljs-comment">// Hand the incoming event to the output collector without changing it.</span>
-    out.onEvent(in);
-}
-</code></pre>
-<h2><a class="anchor" aria-hidden="true" id="start-processor"></a><a href="#start-processor" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5  [...]
-<p>Before the processor can be started, you need to edit the <em>env</em> file in the <em>development</em> folder.
-Replace all local hosts in this file with the IP address or DNS name of your computer.
-This is relevant to make the mapping between the services running in Docker and your component running in the local IDE.
-After all updates are updated, this file is used by the envfile plugin to provide configuration parameters to the pipeline element.
-Alternatively, environment variables can also be set on your host or IDE.
-Now start the project by clicking on <strong>(Run -&gt; Edit Configuration)</strong>.
-Add a new configuration in the Configuration menu by clicking on the + sign and select <strong>Application</strong>.
-Name the configuration <em>ExampleProcessor</em> and select the <em>Init</em> class as the 'Main class'.
-Then set <em>ExampleProcessor</em> in 'Use classpath of module'.</p>
-<p>As the last step, switch to the tab <em>EnvFile</em> and load the env file.
-Click on 'Enable EnvFile' to activate it and add the just edited env file by clicking on the + sign.
-Save all the changes by clicking <em>Apply</em>.
-Now you can start the processor.</p>
-<div class="my-carousel">
-    <img src="/docs/img/archetype/run_configuration.png" alt="Configuration View">
-    <img src="/docs/img/archetype/run_env_configuration.png" alt="Environment Configuration View">
-</div>
-<p>To check if the service is up and running, open the browser on <em>'localhost:6666'</em>. The machine-readable escription of the processor should be visible as shown below.</p>
-<p><img src="/docs/img/archetype/endpoint.png" width="90%" alt="Project Structure"></p>
-<div class="admonition error">
-<div class="admonition-title">Common Problems</div>
-<p>
-If the service description is not shown on 'localhost:6666', you might have to change the port address.
-This needs to be done in the configuration of your service, further explained in the configurations part of the developer guide.
-<p>If the service does not show up in the StreamPipes installation menu, click on 'MANAGE ENDPOINTS' and add 'http://<span></span>YOUR_IP_OR_DNS_NAME:6666'.
-Use the IP or DNS name you provided in the env file.
-After adding the endpoint, a new processor with the name <em>Example</em> should show up.</p>
-</p>
-</div>
-<p>Now you can go to StreamPipes.
-Your new processor <em>'Example'</em> should now show up in the installation menu.
-Install it, then switch to the pipeline view and create a simple pipeline that makes use of your newly created processor.
-In case you opened the StreamPipes installation for the first time, it should have been automatically installed during the setup process.</p>
-<p><img src="/docs/img/archetype/example_pipeline.png" width="80%" alt="Project Structure"></p>
-<p>Start this pipeline.
-Now you should see logging messages in your console and, once you've created a visualisation, you can also see the resulting events of your component in StreamPipes.</p>
-<p>Congratulations, you have just created your first processor!
-From here on you can start experimenting and implement your own algorithms.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.61.0-pre-asf/dev-guide-development-environment"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/docs/0.61.0-pre-asf/dev-guide-tutorial-sources"><span>dev-guide-tutorial-sources</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#prerequisites">Prerequisites</a></li> [...]
-                document.addEventListener('keyup', function(e) {
-                  if (e.target !== document.body) {
-                    return;
-                  }
-                  // keyCode for '/' (slash)
-                  if (e.keyCode === 191) {
-                    const search = document.getElementById('search_input_react');
-                    search && search.focus();
-                  }
-                });
-              </script><script>
-              var search = docsearch({
-                
-                apiKey: '0fedc89dddf2810657708b178e56ef02',
-                indexName: 'streampipes',
-                inputSelector: '#search_input_react',
-                algoliaOptions: {}
-              });
-            </script></body></html>
\ No newline at end of file
diff --git a/docs/docs/0.61.0-pre-asf/dev-guide-architecture.html b/docs/docs/0.61.0-pre-asf/dev-guide-architecture.html
index 65a6e45..5e11755 100644
--- a/docs/docs/0.61.0-pre-asf/dev-guide-architecture.html
+++ b/docs/docs/0.61.0-pre-asf/dev-guide-architecture.html
@@ -1,6 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Architecture · Apache StreamPipes</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;The following picture illustrates the high-level architecture of StreamPipes:&lt;/p&gt;
-"/><meta name="docsearch:version" content="0.61.0-pre-asf"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Architecture · Apache StreamPipes"/><meta property="og:type" content="website"/><meta property="og:url" content="https://streampipes.apache.org/docs/"/><meta property="og:description" content="&lt;p&gt;The following picture illustrates the high-level architecture of StreamPipes:&lt;/p&gt;
-"/><meta property="og:image" content="https://streampipes.apache.org/docs/img/favicon.png"/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://streampipes.apache.org/docs/img/docusaurus.png"/><link rel="shortcut icon" href="/docs/img/favicon.png"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.css"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/atom-one-dark.min.css"/><lin [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Architecture · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="The following picture illustrates the high-level architecture of StreamPipes:"/><meta name="docsearch:version" content="0.61.0-pre-asf"/><meta name="docsearch:language" content="en [...]
               window.dataLayer = window.dataLayer || [];
               function gtag(){dataLayer.push(arguments); }
               gtag('js', new Date());
@@ -11,7 +9,7 @@
             {"zIndex":100}
           )
         });
-        </script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions"><h3>0.61.0-pre-asf</h3></a><div class="navigationWrapper navigationSli [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.61.0-pre-asf</ [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -39,10 +37,16 @@
               createToggler('#navToggler', '#docsNav', 'docsSliderActive');
               createToggler('#tocToggler', 'body', 'tocActive');
 
-              const headings = document.querySelector('.toc-headings');
+              var headings = document.querySelector('.toc-headings');
               headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
                 }
               }, false);
 
@@ -61,7 +65,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle">Architecture</h1></header><article><div><span><p>The following picture illustrates the high-level architecture of StreamPipes:</p>
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">Architecture</h1></header><article><div><span><p>The following picture illustrates the high-level architecture of StreamPipes:</p>
 <p><img src="/docs/img/architecture/high-level-architecture.png" alt="High Level Architecture of StreamPipes"></p>
 <p>Users mainly interact (besides other UI components) with the <em>Pipeline Editor</em> to create stream processing pipelines based on data streams, data processors and data sinks.
 These reusable pipeline elements are provided by self-contained <em>pipeline element containers</em>, each of them having a semantic description that specifies their characteristics (e.g., input, output and required user input for data processors).
@@ -100,7 +104,7 @@ In addition, required configuration parameters users can define during the pipel
 <p>Once new pipeline elements are imported into StreamPipes, we store all information provided by the description layer in a central repository and use this information to guide useres through the pipeline definition process.</p>
 <p>Don't worry - you will never be required to model RDF by yourself.
 Our SDK provides convenience methods that help creating the description automatically.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.61.0-pre-asf/dev-guide-migration"><span class="arrow-prev">← </span><span>Migration Guide</span></a><a class="docs-next button" href="/docs/docs/0.61.0-pre-asf/dev-guide-development-environment"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#semantic-description">Semantic description</a></li></ul></n [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.61.0-pre-asf/dev-guide-migration.html"><span class="arrow-prev">← </span><span>Migration Guide</span></a><a class="docs-next button" href="/docs/docs/0.61.0-pre-asf/dev-guide-development-environment.html"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#semantic-description">Semantic description</a></l [...]
                 document.addEventListener('keyup', function(e) {
                   if (e.target !== document.body) {
                     return;
diff --git a/docs/docs/0.61.0-pre-asf/dev-guide-architecture/index.html b/docs/docs/0.61.0-pre-asf/dev-guide-architecture/index.html
deleted file mode 100644
index 65a6e45..0000000
--- a/docs/docs/0.61.0-pre-asf/dev-guide-architecture/index.html
+++ /dev/null
@@ -1,122 +0,0 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Architecture · Apache StreamPipes</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;The following picture illustrates the high-level architecture of StreamPipes:&lt;/p&gt;
-"/><meta name="docsearch:version" content="0.61.0-pre-asf"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Architecture · Apache StreamPipes"/><meta property="og:type" content="website"/><meta property="og:url" content="https://streampipes.apache.org/docs/"/><meta property="og:description" content="&lt;p&gt;The following picture illustrates the high-level architecture of StreamPipes:&lt;/p&gt;
-"/><meta property="og:image" content="https://streampipes.apache.org/docs/img/favicon.png"/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://streampipes.apache.org/docs/img/docusaurus.png"/><link rel="shortcut icon" href="/docs/img/favicon.png"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.css"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/atom-one-dark.min.css"/><lin [...]
-              window.dataLayer = window.dataLayer || [];
-              function gtag(){dataLayer.push(arguments); }
-              gtag('js', new Date());
-              gtag('config', 'UA-154181944-1');
-            </script><link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons"/><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick.min.css"/><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick-theme.min.css"/><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto"/><link rel="stylesheet" href="/docs/css/admonition.css"/><link rel="stylesheet" href="/docs [...]
-        document.addEventListener('DOMContentLoaded', function() {
-          addBackToTop(
-            {"zIndex":100}
-          )
-        });
-        </script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions"><h3>0.61.0-pre-asf</h3></a><div class="navigationWrapper navigationSli [...]
-            var coll = document.getElementsByClassName('collapsible');
-            var checkActiveCategory = true;
-            for (var i = 0; i < coll.length; i++) {
-              var links = coll[i].nextElementSibling.getElementsByTagName('*');
-              if (checkActiveCategory){
-                for (var j = 0; j < links.length; j++) {
-                  if (links[j].classList.contains('navListItemActive')){
-                    coll[i].nextElementSibling.classList.toggle('hide');
-                    coll[i].childNodes[1].classList.toggle('rotate');
-                    checkActiveCategory = false;
-                    break;
-                  }
-                }
-              }
-
-              coll[i].addEventListener('click', function() {
-                var arrow = this.childNodes[1];
-                arrow.classList.toggle('rotate');
-                var content = this.nextElementSibling;
-                content.classList.toggle('hide');
-              });
-            }
-
-            document.addEventListener('DOMContentLoaded', function() {
-              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
-              createToggler('#tocToggler', 'body', 'tocActive');
-
-              const headings = document.querySelector('.toc-headings');
-              headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
-                }
-              }, false);
-
-              function createToggler(togglerSelector, targetSelector, className) {
-                var toggler = document.querySelector(togglerSelector);
-                var target = document.querySelector(targetSelector);
-
-                if (!toggler) {
-                  return;
-                }
-
-                toggler.onclick = function(event) {
-                  event.preventDefault();
-
-                  target.classList.toggle(className);
-                };
-              }
-            });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle">Architecture</h1></header><article><div><span><p>The following picture illustrates the high-level architecture of StreamPipes:</p>
-<p><img src="/docs/img/architecture/high-level-architecture.png" alt="High Level Architecture of StreamPipes"></p>
-<p>Users mainly interact (besides other UI components) with the <em>Pipeline Editor</em> to create stream processing pipelines based on data streams, data processors and data sinks.
-These reusable pipeline elements are provided by self-contained <em>pipeline element containers</em>, each of them having a semantic description that specifies their characteristics (e.g., input, output and required user input for data processors).
-Each pipeline element container has a REST endpoint that provides these characteristics as a JSON-LD document.</p>
-<p>Pipeline element containers are built using one of several provided <em>wrappers</em>.
-Wrappers abstract from the underlying runtime stream processing framework.
-Currently, the StreamPipes framework provides wrappers for Apache Flink, Esper and algorithms running directly on the JVM.</p>
-<p>The <em>pipeline manager</em> manages the definition and execution of pipelines.
-When creating pipelines, the manager continuously matches the pipeline against its semantic description and provides user guidance in form of recommendations.
-Once a pipeline is started, the pipeline manager invokes the corresponding pipeline element containers.
-The container prepares the actual execution logic and submits the program to the underlying execution engine, e.g., the program is deployed in the Apache Flink cluster.</p>
-<p>Pipeline elements exchange data using one or more message brokers and protocols (e.g., Kafka or MQTT).
-StreamPipes does not rely on a specific broker or message format, but negotiates suitable brokers based on the capabilities of connected pipeline elements.</p>
-<p>Thus, StreamPipes provides a higher-level abstraction of existing stream processing technology by leveraging domain experts to create streaming analytics pipelines in a self-service manner.</p>
-<h2><a class="anchor" aria-hidden="true" id="semantic-description"></a><a href="#semantic-description" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1 [...]
-<p>Pipeline elements in StreamPipes are meant to be reusable:</p>
-<ul>
-<li>Data processors and data sink are generic (or domain-specific) elements that express their requirements and are able to operate on any stream that satisfies these requirements.</li>
-<li>Data processors and data sinks can be manually configured by offering possible configuration parameters which users can individually define when creating pipelines.</li>
-<li>Data streams can be connected to any data processor or data sink that matches the capabilities of the stream.</li>
-</ul>
-<p>When users create pipelines by connecting a data stream with a data processor (or further processors), the pipeline manager <em>matches</em> the input stream of a data processor against its requirements.
-This matching is performed based on the _semantic description of each element.
-The semantic description (technically an RDF graph serialized as JSON-LD) can be best understood by seeing it as an envelope around a pipeline element.
-It only provides metadata information, while we don't rely on any RDF at runtime for exchanging events between pipeline elements.
-While RDF-based metadata ensures good understanding of stream capabilities, lightweight event formats at runtime (such as JSON or Thrift) ensure fast processing of events.</p>
-<p>Let's look at an example stream that produces a continuous stream of vehicle positions as illustrated below:</p>
-<p><img src="/docs/img/architecture/semantic-description-stream.png" alt="Semantic description of data streams"></p>
-<p>While the runtime layer produces plain JSON by submitting actual values of the position and the vehicle's plate number, the description layer describes various characteristics of the stream:
-For instance, it defines the event schema (including, besides the data type and the runtime name of each property also a more fine-grained meaning of the property), quality aspects (e.g., the measurement unit of a property or the frequency) and the grounding (e.g., the format used at runtime and the communication protocol used for transmitting events).</p>
-<p>The same accounts for data processors and data sinks:</p>
-<p><img src="/docs/img/architecture/semantic-description-processor.png" alt="Semantic description of data processor"></p>
-<p>Data processors (and, with some differences, data sinks) are annotated by providing metadata information on their required input and output.
-For instance, we can define minimum schema requirements (such as geospatial coordinates that need to be provided by any stream that is connected to a processor), but also required (minimum or maximum) quality levels and supported transport protocols and formats.
-In addition, required configuration parameters users can define during the pipeline definition process are provided by the semantic description.</p>
-<p>Once new pipeline elements are imported into StreamPipes, we store all information provided by the description layer in a central repository and use this information to guide useres through the pipeline definition process.</p>
-<p>Don't worry - you will never be required to model RDF by yourself.
-Our SDK provides convenience methods that help creating the description automatically.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.61.0-pre-asf/dev-guide-migration"><span class="arrow-prev">← </span><span>Migration Guide</span></a><a class="docs-next button" href="/docs/docs/0.61.0-pre-asf/dev-guide-development-environment"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#semantic-description">Semantic description</a></li></ul></n [...]
-                document.addEventListener('keyup', function(e) {
-                  if (e.target !== document.body) {
-                    return;
-                  }
-                  // keyCode for '/' (slash)
-                  if (e.keyCode === 191) {
-                    const search = document.getElementById('search_input_react');
-                    search && search.focus();
-                  }
-                });
-              </script><script>
-              var search = docsearch({
-                
-                apiKey: '0fedc89dddf2810657708b178e56ef02',
-                indexName: 'streampipes',
-                inputSelector: '#search_input_react',
-                algoliaOptions: {}
-              });
-            </script></body></html>
\ No newline at end of file
diff --git a/docs/docs/0.61.0-pre-asf/dev-guide-configuration.html b/docs/docs/0.61.0-pre-asf/dev-guide-configuration.html
index d8cab85..60efeab 100644
--- a/docs/docs/0.61.0-pre-asf/dev-guide-configuration.html
+++ b/docs/docs/0.61.0-pre-asf/dev-guide-configuration.html
@@ -1,6 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Configuration · Apache StreamPipes</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;On this page we explain how the StreamPipes configuration works.&lt;/p&gt;
-"/><meta name="docsearch:version" content="0.61.0-pre-asf"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Configuration · Apache StreamPipes"/><meta property="og:type" content="website"/><meta property="og:url" content="https://streampipes.apache.org/docs/"/><meta property="og:description" content="&lt;p&gt;On this page we explain how the StreamPipes configuration works.&lt;/p&gt;
-"/><meta property="og:image" content="https://streampipes.apache.org/docs/img/favicon.png"/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://streampipes.apache.org/docs/img/docusaurus.png"/><link rel="shortcut icon" href="/docs/img/favicon.png"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.css"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/atom-one-dark.min.css"/><lin [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Configuration · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="On this page we explain how the StreamPipes configuration works."/><meta name="docsearch:version" content="0.61.0-pre-asf"/><meta name="docsearch:language" content="en"/><meta pro [...]
               window.dataLayer = window.dataLayer || [];
               function gtag(){dataLayer.push(arguments); }
               gtag('js', new Date());
@@ -11,7 +9,7 @@
             {"zIndex":100}
           )
         });
-        </script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions"><h3>0.61.0-pre-asf</h3></a><div class="navigationWrapper navigationSli [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.61.0-pre-asf</ [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -39,10 +37,16 @@
               createToggler('#navToggler', '#docsNav', 'docsSliderActive');
               createToggler('#tocToggler', 'body', 'tocActive');
 
-              const headings = document.querySelector('.toc-headings');
+              var headings = document.querySelector('.toc-headings');
               headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
                 }
               }, false);
 
@@ -61,7 +65,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle">Configuration</h1></header><article><div><span><p>On this page we explain how the StreamPipes configuration works.
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">Configuration</h1></header><article><div><span><p>On this page we explain how the StreamPipes configuration works.
 StreamPipes allows the individual services (pipeline element containers and third-party services) to store configuration parameters in a distributed key-value store.
 This has the advantage that individual services do not need to store any configurations on the local file system, enabling us to run containers anywhere.
 As a key-value store we use <a href="https://www.consul.io/">Consul</a>, which is an essential service for all our services.</p>
@@ -105,7 +109,7 @@ Those changes take effect immediately without the need of a container restart.</
 <p>Be cautious, when the configuration is used in the semantic description of a processing element which is already installed in StreamPipes, you have to reload this element in StreamPipes (my elements -> reload).
    In addition, changes might affect already running pipelines.</p>
 </div>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.61.0-pre-asf/dev-guide-ssl"><span class="arrow-prev">← </span><span>dev-guide-ssl</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#edit-configurations">Edit Configurations</a></li><li><a href="#configuration-for-developers">Configuration for Developers</a></li><li><a href="#default-values">Default Values</a></li></ul></nav></div><div><footer clas [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.61.0-pre-asf/dev-guide-ssl.html"><span class="arrow-prev">← </span><span>dev-guide-ssl</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#edit-configurations">Edit Configurations</a></li><li><a href="#configuration-for-developers">Configuration for Developers</a></li><li><a href="#default-values">Default Values</a></li></ul></nav></div><div><footer [...]
                 document.addEventListener('keyup', function(e) {
                   if (e.target !== document.body) {
                     return;
diff --git a/docs/docs/0.61.0-pre-asf/dev-guide-configuration/index.html b/docs/docs/0.61.0-pre-asf/dev-guide-configuration/index.html
deleted file mode 100644
index d8cab85..0000000
--- a/docs/docs/0.61.0-pre-asf/dev-guide-configuration/index.html
+++ /dev/null
@@ -1,127 +0,0 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Configuration · Apache StreamPipes</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;On this page we explain how the StreamPipes configuration works.&lt;/p&gt;
-"/><meta name="docsearch:version" content="0.61.0-pre-asf"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Configuration · Apache StreamPipes"/><meta property="og:type" content="website"/><meta property="og:url" content="https://streampipes.apache.org/docs/"/><meta property="og:description" content="&lt;p&gt;On this page we explain how the StreamPipes configuration works.&lt;/p&gt;
-"/><meta property="og:image" content="https://streampipes.apache.org/docs/img/favicon.png"/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://streampipes.apache.org/docs/img/docusaurus.png"/><link rel="shortcut icon" href="/docs/img/favicon.png"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.css"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/atom-one-dark.min.css"/><lin [...]
-              window.dataLayer = window.dataLayer || [];
-              function gtag(){dataLayer.push(arguments); }
-              gtag('js', new Date());
-              gtag('config', 'UA-154181944-1');
-            </script><link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons"/><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick.min.css"/><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick-theme.min.css"/><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto"/><link rel="stylesheet" href="/docs/css/admonition.css"/><link rel="stylesheet" href="/docs [...]
-        document.addEventListener('DOMContentLoaded', function() {
-          addBackToTop(
-            {"zIndex":100}
-          )
-        });
-        </script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions"><h3>0.61.0-pre-asf</h3></a><div class="navigationWrapper navigationSli [...]
-            var coll = document.getElementsByClassName('collapsible');
-            var checkActiveCategory = true;
-            for (var i = 0; i < coll.length; i++) {
-              var links = coll[i].nextElementSibling.getElementsByTagName('*');
-              if (checkActiveCategory){
-                for (var j = 0; j < links.length; j++) {
-                  if (links[j].classList.contains('navListItemActive')){
-                    coll[i].nextElementSibling.classList.toggle('hide');
-                    coll[i].childNodes[1].classList.toggle('rotate');
-                    checkActiveCategory = false;
-                    break;
-                  }
-                }
-              }
-
-              coll[i].addEventListener('click', function() {
-                var arrow = this.childNodes[1];
-                arrow.classList.toggle('rotate');
-                var content = this.nextElementSibling;
-                content.classList.toggle('hide');
-              });
-            }
-
-            document.addEventListener('DOMContentLoaded', function() {
-              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
-              createToggler('#tocToggler', 'body', 'tocActive');
-
-              const headings = document.querySelector('.toc-headings');
-              headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
-                }
-              }, false);
-
-              function createToggler(togglerSelector, targetSelector, className) {
-                var toggler = document.querySelector(togglerSelector);
-                var target = document.querySelector(targetSelector);
-
-                if (!toggler) {
-                  return;
-                }
-
-                toggler.onclick = function(event) {
-                  event.preventDefault();
-
-                  target.classList.toggle(className);
-                };
-              }
-            });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle">Configuration</h1></header><article><div><span><p>On this page we explain how the StreamPipes configuration works.
-StreamPipes allows the individual services (pipeline element containers and third-party services) to store configuration parameters in a distributed key-value store.
-This has the advantage that individual services do not need to store any configurations on the local file system, enabling us to run containers anywhere.
-As a key-value store we use <a href="https://www.consul.io/">Consul</a>, which is an essential service for all our services.</p>
-<p><img src="/docs/img/configuration/consul.png" width="50%" alt="Semantic description of data processor"></p>
-<h2><a class="anchor" aria-hidden="true" id="edit-configurations"></a><a href="#edit-configurations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.2 [...]
-<p>All services in StreamPipes can have configuration parameters.
-You can either change them in the consul user interface (which is by default running on port 8500) or directly in the StreamPipes Configurations Page.
-Once a new  pipeline element container is started, it is registered in Consul and the parameters can be edited in the configuration page, as shown below.
-To store changes in Consul, the update button must be clicked.</p>
-<div class="my-carousel">
-    <img src="/docs/img/configuration/configuration_1.png" alt="Configuration View">
-    <img src="/docs/img/configuration/configuration_2.png" alt="Open Configuration View">
-</div>
-<h2><a class="anchor" aria-hidden="true" id="configuration-for-developers"></a><a href="#configuration-for-developers" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 [...]
-<p>We provide a Configurations API for the use of configuration parameters in your services.
-Each processing element project has a “config” package <a href="https://github.com/streampipes/streampipes-pipeline-elements/tree/dev/streampipes-sinks-internal-jvm/src/main/java/org/streampipes/sinks/internal/jvm/config">[Example]</a>.
-This package usually contains two classes.
-One containing unique keys for the configuration values and one containing the getter and setter methods to access these values.
-For the naming of configuration keys, we recommend to use “SP” as a prefix.
-As we explain later, it is possible to set default configurations as environment variables, this prefix makes them unique on your server.
-A configuration entry needs a unique config key. For this key, a value can be specified containing the configuration, like for example the port number of the service.
-For each configuration, a description explaining the parameter can be provided, further the data type must be specified and whether it is a password or not.
-Below, the schema of a configuration item is shown on the left and an example of a port configuration on the right.</p>
-<p><img src="/docs/img/configuration/config_key.png" width="80%" alt="Semantic description of data processor"></p>
-<p>As a developer, you can add as many new configurations to services as you wish, but there are some that are required for all processing element containers.
-Those are <strong>the host</strong>, <strong>the port</strong>, and <strong>the name</strong> of the service.</p>
-<h2><a class="anchor" aria-hidden="true" id="default-values"></a><a href="#default-values" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
-<p>You can provide default values for the configurations, which are used when a configuration is read for the first time.
-The first option is to register a configuration parameter in the Config class.
-This is a fallback value, which is used if nothing else is defined.
-Since this value is static, we offer a second option.
-It is possible to provide a default value by setting an environment variable.
-In this case, the convention is that the key of a configuration parameter must be used as the environment variable.
-Now, this value is used instead of the value defined in the Config class.
-During development, the configuration values often need to be changed for debugging purposes, therefore we provide an .env file in all processing element projects and archetypes.
-This file can be used by your IDE to set the environment variables. (e.g., <a href="https://plugins.jetbrains.com/plugin/7861-envfile">Intellij Plugin</a>)
-When you need to change the variable at runtime, you can do this in the StreamPipes configurations as explained before.
-Those changes take effect immediately without the need of a container restart.</p>
-<div class="admonition warning">
-<div class="admonition-title">Installed pipeline elements</div>
-<p>Be cautious, when the configuration is used in the semantic description of a processing element which is already installed in StreamPipes, you have to reload this element in StreamPipes (my elements -> reload).
-   In addition, changes might affect already running pipelines.</p>
-</div>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.61.0-pre-asf/dev-guide-ssl"><span class="arrow-prev">← </span><span>dev-guide-ssl</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#edit-configurations">Edit Configurations</a></li><li><a href="#configuration-for-developers">Configuration for Developers</a></li><li><a href="#default-values">Default Values</a></li></ul></nav></div><div><footer clas [...]
-                document.addEventListener('keyup', function(e) {
-                  if (e.target !== document.body) {
-                    return;
-                  }
-                  // keyCode for '/' (slash)
-                  if (e.keyCode === 191) {
-                    const search = document.getElementById('search_input_react');
-                    search && search.focus();
-                  }
-                });
-              </script><script>
-              var search = docsearch({
-                
-                apiKey: '0fedc89dddf2810657708b178e56ef02',
-                indexName: 'streampipes',
-                inputSelector: '#search_input_react',
-                algoliaOptions: {}
-              });
-            </script></body></html>
\ No newline at end of file
diff --git a/docs/docs/0.61.0-pre-asf/dev-guide-development-environment.html b/docs/docs/0.61.0-pre-asf/dev-guide-development-environment.html
index d41e5ef..d41ef94 100644
--- a/docs/docs/0.61.0-pre-asf/dev-guide-development-environment.html
+++ b/docs/docs/0.61.0-pre-asf/dev-guide-development-environment.html
@@ -1,6 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Development Environment · Apache StreamPipes</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;In this section, we describe our recommended minimum setup for locally setting up a development instance of StreamPipes needed to develop, run and test new pipeline elements.&lt;/p&gt;
-"/><meta name="docsearch:version" content="0.61.0-pre-asf"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Development Environment · Apache StreamPipes"/><meta property="og:type" content="website"/><meta property="og:url" content="https://streampipes.apache.org/docs/"/><meta property="og:description" content="&lt;p&gt;In this section, we describe our recommended minimum setup for locally setting up a development instance of StreamPipes needed to develop, [...]
-"/><meta property="og:image" content="https://streampipes.apache.org/docs/img/favicon.png"/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://streampipes.apache.org/docs/img/docusaurus.png"/><link rel="shortcut icon" href="/docs/img/favicon.png"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.css"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/atom-one-dark.min.css"/><lin [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Development Environment · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="In this section, we describe our recommended minimum setup for locally setting up a development instance of StreamPipes needed to develop, run and test new pipeline elem [...]
               window.dataLayer = window.dataLayer || [];
               function gtag(){dataLayer.push(arguments); }
               gtag('js', new Date());
@@ -11,7 +9,7 @@
             {"zIndex":100}
           )
         });
-        </script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions"><h3>0.61.0-pre-asf</h3></a><div class="navigationWrapper navigationSli [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.61.0-pre-asf</ [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -39,10 +37,16 @@
               createToggler('#navToggler', '#docsNav', 'docsSliderActive');
               createToggler('#tocToggler', 'body', 'tocActive');
 
-              const headings = document.querySelector('.toc-headings');
+              var headings = document.querySelector('.toc-headings');
               headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
                 }
               }, false);
 
@@ -61,8 +65,8 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle">Development Environment</h1></header><article><div><span><p>In this section, we describe our recommended minimum setup for locally setting up a development instance of StreamPipes needed to develop, run and test new pipeline elements.</p>
-<h2><a class="anchor" aria-hidden="true" id="ide-required-dev-tools"></a><a href="#ide-required-dev-tools" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0 [...]
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">Development Environment</h1></header><article><div><span><p>In this section, we describe our recommended minimum setup for locally setting up a development instance of StreamPipes needed to develop, run and test new pipeline elements.</p>
+<h2><a class="anchor" aria-hidden="true" id="ide--required-dev-tools"></a><a href="#ide--required-dev-tools" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 [...]
 <p>StreamPipes does not have specific requirements on the IDE - so feel free to choose the IDE of your choice.
 The only requirements in terms of development tools are that you have Java 8 and Maven installed.</p>
 <h2><a class="anchor" aria-hidden="true" id="docker-based-local-streampipes-instance"></a><a href="#docker-based-local-streampipes-instance" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2  [...]
@@ -255,7 +259,7 @@ This sample project can be used to define new data processors and data sinks for
 <li><code>streampipes-wrapper-standalone</code> should be used in case you plan to connect a new data processor or data sink that does not use an external processing engine. Events are directly processed in a single-host fashion.</li>
 </ul>
 <p>Finally, this dependency will provide abstract classes to define data sources and streams.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.61.0-pre-asf/dev-guide-architecture"><span class="arrow-prev">← </span><span>dev-guide-architecture</span></a><a class="docs-next button" href="/docs/docs/0.61.0-pre-asf/dev-guide-archetype"><span>Start Developing</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#ide-required-dev-tools">IDE &amp; required dev tool [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.61.0-pre-asf/dev-guide-architecture.html"><span class="arrow-prev">← </span><span>dev-guide-architecture</span></a><a class="docs-next button" href="/docs/docs/0.61.0-pre-asf/dev-guide-archetype.html"><span>Start Developing</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#ide--required-dev-tools">IDE &amp; requir [...]
                 document.addEventListener('keyup', function(e) {
                   if (e.target !== document.body) {
                     return;
diff --git a/docs/docs/0.61.0-pre-asf/dev-guide-development-environment/index.html b/docs/docs/0.61.0-pre-asf/dev-guide-development-environment/index.html
deleted file mode 100644
index d41e5ef..0000000
--- a/docs/docs/0.61.0-pre-asf/dev-guide-development-environment/index.html
+++ /dev/null
@@ -1,277 +0,0 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Development Environment · Apache StreamPipes</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;In this section, we describe our recommended minimum setup for locally setting up a development instance of StreamPipes needed to develop, run and test new pipeline elements.&lt;/p&gt;
-"/><meta name="docsearch:version" content="0.61.0-pre-asf"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Development Environment · Apache StreamPipes"/><meta property="og:type" content="website"/><meta property="og:url" content="https://streampipes.apache.org/docs/"/><meta property="og:description" content="&lt;p&gt;In this section, we describe our recommended minimum setup for locally setting up a development instance of StreamPipes needed to develop, [...]
-"/><meta property="og:image" content="https://streampipes.apache.org/docs/img/favicon.png"/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://streampipes.apache.org/docs/img/docusaurus.png"/><link rel="shortcut icon" href="/docs/img/favicon.png"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.css"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/atom-one-dark.min.css"/><lin [...]
-              window.dataLayer = window.dataLayer || [];
-              function gtag(){dataLayer.push(arguments); }
-              gtag('js', new Date());
-              gtag('config', 'UA-154181944-1');
-            </script><link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons"/><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick.min.css"/><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick-theme.min.css"/><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto"/><link rel="stylesheet" href="/docs/css/admonition.css"/><link rel="stylesheet" href="/docs [...]
-        document.addEventListener('DOMContentLoaded', function() {
-          addBackToTop(
-            {"zIndex":100}
-          )
-        });
-        </script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions"><h3>0.61.0-pre-asf</h3></a><div class="navigationWrapper navigationSli [...]
-            var coll = document.getElementsByClassName('collapsible');
-            var checkActiveCategory = true;
-            for (var i = 0; i < coll.length; i++) {
-              var links = coll[i].nextElementSibling.getElementsByTagName('*');
-              if (checkActiveCategory){
-                for (var j = 0; j < links.length; j++) {
-                  if (links[j].classList.contains('navListItemActive')){
-                    coll[i].nextElementSibling.classList.toggle('hide');
-                    coll[i].childNodes[1].classList.toggle('rotate');
-                    checkActiveCategory = false;
-                    break;
-                  }
-                }
-              }
-
-              coll[i].addEventListener('click', function() {
-                var arrow = this.childNodes[1];
-                arrow.classList.toggle('rotate');
-                var content = this.nextElementSibling;
-                content.classList.toggle('hide');
-              });
-            }
-
-            document.addEventListener('DOMContentLoaded', function() {
-              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
-              createToggler('#tocToggler', 'body', 'tocActive');
-
-              const headings = document.querySelector('.toc-headings');
-              headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
-                }
-              }, false);
-
-              function createToggler(togglerSelector, targetSelector, className) {
-                var toggler = document.querySelector(togglerSelector);
-                var target = document.querySelector(targetSelector);
-
-                if (!toggler) {
-                  return;
-                }
-
-                toggler.onclick = function(event) {
-                  event.preventDefault();
-
-                  target.classList.toggle(className);
-                };
-              }
-            });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle">Development Environment</h1></header><article><div><span><p>In this section, we describe our recommended minimum setup for locally setting up a development instance of StreamPipes needed to develop, run and test new pipeline elements.</p>
-<h2><a class="anchor" aria-hidden="true" id="ide-required-dev-tools"></a><a href="#ide-required-dev-tools" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0 [...]
-<p>StreamPipes does not have specific requirements on the IDE - so feel free to choose the IDE of your choice.
-The only requirements in terms of development tools are that you have Java 8 and Maven installed.</p>
-<h2><a class="anchor" aria-hidden="true" id="docker-based-local-streampipes-instance"></a><a href="#docker-based-local-streampipes-instance" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2  [...]
-<p>In order to quickly test developed pipeline elements without needing to install all services required by StreamPipes, we provide a lightweight docker-compose file for development purposes.
-If you have Docker installed on your development machine, simply run the following docker-compose file, which has been successfully tested on both Linux and Windows-based operating systems.</p>
-<h3><a class="anchor" aria-hidden="true" id="docker-compose-file"></a><a href="#docker-compose-file" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.2 [...]
-<p><details class="info">
-<summary>docker-compose.yml</summary></p>
-<h4><a class="anchor" aria-hidden="true" id="docker-compose"></a><a href="#docker-compose" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
-<pre><code class="hljs css language-yaml"><span class="hljs-attr">version:</span> <span class="hljs-string">"2"</span>
-<span class="hljs-attr">services:</span>
-  <span class="hljs-attr">consul:</span>
-    <span class="hljs-attr">image:</span> <span class="hljs-string">consul</span>
-    <span class="hljs-attr">environment:</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">"CONSUL_LOCAL_CONFIG={\"disable_update_check\": true}"</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">"CONSUL_BIND_INTERFACE=eth0"</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">"CONSUL_HTTP_ADDR=0.0.0.0"</span>
-    <span class="hljs-attr">entrypoint:</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">consul</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">agent</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">-server</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">-bootstrap-expect=1</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">-data-dir=/consul/data</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">-node=consul-one</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">-bind={{</span> <span class="hljs-string">GetInterfaceIP</span> <span class="hljs-string">"eth0"</span> <span class="hljs-string">}}</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">-client=0.0.0.0</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">-enable-script-checks=true</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">-ui</span>
-    <span class="hljs-attr">volumes:</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">./config/consul:/consul/data</span>
-    <span class="hljs-attr">ports:</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">"8500:8500"</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">"8600:8600"</span>
-    <span class="hljs-attr">networks:</span>
-      <span class="hljs-attr">spnet:</span>
-        <span class="hljs-attr">ipv4_address:</span> <span class="hljs-number">172.30</span><span class="hljs-number">.0</span><span class="hljs-number">.9</span>
-
-  <span class="hljs-attr">zookeeper:</span>
-    <span class="hljs-attr">image:</span> <span class="hljs-string">wurstmeister/zookeeper</span>
-    <span class="hljs-attr">ports:</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">"2181:2181"</span>
-    <span class="hljs-attr">networks:</span>
-      <span class="hljs-attr">spnet:</span>
-
-  <span class="hljs-attr">kafka:</span>
-    <span class="hljs-attr">image:</span> <span class="hljs-string">wurstmeister/kafka:0.10.0.1</span>
-    <span class="hljs-attr">ports:</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">"9092:9092"</span>
-    <span class="hljs-attr">environment:</span>
-      <span class="hljs-attr">KAFKA_ADVERTISED_HOST_NAME:</span> <span class="hljs-comment">###TODO ADD HOSTNAME HERE ###</span>
-      <span class="hljs-attr">KAFKA_ZOOKEEPER_CONNECT:</span> <span class="hljs-string">zookeeper:2181</span>
-    <span class="hljs-attr">volumes:</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">/var/run/docker.sock:/var/run/docker.sock</span>
-    <span class="hljs-attr">networks:</span>
-      <span class="hljs-attr">spnet:</span>
-
-  <span class="hljs-attr">backend:</span>
-    <span class="hljs-attr">image:</span> <span class="hljs-string">ipe-wim-gitlab.fzi.de:5000/streampipes/ce/backend:SNAPSHOT</span>
-    <span class="hljs-attr">depends_on:</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">"consul"</span>
-    <span class="hljs-attr">ports:</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">"8030:8030"</span>
-    <span class="hljs-attr">volumes:</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">./config:/root/.streampipes</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">./config/aduna:/root/.aduna</span>
-    <span class="hljs-attr">networks:</span>
-      <span class="hljs-attr">spnet:</span>
-
-  <span class="hljs-attr">activemq:</span>
-    <span class="hljs-attr">image:</span> <span class="hljs-string">ipe-wim-gitlab.fzi.de:5000/streampipes/services/activemq</span>
-    <span class="hljs-attr">ports:</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">"61616:61616"</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">"61614:61614"</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">"8161:8161"</span>
-    <span class="hljs-attr">networks:</span>
-      <span class="hljs-attr">spnet:</span>
-
-  <span class="hljs-attr">couchdb:</span>
-    <span class="hljs-attr">image:</span> <span class="hljs-string">couchdb</span>
-    <span class="hljs-attr">ports:</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">"5984:5984"</span>
-    <span class="hljs-attr">volumes:</span>
-      <span class="hljs-bullet">-</span> <span class="hljs-string">./config/couchdb/data:/usr/local/var/lib/couchdb</span>
-    <span class="hljs-attr">networks:</span>
-      <span class="hljs-attr">spnet:</span>
-
-  <span class="hljs-attr">jobmanager:</span>
-    <span class="hljs-attr">image:</span> <span class="hljs-string">ipe-wim-gitlab.fzi.de:5000/streampipes/services/flink</span>
-    <span class="hljs-attr">ports:</span>
... 153638 lines suppressed ...