summaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-28 12:42:35 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-28 12:42:35 +0000
commit18db984057b83ca4962c89b6b79bdce6a660b58f (patch)
tree2c9f23c086b4dfcb3e7eb2ec69210206b0782d3c /doc
parentInitial commit. (diff)
downloadicingaweb2-module-businessprocess-18db984057b83ca4962c89b6b79bdce6a660b58f.tar.xz
icingaweb2-module-businessprocess-18db984057b83ca4962c89b6b79bdce6a660b58f.zip
Adding upstream version 2.4.0.upstream/2.4.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'doc')
-rw-r--r--doc/01-About.md20
-rw-r--r--doc/02-Installation.md20
-rw-r--r--doc/03-Getting-Started.md80
-rw-r--r--doc/04-Create-your-first-process-node.md69
-rw-r--r--doc/05-Importing-Processes.md56
-rw-r--r--doc/06-Customize-Node-Order.md74
-rw-r--r--doc/07-State-Overrides.md45
-rw-r--r--doc/09-Operators.md33
-rw-r--r--doc/12-Web-Components-Breadcrumb.md72
-rw-r--r--doc/13-Web-Components-Tile-Renderer.md23
-rw-r--r--doc/14-Web-Components-Tree-Renderer.md14
-rw-r--r--doc/16-Add-To-Dashboard.md22
-rw-r--r--doc/21-Store-Config.md25
-rw-r--r--doc/22-Upload-Config.md28
-rw-r--r--doc/31-Permissions.md28
-rw-r--r--doc/81-History.md46
-rw-r--r--doc/screenshot/00_preview/0001_preview-tree-view.pngbin0 -> 59495 bytes
-rw-r--r--doc/screenshot/00_preview/0002_preview_tile_view.pngbin0 -> 22985 bytes
-rw-r--r--doc/screenshot/00_preview/0003_preview_businessprocesses_on_dashboard.png0
-rw-r--r--doc/screenshot/00_preview/0004_preview_tile_and_subtree.pngbin0 -> 27261 bytes
-rw-r--r--doc/screenshot/00_preview/0005_readme-preview.pngbin0 -> 150226 bytes
-rw-r--r--doc/screenshot/02_installation/101_menu-configuration-modules.pngbin0 -> 7272 bytes
-rw-r--r--doc/screenshot/02_installation/102_enable-module.pngbin0 -> 80770 bytes
-rw-r--r--doc/screenshot/03_getting-started/0201_empty-dashboard.pngbin0 -> 38430 bytes
-rw-r--r--doc/screenshot/03_getting-started/0202_create-new-configuration.pngbin0 -> 34234 bytes
-rw-r--r--doc/screenshot/03_getting-started/0203_create-new_name.pngbin0 -> 4367 bytes
-rw-r--r--doc/screenshot/03_getting-started/0204_create-new_title.pngbin0 -> 6917 bytes
-rw-r--r--doc/screenshot/03_getting-started/0205_create-new_description.pngbin0 -> 13943 bytes
-rw-r--r--doc/screenshot/03_getting-started/0206_create-new_backend.pngbin0 -> 9024 bytes
-rw-r--r--doc/screenshot/03_getting-started/0207_create-new_state-type.pngbin0 -> 7100 bytes
-rw-r--r--doc/screenshot/03_getting-started/0208_create-new_add-to-menu.pngbin0 -> 5854 bytes
-rw-r--r--doc/screenshot/03_getting-started/0209_new-empty-configuration.pngbin0 -> 19156 bytes
-rw-r--r--doc/screenshot/03_getting-started/0210_new-on-dashboard.pngbin0 -> 37480 bytes
-rw-r--r--doc/screenshot/04_first-root-node/0301_empty-config.pngbin0 -> 19156 bytes
-rw-r--r--doc/screenshot/04_first-root-node/0302_add-new-node.pngbin0 -> 27807 bytes
-rw-r--r--doc/screenshot/04_first-root-node/0303_node-title.pngbin0 -> 5428 bytes
-rw-r--r--doc/screenshot/04_first-root-node/0304_operator.pngbin0 -> 11318 bytes
-rw-r--r--doc/screenshot/04_first-root-node/0305_display.pngbin0 -> 7537 bytes
-rw-r--r--doc/screenshot/04_first-root-node/0306_info-url.pngbin0 -> 4088 bytes
-rw-r--r--doc/screenshot/04_first-root-node/0307_first-node-created.pngbin0 -> 28115 bytes
-rw-r--r--doc/screenshot/05_importing_nodes/0401_subprocesses_only.pngbin0 -> 68346 bytes
-rw-r--r--doc/screenshot/05_importing_nodes/0402_choose_existing_process.pngbin0 -> 32248 bytes
-rw-r--r--doc/screenshot/05_importing_nodes/0403_choose_configuration.pngbin0 -> 8035 bytes
-rw-r--r--doc/screenshot/05_importing_nodes/0404_choose_process.pngbin0 -> 8112 bytes
-rw-r--r--doc/screenshot/05_importing_nodes/0405_import_successful.pngbin0 -> 32816 bytes
-rw-r--r--doc/screenshot/05_importing_nodes/0406_breadcrumb_integration.pngbin0 -> 12574 bytes
-rw-r--r--doc/screenshot/05_importing_nodes/0407_jump_to_original.pngbin0 -> 30339 bytes
-rw-r--r--doc/screenshot/06_customize_node_order/0501_tiles_grab_tile.pngbin0 -> 52954 bytes
-rw-r--r--doc/screenshot/06_customize_node_order/0502_tiles_drop_at_location.pngbin0 -> 52986 bytes
-rw-r--r--doc/screenshot/06_customize_node_order/0503_tree_grab_header.pngbin0 -> 53453 bytes
-rw-r--r--doc/screenshot/06_customize_node_order/0504_tree_drop_at_location.pngbin0 -> 61292 bytes
-rw-r--r--doc/screenshot/07_state_overrides/0701_override_config.pngbin0 -> 76256 bytes
-rw-r--r--doc/screenshot/07_state_overrides/0702_overridden_tile.pngbin0 -> 36046 bytes
-rw-r--r--doc/screenshot/07_state_overrides/0703_overridden_tree.pngbin0 -> 40178 bytes
-rw-r--r--doc/screenshot/09_operators/0901_and-operator.pngbin0 -> 81888 bytes
-rw-r--r--doc/screenshot/09_operators/0902_or-operator.pngbin0 -> 64085 bytes
-rw-r--r--doc/screenshot/09_operators/0903_or-operator-without-ok.pngbin0 -> 81769 bytes
-rw-r--r--doc/screenshot/09_operators/0904_min-operator.pngbin0 -> 94447 bytes
-rw-r--r--doc/screenshot/09_operators/0905_deg-operator.jpgbin0 -> 68934 bytes
-rw-r--r--doc/screenshot/12_web-components_breadcrumb/1201_simple-breadcrumb.pngbin0 -> 17797 bytes
-rw-r--r--doc/screenshot/12_web-components_breadcrumb/1202_return-from-fullscreen.pngbin0 -> 7114 bytes
-rw-r--r--doc/screenshot/12_web-components_breadcrumb/1203_add-to-dashboard.pngbin0 -> 16510 bytes
-rw-r--r--doc/screenshot/12_web-components_breadcrumb/1204_unlocked_config.pngbin0 -> 21001 bytes
-rw-r--r--doc/screenshot/13_web-components-tile-renderer/1301_tile-view.pngbin0 -> 57393 bytes
-rw-r--r--doc/screenshot/13_web-components-tile-renderer/1302_tile-and-subtree.pngbin0 -> 88235 bytes
-rw-r--r--doc/screenshot/14_web-components-tree-renderer/1401_tree-view.pngbin0 -> 70406 bytes
-rw-r--r--doc/screenshot/16_dashboard/1601_add-to-dashboard-link.pngbin0 -> 16510 bytes
-rw-r--r--doc/screenshot/16_dashboard/1602_add_to_dashboard-form.pngbin0 -> 24578 bytes
-rw-r--r--doc/screenshot/16_dashboard/1603_businessprocesses_on_dashboard.pngbin0 -> 151132 bytes
-rw-r--r--doc/screenshot/21_store-config/2101_Pending-Changes.pngbin0 -> 11792 bytes
-rw-r--r--doc/screenshot/21_store-config/2102_Store-Config.pngbin0 -> 52360 bytes
-rw-r--r--doc/screenshot/21_store-config/2103_Show-Diff.pngbin0 -> 36463 bytes
-rw-r--r--doc/screenshot/22_upload-config/2201_go-to-upload.pngbin0 -> 32819 bytes
-rw-r--r--doc/screenshot/22_upload-config/2202_choose-file.pngbin0 -> 16146 bytes
-rw-r--r--doc/screenshot/22_upload-config/2203_syntax-error.pngbin0 -> 25406 bytes
-rw-r--r--doc/screenshot/22_upload-config/2204_duplicate-name.pngbin0 -> 40201 bytes
-rw-r--r--doc/screenshot/81_history/8101_bpaddon-overview.pngbin0 -> 77964 bytes
-rw-r--r--doc/screenshot/81_history/8102_bpaddon-detail.pngbin0 -> 46198 bytes
78 files changed, 655 insertions, 0 deletions
diff --git a/doc/01-About.md b/doc/01-About.md
new file mode 100644
index 0000000..13eb925
--- /dev/null
+++ b/doc/01-About.md
@@ -0,0 +1,20 @@
+# Icinga Business Process Modelling
+
+If you want to visualize and monitor hierarchical business processes based on
+any or all objects monitored by Icinga, the Icinga Web 2 business process
+module is the way to go.
+
+[![Dashboard](screenshot/16_dashboard/1603_businessprocesses_on_dashboard.png)](doc/16-Add-To-Dashboard.md)
+
+Want to create custom process-based dashboards? Trigger notifications at
+process or sub-process level? Provide a quick top-level view for thousands of
+components on a single screen? That's what this module has been designed for!
+
+You're running a huge cloud, want to get rid of the monitoring noise triggered
+by your auto-scaling platform but still want to have detailed information just
+a couple of clicks away in case you need them? You will love this little module!
+
+## Documentation
+
+* [Installation](02-Installation.md)
+* [Getting Started](03-Getting-Started.md)
diff --git a/doc/02-Installation.md b/doc/02-Installation.md
new file mode 100644
index 0000000..65be978
--- /dev/null
+++ b/doc/02-Installation.md
@@ -0,0 +1,20 @@
+# Installation
+
+## Requirements
+
+* PHP (>= 7.0)
+* Icinga Web 2 (>= 2.9)
+* Icinga Web 2 libraries:
+ * [Icinga PHP Library (ipl)](https://github.com/Icinga/icinga-php-library) (>= 0.8)
+ * [Icinga PHP Thirdparty](https://github.com/Icinga/icinga-php-thirdparty) (>= 0.10)
+* Icinga Web 2 modules:
+ * The `monitoring` or `icingadb` module needs to be configured and enabled.
+
+## Install Icinga Business Process Modeling
+
+Install it [like any other module](https://icinga.com/docs/icinga-web-2/latest/doc/08-Modules/#installation).
+Use `businessprocess` as name.
+
+## Create your first Business Process definition
+
+That's it, *Business Process* is now ready for use. Please read more on [how to get started](03-Getting-Started.md).
diff --git a/doc/03-Getting-Started.md b/doc/03-Getting-Started.md
new file mode 100644
index 0000000..e90dfc2
--- /dev/null
+++ b/doc/03-Getting-Started.md
@@ -0,0 +1,80 @@
+<a id="Getting-Started"></a>Getting Started
+===========================================
+
+Once you enable the *Business Process* module, it will pop up in your menu.
+When you click on it, it will show you a new Dashboard:
+
+![Empty Dashboard](screenshot/03_getting-started/0201_empty-dashboard.png)
+
+A new Business Process configuration
+-------------------------------------------
+
+From here we choose to create a new *Business Process configuration*:
+
+![New Business Process](screenshot/03_getting-started/0202_create-new-configuration.png)
+
+Let's have a look at the single fields:
+
+### Configuration name
+
+![Configuration name](screenshot/03_getting-started/0203_create-new_name.png)
+
+The Business Process definition will be stored with this name. This is going to
+be used when referencing this process in URLs and in Check Commands.
+
+### Title
+
+![Configuration name](screenshot/03_getting-started/0204_create-new_title.png)
+
+You might optionally want to provide an additional title. In that case the title
+is shown in the GUI, while the name is still used as a reference. The title will
+default to the name.
+
+### Description
+
+![Description](screenshot/03_getting-started/0205_create-new_description.png)
+
+Provide a short description explaining within 100-150 character what this
+configuration provides. This will be shown on the Dashboard.
+
+### Backend
+
+![Backend](screenshot/03_getting-started/0206_create-new_backend.png)
+
+**Hint:** *Usually this should not be changed*
+
+Icinga Web 2 currently uses only one Monitoring Backend, but in theory you
+could configure multiple ones. They won't be usable in a meaningful way at the
+time of this writing. Still, you might want to use a different backend as a data
+provider for your Business Process.
+
+### State Type
+
+![State Type](screenshot/03_getting-started/0207_create-new_state-type.png)
+
+You can decide whether `SOFT` or `HARD` states should be the used as a base when
+calculating the state of a Business Process definition.
+
+### Add to menu
+
+Business Process configurations can be linked to the Icinga Web 2 menu. Only the
+first five configurations a user is allowed to see will be shown there:
+
+![Add to menu](screenshot/03_getting-started/0208_create-new_add-to-menu.png)
+
+That's all for now, click `Add` to store your new (still empty) Business Process
+configuration.
+
+Empty configuration
+===================
+
+You are redirected to your newly created Business Process configuration:
+
+![Empty configuration](screenshot/03_getting-started/0209_new-empty-configuration.png)
+
+From here we can now add as many deeply nested Business Processes as we want.
+But let's first have a look at our Dashboard once again:
+
+![New on Dashboard](screenshot/03_getting-started/0210_new-on-dashboard.png)
+
+Now let's move on and [create your first Nodes](04-Create-your-first-process-node.md).
diff --git a/doc/04-Create-your-first-process-node.md b/doc/04-Create-your-first-process-node.md
new file mode 100644
index 0000000..f5b8b84
--- /dev/null
+++ b/doc/04-Create-your-first-process-node.md
@@ -0,0 +1,69 @@
+<a id="Create-your-first-process-node"></a>Create your first Business Process Node
+==================================================================================
+
+A *Business Process Node* consists of a *name*, *title*, an *operator* and one or
+more child nodes. It can be a Root Node, child node of other Business Process
+Nodes - or both.
+
+![Empty Config](screenshot/04_first-root-node/0301_empty-config.png)
+
+Configuring our first node
+--------------------------
+
+To create our first *Business Process Node* we click the *Add* button. This
+leads to the related configuration form:
+
+![Add new Node](screenshot/04_first-root-node/0302_add-new-node.png)
+
+First setting is the *Node name*, an identifier that must be unique throughout
+all Nodes that are going to be defined. This identifier will be used in every
+link and also in *Check Commands* referring this node from an Icinga *Service
+Check*.
+
+### Set a title
+
+As uniqueness sometimes leads to not-so-beautiful names, you are additionally
+allowed to specify a title. This is what the frontend is going to show:
+
+![Node Title](screenshot/04_first-root-node/0303_node-title.png)
+
+### Choose an operator
+
+Every Business Process requires an *Operator*. This operator defines it's
+behaviour, this specifies how it's very own state is going to be calculated:
+
+![Operator](screenshot/04_first-root-node/0304_operator.png)
+
+### Specify where to display
+
+The form suggests to create a *Toplevel Process*. It does so as we are about
+to create a new *root node*. We could alternatively also create a sub process.
+As we are currently not adding it to another Node, this would lead to an *Unbound
+Node* that could be linked later on.
+
+![Node Display](screenshot/04_first-root-node/0305_display.png)
+
+### Provide an optional Info URL
+
+One might also want to provide a link to additional information related to a
+specific process. This could be instructions with more technical details or
+hints telling what should happen if outage occurs. You might not want to do so
+for every single Node, but it might come in handy for your most important (top
+level?) nodes:
+
+![Node Info Url](screenshot/04_first-root-node/0306_info-url.png)
+
+That's it, your are ready to submit the form.
+
+### First Business Process Node ready
+
+You are now shown your first Business Process Node. A red bar reminds you that
+your pending changes have not been stored yet:
+
+![First Node created](screenshot/04_first-root-node/0307_first-node-created.png)
+
+You could now *Store the Configuration* or move on with adding additional nodes
+to complete your configuration.
+
+**Hint**: the blue arrow makes part of a breadcrumb showing your current position.
+ You might want to learn more about [breadcrumbs](12-Web-Components-Breadcrumb.md).
diff --git a/doc/05-Importing-Processes.md b/doc/05-Importing-Processes.md
new file mode 100644
index 0000000..fccca97
--- /dev/null
+++ b/doc/05-Importing-Processes.md
@@ -0,0 +1,56 @@
+<a id="Importing-Processes"></a>Importing Processes
+===================================================
+
+To avoid redundancy and make complex *Business Process Configurations* easier
+to maintain it is possible to import processes from other configurations.
+
+In order to be able to import a process create a root node first. You cannot
+import processes into the root level.
+
+![Subprocesses Only](screenshot/05_importing_nodes/0401_subprocesses_only.png)
+
+Importing a Process
+-------------------
+
+Once the related configuration form is open, choose `Existing Process` and wait
+for the form to refresh.
+
+![Existing Process](screenshot/05_importing_nodes/0402_choose_existing_process.png)
+
+### Choose Configuration
+
+You can now choose the configuration to import processes from. Or simply hit
+`Next` to just utilize a process from the current configuration.
+
+![Choose Configuration](screenshot/05_importing_nodes/0403_choose_configuration.png)
+
+### Select Processes
+
+Now select the processes you want to import and submit the form.
+
+![Select Processes](screenshot/05_importing_nodes/0404_choose_process.png)
+
+### Import Successful
+
+You are now looking at the result. The process has been imported. Do not forget
+to save your changes!
+
+![Import Successful](screenshot/05_importing_nodes/0405_import_successful.png)
+
+Navigation with Imported Processes
+----------------------------------
+
+### Seamless Breadcrumbs
+
+You may have already noticed that the breadcrumbs integrate the hierarchy
+of the imported process. Once you navigate further the actions below the
+breadcrumbs change and don't permit to unlock editing.
+
+![Seamless Breadcrumbs](screenshot/05_importing_nodes/0406_breadcrumb_integration.png)
+
+To change imported processes you need to open them in their original
+configuration first. To do so click on the arrow to the right which is
+displayed in a tile's action urls in the upper left. While in tree view
+these can be found at the very right of an process' row.
+
+![Jump To Original](screenshot/05_importing_nodes/0407_jump_to_original.png)
diff --git a/doc/06-Customize-Node-Order.md b/doc/06-Customize-Node-Order.md
new file mode 100644
index 0000000..a4373f2
--- /dev/null
+++ b/doc/06-Customize-Node-Order.md
@@ -0,0 +1,74 @@
+<a id="Customize-Node-Order"></a>Customize Node Order
+=====================================================
+
+By default all nodes are ordered alphabetically while viewing them in the UI.
+Though, it is also possible to order nodes entirely manually.
+
+> **Note**
+>
+> Once manual order is applied (no matter where) alphabetical order is
+> disabled for the entire configuration.
+
+Reorder by Drag'n'Drop
+----------------------
+
+Make sure to unlock the configuration first to be able to reorder nodes.
+
+### Tile View
+
+To move a tile simply grab it with your mouse and drag it to the location you
+want it to appear at.
+
+![Grab Tile](screenshot/06_customize_node_order/0501_tiles_grab_tile.png)
+![Drop Tile](screenshot/06_customize_node_order/0502_tiles_drop_at_location.png)
+
+### Tree View
+
+While in tree view nodes can be moved the same way. You just have a narrower
+area to grab them.
+
+![Grab Row](screenshot/06_customize_node_order/0503_tree_grab_header.png)
+![Drop Row](screenshot/06_customize_node_order/0504_tree_drop_at_location.png)
+
+The tree view also has an advantage the tile view has not. It is possible to
+move nodes within the entire hierarchy. But remember to unfold processes first,
+if you want to move a node into them.
+
+File Format Extensions
+----------------------
+
+The configuration file format has slightly been changed to accommodate the new
+manual order. Though, previous configurations are perfectly upwards compatible.
+
+### New Header
+
+A new header is used to flag a configuration file as being manually ordered.
+
+```
+# ManualOrder : yes
+```
+
+Once this is set alphabetical order is disabled and only the next techniques
+define the order of nodes.
+
+### Changed `display` Semantic
+
+Previously there were only two valid values for the `display` directive.
+(0 = Subprocess, 1 = Toplevel Process)
+
+```
+display 0|1;<name>;<title>
+```
+
+This has now been extended so that values greater than zero refer to the order
+of root nodes. (ascending)
+
+```
+display 0|n;<name>;<title>
+```
+
+### Significant Children Order
+
+Previously the order of a node's children in a configuration file was not
+important in any way. Now this is significant and refers to the order in
+which children appear in the UI and how process states are determined.
diff --git a/doc/07-State-Overrides.md b/doc/07-State-Overrides.md
new file mode 100644
index 0000000..dfdbaeb
--- /dev/null
+++ b/doc/07-State-Overrides.md
@@ -0,0 +1,45 @@
+# State Overrides
+
+Business processes utilize their children's states to calculate their own state.
+While you can influence this with [operators](09-Operators.md), it's also possible
+to override individual states. (This applies to host and service nodes.)
+
+## Configuring Overrides
+
+State overrides get configured per node. When adding or editing a node, you can
+define which state should be overridden with another one.
+
+Below `WARNING` is chosen as a replacement for `CRITICAL`.
+
+![Service State Override Configuration](screenshot/07_state_overrides/0701_override_config.png "Service State Override Configuration")
+
+## Identifying Overrides
+
+In tile view overridden states are indicated by an additional state ball in the
+lower left of a tile. This is then the actual state the object is in.
+
+![Overridden Tile State](screenshot/07_state_overrides/0702_overridden_tile.png "Overridden Tile State")
+
+In tree view overridden states are indicated on the very right of a row. There
+the actual state is shown and which one it is replaced with.
+
+![Overridden Tree State](screenshot/07_state_overrides/0703_overridden_tree.png "Overridden Tree State")
+
+## File Format Extensions
+
+The configuration file format has slightly been changed to accommodate state
+overrides. Though, previous configurations are perfectly upwards compatible.
+
+### New Extra Line
+
+For process nodes a new extra line is used to store state overrides.
+
+```
+state_overrides dev_database_servers!mysql;mysql|2-1
+```
+
+The full syntax for this is as follows:
+
+```
+state_overrides <process>!<child>|n-n[!<child>|n-n[,n-n]]
+```
diff --git a/doc/09-Operators.md b/doc/09-Operators.md
new file mode 100644
index 0000000..58db97c
--- /dev/null
+++ b/doc/09-Operators.md
@@ -0,0 +1,33 @@
+# Operators <a id="operators">
+
+Every Business Process requires an Operator. This operator defines its behaviour and specifies how its very own state is
+going to be calculated.
+
+## AND <a id="and-operator">
+
+The `AND` operator selects the **WORST** state of its child nodes:
+
+![And Operator](screenshot/09_operators/0901_and-operator.png)
+
+## OR <a id="or-operator">
+
+The `OR` operator selects the **BEST** state of its child nodes:
+
+![Or Operator](screenshot/09_operators/0902_or-operator.png)
+
+![Or Operator #2](screenshot/09_operators/0903_or-operator-without-ok.png)
+
+## DEGRADED <a id="deg-operator">
+
+The `DEGRADED` operator behaves like an `AND`, but if the resulting
+state is **CRITICAL** it transforms it into a **WARNING**.
+Refer to the table below for the case-by-case
+analysis of the statuses.
+
+![Degraded Operator](screenshot/09_operators/0905_deg-operator.jpg)
+
+## MIN n <a id="min-operator">
+
+The `MIN` operator selects the **WORST** state out of the **BEST n** child node states:
+
+![MIN](screenshot/09_operators/0904_min-operator.png)
diff --git a/doc/12-Web-Components-Breadcrumb.md b/doc/12-Web-Components-Breadcrumb.md
new file mode 100644
index 0000000..a9811da
--- /dev/null
+++ b/doc/12-Web-Components-Breadcrumb.md
@@ -0,0 +1,72 @@
+<a id="Web-Components-Breadcrumb"></a>Web Components: Breadcrumb
+================================================================
+
+All Business Process renderers show a **breadcrumb** component to always give
+you a quick indication of your current location.
+
+![Símple Breadcrumb](screenshot/12_web-components_breadcrumb/1201_simple-breadcrumb.png)
+
+The left-most section shows the title of the current *Business Process Configuration*.
+The remaining sections show the path to the current *Business Process Node* currently
+being shown.
+
+Hovering the Breadcrumb with your mouse shows you that all of it sections are
+highlighted, as they are links pointing to either the root level when clicking
+on the *Configuration Node* itself or to the corresponding *Business Process Node*.
+
+All but the last section, showing your current position in the tree. Even if
+not being highlighted, it is still a link an can be clicked in case you need
+so.
+
+In case you're showing some related details in a split-screen view of *Icinga
+Web 2*, a click on any *Breadcrumb* section will switch back to a wide single
+column view to make it obvious that you moved to another context. It is also
+perfectly legal to open any of the available links in a new browser tab or
+window.
+
+Available actions below the Breadcrumb
+--------------------------------------
+
+### Choose a renderer
+
+The first link allows to toggle the used Renderer. Currently a *Tree* and a
+*Tile* renderer are available.
+
+### Move to Full Screen Mode
+
+Every view can be shown in *Full Screen Mode*. Full screen means that left and
+upper menu together with some other details are hidden. Your Business Process
+will be able to use all of the available space. Want even more? Then please
+additionally switch your browser to full screen mode. This is usually done by
+pressing the `F11` key.
+
+Once being in full screen mode you'll find an icon on the right side that will
+allow you to switch back to normal view:
+
+![Return from fullscreen](screenshot/12_web-components_breadcrumb/1202_return-from-fullscreen.png)
+
+**Hint:** We know that the web application might request real full screen mode
+on their own. We refused doing so as many people find this being an annoying
+feature.
+
+### Unlock the Configuration
+
+When clicking `Unlock`, additional actions are shown. One of them is immediately
+shown next to the `Unlock` link and reads `Config`. It allows you to reach Configuration
+settings for the your currently loaded *Business Process Configuration*:
+
+![Unlocked config](screenshot/12_web-components_breadcrumb/1204_unlocked_config.png)
+
+But there is more. When unlocked, all nodes provide links allowing you to modify or
+to delete them. Host/Service Nodes now allow you to simulate a specific state.
+
+Other main actions
+------------------
+
+### Add content to your Dashboard
+
+When being in *locked* mode, you are allowed to add the currently shown process
+at the given path with the active renderer in the main (or a custom) [Icinga Web 2
+Dashboard](16-Add-To-Dashboard.md):
+
+![Add to Dashboard](screenshot/12_web-components_breadcrumb/1203_add-to-dashboard.png)
diff --git a/doc/13-Web-Components-Tile-Renderer.md b/doc/13-Web-Components-Tile-Renderer.md
new file mode 100644
index 0000000..d362f33
--- /dev/null
+++ b/doc/13-Web-Components-Tile-Renderer.md
@@ -0,0 +1,23 @@
+<a id="Web-Components-Tile-Renderer"></a>Web Components: Tile Renderer
+======================================================================
+
+The default Business Process *Renderer* is the *Tile Renderer*. It always shows
+one level of your tree, enriched with badges giving some hint on lower level
+node problems. This is what it looks like:
+
+![Tile Renderer](screenshot/13_web-components-tile-renderer/1301_tile-view.png)
+
+Please click on *Tree* below the [breadcrumb](12-Web-Components-Breadcrumb.md)
+to switch to the [Tree View](14-Web-Components-Tree-Renderer.md). In the left
+corner of every *Tile* you can find two icons, both of them will show the related
+sub-process. On your mobile phone this usually replaces your current view, please
+use the [breadcrumb](12-Web-Components-Breadcrumb.md) to navigate back to a higher
+level.
+
+On a Notebook or Desktop Computer this usually leady to a split-screen view:
+
+![Split View - Tiles and Tree](screenshot/13_web-components-tile-renderer/1302_tile-and-subtree.png)
+
+This example shows a subtree shown with the [Tree Renderer](14-Web-Components-Tree-Renderer.md),
+it is of course also perfectly legal to drill down using the *Tile Renderer*
+only.
diff --git a/doc/14-Web-Components-Tree-Renderer.md b/doc/14-Web-Components-Tree-Renderer.md
new file mode 100644
index 0000000..7bf2137
--- /dev/null
+++ b/doc/14-Web-Components-Tree-Renderer.md
@@ -0,0 +1,14 @@
+<a id="Web-Components-Tree-Renderer"></a>Web Components: Tree Renderer
+======================================================================
+
+The main advantage of the *Tree Renderer* is that it is able to show all nodes
+of Business Process trees at once. This works fine even for huge trees with lots
+of nodes. Please have a look at this screenshot to get an idea of how the tree
+view looks like:
+
+![Tree View](screenshot/14_web-components-tree-renderer/1401_tree-view.png)
+
+Clicking Business Process Nodes collapses or unfolds them, clicking single hosts
+or services show the related monitored object. You can of course always switch
+back to the [Tile Renderer](13-Web-Components-Tile-Renderer.md) with a single
+click at any time.
diff --git a/doc/16-Add-To-Dashboard.md b/doc/16-Add-To-Dashboard.md
new file mode 100644
index 0000000..deda692
--- /dev/null
+++ b/doc/16-Add-To-Dashboard.md
@@ -0,0 +1,22 @@
+<a id="Add-To-Dashboard"></a>Show Processes on a Dashboard
+==========================================================
+
+When being in *Locked mode*, you can add any Business Process at top or sub level
+to any Icinga Web 2 Dashboard. The related link can be found in the Tab bar:
+
+![Add to Dashboard - Link](screenshot/16_dashboard/1601_add-to-dashboard-link.png)
+
+This leads to the standard Icinga Web 2 *Add Dashlet to Dashboard* form. Feel
+free to add your Business Process View to any existing Dashboard. You might also
+want to create a dedicated Dashboard as shown in this example:
+
+![Add to Dashboard - Form](screenshot/16_dashboard/1602_add_to_dashboard-form.png)
+
+
+Want more?
+----------
+
+Head on and add multiple Business Processes to your Dashboard to show all of
+them at once:
+
+![Sample Dashboard](screenshot/16_dashboard/1603_businessprocesses_on_dashboard.png)
diff --git a/doc/21-Store-Config.md b/doc/21-Store-Config.md
new file mode 100644
index 0000000..709c413
--- /dev/null
+++ b/doc/21-Store-Config.md
@@ -0,0 +1,25 @@
+<a id="Store-Config"></a>Store your Configuration
+=================================================
+
+Changes to your *Business Process Configuration* are added to a stack and will
+not be stored immediately. In case there are pending unstored changes, this will
+be shown on every screen:
+
+![Pending Changes](screenshot/21_store-config/2101_Pending-Changes.png)
+
+A click on *Dismiss* immediately throws away all unstored changes. A click on
+*Store* brings you to the configuration form. You have seen this before, once
+you created your [very first configuration](03-Getting-Started.md):
+
+![Store Config](screenshot/21_store-config/2102_Store-Config.png)
+
+Config Diff
+-----------
+
+If unsure what changes you're going to store, you can still check the *Config Diff*
+before finally storing to disk:
+
+![Show Diff](screenshot/21_store-config/2103_Show-Diff.png)
+
+You can also download your existing configuration to safe it elsewhere or to
+apply manual modifications with our favourite plaintext editor.
diff --git a/doc/22-Upload-Config.md b/doc/22-Upload-Config.md
new file mode 100644
index 0000000..07e6b63
--- /dev/null
+++ b/doc/22-Upload-Config.md
@@ -0,0 +1,28 @@
+<a id="Upload-Config"></a>Upload a Configuration File
+=====================================================
+
+You can upload a formerly downloaded or even a manually created file directly
+through the web frontend. Given sufficient permissions, the Dashboard provides
+a related link:
+
+![From Dashboard to Upload](screenshot/22_upload-config/2201_go-to-upload.png)
+
+Chose a file
+------------
+
+This can be any file:
+
+![Choose a File](screenshot/22_upload-config/2202_choose-file.png)
+
+It should be valid of course, but don't worry - the *Business Process* module
+protects you from syntax errors:
+
+![Syntax Error](screenshot/22_upload-config/2203_syntax-error.png)
+
+Just for fun you could try to upload an image or whatever you want - it will not
+break. It will also protect you from accidentally overwriting existing files:
+
+![Duplicate Name](screenshot/22_upload-config/2204_duplicate-name.png)
+
+So in case you need to replace an existing process, please delete it before
+uploading a new one.
diff --git a/doc/31-Permissions.md b/doc/31-Permissions.md
new file mode 100644
index 0000000..47c9ca1
--- /dev/null
+++ b/doc/31-Permissions.md
@@ -0,0 +1,28 @@
+<a id="Permission System"></a>Permission System
+=================================================
+
+The permission system of the module is based on permissions and restrictions.
+
+Permissions
+-----------
+
+The module has five levels of permissions:
+
+* Granting general module access allows a user to view business processes. (`module/businessprocess`)
+* Create permissions allow to create new business processes. (`businessprocess/create`)
+* Modify permissions allow to modify already existing ones. (`businessprocess/modify`)
+* Permission to view all business processes regardless restrictions. (`businessprocess/showall`)
+* Full permissions. (`businessprocess/*`)
+
+Restrictions
+-----------
+
+There are two ways to configure restrictions: prefix-based and access controls
+
+### Prefix-based
+
+This option allows to limit access of a role to only business processes with a specific prefix. For this the ID (Configuration name) of a business process has to start with a prefix and it has to be set as restriction on the role. (`businessprocess/prefix`)
+
+### Access controls
+
+This option allows for more fine granular permissions based on user (`AllowedUsers`), group (`AllowedGroups`) and role (`AllowedRoles`). These attributes take a comma-separated list, get added to the header of the business process configuration file and limit access to the owner and the mentioned ones.
diff --git a/doc/81-History.md b/doc/81-History.md
new file mode 100644
index 0000000..8366163
--- /dev/null
+++ b/doc/81-History.md
@@ -0,0 +1,46 @@
+Project History
+===============
+
+The Business Process module is based on the ideas of the Nagios(tm) [Business
+Process AddOn](http://bp-addon.monitoringexchange.org/) written by Bernd
+Strößenreuther. We always loved its simplicity, and while it looks pretty
+oldschool right now there are still many shops happily using it in production.
+
+![BpAddOn Overview](screenshot/81_history/8101_bpaddon-overview.png)
+
+Compatibility
+-------------
+
+We fully support the BPaddon configuration language and will continue to do so.
+It's also perfectly valid to run both products in parallel based on the very same
+config files. New features are (mostly) added in a compatible way.
+
+Configuration titles and descriptions, properties related to state types or
+permissions are examples for new features that didn't formerly exist. They are
+stored as commented metadata in the file header and therefore invisible to the
+old AddOn.
+
+The only way to break compatibility is to use newly introduced operators like
+`NOT`. Once you do so, the old AddOn will no longer be able to parse your
+configuration.
+
+![BpAddOn Details](screenshot/81_history/8102_bpaddon-detail.png)
+
+Lot's of changes went on and are still going on under the hood. We have more
+features and new language constructs. We separated the config reader from the
+state fetcher in our code base. This will allow us to eventually support config
+backends like SQL databases or the Icinga 2 DSL.
+
+This would make it easier to distribute configuration in large environments.
+
+Improvements
+------------
+
+Major focus has been put on execution speed. So while the Web integration shows
+much more details at once and is able to display huge unfolded trees, it should
+still render and refresh faster. Same goes for the Check Plugin.
+
+Behaviour for all operators is now strictly specified and Unit-tested. You still
+can manually edit your configuration files. But much better, you also delegate
+this to your co-workers, as Business Process definitions can now be built directly
+in the GUI.
diff --git a/doc/screenshot/00_preview/0001_preview-tree-view.png b/doc/screenshot/00_preview/0001_preview-tree-view.png
new file mode 100644
index 0000000..2015a31
--- /dev/null
+++ b/doc/screenshot/00_preview/0001_preview-tree-view.png
Binary files differ
diff --git a/doc/screenshot/00_preview/0002_preview_tile_view.png b/doc/screenshot/00_preview/0002_preview_tile_view.png
new file mode 100644
index 0000000..08770ae
--- /dev/null
+++ b/doc/screenshot/00_preview/0002_preview_tile_view.png
Binary files differ
diff --git a/doc/screenshot/00_preview/0003_preview_businessprocesses_on_dashboard.png b/doc/screenshot/00_preview/0003_preview_businessprocesses_on_dashboard.png
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/doc/screenshot/00_preview/0003_preview_businessprocesses_on_dashboard.png
diff --git a/doc/screenshot/00_preview/0004_preview_tile_and_subtree.png b/doc/screenshot/00_preview/0004_preview_tile_and_subtree.png
new file mode 100644
index 0000000..e8db7ae
--- /dev/null
+++ b/doc/screenshot/00_preview/0004_preview_tile_and_subtree.png
Binary files differ
diff --git a/doc/screenshot/00_preview/0005_readme-preview.png b/doc/screenshot/00_preview/0005_readme-preview.png
new file mode 100644
index 0000000..4515c86
--- /dev/null
+++ b/doc/screenshot/00_preview/0005_readme-preview.png
Binary files differ
diff --git a/doc/screenshot/02_installation/101_menu-configuration-modules.png b/doc/screenshot/02_installation/101_menu-configuration-modules.png
new file mode 100644
index 0000000..0c2d9df
--- /dev/null
+++ b/doc/screenshot/02_installation/101_menu-configuration-modules.png
Binary files differ
diff --git a/doc/screenshot/02_installation/102_enable-module.png b/doc/screenshot/02_installation/102_enable-module.png
new file mode 100644
index 0000000..140d38d
--- /dev/null
+++ b/doc/screenshot/02_installation/102_enable-module.png
Binary files differ
diff --git a/doc/screenshot/03_getting-started/0201_empty-dashboard.png b/doc/screenshot/03_getting-started/0201_empty-dashboard.png
new file mode 100644
index 0000000..b8fddcb
--- /dev/null
+++ b/doc/screenshot/03_getting-started/0201_empty-dashboard.png
Binary files differ
diff --git a/doc/screenshot/03_getting-started/0202_create-new-configuration.png b/doc/screenshot/03_getting-started/0202_create-new-configuration.png
new file mode 100644
index 0000000..48e91fa
--- /dev/null
+++ b/doc/screenshot/03_getting-started/0202_create-new-configuration.png
Binary files differ
diff --git a/doc/screenshot/03_getting-started/0203_create-new_name.png b/doc/screenshot/03_getting-started/0203_create-new_name.png
new file mode 100644
index 0000000..02845eb
--- /dev/null
+++ b/doc/screenshot/03_getting-started/0203_create-new_name.png
Binary files differ
diff --git a/doc/screenshot/03_getting-started/0204_create-new_title.png b/doc/screenshot/03_getting-started/0204_create-new_title.png
new file mode 100644
index 0000000..99e26bb
--- /dev/null
+++ b/doc/screenshot/03_getting-started/0204_create-new_title.png
Binary files differ
diff --git a/doc/screenshot/03_getting-started/0205_create-new_description.png b/doc/screenshot/03_getting-started/0205_create-new_description.png
new file mode 100644
index 0000000..454ec82
--- /dev/null
+++ b/doc/screenshot/03_getting-started/0205_create-new_description.png
Binary files differ
diff --git a/doc/screenshot/03_getting-started/0206_create-new_backend.png b/doc/screenshot/03_getting-started/0206_create-new_backend.png
new file mode 100644
index 0000000..31fcc83
--- /dev/null
+++ b/doc/screenshot/03_getting-started/0206_create-new_backend.png
Binary files differ
diff --git a/doc/screenshot/03_getting-started/0207_create-new_state-type.png b/doc/screenshot/03_getting-started/0207_create-new_state-type.png
new file mode 100644
index 0000000..f875057
--- /dev/null
+++ b/doc/screenshot/03_getting-started/0207_create-new_state-type.png
Binary files differ
diff --git a/doc/screenshot/03_getting-started/0208_create-new_add-to-menu.png b/doc/screenshot/03_getting-started/0208_create-new_add-to-menu.png
new file mode 100644
index 0000000..c868015
--- /dev/null
+++ b/doc/screenshot/03_getting-started/0208_create-new_add-to-menu.png
Binary files differ
diff --git a/doc/screenshot/03_getting-started/0209_new-empty-configuration.png b/doc/screenshot/03_getting-started/0209_new-empty-configuration.png
new file mode 100644
index 0000000..b1fbe86
--- /dev/null
+++ b/doc/screenshot/03_getting-started/0209_new-empty-configuration.png
Binary files differ
diff --git a/doc/screenshot/03_getting-started/0210_new-on-dashboard.png b/doc/screenshot/03_getting-started/0210_new-on-dashboard.png
new file mode 100644
index 0000000..6717d3d
--- /dev/null
+++ b/doc/screenshot/03_getting-started/0210_new-on-dashboard.png
Binary files differ
diff --git a/doc/screenshot/04_first-root-node/0301_empty-config.png b/doc/screenshot/04_first-root-node/0301_empty-config.png
new file mode 100644
index 0000000..b1fbe86
--- /dev/null
+++ b/doc/screenshot/04_first-root-node/0301_empty-config.png
Binary files differ
diff --git a/doc/screenshot/04_first-root-node/0302_add-new-node.png b/doc/screenshot/04_first-root-node/0302_add-new-node.png
new file mode 100644
index 0000000..f3eeb87
--- /dev/null
+++ b/doc/screenshot/04_first-root-node/0302_add-new-node.png
Binary files differ
diff --git a/doc/screenshot/04_first-root-node/0303_node-title.png b/doc/screenshot/04_first-root-node/0303_node-title.png
new file mode 100644
index 0000000..b6f9d12
--- /dev/null
+++ b/doc/screenshot/04_first-root-node/0303_node-title.png
Binary files differ
diff --git a/doc/screenshot/04_first-root-node/0304_operator.png b/doc/screenshot/04_first-root-node/0304_operator.png
new file mode 100644
index 0000000..1ffa1c2
--- /dev/null
+++ b/doc/screenshot/04_first-root-node/0304_operator.png
Binary files differ
diff --git a/doc/screenshot/04_first-root-node/0305_display.png b/doc/screenshot/04_first-root-node/0305_display.png
new file mode 100644
index 0000000..39e30b3
--- /dev/null
+++ b/doc/screenshot/04_first-root-node/0305_display.png
Binary files differ
diff --git a/doc/screenshot/04_first-root-node/0306_info-url.png b/doc/screenshot/04_first-root-node/0306_info-url.png
new file mode 100644
index 0000000..770102d
--- /dev/null
+++ b/doc/screenshot/04_first-root-node/0306_info-url.png
Binary files differ
diff --git a/doc/screenshot/04_first-root-node/0307_first-node-created.png b/doc/screenshot/04_first-root-node/0307_first-node-created.png
new file mode 100644
index 0000000..3fd5be6
--- /dev/null
+++ b/doc/screenshot/04_first-root-node/0307_first-node-created.png
Binary files differ
diff --git a/doc/screenshot/05_importing_nodes/0401_subprocesses_only.png b/doc/screenshot/05_importing_nodes/0401_subprocesses_only.png
new file mode 100644
index 0000000..d4f58ba
--- /dev/null
+++ b/doc/screenshot/05_importing_nodes/0401_subprocesses_only.png
Binary files differ
diff --git a/doc/screenshot/05_importing_nodes/0402_choose_existing_process.png b/doc/screenshot/05_importing_nodes/0402_choose_existing_process.png
new file mode 100644
index 0000000..4fc5f63
--- /dev/null
+++ b/doc/screenshot/05_importing_nodes/0402_choose_existing_process.png
Binary files differ
diff --git a/doc/screenshot/05_importing_nodes/0403_choose_configuration.png b/doc/screenshot/05_importing_nodes/0403_choose_configuration.png
new file mode 100644
index 0000000..19b4c05
--- /dev/null
+++ b/doc/screenshot/05_importing_nodes/0403_choose_configuration.png
Binary files differ
diff --git a/doc/screenshot/05_importing_nodes/0404_choose_process.png b/doc/screenshot/05_importing_nodes/0404_choose_process.png
new file mode 100644
index 0000000..010992c
--- /dev/null
+++ b/doc/screenshot/05_importing_nodes/0404_choose_process.png
Binary files differ
diff --git a/doc/screenshot/05_importing_nodes/0405_import_successful.png b/doc/screenshot/05_importing_nodes/0405_import_successful.png
new file mode 100644
index 0000000..9f4f346
--- /dev/null
+++ b/doc/screenshot/05_importing_nodes/0405_import_successful.png
Binary files differ
diff --git a/doc/screenshot/05_importing_nodes/0406_breadcrumb_integration.png b/doc/screenshot/05_importing_nodes/0406_breadcrumb_integration.png
new file mode 100644
index 0000000..0929546
--- /dev/null
+++ b/doc/screenshot/05_importing_nodes/0406_breadcrumb_integration.png
Binary files differ
diff --git a/doc/screenshot/05_importing_nodes/0407_jump_to_original.png b/doc/screenshot/05_importing_nodes/0407_jump_to_original.png
new file mode 100644
index 0000000..8fc0e2d
--- /dev/null
+++ b/doc/screenshot/05_importing_nodes/0407_jump_to_original.png
Binary files differ
diff --git a/doc/screenshot/06_customize_node_order/0501_tiles_grab_tile.png b/doc/screenshot/06_customize_node_order/0501_tiles_grab_tile.png
new file mode 100644
index 0000000..5697786
--- /dev/null
+++ b/doc/screenshot/06_customize_node_order/0501_tiles_grab_tile.png
Binary files differ
diff --git a/doc/screenshot/06_customize_node_order/0502_tiles_drop_at_location.png b/doc/screenshot/06_customize_node_order/0502_tiles_drop_at_location.png
new file mode 100644
index 0000000..cd7b673
--- /dev/null
+++ b/doc/screenshot/06_customize_node_order/0502_tiles_drop_at_location.png
Binary files differ
diff --git a/doc/screenshot/06_customize_node_order/0503_tree_grab_header.png b/doc/screenshot/06_customize_node_order/0503_tree_grab_header.png
new file mode 100644
index 0000000..7687713
--- /dev/null
+++ b/doc/screenshot/06_customize_node_order/0503_tree_grab_header.png
Binary files differ
diff --git a/doc/screenshot/06_customize_node_order/0504_tree_drop_at_location.png b/doc/screenshot/06_customize_node_order/0504_tree_drop_at_location.png
new file mode 100644
index 0000000..828aebe
--- /dev/null
+++ b/doc/screenshot/06_customize_node_order/0504_tree_drop_at_location.png
Binary files differ
diff --git a/doc/screenshot/07_state_overrides/0701_override_config.png b/doc/screenshot/07_state_overrides/0701_override_config.png
new file mode 100644
index 0000000..49ca2ad
--- /dev/null
+++ b/doc/screenshot/07_state_overrides/0701_override_config.png
Binary files differ
diff --git a/doc/screenshot/07_state_overrides/0702_overridden_tile.png b/doc/screenshot/07_state_overrides/0702_overridden_tile.png
new file mode 100644
index 0000000..db2012e
--- /dev/null
+++ b/doc/screenshot/07_state_overrides/0702_overridden_tile.png
Binary files differ
diff --git a/doc/screenshot/07_state_overrides/0703_overridden_tree.png b/doc/screenshot/07_state_overrides/0703_overridden_tree.png
new file mode 100644
index 0000000..ccf4fde
--- /dev/null
+++ b/doc/screenshot/07_state_overrides/0703_overridden_tree.png
Binary files differ
diff --git a/doc/screenshot/09_operators/0901_and-operator.png b/doc/screenshot/09_operators/0901_and-operator.png
new file mode 100644
index 0000000..a939843
--- /dev/null
+++ b/doc/screenshot/09_operators/0901_and-operator.png
Binary files differ
diff --git a/doc/screenshot/09_operators/0902_or-operator.png b/doc/screenshot/09_operators/0902_or-operator.png
new file mode 100644
index 0000000..ff6dafa
--- /dev/null
+++ b/doc/screenshot/09_operators/0902_or-operator.png
Binary files differ
diff --git a/doc/screenshot/09_operators/0903_or-operator-without-ok.png b/doc/screenshot/09_operators/0903_or-operator-without-ok.png
new file mode 100644
index 0000000..b8097ee
--- /dev/null
+++ b/doc/screenshot/09_operators/0903_or-operator-without-ok.png
Binary files differ
diff --git a/doc/screenshot/09_operators/0904_min-operator.png b/doc/screenshot/09_operators/0904_min-operator.png
new file mode 100644
index 0000000..04fa9be
--- /dev/null
+++ b/doc/screenshot/09_operators/0904_min-operator.png
Binary files differ
diff --git a/doc/screenshot/09_operators/0905_deg-operator.jpg b/doc/screenshot/09_operators/0905_deg-operator.jpg
new file mode 100644
index 0000000..9dc05a3
--- /dev/null
+++ b/doc/screenshot/09_operators/0905_deg-operator.jpg
Binary files differ
diff --git a/doc/screenshot/12_web-components_breadcrumb/1201_simple-breadcrumb.png b/doc/screenshot/12_web-components_breadcrumb/1201_simple-breadcrumb.png
new file mode 100644
index 0000000..a4f9a4d
--- /dev/null
+++ b/doc/screenshot/12_web-components_breadcrumb/1201_simple-breadcrumb.png
Binary files differ
diff --git a/doc/screenshot/12_web-components_breadcrumb/1202_return-from-fullscreen.png b/doc/screenshot/12_web-components_breadcrumb/1202_return-from-fullscreen.png
new file mode 100644
index 0000000..fe3406b
--- /dev/null
+++ b/doc/screenshot/12_web-components_breadcrumb/1202_return-from-fullscreen.png
Binary files differ
diff --git a/doc/screenshot/12_web-components_breadcrumb/1203_add-to-dashboard.png b/doc/screenshot/12_web-components_breadcrumb/1203_add-to-dashboard.png
new file mode 100644
index 0000000..b1daec5
--- /dev/null
+++ b/doc/screenshot/12_web-components_breadcrumb/1203_add-to-dashboard.png
Binary files differ
diff --git a/doc/screenshot/12_web-components_breadcrumb/1204_unlocked_config.png b/doc/screenshot/12_web-components_breadcrumb/1204_unlocked_config.png
new file mode 100644
index 0000000..0ba84a9
--- /dev/null
+++ b/doc/screenshot/12_web-components_breadcrumb/1204_unlocked_config.png
Binary files differ
diff --git a/doc/screenshot/13_web-components-tile-renderer/1301_tile-view.png b/doc/screenshot/13_web-components-tile-renderer/1301_tile-view.png
new file mode 100644
index 0000000..80a142f
--- /dev/null
+++ b/doc/screenshot/13_web-components-tile-renderer/1301_tile-view.png
Binary files differ
diff --git a/doc/screenshot/13_web-components-tile-renderer/1302_tile-and-subtree.png b/doc/screenshot/13_web-components-tile-renderer/1302_tile-and-subtree.png
new file mode 100644
index 0000000..a03209d
--- /dev/null
+++ b/doc/screenshot/13_web-components-tile-renderer/1302_tile-and-subtree.png
Binary files differ
diff --git a/doc/screenshot/14_web-components-tree-renderer/1401_tree-view.png b/doc/screenshot/14_web-components-tree-renderer/1401_tree-view.png
new file mode 100644
index 0000000..7bacb00
--- /dev/null
+++ b/doc/screenshot/14_web-components-tree-renderer/1401_tree-view.png
Binary files differ
diff --git a/doc/screenshot/16_dashboard/1601_add-to-dashboard-link.png b/doc/screenshot/16_dashboard/1601_add-to-dashboard-link.png
new file mode 100644
index 0000000..b1daec5
--- /dev/null
+++ b/doc/screenshot/16_dashboard/1601_add-to-dashboard-link.png
Binary files differ
diff --git a/doc/screenshot/16_dashboard/1602_add_to_dashboard-form.png b/doc/screenshot/16_dashboard/1602_add_to_dashboard-form.png
new file mode 100644
index 0000000..ab2d255
--- /dev/null
+++ b/doc/screenshot/16_dashboard/1602_add_to_dashboard-form.png
Binary files differ
diff --git a/doc/screenshot/16_dashboard/1603_businessprocesses_on_dashboard.png b/doc/screenshot/16_dashboard/1603_businessprocesses_on_dashboard.png
new file mode 100644
index 0000000..116bf04
--- /dev/null
+++ b/doc/screenshot/16_dashboard/1603_businessprocesses_on_dashboard.png
Binary files differ
diff --git a/doc/screenshot/21_store-config/2101_Pending-Changes.png b/doc/screenshot/21_store-config/2101_Pending-Changes.png
new file mode 100644
index 0000000..7e33981
--- /dev/null
+++ b/doc/screenshot/21_store-config/2101_Pending-Changes.png
Binary files differ
diff --git a/doc/screenshot/21_store-config/2102_Store-Config.png b/doc/screenshot/21_store-config/2102_Store-Config.png
new file mode 100644
index 0000000..d985786
--- /dev/null
+++ b/doc/screenshot/21_store-config/2102_Store-Config.png
Binary files differ
diff --git a/doc/screenshot/21_store-config/2103_Show-Diff.png b/doc/screenshot/21_store-config/2103_Show-Diff.png
new file mode 100644
index 0000000..7025f6c
--- /dev/null
+++ b/doc/screenshot/21_store-config/2103_Show-Diff.png
Binary files differ
diff --git a/doc/screenshot/22_upload-config/2201_go-to-upload.png b/doc/screenshot/22_upload-config/2201_go-to-upload.png
new file mode 100644
index 0000000..1dda67c
--- /dev/null
+++ b/doc/screenshot/22_upload-config/2201_go-to-upload.png
Binary files differ
diff --git a/doc/screenshot/22_upload-config/2202_choose-file.png b/doc/screenshot/22_upload-config/2202_choose-file.png
new file mode 100644
index 0000000..a8717dd
--- /dev/null
+++ b/doc/screenshot/22_upload-config/2202_choose-file.png
Binary files differ
diff --git a/doc/screenshot/22_upload-config/2203_syntax-error.png b/doc/screenshot/22_upload-config/2203_syntax-error.png
new file mode 100644
index 0000000..ca81da0
--- /dev/null
+++ b/doc/screenshot/22_upload-config/2203_syntax-error.png
Binary files differ
diff --git a/doc/screenshot/22_upload-config/2204_duplicate-name.png b/doc/screenshot/22_upload-config/2204_duplicate-name.png
new file mode 100644
index 0000000..5f9c809
--- /dev/null
+++ b/doc/screenshot/22_upload-config/2204_duplicate-name.png
Binary files differ
diff --git a/doc/screenshot/81_history/8101_bpaddon-overview.png b/doc/screenshot/81_history/8101_bpaddon-overview.png
new file mode 100644
index 0000000..6ae8cb0
--- /dev/null
+++ b/doc/screenshot/81_history/8101_bpaddon-overview.png
Binary files differ
diff --git a/doc/screenshot/81_history/8102_bpaddon-detail.png b/doc/screenshot/81_history/8102_bpaddon-detail.png
new file mode 100644
index 0000000..7b38a1e
--- /dev/null
+++ b/doc/screenshot/81_history/8102_bpaddon-detail.png
Binary files differ