You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kie.apache.org by pe...@apache.org on 2024/02/01 16:37:58 UTC

(incubator-kie-kogito-examples) branch main updated: incubator-kie-issues#723: Adding `process-usertasks-timer-data-index-persistence-addon-quarkus` showcasing the `kogito-addons-quarkus-data-index-persistence-postgresql` including Jobs Service (#1833)

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

pefernan pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-kie-kogito-examples.git


The following commit(s) were added to refs/heads/main by this push:
     new 0b6ef9d81 incubator-kie-issues#723: Adding `process-usertasks-timer-data-index-persistence-addon-quarkus` showcasing the `kogito-addons-quarkus-data-index-persistence-postgresql` including Jobs Service  (#1833)
0b6ef9d81 is described below

commit 0b6ef9d81447f1bfe8603d3bb577f5138d09a07b
Author: Pere Fernández <pe...@users.noreply.github.com>
AuthorDate: Thu Feb 1 17:37:53 2024 +0100

    incubator-kie-issues#723: Adding `process-usertasks-timer-data-index-persistence-addon-quarkus` showcasing the `kogito-addons-quarkus-data-index-persistence-postgresql` including Jobs Service  (#1833)
    
    * Adding `process-usertasks-timer-data-index-persistence-addon-quarkus`, showcasing the `kogito-addons-quarkus-data-index-persistence-postgresql` with with Jobs Service`
    
    * - Fix headers
    
    * - Using the `kogito-addons-quarkus-jobs`
    
    * - Adding *Show active Hiring process instance at Kogito Management Console*
    
    * - Adding *Complete Hiring process instances using Kogito Task Console*
    
    * - Upgraded `postgresql` version
    - Upgraded `pgadmin` version.
    - Added default config for pgadmin (server list, pgpass...)
    - Minor readme tweaks
    
    * - Rolling back unnecessary change
    
    * - Flyway fixes
---
 kogito-quarkus-examples/pom.xml                    |    1 +
 .../README.md                                      |  538 +++++
 .../docker-compose/.gitignore                      |    3 +
 .../docker-compose/README.md                       |   57 +
 .../docker-compose/docker-compose.yml              |  146 ++
 .../docker-compose/keycloak/kogito-realm.json      | 2242 ++++++++++++++++++++
 .../docker-compose/pgadmin/pgpass                  |    3 +
 .../docker-compose/pgadmin/servers.json            |   14 +
 .../docker-compose/sql/init.sql                    |   33 +
 .../docker-compose/startServices.sh                |   54 +
 .../docs/images/g1_1_mc_list.png                   |  Bin 0 -> 36543 bytes
 .../docs/images/g1_2_mc_details.png                |  Bin 0 -> 94593 bytes
 .../docs/images/g1_3_mc_details_executed_job.png   |  Bin 0 -> 97038 bytes
 .../docs/images/g2_10_mc_details_completed.png     |  Bin 0 -> 85413 bytes
 .../docs/images/g2_1_mc_list.png                   |  Bin 0 -> 34309 bytes
 .../docs/images/g2_2_mc_details.png                |  Bin 0 -> 91711 bytes
 .../docs/images/g2_3_tc_inbox.png                  |  Bin 0 -> 28098 bytes
 .../docs/images/g2_4_tc_hr_form.png                |  Bin 0 -> 33900 bytes
 .../docs/images/g2_5_tc_hr_form_notification.png   |  Bin 0 -> 21947 bytes
 .../docs/images/g2_6_mc_details.png                |  Bin 0 -> 83551 bytes
 .../docs/images/g2_7_tc_inbox.png                  |  Bin 0 -> 29489 bytes
 .../docs/images/g2_8_tc_it_form.png                |  Bin 0 -> 33854 bytes
 .../docs/images/g2_9_tc_inbox_empty.png            |  Bin 0 -> 28261 bytes
 .../docs/images/generate_offer_assignments.png     |  Bin 0 -> 51019 bytes
 .../docs/images/hiring_diagram.png                 |  Bin 0 -> 73493 bytes
 .../docs/images/hr_interview_assignments.png       |  Bin 0 -> 60594 bytes
 .../docs/images/it_interview_assignments.png       |  Bin 0 -> 56220 bytes
 .../docs/images/mc_details_1.png                   |  Bin 0 -> 137754 bytes
 .../docs/images/mc_list.png                        |  Bin 0 -> 84979 bytes
 .../docs/images/new_hiring_offer_dmn.png           |  Bin 0 -> 23193 bytes
 .../docs/images/new_hiring_offer_dmn_decision.png  |  Bin 0 -> 74373 bytes
 .../docs/images/new_hiring_offer_dmn_types.png     |  Bin 0 -> 59378 bytes
 .../pom.xml                                        |  241 +++
 .../main/java/org/kie/kogito/hr/CandidateData.java |   93 +
 .../src/main/java/org/kie/kogito/hr/Offer.java     |   46 +
 .../main/resources/META-INF/processSVG/hiring.svg  |    1 +
 .../main/resources/META-INF/resources/index.html   |  150 ++
 .../src/main/resources/NewHiringOffer.dmn          |  163 ++
 .../src/main/resources/application.properties      |   52 +
 .../src/main/resources/hiring.bpmn                 |  691 ++++++
 40 files changed, 4528 insertions(+)

diff --git a/kogito-quarkus-examples/pom.xml b/kogito-quarkus-examples/pom.xml
index ea58824df..67e4b8a8d 100644
--- a/kogito-quarkus-examples/pom.xml
+++ b/kogito-quarkus-examples/pom.xml
@@ -95,6 +95,7 @@
         <module>process-usertasks-quarkus-with-console</module>
         <module>process-usertasks-quarkus</module>
         <module>process-usertasks-timer-quarkus-with-console</module>
+        <module>process-usertasks-timer-data-index-persistence-addon-quarkus</module>
         <module>process-usertasks-with-security-oidc-quarkus-with-console</module>
         <module>process-usertasks-with-security-oidc-quarkus</module>
         <module>process-usertasks-with-security-quarkus</module>
diff --git a/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/README.md b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/README.md
new file mode 100644
index 000000000..1b3c4418c
--- /dev/null
+++ b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/README.md
@@ -0,0 +1,538 @@
+# Process user tasks with timer with persistence addon : Hiring
+
+## Description
+
+This example showcases a basic implementation of the **Hiring** process that drives a *Candidate* through different 
+interviews until he gets hired.
+
+This quickstart project shows a simple example user task orchestration including the use of DMN decisions to
+generate the candidate offer and timers to skip User Tasks.
+
+This example also demonstrates how to configure the whole *Kogito* environment using the new *Compact Architecture* that
+enable simplifying the communication among *Kogito* services removing the need of events (Kafka/HTTP) between them. This can 
+be achieved using the following *Quarkus* addons:
+- `kogito-addons-quarkus-data-index-persistence-postgresql`: enables the *Kogito Runtime* persisting directly into the 
+*Data-Index* database.
+- `kogito-addons-quarkus-jobs`: enables collocating the *Jobs Service* inside the *Kogito Runtime*.
+
+## The Java models
+
+The **Hiring** process uses two POJOs to handle the process data, both of them can be found in the *org.kie.kogito.hr* package.
+
+The `CandidateData` POJO is the input of the process. It represents the person that wants to get the job.
+
+```java
+public class CandidateData {
+
+    private String name; // Name of the candidate
+    private String lastName; // Last name of the candidate
+    private String email; // Email of the candidate 
+    private Integer experience; // Years of experience
+    private List<String> skills; // List of technical skills
+
+    // Constructors, setters, getters...
+}
+```
+
+The `Offer` POJO is the output of the process and represents the job offer that will be sent to the candidate. 
+It will be automatically calculated during the process execution depending on the candidate years of experience & skills.
+```java
+public class Offer {
+
+    private String category; // Job category based on the candidate experience
+    private Integer salary; // Salary based on the candidate experience and skills
+
+    // Constructors, setters, getters...
+}
+```
+## The *New Hiring Offer* DMN
+This example makes use of the *New Hiring Offer* DMN to generate a base offer for the `Candidate`. The DMN looks like this:
+
+In this simple DMN we have an `Offer` *Decision*, that will generate the candidate offer, which
+has a requirement of a `CandidateData` *Input Data*.
+
+<div style="text-align:center">
+   <figure>
+      <img width=55%  src="docs/images/new_hiring_offer_dmn.png" alt="DMN Diagram">
+      <figcaption>New Hiring Offer DMN diagram</figcaption>
+   </figure>
+</div>
+
+The DMN defines the following data types (`tCandidateData` & `tOffer` ) matching the POJOs defined in the project 
+(`CandidateData.java` & `Offer.java`):
+
+<div style="text-align:center">
+   <figure>
+      <img width=75%  src="docs/images/new_hiring_offer_dmn_types.png" alt="DMN Type Definitions">
+      <figcaption>New Hiring Offer DMN types</figcaption>
+   </figure>
+</div>
+
+As expected, `CandidateData` *Input Data* & `Offer` *Decision* have a `tCandidateData` data
+
+The `Offer` decision uses the following *Boxed Expression* to generate the `tOffer`:
+
+<div style="text-align:center">
+   <figure>
+      <img width=75%  src="docs/images/new_hiring_offer_dmn_decision.png" alt="DMN Decision">
+      <figcaption>New Hiring Offer DMN decision</figcaption>
+   </figure>
+</div>
+
+## The Hiring Process
+### Process variables
+
+The process handles the following _Variables_:
+
+| Variable           | Type                              | Tags         | Description                                       |
+|--------------------|-----------------------------------|--------------|---------------------------------------------------|
+| **candidateData**  | `org.kie.kogito.hr.CandidateData` | **input**    | The candidate data                                |
+| **offer**          | `org.kie.kogito.hr.Offer`         | **output**   | The generated candidate offer                     |
+| **hr_approval**    | `Boolean`                         | **internal** | Determines that HR department approves the hiring |
+| **it_approval**    | `Boolean`                         | **internal** | Determines that IT department approves the hiring |
+
+### The BPMN Process
+
+<div style="text-align:center">
+   <figure>
+      <img width=75%  src="docs/images/hiring_diagram.png" alt="Hiring Process Diagram">
+      <figcaption>Hiring Process Diagram</figcaption>
+   </figure>
+</div>
+
+The process starts receiving the `CandidateData` as an input and storing it into the `candidateData` variable, and if the 
+candidate meets two minimal requirements, the process will continue and reach the **Generate base offer**, otherwise the 
+candidate application will be denied and the process will complete without sending the `offer` to the candidate.
+
+The **Generate base offer** is a *Business Rule Task* that will use the *New Hiring Offer* decision defined in the 
+`NewHiringOffer.dmn` to generate the an `Offer` based on the candidate experience and skills. The task takes the `candidateData`
+as an input and will produce an instance of `org.kie.kogito.hr.Offer` that will be stored in the `offer` variable.
+
+
+<div style="text-align:center">
+   <figure>
+      <img width=75%  src="docs/images/generate_offer_assignments.png" alt="Offer assignments">
+      <figcaption><b>Generate base Offer</b> data assignments</figcaption>
+   </figure>
+</div>
+
+After the `offer` has been generated, the process will jump into the **HR Interview** *User Task*, where the candidate we'll 
+be interviewed by the *HR* department. The task takes the `candidateData` and `offer` as inputs and as an output will produce
+the `hr_approve` boolean and an updated `offer`.
+
+<div style="text-align:center">
+   <figure>
+      <img width=75%  src="docs/images/hr_interview_assignments.png" alt="HR Interview assignments">
+      <figcaption><b>HR Interviewr</b> task data assignments</figcaption>
+   </figure>
+</div>
+
+The **HR Interview** *User Task* also has a *Boundary Timer Event* that will prevent the task to delay and will cancel the
+task after certain time (for example purpose just 3 minutes). This *Boundary Timer Event* will schedule a Job in the Jobs Service 
+that when trigger will notify the *Kogito Runtime* to cancel the task and  deny the application.
+
+If **HR Interview** successfully completed, the process will jump into the **IT Interview** *User Task*. Again the candidate 
+we'll have a second interview with the *IT* department. Again, this task will take the `candidateData` and `offer` as inputs 
+but as an output will produce the `it_approve` boolean.
+
+<div style="text-align:center">
+   <figure>
+      <img width=75%  src="docs/images/it_interview_assignments.png" alt="IT Interview assignments">
+      <figcaption><b>IT Interviewr</b> task data assignments</figcaption>
+   </figure>
+</div>
+
+
+Once both tasks are completed, if the candidate got the approvals from *HR* & *IT*  (both `hr_interview` & `hr_interview` being true)
+the process will jump into the **Send Offer to Candidate** *Script Task* that will notify the candidate about the offer 
+and the process will end.
+
+> **NOTE:** for simplicity, all the *User Tasks* in this example are assigned to the *jdoe* user present in the keycloak configuration
+
+## Running the example
+### Prerequisites
+
+* Java 17+ installed
+* Environment variable JAVA_HOME set accordingly
+* Maven 3.9.3+ installed
+* Docker and Docker Compose to run the required example infrastructure.
+
+And when using native image compilation, you will also need:
+- GraalVM 20.3+ installed
+- Environment variable GRAALVM_HOME set accordingly
+- GraalVM native image needs as well native-image extension: https://www.graalvm.org/reference-manual/native-image/
+- Note that GraalVM native image compilation typically requires other packages (glibc-devel, zlib-devel and gcc) to be installed too, please refer to GraalVM installation documentation for more details.
+
+### Infrastructure Services
+
+This quickstart provides a docker compose template that starts all the required services. This setup ensures that all services are connected with a default configuration.
+
+- PostgreSQL: 5432
+- Data Index: 8180
+- Management Console: 8280
+- Task Console: 8380
+- Keycloak: 8480
+- PgAdmin: 8055
+- Kogito Example Service: 8080
+
+To help bootstraping the Infrastructure Services, the example provides the `startServices.sh` script inside the *docker-compose* 
+folder.
+
+> **_NOTE_**: the docker compose template requires using _extra_hosts_ to allow the services use the host network, this may 
+> carry some issues if you are using a **podman** version older than **4.7**.
+
+### Building & Running the example
+
+To build the example, on a Terminal, run the following command:
+```shell
+mvn clean package -Pcontainer
+```
+This will build the example quarkus application and create a Docker image that will be started in the `docker-compose` template.
+
+To execute the full example (including consoles), open a Terminal and run the following command inside the `docker-compose` folder:
+
+```shell
+sh startServices.sh 
+```
+
+Additionally, if you want to start only the example and the minimal Infrastructure Services (PostgreSQL, Data-Index and Jobs Service), 
+you can run the same `startServices.sh` script but passing the `example` argument 
+
+```shell
+sh startServices.sh example
+```
+
+> **_NOTE:_**  starting the Infrastructure Services, please consider running a ```mvn clean package -Pcontainer```
+> command on the project root before running the ```startServices.sh``` script for the first time or any time you modify the project.
+
+### Running the example in Development mode
+
+To run the example in Development mode, just run the following command in a Terminal:
+
+```shell
+mvn clean package quarkus:dev -Pdevelopment
+```
+
+The Development Mode will embed all the needed Infrastructure Services (PostgreSQL, Data-Index & Jobs Service) and won't 
+require any extra step.
+
+The `development` profile includes the **Runtime Tools Quarkus Extension** that exposes a new section in the **Quarkus Dev-UI** 
+unifying the **Management Console** & **Task Console** functionalities. **Quarkus Dev-UI** is available at http://localhost:8080/q/dev
+
+> **_NOTE:_**  For more information about how to work with Kogito Runtime Tools Quarkus Extension, please refer to the [Kogito Documentation](https://docs.kogito.kie.org/latest/html_single/#con-runtime-tools-dev-ui_kogito-developing-process-services) page.
+
+### Starting an instance of the Hiring Process
+
+Once the service is up and running you can make use of the **Hiring** application by a sending request to `http://localhost:8080/hiring`.
+
+Sending the following valid `CandidateData` will start a process instance that will land into the *HR Interview* task:
+
+```json
+{
+  "candidateData": {
+    "name": "Jon",
+    "lastName": "Snow",
+    "email": "jon@snow.org",
+    "experience": 5,
+    "skills": [
+      "Java", "Kogito", "Fencing"
+    ]
+  }
+}
+```
+
+In a Terminal you can execute this curl command to start a **Hiring** process:
+```bash
+curl -H "Content-Type: application/json" -H "Accept: application/json" -X POST http://localhost:8080/hiring -d '{"candidateData": { "name": "Jon", "lastName": "Snow", "email": "jon@snow.org", "experience": 5, "skills": ["Java", "Kogito", "Fencing"]}}'
+```
+
+If everything went well you may get a response like:
+```json
+{
+  "id": "628e679f-4deb-4abc-9f28-668914c64ef9",
+  "offer": {
+    "category": "Senior Software Engineer",
+    "salary": 40450
+  }
+}
+```
+
+In the server log You may find a trace like:
+```
+New Hiring has been created for candidate: Jon Snow
+###################################
+Generated offer for candidate: Jon Snow
+Job Category: Senior Software Engineer
+Base salary: 40450
+###################################
+```
+
+Use the following `CandidateData` that don't match the minimal candidate requirements, to start a process that will automatically end:
+```json
+{
+  "candidateData": {
+    "name": "Jon",
+    "lastName": "Snow",
+    "email": "jon@snow.org",
+    "experience": 0,
+    "skills": []
+  }
+}
+```
+
+In a Terminal you can execute this curl command to start a **Hiring** process:
+```bash
+curl -H "Content-Type: application/json" -H "Accept: application/json" -X POST http://localhost:8080/hiring -d '{"candidateData": { "name": "Jon", "lastName": "Snow", "email": "jon@snow.org", "experience": 0, "skills": []}}'
+```
+
+If everything went well you may get a response like:
+```json
+{
+  "id": "3659601a-bb59-458d-859e-7892621ad5b7",
+  "offer": null
+}
+```
+
+In the server log You may find a trace like:
+```
+New Hiring has been created for candidate: Jon Snow
+###################################
+Candidate Jon Snow don't meet the requirements for the position but we'll keep it on records for the future!
+###################################
+```
+
+### Using Keycloak as Authentication Server
+
+In this Quickstart we'll be using [Keycloak](https://www.keycloak.org/) as *Authentication Server*. It will be started as a part of the project *Infrastructure Services*, you can check the configuration on the project [docker-compose.yml](docker-compose/docker-compose.yml) in [docker-compose](docker-compose) folder.
+
+It will install the *Kogito Realm* that comes with a predefined set of users:
+
+| Login         | Password   | Roles               |
+| ------------- | ---------- | ------------------- |
+|    admin      |   admin    | *admin*, *managers* |
+|    alice      |   alice    | *user*              |
+|    jdoe       |   jdoe     | *managers*          |
+
+Once Keycloak is started, you should be able to access your *Keycloak Server* at [localhost:8480/auth](http://localhost:8480/auth) with *admin* user.
+
+> **_NOTE:_** This example uses keycloak authentication to enable security only in the consoles not in runtime.
+
+### Using the Kogito Runtime Consoles to interact with the Hiring Process
+
+The following *step-by-step* guides will show how to take advantage of both *Kogito Management Console* and *Kogito Task Console* 
+to operate with the instances of *Hiring* process.
+
+To be able to follow the guides, please make sure that the example has been built using the `container` and all the *Infractructure Services* 
+are started as explained in the [Building & Running the example](#building--running-the-example) section.
+
+> **_NOTE_**: For more information about how to operate with the *Kogito Runtime Consoles*, please refer to the 
+> [Management Console](https://docs.kogito.kie.org/latest/html_single/#con-management-console_kogito-developing-process-services) & [Task Console](https://docs.kogito.kie.org/latest/html_single/#con-task-console_kogito-developing-process-services) documentation.
+
+#### Show active Hiring process instance at Kogito Management Console
+
+*Kogito Management Console* is the tool that enables the user to view and administrate process instances in our *Kogito application*.
+
+In this guide we'll see how to use the *Kogito Management Console* to view the state of the Hiring process instances.
+
+1. With the example built and all the *Infrastructure Services* running, let's start an instance of the *Hiring* process. To do so, in a Terminal just run:
+
+    ```bash
+    curl -H "Content-Type: application/json" -H "Accept: application/json" -X POST http://localhost:8080/hiring -d '{"candidateData": { "name": "Jon", "lastName": "Snow", "email": "jon@snow.org", "experience": 5, "skills": ["Java", "Kogito", "Fencing"]}}'
+    ```
+   
+   If everything went well, you should get a response like:
+   ```json
+    {"id":"064a6372-b5bb-4eff-a059-d7b24d4ac64a","offer":{"category":"Senior Software Engineer","salary":40450}}
+   ```
+   Which indicates that a new process instance with id **064a6372-b5bb-4eff-a059-d7b24d4ac64a** has been started.
+
+
+2. Now let's check the process instance state with the *Kogito Management Console*. To do so, in your browser navigate 
+   to http://localhost:8280 and log in using any of the users specified in the [Using Keycloak as Authentication Server](#using-keycloak-as-authentication-server).
+   
+   Once you are logged in, you should be redirected to the **Process Instances** page where you should be able to see
+   the started process instance in active state.
+   
+
+   <div style="text-align:center;">
+      <figure>
+         <img width=75%  src="docs/images/g1_1_mc_list.png" alt="Process List">
+         <figcaption><b>Process List</b> in <i>Kogito Management Console</i></figcaption>
+      </figure>
+   </div>
+
+
+3. Click on the instance **id** to navigate into the *Process Details* page. In there you'll be able to see different panels displaying relevant information about the instance state, such as the *Diagram*, *Timeline*, *Details*, *Variables*, *Jobs*...
+
+
+   <div style="text-align:center">
+      <figure>
+         <img width=75%  src="docs/images/g1_2_mc_details.png" alt="Process Details">
+         <figcaption><b>Process Instance Details</b> page</figcaption>
+      </figure>
+   </div>
+
+   Now check the **Diagram** panel, in there you'll se the instance execution path. Notice that it's stopped *HR Interview* *User Task* waiting for some input from the user.
+   The task has *Timer* that will skip the task if it's not completed in a given time (3 minutes in this example). You should be able to see the 
+   associated *Job* in the **Jobs** panel. Now, let's wait 3 minutes to see the timer in action.
+
+4. After 3 minutes, the scheduled *Job* should have been executed, making the process instance skip the *HR Interview* task.
+   In the **Process Details** page, click the *Refresh* button to see the process instance state.
+
+   <div style="text-align:center">
+      <figure>
+         <img width=75%  src="docs/images/g1_3_mc_details_executed_job.png" alt="Process Details after timer">
+         <figcaption>Process Instance completed after the timer execution.</figcaption>
+      </figure>
+   </div>
+
+   Again, check the *Diagram* panel to see the process instance execution path and the *HR Interview* task 
+   should have been skipped and the process instance continued its execution by following the *Application denied* path
+   reaching the *Completed* state.
+
+   Notice in the *Jobs* panel that the associated *Job* has the **Executed** status.
+
+#### Complete Hiring process instances using Kogito Task Console
+
+When a *Kogito* process reaches a *User Task*, the process execution stops waiting for the user input
+that will enable the *User Task* to finish and allowing the process execution to continue.
+
+*Kogito Task Console* is the tool that enables the user interacting with the process *User Tasks* and provide the necesary data
+for the process to continue (usually wiht forms).
+
+In this guide, we'll see how to complete the process *User Tasks* using the *Kogito Task Console* to interact with the process *User Tasks* 
+using the engine autogenerated forms.
+
+> **_NOTE_**: For simplicity, all the *User Tasks* are assigned to the user *jdoe*. Please make sure you use the *jdoe*/*jdoe* credentials
+> when logging in the *Task Console*
+
+1. With the example built and all the *Infrastructure Services* running, let's start an instance of the *Hiring* process. To do so, in a Terminal just run:
+
+    ```bash
+    curl -H "Content-Type: application/json" -H "Accept: application/json" -X POST http://localhost:8080/hiring -d '{"candidateData": { "name": "Jon", "lastName": "Snow", "email": "jon@snow.org", "experience": 5, "skills": ["Java", "Kogito", "Fencing"]}}'
+    ```
+
+   If everything went well, you should get a response like:
+   ```json
+    {"id":"3cf0d58f-a824-4046-ba6c-c2e79edc1df7","offer":{"category":"Senior Software Engineer","salary":40450}}
+   ```
+   Which indicates that a new process instance with id **3cf0d58f-a824-4046-ba6c-c2e79edc1df7** has been started.
+
+
+2. Let's check the process instance state. Again browse to http://localhost:8280 to access the *Kogito Management Console*,
+   and in the **Process List** click the **Id** column to open the **Process Details** page.
+
+   <div style="text-align:center;">
+      <figure>
+         <img width=75%  src="docs/images/g2_1_mc_list.png" alt="Process List"/>
+         <figcaption>Process List in <i>Kogito Management Console</i></figcaption>
+      </figure>
+   </div>
+
+   <div style="text-align:center">
+      <figure>
+         <img width=75%  src="docs/images/g2_2_mc_details.png" alt="Process Details">
+         <figcaption>Process instance Details page.</figcaption>
+      </figure>
+   </div>
+
+   As expected, the process instance is stopped in the *HR Interview* task waiting for some input from the user. Let's try to 
+   complete the task.
+
+
+3. Now open the *Kogito Task Console* by browsing to http://localhost:8380 and login using the **jdoe/jdoe** credentials.
+   After logging in, you'll be redirected to the **Task Inbox** page, which contains the list of *Active* tasks assigned to the 
+   logged user. In this case you should be able to see only the new *HR Interview* task.
+
+   <div style="text-align:center;">
+      <figure>
+         <img width=75%  src="docs/images/g2_3_tc_inbox.png" alt="Task Inbox"/>
+         <figcaption><b>Task Inbox</b> in <i>Kogito Task Console</i></figcaption>
+      </figure>
+   </div>
+
+   Click on the **HR Interview** task to open the form and complete it!
+
+
+4. The **Task Form** is the main component to interact with User Tasks, it allows the user to provide the data required by 
+   the task and transition it to the next phase, allowing the Process to continue. The **Task Form** is autogenerated based
+   on the *User Task* data assignments.
+
+   
+   <div style="text-align:center;">
+      <figure>
+         <img width=75%  src="docs/images/g2_4_tc_hr_form.png" alt="HR Interview Form"/>
+         <figcaption><i>HR Interview</i> <b>Task Form</b></figcaption>
+      </figure>
+   </div>
+
+   
+   *HR Interview* Form allows you to edit the actual **Offer** that will be sent to the *Candidate* and also approve or deny 
+   the job application with the **Approve** checkbox.
+   
+   Now, check the **Approve** checkbox click the  **Complete** button in order to submit the form and complete the task. If the
+   task could be successfully completed, a notification should appear in the screen and the form will stay in Read-Only mode.
+
+
+   <div style="text-align:center;">
+      <figure>
+         <img width=75%  src="docs/images/g2_5_tc_hr_form_notification.png" alt="HR Interview Form Notification"/>
+         <figcaption><i>HR Interview</i> Success notification!</figcaption>
+      </figure>
+   </div>
+
+   With the *HR Interview* task successfully completed the process has moved forward and reached the *IT Interview* task.
+
+   Optionally, you can check the process instance state in the **Kogito Management Console** and verify the current
+   execution path.
+
+   <div style="text-align:center;">
+      <figure>
+         <img width=75%  src="docs/images/g2_6_mc_details.png" alt="Process Details"/>
+         <figcaption>Process Instance details stopped in <i>IT Interview</i></figcaption>
+      </figure>
+   </div>
+
+5. Now is time to complete the **IT Interview** task and complete this Hiring process instance. In **Task Console**, go 
+   back to  **Task Inbox** and as expected, there you'll see that **HR Interview** is no longer available and a new
+   **IT Interview** has appeared.
+
+   <div style="text-align:center;">
+      <figure>
+         <img width=75%  src="docs/images/g2_7_tc_inbox.png" alt="Task Inbox"/>
+         <figcaption><i>IT Interview</i> in <b>Task Inbox</b></figcaption>
+      </figure>
+   </div>
+
+   As done in Step #3, click in the **IT Interview** task to open the task form. *IT Interview* task only needs the 
+   candidate **Approval** to be submitted. Please, check the **Approval** field and click the **Complete** button to
+   submit the form.
+
+   <div style="text-align:center;">
+      <figure>
+         <img width=75%  src="docs/images/g2_8_tc_it_form.png" alt="IT Interview Form"/>
+         <figcaption><i>IT Interview</i> <b>Task Form</b></figcaption>
+      </figure>
+   </div>
+
+
+6. After the form is submitted the *IT Task* should be completed and the process should continue, notifying the *Candidate* 
+   that he has succesfully finished the Hiring process. Please go back to **Task Inbox** to verify there are no other active tasks
+   waiting for you.
+
+   <div style="text-align:center;">
+      <figure>
+         <img width=75%  src="docs/images/g2_9_tc_inbox_empty.png" alt="Empty Task Inbox"/>
+         <figcaption>Empty **Task Inbox** after completing the *IT Interview* Task</figcaption>
+      </figure>
+   </div>
+
+   You can also open use *Kogito Management Console* to check the state of the process instance and verify that the
+   instance has been successfully completed.
+
+   <div style="text-align:center;">
+      <figure>
+         <img width=75%  src="docs/images/g2_10_mc_details_completed.png" alt="Hiring Process succesfully completed"/>
+         <figcaption>Hiring Process sucessfully completed</figcaption>
+      </figure>
+   </div>
\ No newline at end of file
diff --git a/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docker-compose/.gitignore b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docker-compose/.gitignore
new file mode 100644
index 000000000..b6632dbda
--- /dev/null
+++ b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docker-compose/.gitignore
@@ -0,0 +1,3 @@
+.env
+svg/
+persistence/
\ No newline at end of file
diff --git a/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docker-compose/README.md b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docker-compose/README.md
new file mode 100644
index 000000000..17ed70a4d
--- /dev/null
+++ b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docker-compose/README.md
@@ -0,0 +1,57 @@
+# Kogito and Infrastructure services
+
+To allow a quick setup of all services required to run this demo, we provide a docker compose template that starts the following services:
+- Postgresql
+- PgAdmin
+- Kogito Data Index
+- Kogito Example Service (Only available if the example has been compiled using the `container` mvn profile eg: ```mvn cleanp package -Dcontainer```)
+- Kogito Management Console
+- Kogito Task Console
+- Keycloak
+
+The docker compose template provides three profiles to enable starting only the set of services you want to use. The profiles are:
+- **infra**: Starts only the minimal infrastructure to run the example (Postgresql, pgadmin, Kogito Data Index)
+- **example**: Starts the services in *infra* profile and the Kogito Example Service. Requires the example to be compiled using the `container` mvn profile eg: ```mvn cleanp package -Dcontainer```.
+- **full** (default): includes all the above and also starts the **Management Console**, **Task Console** and a **Keycloak** to handle the consoles authentication. Requires the example to be compiled using the `container` mvn profile eg: ```mvn cleanp package -Dcontainer```.
+
+> NOTE: In order to use it, please ensure you have Docker Compose installed on your machine, otherwise follow the instructions available
+in [here](https://docs.docker.com/compose/install/).
+
+## Starting the services
+
+Use the `startServices.sh` passing the docker profile you want to use as an argument. If no profile is provided the script will default to **full**.
+
+Eg:
+```shell
+sh startServices.sh example
+```
+
+Once the services are started (depending on the profile), the following ports will be assigned on your local machine:
+- Postgresql: 5432
+- PgAdmin: 8055
+- Kogito Data Index: 8180
+- Kogito Example Service: 8080
+- Kogito Management Console: 8280
+- Kogito Task Console: 8380
+- Keycloak: 8480
+
+## Stopping and removing volume data
+
+To stop all services, simply run:
+
+```shell
+docker compose stop
+```
+or 
+
+```shell
+docker compose down 
+```
+to stop the services and remove the containers
+docker-compose -f docker-compose-postgresql.yml stop
+
+For more details please check the Docker Compose documentation.
+
+```shell
+docker-compose --help
+```
diff --git a/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docker-compose/docker-compose.yml b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docker-compose/docker-compose.yml
new file mode 100644
index 000000000..0a057a07f
--- /dev/null
+++ b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docker-compose/docker-compose.yml
@@ -0,0 +1,146 @@
+version: '3'
+
+services:
+  postgres:
+    container_name: postgres
+    image: postgres:16.1-alpine3.19
+    profiles: [ "infra", "example", "full" ]
+    ports:
+      - "5432:5432"
+    volumes:
+      - ./sql:/docker-entrypoint-initdb.d:Z
+    healthcheck:
+      test: [ "CMD", "pg_isready", "-q", "-d", "kogito", "-U", "kogito-user" ]
+      timeout: 45s
+      interval: 10s
+      retries: 50
+    environment:
+      POSTGRES_USER: postgres
+      POSTGRES_PASSWORD: postgres
+
+  pgadmin:
+    container_name: pgadmin
+    image: dpage/pgadmin4:8.2
+    profiles: [ "infra", "example", "full" ]
+    ports:
+      - 8055:80
+    depends_on:
+      - postgres
+    volumes:
+      - ./pgadmin/servers.json:/pgadmin4/servers.json
+      - ./pgadmin/pgpass:/pgadmin4/pgpass
+    entrypoint: >
+      /bin/sh -c "
+      cp -f /pgadmin4/pgpass /var/lib/pgadmin/;
+      chmod 600 /var/lib/pgadmin/pgpass;
+      /entrypoint.sh
+      "
+    environment:
+      PGADMIN_DEFAULT_EMAIL: user@kogito.org
+      PGADMIN_DEFAULT_PASSWORD: pass
+      PGADMIN_CONFIG_SERVER_MODE: 'False'
+      PGADMIN_CONFIG_MASTER_PASSWORD_REQUIRED: 'False'
+
+  data-index:
+    container_name: data-index
+    image: quay.io/kiegroup/kogito-data-index-postgresql:${KOGITO_VERSION}
+    profiles: [ "infra", "example", "full" ]
+    ports:
+      - "8180:8080"
+    depends_on:
+      postgres:
+        condition: service_healthy
+    volumes:
+      - ./persistence:/home/kogito/data/protobufs/
+    environment:
+      QUARKUS_DATASOURCE_JDBC_URL: "jdbc:postgresql://postgres:5432/kogito"
+      QUARKUS_DATASOURCE_USERNAME: kogito-user
+      QUARKUS_DATASOURCE_PASSWORD: kogito-pass
+      QUARKUS_HTTP_CORS_ORIGINS: "/.*/"
+      KOGITO_DATA_INDEX_QUARKUS_PROFILE: "http-events-support"
+      KOGITO_DATA_INDEX_PROPS: -Dkogito.protobuf.folder=/home/kogito/data/protobufs/
+    extra_hosts:
+      - "${DOCKER_GATEWAY_HOST}:host-gateway"
+
+  kogito-example-service:
+    container_name: kogito-example-service
+    image: dev.local/${USER}/kogito-example-service:1.0-SNAPSHOT
+    profiles: ["example", "full"]
+    ports:
+      - "8080:8080"
+    depends_on:
+      data-index:
+        condition: service_started
+    environment:
+      QUARKUS_HTTP_CORS_ORIGINS: "/.*/"
+      QUARKUS_DATASOURCE_JDBC_URL: "jdbc:postgresql://postgres:5432/kogito"
+      QUARKUS_DATASOURCE_REACTIVE_URL: "postgresql://postgres:5432/kogito"
+      QUARKUS_DATASOURCE_USERNAME: kogito-user
+      QUARKUS_DATASOURCE_PASSWORD: kogito-pass
+      QUARKUS_DATASOURCE_DB_KIND: postgresql
+      KOGITO_JOBS_SERVICE_URL: http://${DOCKER_GATEWAY_HOST}:8080
+      KOGITO_SERVICE_URL: http://${DOCKER_GATEWAY_HOST}:8080
+      KOGITO_DATAINDEX_HTTP_URL: http://${DOCKER_GATEWAY_HOST}:8180
+    extra_hosts:
+      - "${DOCKER_GATEWAY_HOST}:host-gateway"
+
+  keycloak:
+    container_name: keycloak
+    image: quay.io/keycloak/keycloak:legacy
+    profiles: ["full"]
+    ports:
+      - "8480:8080"
+    depends_on:
+      postgres:
+        condition: service_healthy
+    volumes:
+      - ./keycloak/kogito-realm.json:/tmp/kogito-realm.json
+    healthcheck:
+      test: [ "CMD", "curl", "-f", "http://localhost:8080/auth/realms/kogito" ]
+      interval: 2s
+      timeout: 1s
+      retries: 50
+    environment:
+      DB_VENDOR: POSTGRES
+      DB_ADDR: postgres
+      DB_DATABASE: keycloak
+      DB_USER: kogito-user
+      DB_SCHEMA: public
+      DB_PASSWORD: kogito-pass
+      KEYCLOAK_USER: admin
+      KEYCLOAK_PASSWORD: admin
+      KEYCLOAK_IMPORT: /tmp/kogito-realm.json
+
+  management-console:
+    container_name: management-console
+    image: quay.io/kiegroup/kogito-management-console:${KOGITO_VERSION}
+    profiles: ["full"]
+    ports:
+      - 8280:8080
+    depends_on:
+      data-index:
+        condition: service_started
+      keycloak:
+        condition: service_healthy
+    volumes:
+      - ./svg/:/home/kogito/data/svg/
+    environment:
+      KOGITO_DATAINDEX_HTTP_URL: http://${DOCKER_GATEWAY_HOST:-host.docker.internal}:8180/graphql
+      QUARKUS_HTTP_CORS_ORIGINS: "/.*/"
+      KOGITO_MANAGEMENT_CONSOLE_PROPS: -Dkogito.consoles.keycloak.config.url=http://localhost:8480/auth -Dkogito.consoles.keycloak.config.health-check-url=http://localhost:8480/auth/realms/kogito/.well-known/openid-configuration -Dkogito.svg.folder.path=/home/kogito/data/svg
+
+  task-console:
+    container_name: task-console
+    image: quay.io/kiegroup/kogito-task-console:${KOGITO_VERSION}
+    profiles: ["full"]
+    ports:
+      - 8380:8080
+    depends_on:
+      data-index:
+        condition: service_started
+      keycloak:
+        condition: service_healthy
+    environment:
+      KOGITO_DATAINDEX_HTTP_URL: http://${DOCKER_GATEWAY_HOST:-host.docker.internal}:8180/graphql
+      QUARKUS_HTTP_CORS_ORIGINS: "/.*/"
+      KOGITO_TASK_CONSOLE_PROPS: -Dkogito.consoles.keycloak.config.url=http://localhost:8480/auth -Dkogito.consoles.keycloak.config.health-check-url=http://localhost:8480/auth/realms/kogito/.well-known/openid-configuration
\ No newline at end of file
diff --git a/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docker-compose/keycloak/kogito-realm.json b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docker-compose/keycloak/kogito-realm.json
new file mode 100644
index 000000000..fd3cdc094
--- /dev/null
+++ b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docker-compose/keycloak/kogito-realm.json
@@ -0,0 +1,2242 @@
+{
+  "realm": "kogito",
+  "notBefore": 0,
+  "revokeRefreshToken": false,
+  "refreshTokenMaxReuse": 0,
+  "accessTokenLifespan": 300,
+  "accessTokenLifespanForImplicitFlow": 900,
+  "ssoSessionIdleTimeout": 1800,
+  "ssoSessionMaxLifespan": 36000,
+  "ssoSessionIdleTimeoutRememberMe": 0,
+  "ssoSessionMaxLifespanRememberMe": 0,
+  "offlineSessionIdleTimeout": 2592000,
+  "offlineSessionMaxLifespanEnabled": false,
+  "offlineSessionMaxLifespan": 5184000,
+  "accessCodeLifespan": 60,
+  "accessCodeLifespanUserAction": 300,
+  "accessCodeLifespanLogin": 1800,
+  "actionTokenGeneratedByAdminLifespan": 43200,
+  "actionTokenGeneratedByUserLifespan": 300,
+  "enabled": true,
+  "sslRequired": "external",
+  "registrationAllowed": false,
+  "registrationEmailAsUsername": false,
+  "rememberMe": false,
+  "verifyEmail": false,
+  "loginWithEmailAllowed": true,
+  "duplicateEmailsAllowed": false,
+  "resetPasswordAllowed": false,
+  "editUsernameAllowed": false,
+  "bruteForceProtected": false,
+  "permanentLockout": false,
+  "maxFailureWaitSeconds": 900,
+  "minimumQuickLoginWaitSeconds": 60,
+  "waitIncrementSeconds": 60,
+  "quickLoginCheckMilliSeconds": 1000,
+  "maxDeltaTimeSeconds": 43200,
+  "failureFactor": 30,
+  "roles": {
+    "realm": [
+      {
+        "name": "managers",
+        "composite": false,
+        "clientRole": false,
+        "containerId": "11d78bf6-6d10-4484-baba-a1388379d68b",
+        "attributes": {}
+      },
+      {
+        "name": "uma_authorization",
+        "description": "${role_uma_authorization}",
+        "composite": false,
+        "clientRole": false,
+        "containerId": "11d78bf6-6d10-4484-baba-a1388379d68b",
+        "attributes": {}
+      },
+      {
+        "name": "admin",
+        "composite": false,
+        "clientRole": false,
+        "containerId": "11d78bf6-6d10-4484-baba-a1388379d68b",
+        "attributes": {}
+      },
+      {
+        "name": "user",
+        "composite": false,
+        "clientRole": false,
+        "containerId": "11d78bf6-6d10-4484-baba-a1388379d68b",
+        "attributes": {}
+      },
+      {
+        "name": "HR",
+        "composite": false,
+        "clientRole": false,
+        "containerId": "11d78bf6-6d10-4484-baba-a1388379d68b",
+        "attributes": {}
+      },
+      {
+        "name": "IT",
+        "composite": false,
+        "clientRole": false,
+        "containerId": "11d78bf6-6d10-4484-baba-a1388379d68b",
+        "attributes": {}
+      },
+      {
+        "name": "offline_access",
+        "description": "${role_offline-access}",
+        "composite": false,
+        "clientRole": false,
+        "containerId": "11d78bf6-6d10-4484-baba-a1388379d68b",
+        "attributes": {}
+      }
+    ],
+    "client": {
+      "realm-management": [
+        {
+          "name": "manage-identity-providers",
+          "description": "${role_manage-identity-providers}",
+          "composite": false,
+          "clientRole": true,
+          "containerId": "376bd940-e50a-4495-80fc-9c6c07312748",
+          "attributes": {}
+        },
+        {
+          "name": "impersonation",
+          "description": "${role_impersonation}",
+          "composite": false,
+          "clientRole": true,
+          "containerId": "376bd940-e50a-4495-80fc-9c6c07312748",
+          "attributes": {}
+        },
+        {
+          "name": "view-identity-providers",
+          "description": "${role_view-identity-providers}",
+          "composite": false,
+          "clientRole": true,
+          "containerId": "376bd940-e50a-4495-80fc-9c6c07312748",
+          "attributes": {}
+        },
+        {
+          "name": "view-realm",
+          "description": "${role_view-realm}",
+          "composite": false,
+          "clientRole": true,
+          "containerId": "376bd940-e50a-4495-80fc-9c6c07312748",
+          "attributes": {}
+        },
+        {
+          "name": "query-users",
+          "description": "${role_query-users}",
+          "composite": false,
+          "clientRole": true,
+          "containerId": "376bd940-e50a-4495-80fc-9c6c07312748",
+          "attributes": {}
+        },
+        {
+          "name": "manage-clients",
+          "description": "${role_manage-clients}",
+          "composite": false,
+          "clientRole": true,
+          "containerId": "376bd940-e50a-4495-80fc-9c6c07312748",
+          "attributes": {}
+        },
+        {
+          "name": "manage-events",
+          "description": "${role_manage-events}",
+          "composite": false,
+          "clientRole": true,
+          "containerId": "376bd940-e50a-4495-80fc-9c6c07312748",
+          "attributes": {}
+        },
+        {
+          "name": "realm-admin",
+          "description": "${role_realm-admin}",
+          "composite": true,
+          "composites": {
+            "client": {
+              "realm-management": [
+                "impersonation",
+                "manage-identity-providers",
+                "view-identity-providers",
+                "view-realm",
+                "query-users",
+                "manage-clients",
+                "manage-events",
+                "manage-realm",
+                "view-authorization",
+                "manage-authorization",
+                "view-users",
+                "create-client",
+                "query-clients",
+                "query-groups",
+                "manage-users",
+                "view-clients",
+                "view-events",
+                "query-realms"
+              ]
+            }
+          },
+          "clientRole": true,
+          "containerId": "376bd940-e50a-4495-80fc-9c6c07312748",
+          "attributes": {}
+        },
+        {
+          "name": "manage-realm",
+          "description": "${role_manage-realm}",
+          "composite": false,
+          "clientRole": true,
+          "containerId": "376bd940-e50a-4495-80fc-9c6c07312748",
+          "attributes": {}
+        },
+        {
+          "name": "view-authorization",
+          "description": "${role_view-authorization}",
+          "composite": false,
+          "clientRole": true,
+          "containerId": "376bd940-e50a-4495-80fc-9c6c07312748",
+          "attributes": {}
+        },
+        {
+          "name": "manage-authorization",
+          "description": "${role_manage-authorization}",
+          "composite": false,
+          "clientRole": true,
+          "containerId": "376bd940-e50a-4495-80fc-9c6c07312748",
+          "attributes": {}
+        },
+        {
+          "name": "create-client",
+          "description": "${role_create-client}",
+          "composite": false,
+          "clientRole": true,
+          "containerId": "376bd940-e50a-4495-80fc-9c6c07312748",
+          "attributes": {}
+        },
+        {
+          "name": "view-users",
+          "description": "${role_view-users}",
+          "composite": true,
+          "composites": {
+            "client": {
+              "realm-management": [
+                "query-groups",
+                "query-users"
+              ]
+            }
+          },
+          "clientRole": true,
+          "containerId": "376bd940-e50a-4495-80fc-9c6c07312748",
+          "attributes": {}
+        },
+        {
+          "name": "query-clients",
+          "description": "${role_query-clients}",
+          "composite": false,
+          "clientRole": true,
+          "containerId": "376bd940-e50a-4495-80fc-9c6c07312748",
+          "attributes": {}
+        },
+        {
+          "name": "query-groups",
+          "description": "${role_query-groups}",
+          "composite": false,
+          "clientRole": true,
+          "containerId": "376bd940-e50a-4495-80fc-9c6c07312748",
+          "attributes": {}
+        },
+        {
+          "name": "manage-users",
+          "description": "${role_manage-users}",
+          "composite": false,
+          "clientRole": true,
+          "containerId": "376bd940-e50a-4495-80fc-9c6c07312748",
+          "attributes": {}
+        },
+        {
+          "name": "view-clients",
+          "description": "${role_view-clients}",
+          "composite": true,
+          "composites": {
+            "client": {
+              "realm-management": [
+                "query-clients"
+              ]
+            }
+          },
+          "clientRole": true,
+          "containerId": "376bd940-e50a-4495-80fc-9c6c07312748",
+          "attributes": {}
+        },
+        {
+          "name": "view-events",
+          "description": "${role_view-events}",
+          "composite": false,
+          "clientRole": true,
+          "containerId": "376bd940-e50a-4495-80fc-9c6c07312748",
+          "attributes": {}
+        },
+        {
+          "name": "query-realms",
+          "description": "${role_query-realms}",
+          "composite": false,
+          "clientRole": true,
+          "containerId": "376bd940-e50a-4495-80fc-9c6c07312748",
+          "attributes": {}
+        }
+      ],
+      "security-admin-console": [],
+      "admin-cli": [],
+      "kogito-service": [
+        {
+          "name": "uma_protection",
+          "composite": false,
+          "clientRole": true,
+          "containerId": "0ac5df91-e044-4051-bd03-106a3a5fb9cc",
+          "attributes": {}
+        }
+      ],
+      "broker": [
+        {
+          "name": "read-token",
+          "description": "${role_read-token}",
+          "composite": false,
+          "clientRole": true,
+          "containerId": "53d4fe53-a039-471e-886a-28eddc950e95",
+          "attributes": {}
+        }
+      ],
+      "account": [
+        {
+          "name": "view-profile",
+          "description": "${role_view-profile}",
+          "composite": false,
+          "clientRole": true,
+          "containerId": "e55e1234-38fa-432d-8d90-39f5e024688d",
+          "attributes": {}
+        },
+        {
+          "name": "manage-account",
+          "description": "${role_manage-account}",
+          "composite": true,
+          "composites": {
+            "client": {
+              "account": [
+                "manage-account-links"
+              ]
+            }
+          },
+          "clientRole": true,
+          "containerId": "e55e1234-38fa-432d-8d90-39f5e024688d",
+          "attributes": {}
+        },
+        {
+          "name": "manage-account-links",
+          "description": "${role_manage-account-links}",
+          "composite": false,
+          "clientRole": true,
+          "containerId": "e55e1234-38fa-432d-8d90-39f5e024688d",
+          "attributes": {}
+        }
+      ]
+    }
+  },
+  "groups": [],
+  "defaultRoles": [
+    "uma_authorization",
+    "offline_access"
+  ],
+  "requiredCredentials": [
+    "password"
+  ],
+  "otpPolicyType": "totp",
+  "otpPolicyAlgorithm": "HmacSHA1",
+  "otpPolicyInitialCounter": 0,
+  "otpPolicyDigits": 6,
+  "otpPolicyLookAheadWindow": 1,
+  "otpPolicyPeriod": 30,
+  "otpSupportedApplications": [
+    "FreeOTP",
+    "Google Authenticator"
+  ],
+  "scopeMappings": [
+    {
+      "clientScope": "offline_access",
+      "roles": [
+        "offline_access"
+      ]
+    }
+  ],
+  "clients": [
+    {
+      "clientId": "account",
+      "name": "${client_account}",
+      "baseUrl": "/auth/realms/kogito/account",
+      "surrogateAuthRequired": false,
+      "enabled": true,
+      "clientAuthenticatorType": "client-secret",
+      "secret": "0136c3ef-0dfd-4b13-a6d0-2c8b6358edec",
+      "defaultRoles": [
+        "view-profile",
+        "manage-account"
+      ],
+      "redirectUris": [
+        "/auth/realms/kogito/account/*"
+      ],
+      "webOrigins": [],
+      "notBefore": 0,
+      "bearerOnly": false,
+      "consentRequired": false,
+      "standardFlowEnabled": true,
+      "implicitFlowEnabled": false,
+      "directAccessGrantsEnabled": false,
+      "serviceAccountsEnabled": false,
+      "publicClient": false,
+      "frontchannelLogout": false,
+      "protocol": "openid-connect",
+      "attributes": {},
+      "authenticationFlowBindingOverrides": {},
+      "fullScopeAllowed": false,
+      "nodeReRegistrationTimeout": 0,
+      "defaultClientScopes": [
+        "web-origins",
+        "role_list",
+        "profile",
+        "roles",
+        "email"
+      ],
+      "optionalClientScopes": [
+        "address",
+        "phone",
+        "offline_access",
+        "microprofile-jwt"
+      ]
+    },
+    {
+      "clientId": "admin-cli",
+      "name": "${client_admin-cli}",
+      "surrogateAuthRequired": false,
+      "enabled": true,
+      "clientAuthenticatorType": "client-secret",
+      "secret": "a951803a-79c7-46a6-8197-e32835286971",
+      "redirectUris": [],
+      "webOrigins": [],
+      "notBefore": 0,
+      "bearerOnly": false,
+      "consentRequired": false,
+      "standardFlowEnabled": false,
+      "implicitFlowEnabled": false,
+      "directAccessGrantsEnabled": true,
+      "serviceAccountsEnabled": false,
+      "publicClient": true,
+      "frontchannelLogout": false,
+      "protocol": "openid-connect",
+      "attributes": {},
+      "authenticationFlowBindingOverrides": {},
+      "fullScopeAllowed": false,
+      "nodeReRegistrationTimeout": 0,
+      "defaultClientScopes": [
+        "web-origins",
+        "role_list",
+        "profile",
+        "roles",
+        "email"
+      ],
+      "optionalClientScopes": [
+        "address",
+        "phone",
+        "offline_access",
+        "microprofile-jwt"
+      ]
+    },
+    {
+      "clientId": "broker",
+      "name": "${client_broker}",
+      "surrogateAuthRequired": false,
+      "enabled": true,
+      "clientAuthenticatorType": "client-secret",
+      "secret": "e1f7edd7-e15c-43b4-8736-ff8204d16836",
+      "redirectUris": [],
+      "webOrigins": [],
+      "notBefore": 0,
+      "bearerOnly": false,
+      "consentRequired": false,
+      "standardFlowEnabled": true,
+      "implicitFlowEnabled": false,
+      "directAccessGrantsEnabled": false,
+      "serviceAccountsEnabled": false,
+      "publicClient": false,
+      "frontchannelLogout": false,
+      "protocol": "openid-connect",
+      "attributes": {},
+      "authenticationFlowBindingOverrides": {},
+      "fullScopeAllowed": false,
+      "nodeReRegistrationTimeout": 0,
+      "defaultClientScopes": [
+        "web-origins",
+        "role_list",
+        "profile",
+        "roles",
+        "email"
+      ],
+      "optionalClientScopes": [
+        "address",
+        "phone",
+        "offline_access",
+        "microprofile-jwt"
+      ]
+    },
+    {
+      "clientId": "kogito-frontend",
+      "rootUrl": "http://localhost:8082",
+      "adminUrl": "http://localhost:8082",
+      "surrogateAuthRequired": false,
+      "enabled": true,
+      "clientAuthenticatorType": "client-secret",
+      "secret": "secret",
+      "redirectUris": [
+        "http://localhost:8082/*"
+      ],
+      "webOrigins": [
+        "http://localhost:8082"
+      ],
+      "notBefore": 0,
+      "bearerOnly": false,
+      "consentRequired": false,
+      "standardFlowEnabled": true,
+      "implicitFlowEnabled": false,
+      "directAccessGrantsEnabled": true,
+      "serviceAccountsEnabled": false,
+      "publicClient": false,
+      "frontchannelLogout": false,
+      "protocol": "openid-connect",
+      "attributes": {
+        "saml.assertion.signature": "false",
+        "saml.force.post.binding": "false",
+        "saml.multivalued.roles": "false",
+        "saml.encrypt": "false",
+        "saml.server.signature": "false",
+        "saml.server.signature.keyinfo.ext": "false",
+        "exclude.session.state.from.auth.response": "false",
+        "saml_force_name_id_format": "false",
+        "saml.client.signature": "false",
+        "tls.client.certificate.bound.access.tokens": "false",
+        "saml.authnstatement": "false",
+        "display.on.consent.screen": "false",
+        "saml.onetimeuse.condition": "false"
+      },
+      "authenticationFlowBindingOverrides": {},
+      "fullScopeAllowed": true,
+      "nodeReRegistrationTimeout": -1,
+      "defaultClientScopes": [
+        "web-origins",
+        "role_list",
+        "profile",
+        "roles",
+        "email"
+      ],
+      "optionalClientScopes": [
+        "address",
+        "phone",
+        "offline_access",
+        "microprofile-jwt"
+      ],
+      "access": {
+        "view": true,
+        "configure": true,
+        "manage": true
+      }
+    },
+    {
+      "clientId": "kogito-app",
+      "rootUrl": "http://localhost:8080",
+      "adminUrl": "http://localhost:8080",
+      "surrogateAuthRequired": false,
+      "enabled": true,
+      "clientAuthenticatorType": "client-secret",
+      "secret": "secret",
+      "redirectUris": [
+        "http://localhost:8080/*"
+      ],
+      "webOrigins": [
+        "*"
+      ],
+      "notBefore": 0,
+      "bearerOnly": false,
+      "consentRequired": false,
+      "standardFlowEnabled": true,
+      "implicitFlowEnabled": false,
+      "directAccessGrantsEnabled": true,
+      "serviceAccountsEnabled": false,
+      "publicClient": false,
+      "frontchannelLogout": false,
+      "protocol": "openid-connect",
+      "attributes": {
+        "saml.assertion.signature": "false",
+        "saml.force.post.binding": "false",
+        "saml.multivalued.roles": "false",
+        "saml.encrypt": "false",
+        "saml.server.signature": "false",
+        "saml.server.signature.keyinfo.ext": "false",
+        "exclude.session.state.from.auth.response": "false",
+        "saml_force_name_id_format": "false",
+        "saml.client.signature": "false",
+        "tls.client.certificate.bound.access.tokens": "false",
+        "saml.authnstatement": "false",
+        "display.on.consent.screen": "false",
+        "saml.onetimeuse.condition": "false"
+      },
+      "authenticationFlowBindingOverrides": {},
+      "fullScopeAllowed": true,
+      "nodeReRegistrationTimeout": -1,
+      "defaultClientScopes": [
+        "web-origins",
+        "role_list",
+        "profile",
+        "roles",
+        "email"
+      ],
+      "optionalClientScopes": [
+        "address",
+        "phone",
+        "offline_access",
+        "microprofile-jwt"
+      ],
+      "access": {
+        "view": true,
+        "configure": true,
+        "manage": true
+      }
+    },
+    {
+      "clientId": "kogito-service",
+      "rootUrl": "",
+      "surrogateAuthRequired": false,
+      "enabled": true,
+      "clientAuthenticatorType": "client-secret",
+      "secret": "secret",
+      "redirectUris": [
+        "*"
+      ],
+      "webOrigins": [
+        "*"
+      ],
+      "notBefore": 0,
+      "bearerOnly": false,
+      "consentRequired": false,
+      "standardFlowEnabled": true,
+      "implicitFlowEnabled": false,
+      "directAccessGrantsEnabled": true,
+      "serviceAccountsEnabled": true,
+      "authorizationServicesEnabled": true,
+      "publicClient": false,
+      "frontchannelLogout": false,
+      "protocol": "openid-connect",
+      "attributes": {},
+      "authenticationFlowBindingOverrides": {},
+      "fullScopeAllowed": true,
+      "nodeReRegistrationTimeout": -1,
+      "protocolMappers": [
+        {
+          "name": "Client ID",
+          "protocol": "openid-connect",
+          "protocolMapper": "oidc-usersessionmodel-note-mapper",
+          "consentRequired": false,
+          "config": {
+            "user.session.note": "clientId",
+            "id.token.claim": "true",
+            "access.token.claim": "true",
+            "claim.name": "clientId",
+            "jsonType.label": "String"
+          }
+        },
+        {
+          "name": "Client IP Address",
+          "protocol": "openid-connect",
+          "protocolMapper": "oidc-usersessionmodel-note-mapper",
+          "consentRequired": false,
+          "config": {
+            "user.session.note": "clientAddress",
+            "id.token.claim": "true",
+            "access.token.claim": "true",
+            "claim.name": "clientAddress",
+            "jsonType.label": "String"
+          }
+        },
+        {
+          "name": "Client Host",
+          "protocol": "openid-connect",
+          "protocolMapper": "oidc-usersessionmodel-note-mapper",
+          "consentRequired": false,
+          "config": {
+            "user.session.note": "clientHost",
+            "id.token.claim": "true",
+            "access.token.claim": "true",
+            "claim.name": "clientHost",
+            "jsonType.label": "String"
+          }
+        }
+      ],
+      "defaultClientScopes": [
+        "web-origins",
+        "role_list",
+        "profile",
+        "roles",
+        "email"
+      ],
+      "optionalClientScopes": [
+        "address",
+        "phone",
+        "offline_access",
+        "microprofile-jwt"
+      ],
+      "authorizationSettings": {
+        "allowRemoteResourceManagement": true,
+        "policyEnforcementMode": "ENFORCING",
+        "resources": [
+          {
+            "name": "User Resource",
+            "ownerManagedAccess": false,
+            "attributes": {},
+            "_id": "df1b74a9-3f10-499d-a581-368de48e512b",
+            "uris": [
+              "/api/users/*"
+            ]
+          },
+          {
+            "name": "Administration Resource",
+            "ownerManagedAccess": false,
+            "attributes": {},
+            "_id": "7124e2f1-e6dc-44b4-87ab-24b010090b97",
+            "uris": [
+              "/api/admin/*"
+            ]
+          }
+        ],
+        "policies": [
+          {
+            "name": "Any User Policy",
+            "description": "Any user granted with the user role can access something",
+            "type": "role",
+            "logic": "POSITIVE",
+            "decisionStrategy": "UNANIMOUS",
+            "config": {
+              "roles": "[{\"id\":\"user\",\"required\":false}]"
+            }
+          },
+          {
+            "name": "Only Administrators",
+            "description": "Only administrators can access",
+            "type": "role",
+            "logic": "POSITIVE",
+            "decisionStrategy": "UNANIMOUS",
+            "config": {
+              "roles": "[{\"id\":\"admin\",\"required\":false}]"
+            }
+          },
+          {
+            "name": "User Resource Permission",
+            "type": "resource",
+            "logic": "POSITIVE",
+            "decisionStrategy": "UNANIMOUS",
+            "config": {
+              "resources": "[\"User Resource\"]",
+              "applyPolicies": "[\"Any User Policy\"]"
+            }
+          },
+          {
+            "name": "Administration Resource Permission",
+            "type": "resource",
+            "logic": "POSITIVE",
+            "decisionStrategy": "UNANIMOUS",
+            "config": {
+              "resources": "[\"Administration Resource\"]",
+              "applyPolicies": "[\"Only Administrators\"]"
+            }
+          }
+        ],
+        "scopes": [],
+        "decisionStrategy": "UNANIMOUS"
+      }
+    },
+    {
+      "clientId": "kogito-console-react",
+      "rootUrl": "http://localhost:9000",
+      "adminUrl": "http://localhost:9000/",
+      "baseUrl": "http://localhost:9000/",
+      "surrogateAuthRequired": false,
+      "enabled": true,
+      "clientAuthenticatorType": "client-secret",
+      "secret": "**********",
+      "redirectUris": [
+        "http://localhost:9000/*"
+      ],
+      "webOrigins": [
+        "*"
+      ],
+      "notBefore": 0,
+      "bearerOnly": false,
+      "consentRequired": false,
+      "standardFlowEnabled": true,
+      "implicitFlowEnabled": false,
+      "directAccessGrantsEnabled": false,
+      "serviceAccountsEnabled": false,
+      "publicClient": true,
+      "frontchannelLogout": false,
+      "protocol": "openid-connect",
+      "attributes": {
+        "saml.assertion.signature": "false",
+        "saml.force.post.binding": "false",
+        "saml.multivalued.roles": "false",
+        "saml.encrypt": "false",
+        "saml.server.signature": "false",
+        "saml.server.signature.keyinfo.ext": "false",
+        "exclude.session.state.from.auth.response": "false",
+        "saml_force_name_id_format": "false",
+        "saml.client.signature": "false",
+        "tls.client.certificate.bound.access.tokens": "false",
+        "saml.authnstatement": "false",
+        "display.on.consent.screen": "false",
+        "saml.onetimeuse.condition": "false"
+      },
+      "authenticationFlowBindingOverrides": {},
+      "fullScopeAllowed": true,
+      "nodeReRegistrationTimeout": -1,
+      "defaultClientScopes": [
+        "web-origins",
+        "role_list",
+        "profile",
+        "roles",
+        "email"
+      ],
+      "optionalClientScopes": [
+        "address",
+        "phone",
+        "offline_access",
+        "microprofile-jwt"
+      ]
+    },
+    {
+      "clientId": "kogito-console-quarkus",
+      "rootUrl": "http://localhost:8380",
+      "adminUrl": "http://localhost:8380/",
+      "baseUrl": "http://localhost:8380/",
+      "surrogateAuthRequired": false,
+      "enabled": true,
+      "clientAuthenticatorType": "client-secret",
+      "secret": "**********",
+      "redirectUris": [
+        "http://localhost:8380/*",
+        "http://localhost:8280/*"
+      ],
+      "webOrigins": [
+        "*"
+      ],
+      "notBefore": 0,
+      "bearerOnly": false,
+      "consentRequired": false,
+      "standardFlowEnabled": true,
+      "implicitFlowEnabled": false,
+      "directAccessGrantsEnabled": false,
+      "serviceAccountsEnabled": false,
+      "publicClient": true,
+      "frontchannelLogout": false,
+      "protocol": "openid-connect",
+      "attributes": {
+        "saml.assertion.signature": "false",
+        "saml.force.post.binding": "false",
+        "saml.multivalued.roles": "false",
+        "saml.encrypt": "false",
+        "saml.server.signature": "false",
+        "saml.server.signature.keyinfo.ext": "false",
+        "exclude.session.state.from.auth.response": "false",
+        "saml_force_name_id_format": "false",
+        "saml.client.signature": "false",
+        "tls.client.certificate.bound.access.tokens": "false",
+        "saml.authnstatement": "false",
+        "display.on.consent.screen": "false",
+        "saml.onetimeuse.condition": "false"
+      },
+      "authenticationFlowBindingOverrides": {},
+      "fullScopeAllowed": true,
+      "nodeReRegistrationTimeout": -1,
+      "protocolMappers": [
+        {
+          "name": "groups",
+          "protocol": "openid-connect",
+          "protocolMapper": "oidc-usermodel-realm-role-mapper",
+          "consentRequired": false,
+          "config": {
+            "multivalued": "true",
+            "user.attribute": "foo",
+            "id.token.claim": "true",
+            "access.token.claim": "true",
+            "claim.name": "groups",
+            "jsonType.label": "String"
+          }
+        }
+      ],
+      "defaultClientScopes": [
+        "web-origins",
+        "role_list",
+        "profile",
+        "roles",
+        "email"
+      ],
+      "optionalClientScopes": [
+        "address",
+        "phone",
+        "offline_access",
+        "microprofile-jwt"
+      ]
+    },
+    {
+      "clientId": "kogito-jobs-service",
+      "rootUrl": "http://localhost:8080",
+      "adminUrl": "http://localhost:8080",
+      "surrogateAuthRequired": false,
+      "enabled": true,
+      "clientAuthenticatorType": "client-secret",
+      "secret": "secret",
+      "redirectUris": [
+        "http://localhost:8080/*"
+      ],
+      "webOrigins": [
+        "http://localhost:8080"
+      ],
+      "notBefore": 0,
+      "bearerOnly": false,
+      "consentRequired": false,
+      "standardFlowEnabled": true,
+      "implicitFlowEnabled": false,
+      "directAccessGrantsEnabled": true,
+      "serviceAccountsEnabled": false,
+      "publicClient": false,
+      "frontchannelLogout": false,
+      "protocol": "openid-connect",
+      "attributes": {
+        "saml.assertion.signature": "false",
+        "saml.force.post.binding": "false",
+        "saml.multivalued.roles": "false",
+        "saml.encrypt": "false",
+        "saml.server.signature": "false",
+        "saml.server.signature.keyinfo.ext": "false",
+        "exclude.session.state.from.auth.response": "false",
+        "saml_force_name_id_format": "false",
+        "saml.client.signature": "false",
+        "tls.client.certificate.bound.access.tokens": "false",
+        "saml.authnstatement": "false",
+        "display.on.consent.screen": "false",
+        "saml.onetimeuse.condition": "false"
+      },
+      "authenticationFlowBindingOverrides": {},
+      "fullScopeAllowed": true,
+      "nodeReRegistrationTimeout": -1,
+      "defaultClientScopes": [
+        "web-origins",
+        "role_list",
+        "profile",
+        "roles",
+        "email"
+      ],
+      "optionalClientScopes": [
+        "address",
+        "phone",
+        "offline_access",
+        "microprofile-jwt"
+      ],
+      "access": {
+        "view": true,
+        "configure": true,
+        "manage": true
+      }
+    },
+    {
+      "clientId": "realm-management",
+      "name": "${client_realm-management}",
+      "surrogateAuthRequired": false,
+      "enabled": true,
+      "clientAuthenticatorType": "client-secret",
+      "secret": "c41b709a-a012-4c69-89d7-4f926dba0619",
+      "redirectUris": [],
+      "webOrigins": [],
+      "notBefore": 0,
+      "bearerOnly": true,
+      "consentRequired": false,
+      "standardFlowEnabled": true,
+      "implicitFlowEnabled": false,
+      "directAccessGrantsEnabled": false,
+      "serviceAccountsEnabled": false,
+      "publicClient": false,
+      "frontchannelLogout": false,
+      "protocol": "openid-connect",
+      "attributes": {},
+      "authenticationFlowBindingOverrides": {},
+      "fullScopeAllowed": false,
+      "nodeReRegistrationTimeout": 0,
+      "defaultClientScopes": [
+        "web-origins",
+        "role_list",
+        "profile",
+        "roles",
+        "email"
+      ],
+      "optionalClientScopes": [
+        "address",
+        "phone",
+        "offline_access",
+        "microprofile-jwt"
+      ]
+    },
+    {
+      "clientId": "security-admin-console",
+      "name": "${client_security-admin-console}",
+      "baseUrl": "/auth/admin/kogito/console/index.html",
+      "surrogateAuthRequired": false,
+      "enabled": true,
+      "clientAuthenticatorType": "client-secret",
+      "secret": "e571b211-2550-475d-b87f-116ff54091ee",
+      "redirectUris": [
+        "/auth/admin/kogito/console/*"
+      ],
+      "webOrigins": [],
+      "notBefore": 0,
+      "bearerOnly": false,
+      "consentRequired": false,
+      "standardFlowEnabled": true,
+      "implicitFlowEnabled": false,
+      "directAccessGrantsEnabled": false,
+      "serviceAccountsEnabled": false,
+      "publicClient": true,
+      "frontchannelLogout": false,
+      "protocol": "openid-connect",
+      "attributes": {},
+      "authenticationFlowBindingOverrides": {},
+      "fullScopeAllowed": false,
+      "nodeReRegistrationTimeout": 0,
+      "protocolMappers": [
+        {
+          "name": "locale",
+          "protocol": "openid-connect",
+          "protocolMapper": "oidc-usermodel-attribute-mapper",
+          "consentRequired": false,
+          "config": {
+            "userinfo.token.claim": "true",
+            "user.attribute": "locale",
+            "id.token.claim": "true",
+            "access.token.claim": "true",
+            "claim.name": "locale",
+            "jsonType.label": "String"
+          }
+        }
+      ],
+      "defaultClientScopes": [
+        "web-origins",
+        "role_list",
+        "profile",
+        "roles",
+        "email"
+      ],
+      "optionalClientScopes": [
+        "address",
+        "phone",
+        "offline_access",
+        "microprofile-jwt"
+      ]
+    }
+  ],
+  "clientScopes": [
+    {
+      "name": "address",
+      "description": "OpenID Connect built-in scope: address",
+      "protocol": "openid-connect",
+      "attributes": {
+        "include.in.token.scope": "true",
+        "display.on.consent.screen": "true",
+        "consent.screen.text": "${addressScopeConsentText}"
+      },
+      "protocolMappers": [
+        {
+          "name": "address",
+          "protocol": "openid-connect",
+          "protocolMapper": "oidc-address-mapper",
+          "consentRequired": false,
+          "config": {
+            "user.attribute.formatted": "formatted",
+            "user.attribute.country": "country",
+            "user.attribute.postal_code": "postal_code",
+            "userinfo.token.claim": "true",
+            "user.attribute.street": "street",
+            "id.token.claim": "true",
+            "user.attribute.region": "region",
+            "access.token.claim": "true",
+            "user.attribute.locality": "locality"
+          }
+        }
+      ]
+    },
+    {
+      "name": "email",
+      "description": "OpenID Connect built-in scope: email",
+      "protocol": "openid-connect",
+      "attributes": {
+        "include.in.token.scope": "true",
+        "display.on.consent.screen": "true",
+        "consent.screen.text": "${emailScopeConsentText}"
+      },
+      "protocolMappers": [
+        {
+          "name": "email",
+          "protocol": "openid-connect",
+          "protocolMapper": "oidc-usermodel-property-mapper",
+          "consentRequired": false,
+          "config": {
+            "userinfo.token.claim": "true",
+            "user.attribute": "email",
+            "id.token.claim": "true",
+            "access.token.claim": "true",
+            "claim.name": "email",
+            "jsonType.label": "String"
+          }
+        },
+        {
+          "name": "email verified",
+          "protocol": "openid-connect",
+          "protocolMapper": "oidc-usermodel-property-mapper",
+          "consentRequired": false,
+          "config": {
+            "userinfo.token.claim": "true",
+            "user.attribute": "emailVerified",
+            "id.token.claim": "true",
+            "access.token.claim": "true",
+            "claim.name": "email_verified",
+            "jsonType.label": "boolean"
+          }
+        }
+      ]
+    },
+    {
+      "name": "microprofile-jwt",
+      "description": "Microprofile - JWT built-in scope",
+      "protocol": "openid-connect",
+      "attributes": {
+        "include.in.token.scope": "true",
+        "display.on.consent.screen": "false"
+      },
+      "protocolMappers": [
+        {
+          "name": "upn",
+          "protocol": "openid-connect",
+          "protocolMapper": "oidc-usermodel-property-mapper",
+          "consentRequired": false,
+          "config": {
+            "userinfo.token.claim": "true",
+            "user.attribute": "username",
+            "id.token.claim": "true",
+            "access.token.claim": "true",
+            "claim.name": "upn",
+            "jsonType.label": "String"
+          }
+        },
+        {
+          "name": "groups",
+          "protocol": "openid-connect",
+          "protocolMapper": "oidc-usermodel-realm-role-mapper",
+          "consentRequired": false,
+          "config": {
+            "multivalued": "true",
+            "user.attribute": "foo",
+            "id.token.claim": "true",
+            "access.token.claim": "true",
+            "claim.name": "groups",
+            "jsonType.label": "String"
+          }
+        }
+      ]
+    },
+    {
+      "name": "offline_access",
+      "description": "OpenID Connect built-in scope: offline_access",
+      "protocol": "openid-connect",
+      "attributes": {
+        "consent.screen.text": "${offlineAccessScopeConsentText}",
+        "display.on.consent.screen": "true"
+      }
+    },
+    {
+      "name": "phone",
+      "description": "OpenID Connect built-in scope: phone",
+      "protocol": "openid-connect",
+      "attributes": {
+        "include.in.token.scope": "true",
+        "display.on.consent.screen": "true",
+        "consent.screen.text": "${phoneScopeConsentText}"
+      },
+      "protocolMappers": [
+        {
+          "name": "phone number verified",
+          "protocol": "openid-connect",
+          "protocolMapper": "oidc-usermodel-attribute-mapper",
+          "consentRequired": false,
+          "config": {
+            "userinfo.token.claim": "true",
+            "user.attribute": "phoneNumberVerified",
+            "id.token.claim": "true",
+            "access.token.claim": "true",
+            "claim.name": "phone_number_verified",
+            "jsonType.label": "boolean"
+          }
+        },
+        {
+          "name": "phone number",
+          "protocol": "openid-connect",
+          "protocolMapper": "oidc-usermodel-attribute-mapper",
+          "consentRequired": false,
+          "config": {
+            "userinfo.token.claim": "true",
+            "user.attribute": "phoneNumber",
+            "id.token.claim": "true",
+            "access.token.claim": "true",
+            "claim.name": "phone_number",
+            "jsonType.label": "String"
+          }
+        }
+      ]
+    },
+    {
+      "name": "profile",
+      "description": "OpenID Connect built-in scope: profile",
+      "protocol": "openid-connect",
+      "attributes": {
+        "include.in.token.scope": "true",
+        "display.on.consent.screen": "true",
+        "consent.screen.text": "${profileScopeConsentText}"
+      },
+      "protocolMappers": [
+        {
+          "name": "nickname",
+          "protocol": "openid-connect",
+          "protocolMapper": "oidc-usermodel-attribute-mapper",
+          "consentRequired": false,
+          "config": {
+            "userinfo.token.claim": "true",
+            "user.attribute": "nickname",
+            "id.token.claim": "true",
+            "access.token.claim": "true",
+            "claim.name": "nickname",
+            "jsonType.label": "String"
+          }
+        },
+        {
+          "name": "zoneinfo",
+          "protocol": "openid-connect",
+          "protocolMapper": "oidc-usermodel-attribute-mapper",
+          "consentRequired": false,
+          "config": {
+            "userinfo.token.claim": "true",
+            "user.attribute": "zoneinfo",
+            "id.token.claim": "true",
+            "access.token.claim": "true",
+            "claim.name": "zoneinfo",
+            "jsonType.label": "String"
+          }
+        },
+        {
+          "name": "updated at",
+          "protocol": "openid-connect",
+          "protocolMapper": "oidc-usermodel-attribute-mapper",
+          "consentRequired": false,
+          "config": {
+            "userinfo.token.claim": "true",
+            "user.attribute": "updatedAt",
+            "id.token.claim": "true",
+            "access.token.claim": "true",
+            "claim.name": "updated_at",
+            "jsonType.label": "String"
+          }
+        },
+        {
+          "name": "birthdate",
+          "protocol": "openid-connect",
+          "protocolMapper": "oidc-usermodel-attribute-mapper",
+          "consentRequired": false,
+          "config": {
+            "userinfo.token.claim": "true",
+            "user.attribute": "birthdate",
+            "id.token.claim": "true",
+            "access.token.claim": "true",
+            "claim.name": "birthdate",
+            "jsonType.label": "String"
+          }
+        },
+        {
+          "name": "given name",
+          "protocol": "openid-connect",
+          "protocolMapper": "oidc-usermodel-property-mapper",
+          "consentRequired": false,
+          "config": {
+            "userinfo.token.claim": "true",
+            "user.attribute": "firstName",
+            "id.token.claim": "true",
+            "access.token.claim": "true",
+            "claim.name": "given_name",
+            "jsonType.label": "String"
+          }
+        },
+        {
+          "name": "full name",
+          "protocol": "openid-connect",
+          "protocolMapper": "oidc-full-name-mapper",
+          "consentRequired": false,
+          "config": {
+            "id.token.claim": "true",
+            "access.token.claim": "true",
+            "userinfo.token.claim": "true"
+          }
+        },
+        {
+          "name": "middle name",
+          "protocol": "openid-connect",
+          "protocolMapper": "oidc-usermodel-attribute-mapper",
+          "consentRequired": false,
+          "config": {
+            "userinfo.token.claim": "true",
+            "user.attribute": "middleName",
+            "id.token.claim": "true",
+            "access.token.claim": "true",
+            "claim.name": "middle_name",
+            "jsonType.label": "String"
+          }
+        },
+        {
+          "name": "username",
+          "protocol": "openid-connect",
+          "protocolMapper": "oidc-usermodel-property-mapper",
+          "consentRequired": false,
+          "config": {
+            "userinfo.token.claim": "true",
+            "user.attribute": "username",
+            "id.token.claim": "true",
+            "access.token.claim": "true",
+            "claim.name": "preferred_username",
+            "jsonType.label": "String"
+          }
+        },
+        {
+          "name": "family name",
+          "protocol": "openid-connect",
+          "protocolMapper": "oidc-usermodel-property-mapper",
+          "consentRequired": false,
+          "config": {
+            "userinfo.token.claim": "true",
+            "user.attribute": "lastName",
+            "id.token.claim": "true",
+            "access.token.claim": "true",
+            "claim.name": "family_name",
+            "jsonType.label": "String"
+          }
+        },
+        {
+          "name": "gender",
+          "protocol": "openid-connect",
+          "protocolMapper": "oidc-usermodel-attribute-mapper",
+          "consentRequired": false,
+          "config": {
+            "userinfo.token.claim": "true",
+            "user.attribute": "gender",
+            "id.token.claim": "true",
+            "access.token.claim": "true",
+            "claim.name": "gender",
+            "jsonType.label": "String"
+          }
+        },
+        {
+          "name": "picture",
+          "protocol": "openid-connect",
+          "protocolMapper": "oidc-usermodel-attribute-mapper",
+          "consentRequired": false,
+          "config": {
+            "userinfo.token.claim": "true",
+            "user.attribute": "picture",
+            "id.token.claim": "true",
+            "access.token.claim": "true",
+            "claim.name": "picture",
+            "jsonType.label": "String"
+          }
+        },
+        {
+          "name": "locale",
+          "protocol": "openid-connect",
+          "protocolMapper": "oidc-usermodel-attribute-mapper",
+          "consentRequired": false,
+          "config": {
+            "userinfo.token.claim": "true",
+            "user.attribute": "locale",
+            "id.token.claim": "true",
+            "access.token.claim": "true",
+            "claim.name": "locale",
+            "jsonType.label": "String"
+          }
+        },
+        {
+          "name": "profile",
+          "protocol": "openid-connect",
+          "protocolMapper": "oidc-usermodel-attribute-mapper",
+          "consentRequired": false,
+          "config": {
+            "userinfo.token.claim": "true",
+            "user.attribute": "profile",
+            "id.token.claim": "true",
+            "access.token.claim": "true",
+            "claim.name": "profile",
+            "jsonType.label": "String"
+          }
+        },
+        {
+          "name": "website",
+          "protocol": "openid-connect",
+          "protocolMapper": "oidc-usermodel-attribute-mapper",
+          "consentRequired": false,
+          "config": {
+            "userinfo.token.claim": "true",
+            "user.attribute": "website",
+            "id.token.claim": "true",
+            "access.token.claim": "true",
+            "claim.name": "website",
+            "jsonType.label": "String"
+          }
+        }
+      ]
+    },
+    {
+      "name": "role_list",
+      "description": "SAML role list",
+      "protocol": "saml",
+      "attributes": {
+        "consent.screen.text": "${samlRoleListScopeConsentText}",
+        "display.on.consent.screen": "true"
+      },
+      "protocolMappers": [
+        {
+          "name": "role list",
+          "protocol": "saml",
+          "protocolMapper": "saml-role-list-mapper",
+          "consentRequired": false,
+          "config": {
+            "single": "false",
+            "attribute.nameformat": "Basic",
+            "attribute.name": "Role"
+          }
+        }
+      ]
+    },
+    {
+      "name": "roles",
+      "description": "OpenID Connect scope for add user roles to the access token",
+      "protocol": "openid-connect",
+      "attributes": {
+        "include.in.token.scope": "false",
+        "display.on.consent.screen": "true",
+        "consent.screen.text": "${rolesScopeConsentText}"
+      },
+      "protocolMappers": [
+        {
+          "name": "realm roles",
+          "protocol": "openid-connect",
+          "protocolMapper": "oidc-usermodel-realm-role-mapper",
+          "consentRequired": false,
+          "config": {
+            "user.attribute": "foo",
+            "access.token.claim": "true",
+            "claim.name": "realm_access.roles",
+            "jsonType.label": "String",
+            "multivalued": "true"
+          }
+        },
+        {
+          "name": "audience resolve",
+          "protocol": "openid-connect",
+          "protocolMapper": "oidc-audience-resolve-mapper",
+          "consentRequired": false,
+          "config": {}
+        },
+        {
+          "name": "client roles",
+          "protocol": "openid-connect",
+          "protocolMapper": "oidc-usermodel-client-role-mapper",
+          "consentRequired": false,
+          "config": {
+            "user.attribute": "foo",
+            "access.token.claim": "true",
+            "claim.name": "resource_access.${client_id}.roles",
+            "jsonType.label": "String",
+            "multivalued": "true"
+          }
+        }
+      ]
+    },
+    {
+      "name": "web-origins",
+      "description": "OpenID Connect scope for add allowed web origins to the access token",
+      "protocol": "openid-connect",
+      "attributes": {
+        "include.in.token.scope": "false",
+        "display.on.consent.screen": "false",
+        "consent.screen.text": ""
+      },
+      "protocolMappers": [
+        {
+          "name": "allowed web origins",
+          "protocol": "openid-connect",
+          "protocolMapper": "oidc-allowed-origins-mapper",
+          "consentRequired": false,
+          "config": {}
+        }
+      ]
+    }
+  ],
+  "defaultDefaultClientScopes": [
+    "role_list",
+    "profile",
+    "email",
+    "roles",
+    "web-origins"
+  ],
+  "defaultOptionalClientScopes": [
+    "offline_access",
+    "address",
+    "phone",
+    "microprofile-jwt"
+  ],
+  "browserSecurityHeaders": {
+    "contentSecurityPolicyReportOnly": "",
+    "xContentTypeOptions": "nosniff",
+    "xRobotsTag": "none",
+    "xFrameOptions": "SAMEORIGIN",
+    "xXSSProtection": "1; mode=block",
+    "contentSecurityPolicy": "frame-src 'self'; frame-ancestors 'self'; object-src 'none';",
+    "strictTransportSecurity": "max-age=31536000; includeSubDomains"
+  },
+  "smtpServer": {},
+  "eventsEnabled": false,
+  "eventsListeners": [
+    "jboss-logging"
+  ],
+  "enabledEventTypes": [],
+  "adminEventsEnabled": false,
+  "adminEventsDetailsEnabled": false,
+  "components": {
+    "org.keycloak.services.clientregistration.policy.ClientRegistrationPolicy": [
+      {
+        "name": "Allowed Protocol Mapper Types",
+        "providerId": "allowed-protocol-mappers",
+        "subType": "anonymous",
+        "subComponents": {},
+        "config": {
+          "allowed-protocol-mapper-types": [
+            "oidc-full-name-mapper",
+            "saml-user-attribute-mapper",
+            "saml-user-property-mapper",
+            "oidc-address-mapper",
+            "saml-role-list-mapper",
+            "oidc-sha256-pairwise-sub-mapper",
+            "oidc-usermodel-attribute-mapper",
+            "oidc-usermodel-property-mapper"
+          ]
+        }
+      },
+      {
+        "name": "Allowed Client Scopes",
+        "providerId": "allowed-client-templates",
+        "subType": "authenticated",
+        "subComponents": {},
+        "config": {
+          "allow-default-scopes": [
+            "true"
+          ]
+        }
+      },
+      {
+        "name": "Allowed Client Scopes",
+        "providerId": "allowed-client-templates",
+        "subType": "anonymous",
+        "subComponents": {},
+        "config": {
+          "allow-default-scopes": [
+            "true"
+          ]
+        }
+      },
+      {
+        "name": "Trusted Hosts",
+        "providerId": "trusted-hosts",
+        "subType": "anonymous",
+        "subComponents": {},
+        "config": {
+          "host-sending-registration-request-must-match": [
+            "true"
+          ],
+          "client-uris-must-match": [
+            "true"
+          ]
+        }
+      },
+      {
+        "name": "Full Scope Disabled",
+        "providerId": "scope",
+        "subType": "anonymous",
+        "subComponents": {},
+        "config": {}
+      },
+      {
+        "name": "Max Clients Limit",
+        "providerId": "max-clients",
+        "subType": "anonymous",
+        "subComponents": {},
+        "config": {
+          "max-clients": [
+            "200"
+          ]
+        }
+      },
+      {
+        "name": "Consent Required",
+        "providerId": "consent-required",
+        "subType": "anonymous",
+        "subComponents": {},
+        "config": {}
+      },
+      {
+        "name": "Allowed Protocol Mapper Types",
+        "providerId": "allowed-protocol-mappers",
+        "subType": "authenticated",
+        "subComponents": {},
+        "config": {
+          "allowed-protocol-mapper-types": [
+            "saml-user-attribute-mapper",
+            "oidc-full-name-mapper",
+            "saml-role-list-mapper",
+            "saml-user-property-mapper",
+            "oidc-usermodel-attribute-mapper",
+            "oidc-address-mapper",
+            "oidc-usermodel-property-mapper",
+            "oidc-sha256-pairwise-sub-mapper"
+          ]
+        }
+      }
+    ],
+    "org.keycloak.keys.KeyProvider": [
+      {
+        "name": "rsa-generated",
+        "providerId": "rsa-generated",
+        "subComponents": {},
+        "config": {
+          "privateKey": [
+            "MIIEowIBAAKCAQEAn5T13suF8mlS+pJXp0U1bto41nW55wpcs+Rps8ZVCRyJKWqzwSCYnI7lm0rB2wBpAAO4OPoj1zlmVoFmBPsDU9Xf7rjsJb5LIzIQDCZY44aSDZt6RR+gakPiQvlzHyW/RozYpngDJF7TsTD7rdRF1xQ4RprfBF8fwK/xsU7pxbeom5xDHZhz3fiw8s+7UdbmnazDHfAjU58aUrLGgVRfUsuoHjtsptYlOIXEifaeMetXZE+HhqLYRHQPDap5fbBJl773Trosn7N9nmzN4x1xxGj9So21WC5UboQs9sAIVgizc4omjZ5Y4RN9HLH7G4YwJctNntzmnJhDui9zAO+zSQIDAQABAoIBADi+F7rTtVoft0Cfnok8o6Y58/HVxHdxiMryUd95iy0FN4RBi48FTx6D9QKFz25Ws/8sU2n3D51srIXf1u24b1N0/f39RQKaqk7mcyxOylaEuBQ [...]
+          ],
+          "certificate": [
+            "MIICnTCCAYUCBgFp4EYIrjANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdwcm90ZWFuMB4XDTE5MDQwMjIyNTYxOVoXDTI5MDQwMjIyNTc1OVowEjEQMA4GA1UEAwwHcHJvdGVhbjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJ+U9d7LhfJpUvqSV6dFNW7aONZ1uecKXLPkabPGVQkciSlqs8EgmJyO5ZtKwdsAaQADuDj6I9c5ZlaBZgT7A1PV3+647CW+SyMyEAwmWOOGkg2bekUfoGpD4kL5cx8lv0aM2KZ4AyRe07Ew+63URdcUOEaa3wRfH8Cv8bFO6cW3qJucQx2Yc934sPLPu1HW5p2swx3wI1OfGlKyxoFUX1LLqB47bKbWJTiFxIn2njHrV2RPh4ai2ER0Dw2qeX2wSZe+9066LJ+zfZ5szeMdccRo/UqNtVguVG6ELPbACFY [...]
+          ],
+          "priority": [
+            "100"
+          ]
+        }
+      },
+      {
+        "name": "hmac-generated",
+        "providerId": "hmac-generated",
+        "subComponents": {},
+        "config": {
+          "kid": [
+            "96afd00e-85cf-4d35-b18e-061d3813d8b2"
+          ],
+          "secret": [
+            "qBFGKdUGf6xDgKphnRfoFzIzaFHJW4bYnZ9MinPFzN38X5_ctq-2u1q5RdZzeJukXvk2biHB8_s3DxWmmLZFsA"
+          ],
+          "priority": [
+            "100"
+          ],
+          "algorithm": [
+            "HS256"
+          ]
+        }
+      },
+      {
+        "name": "aes-generated",
+        "providerId": "aes-generated",
+        "subComponents": {},
+        "config": {
+          "kid": [
+            "b04473d3-8395-4016-b455-19a9e951106b"
+          ],
+          "secret": [
+            "x68mMOVdz3qKWzltzReV0g"
+          ],
+          "priority": [
+            "100"
+          ]
+        }
+      }
+    ]
+  },
+  "internationalizationEnabled": false,
+  "supportedLocales": [],
+  "authenticationFlows": [
+    {
+      "alias": "Handle Existing Account",
+      "description": "Handle what to do if there is existing account with same email/username like authenticated identity provider",
+      "providerId": "basic-flow",
+      "topLevel": false,
+      "builtIn": true,
+      "authenticationExecutions": [
+        {
+          "authenticator": "idp-confirm-link",
+          "requirement": "REQUIRED",
+          "priority": 10,
+          "userSetupAllowed": false,
+          "autheticatorFlow": false
+        },
+        {
+          "authenticator": "idp-email-verification",
+          "requirement": "ALTERNATIVE",
+          "priority": 20,
+          "userSetupAllowed": false,
+          "autheticatorFlow": false
+        },
+        {
+          "requirement": "ALTERNATIVE",
+          "priority": 30,
+          "flowAlias": "Verify Existing Account by Re-authentication",
+          "userSetupAllowed": false,
+          "autheticatorFlow": true
+        }
+      ]
+    },
+    {
+      "alias": "Verify Existing Account by Re-authentication",
+      "description": "Reauthentication of existing account",
+      "providerId": "basic-flow",
+      "topLevel": false,
+      "builtIn": true,
+      "authenticationExecutions": [
+        {
+          "authenticator": "idp-username-password-form",
+          "requirement": "REQUIRED",
+          "priority": 10,
+          "userSetupAllowed": false,
+          "autheticatorFlow": false
+        },
+        {
+          "authenticator": "auth-otp-form",
+          "requirement": "OPTIONAL",
+          "priority": 20,
+          "userSetupAllowed": false,
+          "autheticatorFlow": false
+        }
+      ]
+    },
+    {
+      "alias": "browser",
+      "description": "browser based authentication",
+      "providerId": "basic-flow",
+      "topLevel": true,
+      "builtIn": true,
+      "authenticationExecutions": [
+        {
+          "authenticator": "auth-cookie",
+          "requirement": "ALTERNATIVE",
+          "priority": 10,
+          "userSetupAllowed": false,
+          "autheticatorFlow": false
+        },
+        {
+          "authenticator": "auth-spnego",
+          "requirement": "DISABLED",
+          "priority": 20,
+          "userSetupAllowed": false,
+          "autheticatorFlow": false
+        },
+        {
+          "authenticator": "identity-provider-redirector",
+          "requirement": "ALTERNATIVE",
+          "priority": 25,
+          "userSetupAllowed": false,
+          "autheticatorFlow": false
+        },
+        {
+          "requirement": "ALTERNATIVE",
+          "priority": 30,
+          "flowAlias": "forms",
+          "userSetupAllowed": false,
+          "autheticatorFlow": true
+        }
+      ]
+    },
+    {
+      "alias": "clients",
+      "description": "Base authentication for clients",
+      "providerId": "client-flow",
+      "topLevel": true,
+      "builtIn": true,
+      "authenticationExecutions": [
+        {
+          "authenticator": "client-secret",
+          "requirement": "ALTERNATIVE",
+          "priority": 10,
+          "userSetupAllowed": false,
+          "autheticatorFlow": false
+        },
+        {
+          "authenticator": "client-jwt",
+          "requirement": "ALTERNATIVE",
+          "priority": 20,
+          "userSetupAllowed": false,
+          "autheticatorFlow": false
+        },
+        {
+          "authenticator": "client-secret-jwt",
+          "requirement": "ALTERNATIVE",
+          "priority": 30,
+          "userSetupAllowed": false,
+          "autheticatorFlow": false
+        },
+        {
+          "authenticator": "client-x509",
+          "requirement": "ALTERNATIVE",
+          "priority": 40,
+          "userSetupAllowed": false,
+          "autheticatorFlow": false
+        }
+      ]
+    },
+    {
+      "alias": "direct grant",
+      "description": "OpenID Connect Resource Owner Grant",
+      "providerId": "basic-flow",
+      "topLevel": true,
+      "builtIn": true,
+      "authenticationExecutions": [
+        {
+          "authenticator": "direct-grant-validate-username",
+          "requirement": "REQUIRED",
+          "priority": 10,
+          "userSetupAllowed": false,
+          "autheticatorFlow": false
+        },
+        {
+          "authenticator": "direct-grant-validate-password",
+          "requirement": "REQUIRED",
+          "priority": 20,
+          "userSetupAllowed": false,
+          "autheticatorFlow": false
+        },
+        {
+          "authenticator": "direct-grant-validate-otp",
+          "requirement": "OPTIONAL",
+          "priority": 30,
+          "userSetupAllowed": false,
+          "autheticatorFlow": false
+        }
+      ]
+    },
+    {
+      "alias": "docker auth",
+      "description": "Used by Docker clients to authenticate against the IDP",
+      "providerId": "basic-flow",
+      "topLevel": true,
+      "builtIn": true,
+      "authenticationExecutions": [
+        {
+          "authenticator": "docker-http-basic-authenticator",
+          "requirement": "REQUIRED",
+          "priority": 10,
+          "userSetupAllowed": false,
+          "autheticatorFlow": false
+        }
+      ]
+    },
+    {
+      "alias": "first broker login",
+      "description": "Actions taken after first broker login with identity provider account, which is not yet linked to any Keycloak account",
+      "providerId": "basic-flow",
+      "topLevel": true,
+      "builtIn": true,
+      "authenticationExecutions": [
+        {
+          "authenticatorConfig": "review profile config",
+          "authenticator": "idp-review-profile",
+          "requirement": "REQUIRED",
+          "priority": 10,
+          "userSetupAllowed": false,
+          "autheticatorFlow": false
+        },
+        {
+          "authenticatorConfig": "create unique user config",
+          "authenticator": "idp-create-user-if-unique",
+          "requirement": "ALTERNATIVE",
+          "priority": 20,
+          "userSetupAllowed": false,
+          "autheticatorFlow": false
+        },
+        {
+          "requirement": "ALTERNATIVE",
+          "priority": 30,
+          "flowAlias": "Handle Existing Account",
+          "userSetupAllowed": false,
+          "autheticatorFlow": true
+        }
+      ]
+    },
+    {
+      "alias": "forms",
+      "description": "Username, password, otp and other auth forms.",
+      "providerId": "basic-flow",
+      "topLevel": false,
+      "builtIn": true,
+      "authenticationExecutions": [
+        {
+          "authenticator": "auth-username-password-form",
+          "requirement": "REQUIRED",
+          "priority": 10,
+          "userSetupAllowed": false,
+          "autheticatorFlow": false
+        },
+        {
+          "authenticator": "auth-otp-form",
+          "requirement": "OPTIONAL",
+          "priority": 20,
+          "userSetupAllowed": false,
+          "autheticatorFlow": false
+        }
+      ]
+    },
+    {
+      "alias": "http challenge",
+      "description": "An authentication flow based on challenge-response HTTP Authentication Schemes",
+      "providerId": "basic-flow",
+      "topLevel": true,
+      "builtIn": true,
+      "authenticationExecutions": [
+        {
+          "authenticator": "no-cookie-redirect",
+          "requirement": "REQUIRED",
+          "priority": 10,
+          "userSetupAllowed": false,
+          "autheticatorFlow": false
+        },
+        {
+          "authenticator": "basic-auth",
+          "requirement": "REQUIRED",
+          "priority": 20,
+          "userSetupAllowed": false,
+          "autheticatorFlow": false
+        },
+        {
+          "authenticator": "basic-auth-otp",
+          "requirement": "DISABLED",
+          "priority": 30,
+          "userSetupAllowed": false,
+          "autheticatorFlow": false
+        },
+        {
+          "authenticator": "auth-spnego",
+          "requirement": "DISABLED",
+          "priority": 40,
+          "userSetupAllowed": false,
+          "autheticatorFlow": false
+        }
+      ]
+    },
+    {
+      "alias": "registration",
+      "description": "registration flow",
+      "providerId": "basic-flow",
+      "topLevel": true,
+      "builtIn": true,
+      "authenticationExecutions": [
+        {
+          "authenticator": "registration-page-form",
+          "requirement": "REQUIRED",
+          "priority": 10,
+          "flowAlias": "registration form",
+          "userSetupAllowed": false,
+          "autheticatorFlow": true
+        }
+      ]
+    },
+    {
+      "alias": "registration form",
+      "description": "registration form",
+      "providerId": "form-flow",
+      "topLevel": false,
+      "builtIn": true,
+      "authenticationExecutions": [
+        {
+          "authenticator": "registration-user-creation",
+          "requirement": "REQUIRED",
+          "priority": 20,
+          "userSetupAllowed": false,
+          "autheticatorFlow": false
+        },
+        {
+          "authenticator": "registration-profile-action",
+          "requirement": "REQUIRED",
+          "priority": 40,
+          "userSetupAllowed": false,
+          "autheticatorFlow": false
+        },
+        {
+          "authenticator": "registration-password-action",
+          "requirement": "REQUIRED",
+          "priority": 50,
+          "userSetupAllowed": false,
+          "autheticatorFlow": false
+        },
+        {
+          "authenticator": "registration-recaptcha-action",
+          "requirement": "DISABLED",
+          "priority": 60,
+          "userSetupAllowed": false,
+          "autheticatorFlow": false
+        }
+      ]
+    },
+    {
+      "alias": "reset credentials",
+      "description": "Reset credentials for a user if they forgot their password or something",
+      "providerId": "basic-flow",
+      "topLevel": true,
+      "builtIn": true,
+      "authenticationExecutions": [
+        {
+          "authenticator": "reset-credentials-choose-user",
+          "requirement": "REQUIRED",
+          "priority": 10,
+          "userSetupAllowed": false,
+          "autheticatorFlow": false
+        },
+        {
+          "authenticator": "reset-credential-email",
+          "requirement": "REQUIRED",
+          "priority": 20,
+          "userSetupAllowed": false,
+          "autheticatorFlow": false
+        },
+        {
+          "authenticator": "reset-password",
+          "requirement": "REQUIRED",
+          "priority": 30,
+          "userSetupAllowed": false,
+          "autheticatorFlow": false
+        },
+        {
+          "authenticator": "reset-otp",
+          "requirement": "OPTIONAL",
+          "priority": 40,
+          "userSetupAllowed": false,
+          "autheticatorFlow": false
+        }
+      ]
+    },
+    {
+      "alias": "saml ecp",
+      "description": "SAML ECP Profile Authentication Flow",
+      "providerId": "basic-flow",
+      "topLevel": true,
+      "builtIn": true,
+      "authenticationExecutions": [
+        {
+          "authenticator": "http-basic-authenticator",
+          "requirement": "REQUIRED",
+          "priority": 10,
+          "userSetupAllowed": false,
+          "autheticatorFlow": false
+        }
+      ]
+    }
+  ],
+  "authenticatorConfig": [
+    {
+      "alias": "create unique user config",
+      "config": {
+        "require.password.update.after.registration": "false"
+      }
+    },
+    {
+      "alias": "review profile config",
+      "config": {
+        "update.profile.on.first.login": "missing"
+      }
+    }
+  ],
+  "requiredActions": [
+    {
+      "alias": "CONFIGURE_TOTP",
+      "name": "Configure OTP",
+      "providerId": "CONFIGURE_TOTP",
+      "enabled": true,
+      "defaultAction": false,
+      "priority": 10,
+      "config": {}
+    },
+    {
+      "alias": "terms_and_conditions",
+      "name": "Terms and Conditions",
+      "providerId": "terms_and_conditions",
+      "enabled": false,
+      "defaultAction": false,
+      "priority": 20,
+      "config": {}
+    },
+    {
+      "alias": "UPDATE_PASSWORD",
+      "name": "Update Password",
+      "providerId": "UPDATE_PASSWORD",
+      "enabled": true,
+      "defaultAction": false,
+      "priority": 30,
+      "config": {}
+    },
+    {
+      "alias": "UPDATE_PROFILE",
+      "name": "Update Profile",
+      "providerId": "UPDATE_PROFILE",
+      "enabled": true,
+      "defaultAction": false,
+      "priority": 40,
+      "config": {}
+    },
+    {
+      "alias": "VERIFY_EMAIL",
+      "name": "Verify Email",
+      "providerId": "VERIFY_EMAIL",
+      "enabled": true,
+      "defaultAction": false,
+      "priority": 50,
+      "config": {}
+    }
+  ],
+  "browserFlow": "browser",
+  "registrationFlow": "registration",
+  "directGrantFlow": "direct grant",
+  "resetCredentialsFlow": "reset credentials",
+  "clientAuthenticationFlow": "clients",
+  "dockerAuthenticationFlow": "docker auth",
+  "attributes": {
+    "_browser_header.xXSSProtection": "1; mode=block",
+    "_browser_header.xFrameOptions": "SAMEORIGIN",
+    "_browser_header.strictTransportSecurity": "max-age=31536000; includeSubDomains",
+    "permanentLockout": "false",
+    "quickLoginCheckMilliSeconds": "1000",
+    "_browser_header.xRobotsTag": "none",
+    "maxFailureWaitSeconds": "900",
+    "minimumQuickLoginWaitSeconds": "60",
+    "failureFactor": "30",
+    "actionTokenGeneratedByUserLifespan": "300",
+    "maxDeltaTimeSeconds": "43200",
+    "_browser_header.xContentTypeOptions": "nosniff",
+    "offlineSessionMaxLifespan": "5184000",
+    "actionTokenGeneratedByAdminLifespan": "43200",
+    "_browser_header.contentSecurityPolicyReportOnly": "",
+    "bruteForceProtected": "false",
+    "_browser_header.contentSecurityPolicy": "frame-src 'self'; frame-ancestors 'self'; object-src 'none';",
+    "waitIncrementSeconds": "60",
+    "offlineSessionMaxLifespanEnabled": "false"
+  },
+  "users": [
+    {
+      "username": "admin",
+      "enabled": true,
+      "totp": false,
+      "emailVerified": false,
+      "credentials": [
+        {
+          "type": "password",
+          "hashedSaltedValue": "NICTtwsvSxJ5hL8hLAuleDUv9jwZcuXgxviMXvR++cciyPtiIEStEaJUyfA9DOir59awjPrHOumsclPVjNBplA==",
+          "salt": "T/2P5o5oxFJUEk68BRURRg==",
+          "hashIterations": 27500,
+          "counter": 0,
+          "algorithm": "pbkdf2-sha256",
+          "digits": 0,
+          "period": 0,
+          "createdDate": 1554245879354,
+          "config": {}
+        }
+      ],
+      "disableableCredentialTypes": [
+        "password"
+      ],
+      "requiredActions": [],
+      "realmRoles": [
+        "admin",
+        "managers",
+        "user",
+        "IT",
+        "HR"
+      ],
+      "notBefore": 0,
+      "groups": []
+    },
+    {
+      "username": "alice",
+      "enabled": true,
+      "totp": false,
+      "emailVerified": false,
+      "credentials": [
+        {
+          "type": "password",
+          "hashedSaltedValue": "A3okqV2T/ybXTVEgKfosoSjP8Yc9IZbFP/SY4cEd6hag7TABQrQ6nUSuwagGt96l8cw1DTijO75PqX6uiTXMzw==",
+          "salt": "sl4mXx6T9FypPH/s9TngfQ==",
+          "hashIterations": 27500,
+          "counter": 0,
+          "algorithm": "pbkdf2-sha256",
+          "digits": 0,
+          "period": 0,
+          "createdDate": 1554245879116,
+          "config": {}
+        }
+      ],
+      "disableableCredentialTypes": [
+        "password"
+      ],
+      "requiredActions": [],
+      "realmRoles": [
+        "user",
+        "HR"
+      ],
+      "notBefore": 0,
+      "groups": []
+    },
+    {
+      "username": "jdoe",
+      "enabled": true,
+      "totp": false,
+      "emailVerified": false,
+      "credentials": [
+        {
+          "type": "password",
+          "hashedSaltedValue": "JV3DUNLjqOadjbBOtC4rvacQI553CGaDGAzBS8MR5ReCr7SwF3E6CsW3T7/XO8ITZAsch8+A/6loeuCoVLLJrg==",
+          "salt": "uCbOH7HZtyDtMd0E9DG/nw==",
+          "hashIterations": 27500,
+          "counter": 0,
+          "algorithm": "pbkdf2-sha256",
+          "digits": 0,
+          "period": 0,
+          "createdDate": 1554245879227,
+          "config": {}
+        }
+      ],
+      "disableableCredentialTypes": [
+        "password"
+      ],
+      "requiredActions": [],
+      "realmRoles": [
+        "managers",
+        "user",
+        "IT"
+      ],
+      "notBefore": 0,
+      "groups": []
+    }
+  ],
+  "keycloakVersion": "6.0.0",
+  "userManagedAccessAllowed": false
+}
diff --git a/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docker-compose/pgadmin/pgpass b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docker-compose/pgadmin/pgpass
new file mode 100644
index 000000000..11a6f7c60
--- /dev/null
+++ b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docker-compose/pgadmin/pgpass
@@ -0,0 +1,3 @@
+postgres:5432:kogito:kogito-user:kogito-pass
+postgres:5432:keycloak:kogito-user:kogito-pass
+postgres:5432:postgres:kogito-user:kogito-pass
\ No newline at end of file
diff --git a/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docker-compose/pgadmin/servers.json b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docker-compose/pgadmin/servers.json
new file mode 100644
index 000000000..a112980d5
--- /dev/null
+++ b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docker-compose/pgadmin/servers.json
@@ -0,0 +1,14 @@
+{
+  "Servers": {
+    "1": {
+      "Name": "kogito",
+      "Group": "Servers",
+      "Host": "postgres",
+      "Port": 5432,
+      "MaintenanceDB": "kogito",
+      "Username": "kogito-user",
+      "SSLMode": "disable",
+      "PassFile": "/var/lib/pgadmin/pgpass"
+    }
+  }
+}
\ No newline at end of file
diff --git a/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docker-compose/sql/init.sql b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docker-compose/sql/init.sql
new file mode 100644
index 000000000..92ea9b4e5
--- /dev/null
+++ b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docker-compose/sql/init.sql
@@ -0,0 +1,33 @@
+CREATE ROLE "kogito-user" WITH
+    LOGIN
+    SUPERUSER
+    INHERIT
+    CREATEDB
+    CREATEROLE
+    NOREPLICATION
+    PASSWORD 'kogito-pass';
+
+CREATE DATABASE kogito
+    WITH
+    OWNER = "kogito-user"
+    ENCODING = 'UTF8'
+    LC_COLLATE = 'en_US.utf8'
+    LC_CTYPE = 'en_US.utf8'
+    TABLESPACE = pg_default
+    CONNECTION LIMIT = -1;
+
+CREATE DATABASE keycloak
+    WITH
+    OWNER = "kogito-user"
+    ENCODING = 'UTF8'
+    LC_COLLATE = 'en_US.utf8'
+    LC_CTYPE = 'en_US.utf8'
+    TABLESPACE = pg_default
+    CONNECTION LIMIT = -1;
+
+GRANT ALL PRIVILEGES ON DATABASE postgres TO "kogito-user";
+GRANT ALL PRIVILEGES ON DATABASE kogito TO "kogito-user";
+GRANT ALL PRIVILEGES ON DATABASE kogito TO postgres;
+
+GRANT ALL PRIVILEGES ON DATABASE keycloak TO "kogito-user";
+GRANT ALL PRIVILEGES ON DATABASE keycloak TO postgres;
\ No newline at end of file
diff --git a/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docker-compose/startServices.sh b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docker-compose/startServices.sh
new file mode 100755
index 000000000..5ff991124
--- /dev/null
+++ b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docker-compose/startServices.sh
@@ -0,0 +1,54 @@
+#!/bin/sh
+
+PROFILE="full"
+
+echo "Script requires your Kogito Example to be compiled"
+
+PROJECT_VERSION=$(cd ../ && mvn help:evaluate -Dexpression=project.version -q -DforceStdout)
+
+echo "Project version: ${PROJECT_VERSION}"
+
+if [[ $PROJECT_VERSION == *SNAPSHOT ]];
+then
+  KOGITO_VERSION="latest"
+else
+  KOGITO_VERSION=${PROJECT_VERSION%.*}
+fi
+
+if [ -n "$1" ]; then
+  if [[ ("$1" == "full") || ("$1" == "infra") || ("$1" == "example")]];
+  then
+    PROFILE="$1"
+  else
+    echo "Unknown docker profile '$1'. The supported profiles are:"
+    echo "* 'infra': Use this profile to start only the minimum infrastructure to run the example (postgresql, data-index & jobs-service)."
+    echo "* 'example': Use this profile to start the example infrastructure and the kogito-example service. Requires the example to be compiled using the 'container' profile (-Pcontainer)"
+    echo "* 'full' (default): Starts full example setup, including infrastructure (database, data-index & jobs-service), the kogito-example-service container and the runtime consoles (management-console, task-console & keycloak). Requires the example to be compiled using the 'container' profile (-Pcontainer)"
+    exit 1;
+  fi
+fi
+
+echo "Kogito Image version: ${KOGITO_VERSION}"
+echo "KOGITO_VERSION=${KOGITO_VERSION}" > ".env"
+echo "COMPOSE_PROFILES='${PROFILE}'" >> ".env"
+
+if [ "$(uname)" == "Darwin" ]; then
+   echo "DOCKER_GATEWAY_HOST=kubernetes.docker.internal" >> ".env"
+elif [ "$(expr substr $(uname -s) 1 5)" == "Linux" ]; then
+   echo "DOCKER_GATEWAY_HOST=172.17.0.1" >> ".env"
+fi
+
+if [ ! -d "./persistence" ]
+then
+  echo "$KOGITO_EXAMPLE_PERSISTENCE does not exist. Have you compiled the project? mvn clean install -DskipTests"
+  exit 1
+fi
+PERSISTENCE_FOLDER=./persistence
+
+if [ ! -d "./svg" ]
+then
+    echo "$KOGITO_EXAMPLE_SVG_FOLDER does not exist. Have you compiled the project? mvn clean install -DskipTests"
+    exit 1
+fi
+
+docker compose up
\ No newline at end of file
diff --git a/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docs/images/g1_1_mc_list.png b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docs/images/g1_1_mc_list.png
new file mode 100644
index 000000000..4e5aa6274
Binary files /dev/null and b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docs/images/g1_1_mc_list.png differ
diff --git a/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docs/images/g1_2_mc_details.png b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docs/images/g1_2_mc_details.png
new file mode 100644
index 000000000..f2b228f20
Binary files /dev/null and b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docs/images/g1_2_mc_details.png differ
diff --git a/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docs/images/g1_3_mc_details_executed_job.png b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docs/images/g1_3_mc_details_executed_job.png
new file mode 100644
index 000000000..1ab358819
Binary files /dev/null and b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docs/images/g1_3_mc_details_executed_job.png differ
diff --git a/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docs/images/g2_10_mc_details_completed.png b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docs/images/g2_10_mc_details_completed.png
new file mode 100644
index 000000000..610849f19
Binary files /dev/null and b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docs/images/g2_10_mc_details_completed.png differ
diff --git a/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docs/images/g2_1_mc_list.png b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docs/images/g2_1_mc_list.png
new file mode 100644
index 000000000..6526e8e7f
Binary files /dev/null and b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docs/images/g2_1_mc_list.png differ
diff --git a/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docs/images/g2_2_mc_details.png b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docs/images/g2_2_mc_details.png
new file mode 100644
index 000000000..ec18201f0
Binary files /dev/null and b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docs/images/g2_2_mc_details.png differ
diff --git a/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docs/images/g2_3_tc_inbox.png b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docs/images/g2_3_tc_inbox.png
new file mode 100644
index 000000000..0d612f76c
Binary files /dev/null and b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docs/images/g2_3_tc_inbox.png differ
diff --git a/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docs/images/g2_4_tc_hr_form.png b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docs/images/g2_4_tc_hr_form.png
new file mode 100644
index 000000000..d89b41302
Binary files /dev/null and b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docs/images/g2_4_tc_hr_form.png differ
diff --git a/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docs/images/g2_5_tc_hr_form_notification.png b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docs/images/g2_5_tc_hr_form_notification.png
new file mode 100644
index 000000000..8dd81fc4a
Binary files /dev/null and b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docs/images/g2_5_tc_hr_form_notification.png differ
diff --git a/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docs/images/g2_6_mc_details.png b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docs/images/g2_6_mc_details.png
new file mode 100644
index 000000000..4970b8f83
Binary files /dev/null and b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docs/images/g2_6_mc_details.png differ
diff --git a/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docs/images/g2_7_tc_inbox.png b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docs/images/g2_7_tc_inbox.png
new file mode 100644
index 000000000..03f63ff7b
Binary files /dev/null and b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docs/images/g2_7_tc_inbox.png differ
diff --git a/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docs/images/g2_8_tc_it_form.png b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docs/images/g2_8_tc_it_form.png
new file mode 100644
index 000000000..5e6872a09
Binary files /dev/null and b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docs/images/g2_8_tc_it_form.png differ
diff --git a/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docs/images/g2_9_tc_inbox_empty.png b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docs/images/g2_9_tc_inbox_empty.png
new file mode 100644
index 000000000..696433e93
Binary files /dev/null and b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docs/images/g2_9_tc_inbox_empty.png differ
diff --git a/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docs/images/generate_offer_assignments.png b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docs/images/generate_offer_assignments.png
new file mode 100644
index 000000000..2e3f93529
Binary files /dev/null and b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docs/images/generate_offer_assignments.png differ
diff --git a/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docs/images/hiring_diagram.png b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docs/images/hiring_diagram.png
new file mode 100644
index 000000000..cb57a2dfb
Binary files /dev/null and b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docs/images/hiring_diagram.png differ
diff --git a/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docs/images/hr_interview_assignments.png b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docs/images/hr_interview_assignments.png
new file mode 100644
index 000000000..63de050eb
Binary files /dev/null and b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docs/images/hr_interview_assignments.png differ
diff --git a/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docs/images/it_interview_assignments.png b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docs/images/it_interview_assignments.png
new file mode 100644
index 000000000..077430569
Binary files /dev/null and b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docs/images/it_interview_assignments.png differ
diff --git a/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docs/images/mc_details_1.png b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docs/images/mc_details_1.png
new file mode 100644
index 000000000..2c1c3b26a
Binary files /dev/null and b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docs/images/mc_details_1.png differ
diff --git a/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docs/images/mc_list.png b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docs/images/mc_list.png
new file mode 100644
index 000000000..4fc32b05c
Binary files /dev/null and b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docs/images/mc_list.png differ
diff --git a/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docs/images/new_hiring_offer_dmn.png b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docs/images/new_hiring_offer_dmn.png
new file mode 100644
index 000000000..451313a26
Binary files /dev/null and b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docs/images/new_hiring_offer_dmn.png differ
diff --git a/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docs/images/new_hiring_offer_dmn_decision.png b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docs/images/new_hiring_offer_dmn_decision.png
new file mode 100644
index 000000000..f58d869d3
Binary files /dev/null and b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docs/images/new_hiring_offer_dmn_decision.png differ
diff --git a/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docs/images/new_hiring_offer_dmn_types.png b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docs/images/new_hiring_offer_dmn_types.png
new file mode 100644
index 000000000..d028d331d
Binary files /dev/null and b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/docs/images/new_hiring_offer_dmn_types.png differ
diff --git a/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/pom.xml b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/pom.xml
new file mode 100644
index 000000000..9843eec26
--- /dev/null
+++ b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/pom.xml
@@ -0,0 +1,241 @@
+<?xml version="1.0"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+-->
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.kie.kogito.examples</groupId>
+    <artifactId>kogito-quarkus-examples</artifactId>
+    <version>999-SNAPSHOT</version>
+  </parent>
+  <artifactId>process-usertasks-timer-data-index-persistence-addon-quarkus</artifactId>
+  <name>Kogito Example :: Process Usertasks with Timer Data Index persistence addon Quarkus</name>
+  <description>Kogito user tasks orchestration with security enabled on REST api using the Data Index Persistence addon - Quarkus</description>
+  <properties>
+    <quarkus-plugin.version>3.2.9.Final</quarkus-plugin.version>
+    <quarkus.platform.artifact-id>quarkus-bom</quarkus.platform.artifact-id>
+    <quarkus.platform.group-id>io.quarkus</quarkus.platform.group-id>
+    <quarkus.platform.version>3.2.9.Final</quarkus.platform.version>
+    <kogito.bom.group-id>org.kie.kogito</kogito.bom.group-id>
+    <kogito.bom.artifact-id>kogito-bom</kogito.bom.artifact-id>
+    <kogito-apps.bom.artifact-id>kogito-apps-bom</kogito-apps.bom.artifact-id>
+    <version.org.kie.kogito>999-SNAPSHOT</version.org.kie.kogito>
+  </properties>
+  <dependencyManagement>
+    <dependencies>
+      <dependency>
+        <groupId>${quarkus.platform.group-id}</groupId>
+        <artifactId>${quarkus.platform.artifact-id}</artifactId>
+        <version>${quarkus.platform.version}</version>
+        <type>pom</type>
+        <scope>import</scope>
+      </dependency>
+      <dependency>
+        <groupId>${kogito.bom.group-id}</groupId>
+        <artifactId>${kogito.bom.artifact-id}</artifactId>
+        <version>${version.org.kie.kogito}</version>
+        <type>pom</type>
+        <scope>import</scope>
+      </dependency>
+      <dependency>
+        <groupId>${kogito.bom.group-id}</groupId>
+        <artifactId>${kogito-apps.bom.artifact-id}</artifactId>
+        <version>${version.org.kie.kogito}</version>
+        <type>pom</type>
+        <scope>import</scope>
+      </dependency>
+    </dependencies>
+  </dependencyManagement>
+  <dependencies>
+    <dependency>
+      <groupId>io.quarkus</groupId>
+      <artifactId>quarkus-resteasy</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>io.quarkus</groupId>
+      <artifactId>quarkus-resteasy-jackson</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>io.quarkus</groupId>
+      <artifactId>quarkus-smallrye-openapi</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>io.quarkus</groupId>
+      <artifactId>quarkus-smallrye-health</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>org.kie.kogito</groupId>
+      <artifactId>kogito-quarkus</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>org.kie.kogito</groupId>
+      <artifactId>kogito-quarkus-processes</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>org.kie.kogito</groupId>
+      <artifactId>kogito-addons-quarkus-process-management</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.kie.kogito</groupId>
+      <artifactId>kogito-addons-quarkus-jobs-management</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.kie.kogito</groupId>
+      <artifactId>kogito-addons-quarkus-process-svg</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.kie.kogito</groupId>
+      <artifactId>kogito-addons-quarkus-source-files</artifactId>
+    </dependency>
+
+    <!-- Persistence -->
+    <dependency>
+      <groupId>io.quarkus</groupId>
+      <artifactId>quarkus-jdbc-postgresql</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>io.quarkus</groupId>
+      <artifactId>quarkus-agroal</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.kie.kogito</groupId>
+      <artifactId>kogito-addons-quarkus-persistence-jdbc</artifactId>
+    </dependency>
+
+    <!-- Data Index Persistence -->
+    <dependency>
+      <groupId>org.kie.kogito</groupId>
+      <artifactId>kogito-addons-quarkus-data-index-persistence-postgresql</artifactId>
+    </dependency>
+
+    <!-- Jobs Service -->
+    <dependency>
+      <groupId>org.kie.kogito</groupId>
+      <artifactId>kogito-addons-quarkus-jobs</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.kie.kogito</groupId>
+      <artifactId>jobs-service-postgresql-common</artifactId>
+    </dependency>
+
+    <!-- Data Audit -->
+    <dependency>
+      <groupId>org.kie.kogito</groupId>
+      <artifactId>kogito-addons-data-audit-jpa-quarkus</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.kie.kogito</groupId>
+      <artifactId>kogito-addons-data-audit-quarkus</artifactId>
+    </dependency>
+  </dependencies>
+  <profiles>
+    <profile>
+      <id>container</id>
+      <properties>
+        <quarkus.profile>container</quarkus.profile>
+      </properties>
+      <dependencies>
+        <dependency>
+          <groupId>io.quarkus</groupId>
+          <artifactId>quarkus-container-image-jib</artifactId>
+        </dependency>
+      </dependencies>
+    </profile>
+    <profile>
+      <id>development</id>
+      <properties>
+        <quarkus.profile>dev</quarkus.profile>
+      </properties>
+      <dependencies>
+        <dependency>
+          <groupId>org.kie.kogito</groupId>
+          <artifactId>runtime-tools-quarkus-extension</artifactId>
+        </dependency>
+      </dependencies>
+    </profile>
+  </profiles>
+  <build>
+    <finalName>${project.artifactId}</finalName>
+    <plugins>
+      <plugin>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <version>${version.compiler.plugin}</version>
+        <configuration>
+          <release>${maven.compiler.release}</release>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>${quarkus.platform.group-id}</groupId>
+        <artifactId>quarkus-maven-plugin</artifactId>
+        <version>${quarkus-plugin.version}</version>
+        <executions>
+          <execution>
+            <goals>
+              <goal>build</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <artifactId>maven-antrun-plugin</artifactId>
+        <executions>
+          <execution>
+            <phase>package</phase>
+            <goals>
+              <goal>run</goal>
+            </goals>
+            <configuration>
+              <target>
+                <copy todir="./docker-compose/svg" overwrite="true">
+                  <fileset dir="target/classes/META-INF/processSVG/"/>
+                </copy>
+                <copy todir="./docker-compose/persistence" overwrite="true">
+                  <fileset dir="target/classes/META-INF/resources/persistence/protobuf/"/>
+                </copy>
+              </target>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <artifactId>maven-failsafe-plugin</artifactId>
+        <configuration>
+          <systemPropertyVariables>
+            <java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager>
+            <maven.home>${maven.home}</maven.home>
+          </systemPropertyVariables>
+        </configuration>
+        <executions>
+          <execution>
+            <goals>
+              <goal>integration-test</goal>
+              <goal>verify</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+</project>
diff --git a/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/src/main/java/org/kie/kogito/hr/CandidateData.java b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/src/main/java/org/kie/kogito/hr/CandidateData.java
new file mode 100644
index 000000000..eae14184d
--- /dev/null
+++ b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/src/main/java/org/kie/kogito/hr/CandidateData.java
@@ -0,0 +1,93 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.kie.kogito.hr;
+
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonIgnore;
+
+public class CandidateData {
+
+    private String name;
+
+    private String lastName;
+
+    private String email;
+
+    private Integer experience;
+
+    private List<String> skills;
+
+    public CandidateData() {
+    }
+
+    public CandidateData(String name, String lastName, String email, Integer experience, List<String> skills) {
+        this.name = name;
+        this.lastName = lastName;
+        this.email = email;
+        this.experience = experience;
+        this.skills = skills;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getLastName() {
+        return lastName;
+    }
+
+    public void setLastName(String lastName) {
+        this.lastName = lastName;
+    }
+
+    public String getEmail() {
+        return email;
+    }
+
+    public void setEmail(String email) {
+        this.email = email;
+    }
+
+    public Integer getExperience() {
+        return experience;
+    }
+
+    public void setExperience(Integer experience) {
+        this.experience = experience;
+    }
+
+    public List<String> getSkills() {
+        return skills;
+    }
+
+    public void setSkills(List<String> skills) {
+        this.skills = skills;
+    }
+
+    @JsonIgnore
+    public String getFullName() {
+        return name + " " + lastName;
+    }
+}
diff --git a/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/src/main/java/org/kie/kogito/hr/Offer.java b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/src/main/java/org/kie/kogito/hr/Offer.java
new file mode 100644
index 000000000..a377b480a
--- /dev/null
+++ b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/src/main/java/org/kie/kogito/hr/Offer.java
@@ -0,0 +1,46 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.kie.kogito.hr;
+
+public class Offer {
+
+    private String category;
+
+    private Integer salary;
+
+    public Offer() {
+    }
+
+    public String getCategory() {
+        return category;
+    }
+
+    public void setCategory(String category) {
+        this.category = category;
+    }
+
+    public Integer getSalary() {
+        return salary;
+    }
+
+    public void setSalary(Integer salary) {
+        this.salary = salary;
+    }
+}
diff --git a/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/src/main/resources/META-INF/processSVG/hiring.svg b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/src/main/resources/META-INF/processSVG/hiring.svg
new file mode 100644
index 000000000..fba050070
--- /dev/null
+++ b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/src/main/resources/META-INF/processSVG/hiring.svg
@@ -0,0 +1 @@
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1575" height="521" viewBox="0 0 1575 521"><defs/><g transform="matrix(1,0,0,1,0,0)"><g><g><g><path fill="none" stroke="#d3d3d3" paint-order="fill stroke markers" d=" M 0 0 L 1200 0" stroke-miterlimit="10" stroke-opacity="0.8" stroke-dasharray="5"/></g><g><path fill="none" stroke="#d3d3d3" paint-order="fill stroke markers" d=" M 0 0 L 0 800" stroke-miterlimit="10" stroke-opacity="0.8" s [...]
\ No newline at end of file
diff --git a/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/src/main/resources/META-INF/resources/index.html b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/src/main/resources/META-INF/resources/index.html
new file mode 100644
index 000000000..8556bab48
--- /dev/null
+++ b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/src/main/resources/META-INF/resources/index.html
@@ -0,0 +1,150 @@
+<!--
+  ~ Copyright 2021 Red Hat, Inc. and/or its affiliates.
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~       http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+
+
+  <!DOCTYPE html>
+  <html lang="en">
+  
+  <head>
+      <meta charset="UTF-8">
+      <meta name="viewport" content="width=device-width, initial-scale=1.0">
+      <title>Kogito quickstart</title>
+      <link rel="stylesheet" href="styles.css" type="text/css">
+      <link rel="icon" href="https://kogito.kie.org/favicon.ico" type="image/icon type">
+      <link href='https://fonts.googleapis.com/css?family=Abril Fatface' rel='stylesheet'>
+      <link href='https://fonts.googleapis.com/css?family=Josefin Sans' rel='stylesheet'>
+      <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
+      <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
+      <link rel="stylesheet" href="http://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
+      <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta1/dist/css/bootstrap.min.css" rel="stylesheet"
+          integrity="sha384-giJF6kkoqNQ00vy+HMDP7azOuL0xtbfIcaT9wjKHr8RbDVddVHyTfAAsrekwKmP1" crossorigin="anonymous">
+      <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta1/dist/js/bootstrap.bundle.min.js"
+          integrity="sha384-ygbV9kiqUc6oa4msXn9868pTtWMgiQaeYH7/t7LECLbyPA2x65Kgf80OJFdroafW"
+          crossorigin="anonymous"></script>
+  
+  </head>
+  
+  <body>
+      <section class="nav-content" style="padding: 0 13rem; height: 78px;">
+          <div class="row gx-5" style="padding-top: 8px;">
+              <div class="col-lg-6" style="margin-top: 8px;">
+                  <a href="/"><img class="project-logo"
+                                   src="https://kogito.kie.org/assets/images/kogito_logo_rgb_color_horizontal_default_450px.png"
+                                   alt="Kogito Logo" width="180px"></a>
+              </div>
+              <div class="col-lg-6">
+                  <nav style="float: right; padding-top: 10px;">
+                      <ul style="list-style: none;">
+                          <li>
+                              <a href="http://localhost:8080/q/swagger-ui/"
+                                 style="text-transform: uppercase;
+                                  color: #fff;
+                                  line-height: 2.5;
+                                  padding: 2px 10px 0 10px;
+                                  background-color: #F5891F;
+                                  border: 2px solid #F5891F;
+                                  display: inline-block;
+                                  text-decoration: none;"
+                              >
+                                  Swagger-UI
+                              </a>
+                          </li>
+                      </ul> 
+                  </nav>
+              </div>
+          </div>
+      </section>
+      <section class="row" >
+          <div class="col-lg-12" style="
+              background: linear-gradient(135deg, #085870 0%, #085870 50%, #97d4e8 100%);
+              height: 524px; 
+          ">
+              <div style="
+                  background-image: url(https://kogito.kie.org/assets/images/homepage/hero_background.svg);
+                  background-repeat: repeat-x;
+                  background-size: auto;
+                  background-position: left;
+                  padding: 6rem 13rem 8rem 13rem;
+                  height: 524px; 
+              ">
+                  <div style="height: 300px">
+                      <h1 style="
+                      font-family: 'Abril Fatface', sans-serif;
+                      font-weight: 400;
+                      font-size: 96px;
+                    line-height: 96px;
+                    color: #fff;">Welcome to Kogito</h1>
+                      <h2 style="font-family: 'Josefin Sans', sans-serif;
+                          text-transform: uppercase;
+                          font-size: 19.2px;
+                          line-height: 1;
+                          max-width: 42rem;
+                          font-weight: 400;
+                          color: #fff;
+                          margin: 32px 8px;"
+                      >
+                          Cloud-native business automation for building intelligent applications, backed by
+                              battle-tested capabilities.
+                      </h2>
+                      <a href="https://kogito.kie.org/get-started/" style="
+                          font-family: 'Josefin Sans', sans-serif;
+                          font-size: 20px;
+                          margin: 8px;
+                          text-transform: uppercase;
+                          color: #fff;
+                          line-height: 2.5;
+                          padding: 2px 10px 0 10px;
+                          background-color: #F5891F;
+                          border: 2px solid #fff;
+                          padding: 16px 64px 12px 64px;
+                          text-decoration: none"
+                      >
+                          Get Started
+                      </a>
+                      <a href="https://docs.jboss.org/kogito/release/latest/html_single/#chap-kogito-release-notes"
+                          id="latestVersion" style="
+                          font-family: 'Josefin Sans', sans-serif;
+                          font-size: 20px;
+                          margin: 8px;
+                          text-transform: uppercase;
+                          color: #fff;
+                          line-height: 2.5;
+                          padding: 2px 10px 0 10px;
+                          background-color: #F5891F;
+                          border: 2px solid #fff;
+                          padding: 16px 64px 12px 64px;
+                          text-decoration: none"
+                      >
+                          Latest updates
+                      </a>
+                  </div>
+              </div>
+          </div>
+      </section>
+      <section style="height: 350px; margin-top: 24px;">
+          <div class="container">
+              <div class="row">
+                  <h2> Quick Links</h2>
+                  <ul style="list-style: none;">
+                      <li style="line-height: 40px;"><a href="https://kogito.kie.org/get-started/">Documentation</a></li>
+                      <li style="line-height: 40px;"><a href="https://kie.zulipchat.com/#narrow/stream/232659-general">Getting Help</a></li>
+                  </ul>
+              </div>
+          </div>
+      </section>
+  </body>
+  
+  </html>
\ No newline at end of file
diff --git a/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/src/main/resources/NewHiringOffer.dmn b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/src/main/resources/NewHiringOffer.dmn
new file mode 100644
index 000000000..67b0eded6
--- /dev/null
+++ b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/src/main/resources/NewHiringOffer.dmn
@@ -0,0 +1,163 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<dmn:definitions xmlns:dmn="http://www.omg.org/spec/DMN/20180521/MODEL/" xmlns="https://kiegroup.org/dmn/_0DCC505E-71B4-4C29-8848-4006623FE51A" xmlns:feel="http://www.omg.org/spec/DMN/20180521/FEEL/" xmlns:kie="http://www.drools.org/kie/dmn/1.2" xmlns:dmndi="http://www.omg.org/spec/DMN/20180521/DMNDI/" xmlns:di="http://www.omg.org/spec/DMN/20180521/DI/" xmlns:dc="http://www.omg.org/spec/DMN/20180521/DC/" id="_14645A68-5630-4A6F-899F-4FF825252CCD" name="New Hiring Offer" typeLanguage="htt [...]
+  <dmn:extensionElements/>
+  <dmn:itemDefinition id="_91B22404-81DF-44E7-9084-6416BF211BCC" name="tCandidateData" isCollection="false">
+    <dmn:itemComponent id="_657BB44B-D8B2-490A-B383-F63EF31E781E" name="name" isCollection="false">
+      <dmn:typeRef>string</dmn:typeRef>
+    </dmn:itemComponent>
+    <dmn:itemComponent id="_F004E7F6-6993-4CA2-8029-C3A87C8A15A8" name="lastName" isCollection="false">
+      <dmn:typeRef>string</dmn:typeRef>
+    </dmn:itemComponent>
+    <dmn:itemComponent id="_E9314196-BF96-4014-9548-2BB15D125B34" name="email" isCollection="false">
+      <dmn:typeRef>string</dmn:typeRef>
+    </dmn:itemComponent>
+    <dmn:itemComponent id="_D554122C-2BF1-4F1C-AAF2-DC7EBB72E817" name="experience" isCollection="false">
+      <dmn:typeRef>number</dmn:typeRef>
+    </dmn:itemComponent>
+    <dmn:itemComponent id="_03ACF59E-4EC6-4C79-AE55-427BD51429BD" name="skills" isCollection="true">
+      <dmn:typeRef>string</dmn:typeRef>
+    </dmn:itemComponent>
+  </dmn:itemDefinition>
+  <dmn:itemDefinition id="_76F919CD-3E75-4EE2-AD60-FB0627E0DA54" name="tOffer" isCollection="false">
+    <dmn:itemComponent id="_C4ABF342-EEB6-4CA6-AAC1-7C6D50A1DD02" name="salary" isCollection="false">
+      <dmn:typeRef>number</dmn:typeRef>
+    </dmn:itemComponent>
+    <dmn:itemComponent id="_3C2A61B7-AD85-4AF3-B904-51038920EF93" name="category" isCollection="false">
+      <dmn:typeRef>string</dmn:typeRef>
+      <dmn:allowedValues kie:constraintType="enumeration" id="_8C8338A1-7CA6-48D8-AECB-3D5082333316">
+        <dmn:text>"Software Engineer", "Senior Software Engineer", "Software Architect"</dmn:text>
+      </dmn:allowedValues>
+    </dmn:itemComponent>
+  </dmn:itemDefinition>
+  <dmn:inputData id="_59F676A7-D122-4FAB-8ABB-F1E0CC997C08" name="CandidateData">
+    <dmn:extensionElements/>
+    <dmn:variable id="_EF5D30F7-00BF-47E2-9655-D1D21B799F5C" name="CandidateData" typeRef="tCandidateData"/>
+  </dmn:inputData>
+  <dmn:decision id="_26299D78-4931-4077-A636-1364B97AB94F" name="Offer">
+    <dmn:extensionElements/>
+    <dmn:variable id="_1C79A32D-6535-4209-9840-D4FF6FF52CA9" name="Offer" typeRef="tOffer"/>
+    <dmn:informationRequirement id="_87BE8DEF-9B4D-45EC-8E59-6CD9D0613DCF">
+      <dmn:requiredInput href="#_59F676A7-D122-4FAB-8ABB-F1E0CC997C08"/>
+    </dmn:informationRequirement>
+    <dmn:context id="_6CF8329F-A45C-4FC8-AEDD-F2DA34BCD9CC">
+      <dmn:contextEntry>
+        <dmn:variable id="_F97FBBC2-9B78-4280-8053-B5089E422B35" name="SalaryBonus" typeRef="number"/>
+        <dmn:literalExpression id="_DE5ECE12-3B62-497F-9A5F-8DFE8D5B440B">
+          <dmn:text>count(CandidateData.skills) * 150</dmn:text>
+        </dmn:literalExpression>
+      </dmn:contextEntry>
+      <dmn:contextEntry>
+        <dmn:variable id="_CE19A7DC-A559-482A-93A8-38786291B11C" name="Offer" typeRef="tOffer"/>
+        <dmn:decisionTable id="_839000A0-8C02-4FD7-A079-9DCA9C2D9C67" hitPolicy="UNIQUE" preferredOrientation="Rule-as-Row">
+          <dmn:input id="_2003EFC0-4A87-43FA-80B1-25C14F0AB2FF">
+            <dmn:inputExpression id="_663F281B-8A30-44DC-9DA5-B141831D552B" typeRef="number">
+              <dmn:text>CandidateData.experience</dmn:text>
+            </dmn:inputExpression>
+          </dmn:input>
+          <dmn:output id="_BCCDA650-A716-4BA4-9B3D-4CD8AE93CB79" name="category" typeRef="string">
+            <dmn:outputValues kie:constraintType="enumeration" id="_78F5B0AC-CE91-4BEC-8B26-121FF0C0BC2A">
+              <dmn:text>"Software Engineer", "Senior Software Engineer", "Software Architect"</dmn:text>
+            </dmn:outputValues>
+          </dmn:output>
+          <dmn:output id="_FF119A4B-E564-438A-99D9-4D1B26E519F1" name="salary" typeRef="number"/>
+          <dmn:annotation name="annotation-1"/>
+          <dmn:rule id="_2E67A292-D088-4ED7-AC9D-A7D85C3B6188">
+            <dmn:inputEntry id="_5082A566-8E83-4441-B446-A69E5BE4D81E">
+              <dmn:text>[0..5)</dmn:text>
+            </dmn:inputEntry>
+            <dmn:outputEntry id="_BF300CEA-9C67-4A48-9E63-781B94552D6F">
+              <dmn:text>"Software Engineer"</dmn:text>
+            </dmn:outputEntry>
+            <dmn:outputEntry id="_7B4EBA06-D280-436F-80E6-B6631BED7E8F">
+              <dmn:text>30000 + SalaryBonus </dmn:text>
+            </dmn:outputEntry>
+            <dmn:annotationEntry>
+              <dmn:text/>
+            </dmn:annotationEntry>
+          </dmn:rule>
+          <dmn:rule id="_1322663C-FAD9-48BA-A893-8076ED7D2D55">
+            <dmn:inputEntry id="_6801EF6E-ED61-41DF-9810-7D9118A1F611">
+              <dmn:text>[5..10)</dmn:text>
+            </dmn:inputEntry>
+            <dmn:outputEntry id="_43E9D87D-ECE5-4298-B98A-9E69D93B967B">
+              <dmn:text>"Senior Software Engineer"</dmn:text>
+            </dmn:outputEntry>
+            <dmn:outputEntry id="_CF868CA5-C53A-4ECD-9167-5C55F858FF7F">
+              <dmn:text>40000 + SalaryBonus</dmn:text>
+            </dmn:outputEntry>
+            <dmn:annotationEntry>
+              <dmn:text/>
+            </dmn:annotationEntry>
+          </dmn:rule>
+          <dmn:rule id="_1104ED9E-0910-40F9-A0C3-911BF018C545">
+            <dmn:inputEntry id="_3D058456-EA96-4D78-9BF1-9AEDF3755C47">
+              <dmn:text>&gt;=10</dmn:text>
+            </dmn:inputEntry>
+            <dmn:outputEntry id="_061D4DC8-069B-43C7-9200-C20D11692D8F">
+              <dmn:text>"Software Architect"</dmn:text>
+            </dmn:outputEntry>
+            <dmn:outputEntry id="_C7269E79-EE4D-440C-99F7-C5F474F15E2F">
+              <dmn:text>50000 + SalaryBonus</dmn:text>
+            </dmn:outputEntry>
+            <dmn:annotationEntry>
+              <dmn:text/>
+            </dmn:annotationEntry>
+          </dmn:rule>
+        </dmn:decisionTable>
+      </dmn:contextEntry>
+      <dmn:contextEntry>
+        <dmn:literalExpression id="_3676400A-0460-43CC-A96A-B28B460E4D19">
+          <dmn:text>Offer</dmn:text>
+        </dmn:literalExpression>
+      </dmn:contextEntry>
+    </dmn:context>
+  </dmn:decision>
+  <dmndi:DMNDI>
+    <dmndi:DMNDiagram id="_C1A40C3F-E161-41CE-9ED5-BA9F449CF495" name="DRG">
+      <di:extension>
+        <kie:ComponentsWidthsExtension>
+          <kie:ComponentWidths dmnElementRef="_6CF8329F-A45C-4FC8-AEDD-F2DA34BCD9CC">
+            <kie:width>50</kie:width>
+            <kie:width>120</kie:width>
+            <kie:width>926</kie:width>
+          </kie:ComponentWidths>
+          <kie:ComponentWidths dmnElementRef="_DE5ECE12-3B62-497F-9A5F-8DFE8D5B440B">
+            <kie:width>926</kie:width>
+          </kie:ComponentWidths>
+          <kie:ComponentWidths dmnElementRef="_839000A0-8C02-4FD7-A079-9DCA9C2D9C67">
+            <kie:width>50</kie:width>
+            <kie:width>175</kie:width>
+            <kie:width>104</kie:width>
+            <kie:width>437</kie:width>
+            <kie:width>140</kie:width>
+          </kie:ComponentWidths>
+          <kie:ComponentWidths dmnElementRef="_3676400A-0460-43CC-A96A-B28B460E4D19">
+            <kie:width>926</kie:width>
+          </kie:ComponentWidths>
+        </kie:ComponentsWidthsExtension>
+      </di:extension>
+      <dmndi:DMNShape id="dmnshape-drg-_59F676A7-D122-4FAB-8ABB-F1E0CC997C08" dmnElementRef="_59F676A7-D122-4FAB-8ABB-F1E0CC997C08" isCollapsed="false">
+        <dmndi:DMNStyle>
+          <dmndi:FillColor red="255" green="255" blue="255"/>
+          <dmndi:StrokeColor red="0" green="0" blue="0"/>
+          <dmndi:FontColor red="0" green="0" blue="0"/>
+        </dmndi:DMNStyle>
+        <dc:Bounds x="360" y="378" width="137" height="58"/>
+        <dmndi:DMNLabel/>
+      </dmndi:DMNShape>
+      <dmndi:DMNShape id="dmnshape-drg-_26299D78-4931-4077-A636-1364B97AB94F" dmnElementRef="_26299D78-4931-4077-A636-1364B97AB94F" isCollapsed="false">
+        <dmndi:DMNStyle>
+          <dmndi:FillColor red="255" green="255" blue="255"/>
+          <dmndi:StrokeColor red="0" green="0" blue="0"/>
+          <dmndi:FontColor red="0" green="0" blue="0"/>
+        </dmndi:DMNStyle>
+        <dc:Bounds x="379" y="165" width="100" height="50"/>
+        <dmndi:DMNLabel/>
+      </dmndi:DMNShape>
+      <dmndi:DMNEdge id="dmnedge-drg-_87BE8DEF-9B4D-45EC-8E59-6CD9D0613DCF" dmnElementRef="_87BE8DEF-9B4D-45EC-8E59-6CD9D0613DCF">
+        <di:waypoint x="428.5" y="407"/>
+        <di:waypoint x="429" y="215"/>
+      </dmndi:DMNEdge>
+    </dmndi:DMNDiagram>
+  </dmndi:DMNDI>
+</dmn:definitions>
\ No newline at end of file
diff --git a/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/src/main/resources/application.properties b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/src/main/resources/application.properties
new file mode 100644
index 000000000..61f77f5d5
--- /dev/null
+++ b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/src/main/resources/application.properties
@@ -0,0 +1,52 @@
+# Packaging
+#quarkus.package.type=fast-jar
+
+#https://quarkus.io/guides/openapi-swaggerui
+quarkus.http.cors=true
+quarkus.smallrye-openapi.path=/docs/openapi.json
+quarkus.swagger-ui.always-include=true
+quarkus.kogito.data-index.graphql.ui.always-include=true
+quarkus.http.test-port=0
+
+# Kogito-service
+kogito.service.url=http://localhost:8080
+
+#Job-service
+kogito.jobs-service.url=http://localhost:8080
+
+# to be reachable from the container running job-service
+kogito.dataindex.http.url=http://localhost:8180
+kogito.dataindex.ws.url=ws://localhost:8180
+
+# run create tables scripts
+quarkus.flyway.migrate-at-start=true
+quarkus.flyway.baseline-on-migrate=true
+quarkus.flyway.baseline-version=0.0
+quarkus.flyway.locations=classpath:/db/migration,classpath:/db/jobs-service,classpath:/db/data-audit/postgresql
+quarkus.flyway.table=FLYWAY_RUNTIME_SERVICE
+
+kogito.persistence.type=jdbc
+quarkus.datasource.db-kind=postgresql
+%prod.quarkus.datasource.username=kogito-user
+%prod.quarkus.datasource.password=kogito-pass
+%prod.quarkus.datasource.jdbc.url=${QUARKUS_DATASOURCE_JDBC_URL:jdbc:postgresql://localhost:5432/kogito}
+%prod.quarkus.datasource.reactive.url=${QUARKUS_DATASOURCE_REACTIVE_URL:postgresql://localhost:5432/kogito}
+
+quarkus.native.native-image-xmx=8g
+
+# profile to pack this example into a container, to use it execute activate the maven container profile, -Pcontainer
+%container.quarkus.container-image.build=true
+%container.quarkus.container-image.push=false
+%container.quarkus.container-image.group=${USER}
+%container.quarkus.container-image.registry=dev.local
+%container.quarkus.container-image.tag=1.0-SNAPSHOT
+%container.quarkus.jib.jvm-entrypoint=/home/kogito/kogito-app-launch.sh
+%container.quarkus.jib.base-jvm-image=quay.io/kiegroup/kogito-runtime-jvm-nightly:latest
+%container.quarkus.jib.working-directory=/home/kogito/bin
+%container.quarkus.container-image.name=kogito-example-service
+
+%dev.quarkus.kogito.devservices.enabled=true
+%dev.kogito.users.jdoe.groups=admin,HR,IT
+
+# Disabling OIDC
+quarkus.oidc.enabled=false
\ No newline at end of file
diff --git a/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/src/main/resources/hiring.bpmn b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/src/main/resources/hiring.bpmn
new file mode 100644
index 000000000..3c043c24c
--- /dev/null
+++ b/kogito-quarkus-examples/process-usertasks-timer-data-index-persistence-addon-quarkus/src/main/resources/hiring.bpmn
@@ -0,0 +1,691 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<bpmn2:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bpmn2="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:bpsim="http://www.bpsim.org/schemas/1.0" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:drools="http://www.jboss.org/drools" id="_0IqVEG0AEDySCYWhrcdpgA" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd http://www. [...]
+  <bpmn2:itemDefinition id="_hr_approvalItem" structureRef="Boolean"/>
+  <bpmn2:itemDefinition id="_it_approvalItem" structureRef="Boolean"/>
+  <bpmn2:itemDefinition id="_candidateDataItem" structureRef="org.kie.kogito.hr.CandidateData"/>
+  <bpmn2:itemDefinition id="_offerItem" structureRef="org.kie.kogito.hr.Offer"/>
+  <bpmn2:itemDefinition id="__B8C4F63C-81AD-4291-9C1B-84967277EEF6_SkippableInputXItem" structureRef="Object"/>
+  <bpmn2:itemDefinition id="__B8C4F63C-81AD-4291-9C1B-84967277EEF6_PriorityInputXItem" structureRef="Object"/>
+  <bpmn2:itemDefinition id="__B8C4F63C-81AD-4291-9C1B-84967277EEF6_CommentInputXItem" structureRef="Object"/>
+  <bpmn2:itemDefinition id="__B8C4F63C-81AD-4291-9C1B-84967277EEF6_DescriptionInputXItem" structureRef="Object"/>
+  <bpmn2:itemDefinition id="__B8C4F63C-81AD-4291-9C1B-84967277EEF6_CreatedByInputXItem" structureRef="Object"/>
+  <bpmn2:itemDefinition id="__B8C4F63C-81AD-4291-9C1B-84967277EEF6_TaskNameInputXItem" structureRef="Object"/>
+  <bpmn2:itemDefinition id="__B8C4F63C-81AD-4291-9C1B-84967277EEF6_GroupIdInputXItem" structureRef="Object"/>
+  <bpmn2:itemDefinition id="__B8C4F63C-81AD-4291-9C1B-84967277EEF6_ContentInputXItem" structureRef="Object"/>
+  <bpmn2:itemDefinition id="__B8C4F63C-81AD-4291-9C1B-84967277EEF6_NotStartedReassignInputXItem" structureRef="Object"/>
+  <bpmn2:itemDefinition id="__B8C4F63C-81AD-4291-9C1B-84967277EEF6_NotCompletedReassignInputXItem" structureRef="Object"/>
+  <bpmn2:itemDefinition id="__B8C4F63C-81AD-4291-9C1B-84967277EEF6_NotStartedNotifyInputXItem" structureRef="Object"/>
+  <bpmn2:itemDefinition id="__B8C4F63C-81AD-4291-9C1B-84967277EEF6_NotCompletedNotifyInputXItem" structureRef="Object"/>
+  <bpmn2:itemDefinition id="__B8C4F63C-81AD-4291-9C1B-84967277EEF6_candidateInputXItem" structureRef="org.kie.kogito.hr.CandidateData"/>
+  <bpmn2:itemDefinition id="__B8C4F63C-81AD-4291-9C1B-84967277EEF6_offerInputXItem" structureRef="org.kie.kogito.hr.Offer"/>
+  <bpmn2:itemDefinition id="__B8C4F63C-81AD-4291-9C1B-84967277EEF6_approveInputXItem" structureRef="Boolean"/>
+  <bpmn2:itemDefinition id="__B8C4F63C-81AD-4291-9C1B-84967277EEF6_approveOutputXItem" structureRef="Boolean"/>
+  <bpmn2:itemDefinition id="__B8C4F63C-81AD-4291-9C1B-84967277EEF6_offerOutputXItem" structureRef="org.kie.kogito.hr.Offer"/>
+  <bpmn2:itemDefinition id="__8962C15F-55EC-46F7-B926-5D5A1FD8D35E_SkippableInputXItem" structureRef="Object"/>
+  <bpmn2:itemDefinition id="__8962C15F-55EC-46F7-B926-5D5A1FD8D35E_PriorityInputXItem" structureRef="Object"/>
+  <bpmn2:itemDefinition id="__8962C15F-55EC-46F7-B926-5D5A1FD8D35E_CommentInputXItem" structureRef="Object"/>
+  <bpmn2:itemDefinition id="__8962C15F-55EC-46F7-B926-5D5A1FD8D35E_DescriptionInputXItem" structureRef="Object"/>
+  <bpmn2:itemDefinition id="__8962C15F-55EC-46F7-B926-5D5A1FD8D35E_CreatedByInputXItem" structureRef="Object"/>
+  <bpmn2:itemDefinition id="__8962C15F-55EC-46F7-B926-5D5A1FD8D35E_TaskNameInputXItem" structureRef="Object"/>
+  <bpmn2:itemDefinition id="__8962C15F-55EC-46F7-B926-5D5A1FD8D35E_GroupIdInputXItem" structureRef="Object"/>
+  <bpmn2:itemDefinition id="__8962C15F-55EC-46F7-B926-5D5A1FD8D35E_ContentInputXItem" structureRef="Object"/>
+  <bpmn2:itemDefinition id="__8962C15F-55EC-46F7-B926-5D5A1FD8D35E_NotStartedReassignInputXItem" structureRef="Object"/>
+  <bpmn2:itemDefinition id="__8962C15F-55EC-46F7-B926-5D5A1FD8D35E_NotCompletedReassignInputXItem" structureRef="Object"/>
+  <bpmn2:itemDefinition id="__8962C15F-55EC-46F7-B926-5D5A1FD8D35E_NotStartedNotifyInputXItem" structureRef="Object"/>
+  <bpmn2:itemDefinition id="__8962C15F-55EC-46F7-B926-5D5A1FD8D35E_NotCompletedNotifyInputXItem" structureRef="Object"/>
+  <bpmn2:itemDefinition id="__8962C15F-55EC-46F7-B926-5D5A1FD8D35E_candidateInputXItem" structureRef="org.kie.kogito.hr.CandidateData"/>
+  <bpmn2:itemDefinition id="__8962C15F-55EC-46F7-B926-5D5A1FD8D35E_offerInputXItem" structureRef="org.kie.kogito.hr.Offer"/>
+  <bpmn2:itemDefinition id="__8962C15F-55EC-46F7-B926-5D5A1FD8D35E_approveInputXItem" structureRef="Boolean"/>
+  <bpmn2:itemDefinition id="__8962C15F-55EC-46F7-B926-5D5A1FD8D35E_approveOutputXItem" structureRef="Boolean"/>
+  <bpmn2:itemDefinition id="__F4D56F6C-4CFE-4D5C-BF5E-67261F68EF1A_fileNameInputXItem" structureRef="java.lang.String"/>
+  <bpmn2:itemDefinition id="__F4D56F6C-4CFE-4D5C-BF5E-67261F68EF1A_namespaceInputXItem" structureRef="java.lang.String"/>
+  <bpmn2:itemDefinition id="__F4D56F6C-4CFE-4D5C-BF5E-67261F68EF1A_modelInputXItem" structureRef="java.lang.String"/>
+  <bpmn2:itemDefinition id="__F4D56F6C-4CFE-4D5C-BF5E-67261F68EF1A_decisionInputXItem" structureRef="java.lang.String"/>
+  <bpmn2:itemDefinition id="__F4D56F6C-4CFE-4D5C-BF5E-67261F68EF1A_CandidateDataInputXItem" structureRef="org.kie.kogito.hr.CandidateData"/>
+  <bpmn2:itemDefinition id="__F4D56F6C-4CFE-4D5C-BF5E-67261F68EF1A_OfferOutputXItem" structureRef="org.kie.kogito.hr.Offer"/>
+  <bpmn2:collaboration id="_B7CE00C6-386E-4A14-A6CE-7A6EDDDBFE97" name="Default Collaboration">
+    <bpmn2:participant id="_9068AB92-78FE-4869-B00F-78C8020A281B" name="Pool Participant" processRef="hiring"/>
+  </bpmn2:collaboration>
+  <bpmn2:process id="hiring" drools:packageName="org.kie.kogito.hr" drools:version="1.0" drools:adHoc="false" name="hiring" isExecutable="true" processType="Public">
+    <bpmn2:property id="hr_approval" itemSubjectRef="_hr_approvalItem" name="hr_approval">
+      <bpmn2:extensionElements>
+        <drools:metaData name="customTags">
+          <drools:metaValue><![CDATA[internal]]></drools:metaValue>
+        </drools:metaData>
+      </bpmn2:extensionElements>
+    </bpmn2:property>
+    <bpmn2:property id="it_approval" itemSubjectRef="_it_approvalItem" name="it_approval">
+      <bpmn2:extensionElements>
+        <drools:metaData name="customTags">
+          <drools:metaValue><![CDATA[internal]]></drools:metaValue>
+        </drools:metaData>
+      </bpmn2:extensionElements>
+    </bpmn2:property>
+    <bpmn2:property id="candidateData" itemSubjectRef="_candidateDataItem" name="candidateData">
+      <bpmn2:extensionElements>
+        <drools:metaData name="customTags">
+          <drools:metaValue><![CDATA[input]]></drools:metaValue>
+        </drools:metaData>
+      </bpmn2:extensionElements>
+    </bpmn2:property>
+    <bpmn2:property id="offer" itemSubjectRef="_offerItem" name="offer">
+      <bpmn2:extensionElements>
+        <drools:metaData name="customTags">
+          <drools:metaValue><![CDATA[output]]></drools:metaValue>
+        </drools:metaData>
+      </bpmn2:extensionElements>
+    </bpmn2:property>
+    <bpmn2:sequenceFlow id="_7DDA574A-C220-4FEF-9784-22EF8052EDEC" sourceRef="_940F2A0C-8CC6-4ECA-B504-49363AF68B67" targetRef="_6CE52250-BCEE-485C-8AE4-F6CACF2EF5A1"/>
+    <bpmn2:sequenceFlow id="_9C33F5EA-89C7-4ED1-B3C2-CF18DE439AF5" sourceRef="_F4D56F6C-4CFE-4D5C-BF5E-67261F68EF1A" targetRef="_57DBE42C-6850-4A08-AC73-2BB0FFDFCC8C"/>
+    <bpmn2:sequenceFlow id="_527D3164-4989-4D2C-B80B-9BA9D4C8FB89" sourceRef="_4B7FF147-F096-435B-8CAF-48318EF786B0" targetRef="_457DC13A-0AEC-4390-A860-5CCFFB67B366">
+      <bpmn2:extensionElements>
+        <drools:metaData name="isAutoConnection.target">
+          <drools:metaValue><![CDATA[true]]></drools:metaValue>
+        </drools:metaData>
+      </bpmn2:extensionElements>
+    </bpmn2:sequenceFlow>
+    <bpmn2:sequenceFlow id="_94172225-E124-4F14-98DA-C3D62C11254A" sourceRef="_30C8C01B-4149-4AE5-8D86-D27D57BCA8E7" targetRef="_4B7FF147-F096-435B-8CAF-48318EF786B0"/>
+    <bpmn2:sequenceFlow id="_C6E61C53-FD35-4347-B69E-30AA93AE4404" sourceRef="_A51A809E-03C0-4EA7-91F1-7B3C5E29AD04" targetRef="_30C8C01B-4149-4AE5-8D86-D27D57BCA8E7">
+      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" language="http://www.java.com/java"><![CDATA[return candidateData.getExperience() < 1 || candidateData.getSkills().size() == 0;]]></bpmn2:conditionExpression>
+    </bpmn2:sequenceFlow>
+    <bpmn2:sequenceFlow id="_59F9A0E6-7F9C-43A9-8920-5B40A91169E6" sourceRef="_A51A809E-03C0-4EA7-91F1-7B3C5E29AD04" targetRef="_F4D56F6C-4CFE-4D5C-BF5E-67261F68EF1A"/>
+    <bpmn2:sequenceFlow id="_B7FC63DD-C08F-4CB3-A51A-79C1B8B18E6E" sourceRef="_B9662806-84F3-4444-AD62-4790CDA7C85D" targetRef="_30C8C01B-4149-4AE5-8D86-D27D57BCA8E7"/>
+    <bpmn2:sequenceFlow id="_B11455DE-F77A-4251-A85B-4C66636E3CD9" sourceRef="_B9662806-84F3-4444-AD62-4790CDA7C85D" targetRef="_940F2A0C-8CC6-4ECA-B504-49363AF68B67">
+      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" language="http://www.java.com/java"><![CDATA[return hr_approval && it_approval;]]></bpmn2:conditionExpression>
+    </bpmn2:sequenceFlow>
+    <bpmn2:sequenceFlow id="_5334FFDC-1FCB-47E6-8085-36DC9A3D17B9" sourceRef="_834B21EF-9229-44F8-A5DB-D96EBB39A347" targetRef="_30C8C01B-4149-4AE5-8D86-D27D57BCA8E7"/>
+    <bpmn2:sequenceFlow id="_5162ABF0-DD2E-4BDC-9A46-DDCFCB010287" sourceRef="_5BDBE48C-CC83-46A9-9D56-F846F8FC1045" targetRef="_A51A809E-03C0-4EA7-91F1-7B3C5E29AD04"/>
+    <bpmn2:sequenceFlow id="_C62F7EFB-A009-450A-81C7-57D36F0DF766" sourceRef="_8962C15F-55EC-46F7-B926-5D5A1FD8D35E" targetRef="_B9662806-84F3-4444-AD62-4790CDA7C85D"/>
+    <bpmn2:sequenceFlow id="_A76C6603-0406-423C-940B-3403948DCA1F" sourceRef="_B8C4F63C-81AD-4291-9C1B-84967277EEF6" targetRef="_8962C15F-55EC-46F7-B926-5D5A1FD8D35E"/>
+    <bpmn2:sequenceFlow id="_ACEE7578-B7D2-4EDF-B104-9ECF3DD8A383" sourceRef="_57DBE42C-6850-4A08-AC73-2BB0FFDFCC8C" targetRef="_B8C4F63C-81AD-4291-9C1B-84967277EEF6"/>
+    <bpmn2:sequenceFlow id="_8863B46B-9B0F-40B9-AAB1-A7503CF9AA0A" sourceRef="_1639F738-45F3-4CD6-A80E-CCEBAA605D56" targetRef="_5BDBE48C-CC83-46A9-9D56-F846F8FC1045">
+      <bpmn2:extensionElements>
+        <drools:metaData name="isAutoConnection.source">
+          <drools:metaValue><![CDATA[true]]></drools:metaValue>
+        </drools:metaData>
+      </bpmn2:extensionElements>
+    </bpmn2:sequenceFlow>
+    <bpmn2:sequenceFlow id="_7B41F971-C74D-4036-8A5E-EFF81C37986A" sourceRef="_116F3C54-A10E-4952-9E08-1CACE74CED0B" targetRef="_834B21EF-9229-44F8-A5DB-D96EBB39A347"/>
+    <bpmn2:scriptTask id="_940F2A0C-8CC6-4ECA-B504-49363AF68B67" name="Send Offer to Candidate" scriptFormat="http://www.java.com/java">
+      <bpmn2:extensionElements>
+        <drools:metaData name="elementname">
+          <drools:metaValue><![CDATA[Send Offer to Candidate]]></drools:metaValue>
+        </drools:metaData>
+      </bpmn2:extensionElements>
+      <bpmn2:incoming>_B11455DE-F77A-4251-A85B-4C66636E3CD9</bpmn2:incoming>
+      <bpmn2:outgoing>_7DDA574A-C220-4FEF-9784-22EF8052EDEC</bpmn2:outgoing>
+      <bpmn2:script>System.out.println("###################################");
+System.out.println("To: " + candidateData.getEmail());
+System.out.println("Subject: Congratulations you made it!");
+System.out.println("Dear " + candidateData.getFullName() + ", we are happy to tell you that you've successfuly went trhough the hiring process. You'll find the fina Offer details in attached.");
+System.out.println("Job Category: " + offer.getCategory());
+System.out.println("Base salary: " + offer.getSalary());
+System.out.println("###################################");</bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:scriptTask id="_57DBE42C-6850-4A08-AC73-2BB0FFDFCC8C" name="Log Offer" scriptFormat="http://www.java.com/java">
+      <bpmn2:extensionElements>
+        <drools:metaData name="elementname">
+          <drools:metaValue><![CDATA[Log Offer]]></drools:metaValue>
+        </drools:metaData>
+      </bpmn2:extensionElements>
+      <bpmn2:incoming>_9C33F5EA-89C7-4ED1-B3C2-CF18DE439AF5</bpmn2:incoming>
+      <bpmn2:outgoing>_ACEE7578-B7D2-4EDF-B104-9ECF3DD8A383</bpmn2:outgoing>
+      <bpmn2:script>System.out.println("###################################");
+System.out.println("Generated offer for candidate: " + candidateData.getFullName());
+System.out.println("Job Category: " + offer.getCategory());
+System.out.println("Base salary: " + offer.getSalary());
+System.out.println("###################################");</bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:endEvent id="_6CE52250-BCEE-485C-8AE4-F6CACF2EF5A1">
+      <bpmn2:incoming>_7DDA574A-C220-4FEF-9784-22EF8052EDEC</bpmn2:incoming>
+    </bpmn2:endEvent>
+    <bpmn2:businessRuleTask id="_F4D56F6C-4CFE-4D5C-BF5E-67261F68EF1A" name="Generate base offer" implementation="http://www.jboss.org/drools/dmn">
+      <bpmn2:extensionElements>
+        <drools:metaData name="elementname">
+          <drools:metaValue><![CDATA[Generate base offer]]></drools:metaValue>
+        </drools:metaData>
+      </bpmn2:extensionElements>
+      <bpmn2:incoming>_59F9A0E6-7F9C-43A9-8920-5B40A91169E6</bpmn2:incoming>
+      <bpmn2:outgoing>_9C33F5EA-89C7-4ED1-B3C2-CF18DE439AF5</bpmn2:outgoing>
+      <bpmn2:ioSpecification>
+        <bpmn2:dataInput id="_F4D56F6C-4CFE-4D5C-BF5E-67261F68EF1A_fileNameInputX" drools:dtype="java.lang.String" itemSubjectRef="__F4D56F6C-4CFE-4D5C-BF5E-67261F68EF1A_fileNameInputXItem" name="fileName"/>
+        <bpmn2:dataInput id="_F4D56F6C-4CFE-4D5C-BF5E-67261F68EF1A_namespaceInputX" drools:dtype="java.lang.String" itemSubjectRef="__F4D56F6C-4CFE-4D5C-BF5E-67261F68EF1A_namespaceInputXItem" name="namespace"/>
+        <bpmn2:dataInput id="_F4D56F6C-4CFE-4D5C-BF5E-67261F68EF1A_decisionInputX" drools:dtype="java.lang.String" itemSubjectRef="__F4D56F6C-4CFE-4D5C-BF5E-67261F68EF1A_decisionInputXItem" name="decision"/>
+        <bpmn2:dataInput id="_F4D56F6C-4CFE-4D5C-BF5E-67261F68EF1A_modelInputX" drools:dtype="java.lang.String" itemSubjectRef="__F4D56F6C-4CFE-4D5C-BF5E-67261F68EF1A_modelInputXItem" name="model"/>
+        <bpmn2:dataInput id="_F4D56F6C-4CFE-4D5C-BF5E-67261F68EF1A_CandidateDataInputX" drools:dtype="org.kie.kogito.hr.CandidateData" itemSubjectRef="__F4D56F6C-4CFE-4D5C-BF5E-67261F68EF1A_CandidateDataInputXItem" name="CandidateData"/>
+        <bpmn2:dataOutput id="_F4D56F6C-4CFE-4D5C-BF5E-67261F68EF1A_OfferOutputX" drools:dtype="org.kie.kogito.hr.Offer" itemSubjectRef="__F4D56F6C-4CFE-4D5C-BF5E-67261F68EF1A_OfferOutputXItem" name="Offer"/>
+        <bpmn2:inputSet>
+          <bpmn2:dataInputRefs>_F4D56F6C-4CFE-4D5C-BF5E-67261F68EF1A_fileNameInputX</bpmn2:dataInputRefs>
+          <bpmn2:dataInputRefs>_F4D56F6C-4CFE-4D5C-BF5E-67261F68EF1A_namespaceInputX</bpmn2:dataInputRefs>
+          <bpmn2:dataInputRefs>_F4D56F6C-4CFE-4D5C-BF5E-67261F68EF1A_decisionInputX</bpmn2:dataInputRefs>
+          <bpmn2:dataInputRefs>_F4D56F6C-4CFE-4D5C-BF5E-67261F68EF1A_modelInputX</bpmn2:dataInputRefs>
+          <bpmn2:dataInputRefs>_F4D56F6C-4CFE-4D5C-BF5E-67261F68EF1A_CandidateDataInputX</bpmn2:dataInputRefs>
+        </bpmn2:inputSet>
+        <bpmn2:outputSet>
+          <bpmn2:dataOutputRefs>_F4D56F6C-4CFE-4D5C-BF5E-67261F68EF1A_OfferOutputX</bpmn2:dataOutputRefs>
+        </bpmn2:outputSet>
+      </bpmn2:ioSpecification>
+      <bpmn2:dataInputAssociation>
+        <bpmn2:targetRef>_F4D56F6C-4CFE-4D5C-BF5E-67261F68EF1A_fileNameInputX</bpmn2:targetRef>
+        <bpmn2:assignment>
+          <bpmn2:from xsi:type="bpmn2:tFormalExpression"><![CDATA[NewHiringOffer.dmn]]></bpmn2:from>
+          <bpmn2:to xsi:type="bpmn2:tFormalExpression"><![CDATA[_F4D56F6C-4CFE-4D5C-BF5E-67261F68EF1A_fileNameInputX]]></bpmn2:to>
+        </bpmn2:assignment>
+      </bpmn2:dataInputAssociation>
+      <bpmn2:dataInputAssociation>
+        <bpmn2:targetRef>_F4D56F6C-4CFE-4D5C-BF5E-67261F68EF1A_namespaceInputX</bpmn2:targetRef>
+        <bpmn2:assignment>
+          <bpmn2:from xsi:type="bpmn2:tFormalExpression"><![CDATA[https://kiegroup.org/dmn/_0DCC505E-71B4-4C29-8848-4006623FE51A]]></bpmn2:from>
+          <bpmn2:to xsi:type="bpmn2:tFormalExpression"><![CDATA[_F4D56F6C-4CFE-4D5C-BF5E-67261F68EF1A_namespaceInputX]]></bpmn2:to>
+        </bpmn2:assignment>
+      </bpmn2:dataInputAssociation>
+      <bpmn2:dataInputAssociation>
+        <bpmn2:targetRef>_F4D56F6C-4CFE-4D5C-BF5E-67261F68EF1A_decisionInputX</bpmn2:targetRef>
+        <bpmn2:assignment>
+          <bpmn2:from xsi:type="bpmn2:tFormalExpression"><![CDATA[New Hiring Offer]]></bpmn2:from>
+          <bpmn2:to xsi:type="bpmn2:tFormalExpression"><![CDATA[_F4D56F6C-4CFE-4D5C-BF5E-67261F68EF1A_decisionInputX]]></bpmn2:to>
+        </bpmn2:assignment>
+      </bpmn2:dataInputAssociation>
+      <bpmn2:dataInputAssociation>
+        <bpmn2:targetRef>_F4D56F6C-4CFE-4D5C-BF5E-67261F68EF1A_modelInputX</bpmn2:targetRef>
+        <bpmn2:assignment>
+          <bpmn2:from xsi:type="bpmn2:tFormalExpression"><![CDATA[New Hiring Offer]]></bpmn2:from>
+          <bpmn2:to xsi:type="bpmn2:tFormalExpression"><![CDATA[_F4D56F6C-4CFE-4D5C-BF5E-67261F68EF1A_modelInputX]]></bpmn2:to>
+        </bpmn2:assignment>
+      </bpmn2:dataInputAssociation>
+      <bpmn2:dataInputAssociation>
+        <bpmn2:sourceRef>candidateData</bpmn2:sourceRef>
+        <bpmn2:targetRef>_F4D56F6C-4CFE-4D5C-BF5E-67261F68EF1A_CandidateDataInputX</bpmn2:targetRef>
+      </bpmn2:dataInputAssociation>
+      <bpmn2:dataOutputAssociation>
+        <bpmn2:sourceRef>_F4D56F6C-4CFE-4D5C-BF5E-67261F68EF1A_OfferOutputX</bpmn2:sourceRef>
+        <bpmn2:targetRef>offer</bpmn2:targetRef>
+      </bpmn2:dataOutputAssociation>
+    </bpmn2:businessRuleTask>
+    <bpmn2:endEvent id="_457DC13A-0AEC-4390-A860-5CCFFB67B366">
+      <bpmn2:incoming>_527D3164-4989-4D2C-B80B-9BA9D4C8FB89</bpmn2:incoming>
+    </bpmn2:endEvent>
+    <bpmn2:scriptTask id="_4B7FF147-F096-435B-8CAF-48318EF786B0" name="Application denied" scriptFormat="http://www.java.com/java">
+      <bpmn2:extensionElements>
+        <drools:metaData name="elementname">
+          <drools:metaValue><![CDATA[Application denied]]></drools:metaValue>
+        </drools:metaData>
+      </bpmn2:extensionElements>
+      <bpmn2:incoming>_94172225-E124-4F14-98DA-C3D62C11254A</bpmn2:incoming>
+      <bpmn2:outgoing>_527D3164-4989-4D2C-B80B-9BA9D4C8FB89</bpmn2:outgoing>
+      <bpmn2:script>System.out.println("###################################");
+System.out.println("Candidate " + candidateData.getFullName() + " don't meet the requirements for the position but we'll keep it on records for the future!");
+System.out.println("###################################");
+</bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:exclusiveGateway id="_30C8C01B-4149-4AE5-8D86-D27D57BCA8E7" drools:dg="_94172225-E124-4F14-98DA-C3D62C11254A" gatewayDirection="Converging" default="_94172225-E124-4F14-98DA-C3D62C11254A">
+      <bpmn2:incoming>_5334FFDC-1FCB-47E6-8085-36DC9A3D17B9</bpmn2:incoming>
+      <bpmn2:incoming>_B7FC63DD-C08F-4CB3-A51A-79C1B8B18E6E</bpmn2:incoming>
+      <bpmn2:incoming>_C6E61C53-FD35-4347-B69E-30AA93AE4404</bpmn2:incoming>
+      <bpmn2:outgoing>_94172225-E124-4F14-98DA-C3D62C11254A</bpmn2:outgoing>
+    </bpmn2:exclusiveGateway>
+    <bpmn2:exclusiveGateway id="_A51A809E-03C0-4EA7-91F1-7B3C5E29AD04" drools:dg="_59F9A0E6-7F9C-43A9-8920-5B40A91169E6" gatewayDirection="Diverging" default="_59F9A0E6-7F9C-43A9-8920-5B40A91169E6">
+      <bpmn2:incoming>_5162ABF0-DD2E-4BDC-9A46-DDCFCB010287</bpmn2:incoming>
+      <bpmn2:outgoing>_59F9A0E6-7F9C-43A9-8920-5B40A91169E6</bpmn2:outgoing>
+      <bpmn2:outgoing>_C6E61C53-FD35-4347-B69E-30AA93AE4404</bpmn2:outgoing>
+    </bpmn2:exclusiveGateway>
+    <bpmn2:exclusiveGateway id="_B9662806-84F3-4444-AD62-4790CDA7C85D" drools:dg="_B7FC63DD-C08F-4CB3-A51A-79C1B8B18E6E" gatewayDirection="Diverging" default="_B7FC63DD-C08F-4CB3-A51A-79C1B8B18E6E">
+      <bpmn2:incoming>_C62F7EFB-A009-450A-81C7-57D36F0DF766</bpmn2:incoming>
+      <bpmn2:outgoing>_B11455DE-F77A-4251-A85B-4C66636E3CD9</bpmn2:outgoing>
+      <bpmn2:outgoing>_B7FC63DD-C08F-4CB3-A51A-79C1B8B18E6E</bpmn2:outgoing>
+    </bpmn2:exclusiveGateway>
+    <bpmn2:scriptTask id="_834B21EF-9229-44F8-A5DB-D96EBB39A347" name="Send notification HR Interview avoided" scriptFormat="http://www.java.com/java">
+      <bpmn2:extensionElements>
+        <drools:metaData name="elementname">
+          <drools:metaValue><![CDATA[Send notification HR Interview avoided]]></drools:metaValue>
+        </drools:metaData>
+      </bpmn2:extensionElements>
+      <bpmn2:incoming>_7B41F971-C74D-4036-8A5E-EFF81C37986A</bpmn2:incoming>
+      <bpmn2:outgoing>_5334FFDC-1FCB-47E6-8085-36DC9A3D17B9</bpmn2:outgoing>
+      <bpmn2:script>System.out.println("###################################");
+System.out.println("HR Interview have been avoided after reasonable time");
+System.out.println("###################################");
+</bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:scriptTask id="_5BDBE48C-CC83-46A9-9D56-F846F8FC1045" name="New Hiring" scriptFormat="http://www.java.com/java">
+      <bpmn2:extensionElements>
+        <drools:metaData name="elementname">
+          <drools:metaValue><![CDATA[New Hiring]]></drools:metaValue>
+        </drools:metaData>
+      </bpmn2:extensionElements>
+      <bpmn2:incoming>_8863B46B-9B0F-40B9-AAB1-A7503CF9AA0A</bpmn2:incoming>
+      <bpmn2:outgoing>_5162ABF0-DD2E-4BDC-9A46-DDCFCB010287</bpmn2:outgoing>
+      <bpmn2:script>System.out.println("New Hiring has been created for candidate: " + candidateData.getFullName());
+
+kcontext.setVariable("hr_approval", false);
+kcontext.setVariable("it_approval", false);</bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:userTask id="_8962C15F-55EC-46F7-B926-5D5A1FD8D35E" name="IT Interview">
+      <bpmn2:extensionElements>
+        <drools:metaData name="elementname">
+          <drools:metaValue><![CDATA[IT Interview]]></drools:metaValue>
+        </drools:metaData>
+      </bpmn2:extensionElements>
+      <bpmn2:incoming>_A76C6603-0406-423C-940B-3403948DCA1F</bpmn2:incoming>
+      <bpmn2:outgoing>_C62F7EFB-A009-450A-81C7-57D36F0DF766</bpmn2:outgoing>
+      <bpmn2:ioSpecification>
+        <bpmn2:dataInput id="_8962C15F-55EC-46F7-B926-5D5A1FD8D35E_TaskNameInputX" drools:dtype="Object" itemSubjectRef="__8962C15F-55EC-46F7-B926-5D5A1FD8D35E_TaskNameInputXItem" name="TaskName"/>
+        <bpmn2:dataInput id="_8962C15F-55EC-46F7-B926-5D5A1FD8D35E_candidateInputX" drools:dtype="org.kie.kogito.hr.CandidateData" itemSubjectRef="__8962C15F-55EC-46F7-B926-5D5A1FD8D35E_candidateInputXItem" name="candidate"/>
+        <bpmn2:dataInput id="_8962C15F-55EC-46F7-B926-5D5A1FD8D35E_offerInputX" drools:dtype="org.kie.kogito.hr.Offer" itemSubjectRef="__8962C15F-55EC-46F7-B926-5D5A1FD8D35E_offerInputXItem" name="offer"/>
+        <bpmn2:dataInput id="_8962C15F-55EC-46F7-B926-5D5A1FD8D35E_approveInputX" drools:dtype="Boolean" itemSubjectRef="__8962C15F-55EC-46F7-B926-5D5A1FD8D35E_approveInputXItem" name="approve"/>
+        <bpmn2:dataInput id="_8962C15F-55EC-46F7-B926-5D5A1FD8D35E_SkippableInputX" drools:dtype="Object" itemSubjectRef="__8962C15F-55EC-46F7-B926-5D5A1FD8D35E_SkippableInputXItem" name="Skippable"/>
+        <bpmn2:dataOutput id="_8962C15F-55EC-46F7-B926-5D5A1FD8D35E_approveOutputX" drools:dtype="Boolean" itemSubjectRef="__8962C15F-55EC-46F7-B926-5D5A1FD8D35E_approveOutputXItem" name="approve"/>
+        <bpmn2:inputSet>
+          <bpmn2:dataInputRefs>_8962C15F-55EC-46F7-B926-5D5A1FD8D35E_TaskNameInputX</bpmn2:dataInputRefs>
+          <bpmn2:dataInputRefs>_8962C15F-55EC-46F7-B926-5D5A1FD8D35E_candidateInputX</bpmn2:dataInputRefs>
+          <bpmn2:dataInputRefs>_8962C15F-55EC-46F7-B926-5D5A1FD8D35E_offerInputX</bpmn2:dataInputRefs>
+          <bpmn2:dataInputRefs>_8962C15F-55EC-46F7-B926-5D5A1FD8D35E_approveInputX</bpmn2:dataInputRefs>
+          <bpmn2:dataInputRefs>_8962C15F-55EC-46F7-B926-5D5A1FD8D35E_SkippableInputX</bpmn2:dataInputRefs>
+        </bpmn2:inputSet>
+        <bpmn2:outputSet>
+          <bpmn2:dataOutputRefs>_8962C15F-55EC-46F7-B926-5D5A1FD8D35E_approveOutputX</bpmn2:dataOutputRefs>
+        </bpmn2:outputSet>
+      </bpmn2:ioSpecification>
+      <bpmn2:dataInputAssociation>
+        <bpmn2:targetRef>_8962C15F-55EC-46F7-B926-5D5A1FD8D35E_TaskNameInputX</bpmn2:targetRef>
+        <bpmn2:assignment>
+          <bpmn2:from xsi:type="bpmn2:tFormalExpression"><![CDATA[ITInterview]]></bpmn2:from>
+          <bpmn2:to xsi:type="bpmn2:tFormalExpression"><![CDATA[_8962C15F-55EC-46F7-B926-5D5A1FD8D35E_TaskNameInputX]]></bpmn2:to>
+        </bpmn2:assignment>
+      </bpmn2:dataInputAssociation>
+      <bpmn2:dataInputAssociation>
+        <bpmn2:sourceRef>candidateData</bpmn2:sourceRef>
+        <bpmn2:targetRef>_8962C15F-55EC-46F7-B926-5D5A1FD8D35E_candidateInputX</bpmn2:targetRef>
+      </bpmn2:dataInputAssociation>
+      <bpmn2:dataInputAssociation>
+        <bpmn2:sourceRef>offer</bpmn2:sourceRef>
+        <bpmn2:targetRef>_8962C15F-55EC-46F7-B926-5D5A1FD8D35E_offerInputX</bpmn2:targetRef>
+      </bpmn2:dataInputAssociation>
+      <bpmn2:dataInputAssociation>
+        <bpmn2:sourceRef>it_approval</bpmn2:sourceRef>
+        <bpmn2:targetRef>_8962C15F-55EC-46F7-B926-5D5A1FD8D35E_approveInputX</bpmn2:targetRef>
+      </bpmn2:dataInputAssociation>
+      <bpmn2:dataInputAssociation>
+        <bpmn2:targetRef>_8962C15F-55EC-46F7-B926-5D5A1FD8D35E_SkippableInputX</bpmn2:targetRef>
+        <bpmn2:assignment>
+          <bpmn2:from xsi:type="bpmn2:tFormalExpression"><![CDATA[false]]></bpmn2:from>
+          <bpmn2:to xsi:type="bpmn2:tFormalExpression"><![CDATA[_8962C15F-55EC-46F7-B926-5D5A1FD8D35E_SkippableInputX]]></bpmn2:to>
+        </bpmn2:assignment>
+      </bpmn2:dataInputAssociation>
+      <bpmn2:dataOutputAssociation>
+        <bpmn2:sourceRef>_8962C15F-55EC-46F7-B926-5D5A1FD8D35E_approveOutputX</bpmn2:sourceRef>
+        <bpmn2:targetRef>it_approval</bpmn2:targetRef>
+      </bpmn2:dataOutputAssociation>
+      <bpmn2:potentialOwner id="_0IumgG0AEDySCYWhrcdpgA">
+        <bpmn2:resourceAssignmentExpression id="_0IumgW0AEDySCYWhrcdpgA">
+          <bpmn2:formalExpression>jdoe</bpmn2:formalExpression>
+        </bpmn2:resourceAssignmentExpression>
+      </bpmn2:potentialOwner>
+    </bpmn2:userTask>
+    <bpmn2:userTask id="_B8C4F63C-81AD-4291-9C1B-84967277EEF6" name="HR Interview">
+      <bpmn2:extensionElements>
+        <drools:metaData name="elementname">
+          <drools:metaValue><![CDATA[HR Interview]]></drools:metaValue>
+        </drools:metaData>
+      </bpmn2:extensionElements>
+      <bpmn2:incoming>_ACEE7578-B7D2-4EDF-B104-9ECF3DD8A383</bpmn2:incoming>
+      <bpmn2:outgoing>_A76C6603-0406-423C-940B-3403948DCA1F</bpmn2:outgoing>
+      <bpmn2:ioSpecification>
+        <bpmn2:dataInput id="_B8C4F63C-81AD-4291-9C1B-84967277EEF6_TaskNameInputX" drools:dtype="Object" itemSubjectRef="__B8C4F63C-81AD-4291-9C1B-84967277EEF6_TaskNameInputXItem" name="TaskName"/>
+        <bpmn2:dataInput id="_B8C4F63C-81AD-4291-9C1B-84967277EEF6_candidateInputX" drools:dtype="org.kie.kogito.hr.CandidateData" itemSubjectRef="__B8C4F63C-81AD-4291-9C1B-84967277EEF6_candidateInputXItem" name="candidate"/>
+        <bpmn2:dataInput id="_B8C4F63C-81AD-4291-9C1B-84967277EEF6_offerInputX" drools:dtype="org.kie.kogito.hr.Offer" itemSubjectRef="__B8C4F63C-81AD-4291-9C1B-84967277EEF6_offerInputXItem" name="offer"/>
+        <bpmn2:dataInput id="_B8C4F63C-81AD-4291-9C1B-84967277EEF6_approveInputX" drools:dtype="Boolean" itemSubjectRef="__B8C4F63C-81AD-4291-9C1B-84967277EEF6_approveInputXItem" name="approve"/>
+        <bpmn2:dataInput id="_B8C4F63C-81AD-4291-9C1B-84967277EEF6_SkippableInputX" drools:dtype="Object" itemSubjectRef="__B8C4F63C-81AD-4291-9C1B-84967277EEF6_SkippableInputXItem" name="Skippable"/>
+        <bpmn2:dataOutput id="_B8C4F63C-81AD-4291-9C1B-84967277EEF6_approveOutputX" drools:dtype="Boolean" itemSubjectRef="__B8C4F63C-81AD-4291-9C1B-84967277EEF6_approveOutputXItem" name="approve"/>
+        <bpmn2:dataOutput id="_B8C4F63C-81AD-4291-9C1B-84967277EEF6_offerOutputX" drools:dtype="org.kie.kogito.hr.Offer" itemSubjectRef="__B8C4F63C-81AD-4291-9C1B-84967277EEF6_offerOutputXItem" name="offer"/>
+        <bpmn2:inputSet>
+          <bpmn2:dataInputRefs>_B8C4F63C-81AD-4291-9C1B-84967277EEF6_TaskNameInputX</bpmn2:dataInputRefs>
+          <bpmn2:dataInputRefs>_B8C4F63C-81AD-4291-9C1B-84967277EEF6_candidateInputX</bpmn2:dataInputRefs>
+          <bpmn2:dataInputRefs>_B8C4F63C-81AD-4291-9C1B-84967277EEF6_offerInputX</bpmn2:dataInputRefs>
+          <bpmn2:dataInputRefs>_B8C4F63C-81AD-4291-9C1B-84967277EEF6_approveInputX</bpmn2:dataInputRefs>
+          <bpmn2:dataInputRefs>_B8C4F63C-81AD-4291-9C1B-84967277EEF6_SkippableInputX</bpmn2:dataInputRefs>
+        </bpmn2:inputSet>
+        <bpmn2:outputSet>
+          <bpmn2:dataOutputRefs>_B8C4F63C-81AD-4291-9C1B-84967277EEF6_approveOutputX</bpmn2:dataOutputRefs>
+          <bpmn2:dataOutputRefs>_B8C4F63C-81AD-4291-9C1B-84967277EEF6_offerOutputX</bpmn2:dataOutputRefs>
+        </bpmn2:outputSet>
+      </bpmn2:ioSpecification>
+      <bpmn2:dataInputAssociation>
+        <bpmn2:targetRef>_B8C4F63C-81AD-4291-9C1B-84967277EEF6_TaskNameInputX</bpmn2:targetRef>
+        <bpmn2:assignment>
+          <bpmn2:from xsi:type="bpmn2:tFormalExpression"><![CDATA[HRInterview]]></bpmn2:from>
+          <bpmn2:to xsi:type="bpmn2:tFormalExpression"><![CDATA[_B8C4F63C-81AD-4291-9C1B-84967277EEF6_TaskNameInputX]]></bpmn2:to>
+        </bpmn2:assignment>
+      </bpmn2:dataInputAssociation>
+      <bpmn2:dataInputAssociation>
+        <bpmn2:sourceRef>candidateData</bpmn2:sourceRef>
+        <bpmn2:targetRef>_B8C4F63C-81AD-4291-9C1B-84967277EEF6_candidateInputX</bpmn2:targetRef>
+      </bpmn2:dataInputAssociation>
+      <bpmn2:dataInputAssociation>
+        <bpmn2:sourceRef>offer</bpmn2:sourceRef>
+        <bpmn2:targetRef>_B8C4F63C-81AD-4291-9C1B-84967277EEF6_offerInputX</bpmn2:targetRef>
+      </bpmn2:dataInputAssociation>
+      <bpmn2:dataInputAssociation>
+        <bpmn2:sourceRef>hr_approval</bpmn2:sourceRef>
+        <bpmn2:targetRef>_B8C4F63C-81AD-4291-9C1B-84967277EEF6_approveInputX</bpmn2:targetRef>
+      </bpmn2:dataInputAssociation>
+      <bpmn2:dataInputAssociation>
+        <bpmn2:targetRef>_B8C4F63C-81AD-4291-9C1B-84967277EEF6_SkippableInputX</bpmn2:targetRef>
+        <bpmn2:assignment>
+          <bpmn2:from xsi:type="bpmn2:tFormalExpression"><![CDATA[false]]></bpmn2:from>
+          <bpmn2:to xsi:type="bpmn2:tFormalExpression"><![CDATA[_B8C4F63C-81AD-4291-9C1B-84967277EEF6_SkippableInputX]]></bpmn2:to>
+        </bpmn2:assignment>
+      </bpmn2:dataInputAssociation>
+      <bpmn2:dataOutputAssociation>
+        <bpmn2:sourceRef>_B8C4F63C-81AD-4291-9C1B-84967277EEF6_approveOutputX</bpmn2:sourceRef>
+        <bpmn2:targetRef>hr_approval</bpmn2:targetRef>
+      </bpmn2:dataOutputAssociation>
+      <bpmn2:dataOutputAssociation>
+        <bpmn2:sourceRef>_B8C4F63C-81AD-4291-9C1B-84967277EEF6_offerOutputX</bpmn2:sourceRef>
+        <bpmn2:targetRef>offer</bpmn2:targetRef>
+      </bpmn2:dataOutputAssociation>
+      <bpmn2:potentialOwner id="_0Iumgm0AEDySCYWhrcdpgA">
+        <bpmn2:resourceAssignmentExpression id="_0Iumg20AEDySCYWhrcdpgA">
+          <bpmn2:formalExpression>jdoe</bpmn2:formalExpression>
+        </bpmn2:resourceAssignmentExpression>
+      </bpmn2:potentialOwner>
+    </bpmn2:userTask>
+    <bpmn2:startEvent id="_1639F738-45F3-4CD6-A80E-CCEBAA605D56">
+      <bpmn2:outgoing>_8863B46B-9B0F-40B9-AAB1-A7503CF9AA0A</bpmn2:outgoing>
+    </bpmn2:startEvent>
+    <bpmn2:boundaryEvent id="_116F3C54-A10E-4952-9E08-1CACE74CED0B" drools:dockerinfo="60.93617021276596^74|" drools:boundaryca="true" attachedToRef="_B8C4F63C-81AD-4291-9C1B-84967277EEF6">
+      <bpmn2:outgoing>_7B41F971-C74D-4036-8A5E-EFF81C37986A</bpmn2:outgoing>
+      <bpmn2:timerEventDefinition>
+        <bpmn2:timeDuration xsi:type="bpmn2:tFormalExpression">PT180S</bpmn2:timeDuration>
+      </bpmn2:timerEventDefinition>
+    </bpmn2:boundaryEvent>
+  </bpmn2:process>
+  <bpmndi:BPMNDiagram>
+    <bpmndi:BPMNPlane bpmnElement="hiring">
+      <bpmndi:BPMNShape id="shape__116F3C54-A10E-4952-9E08-1CACE74CED0B" bpmnElement="_116F3C54-A10E-4952-9E08-1CACE74CED0B">
+        <dc:Bounds height="56" width="56" x="861.936170212766" y="86.00000000000006"/>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="shape__1639F738-45F3-4CD6-A80E-CCEBAA605D56" bpmnElement="_1639F738-45F3-4CD6-A80E-CCEBAA605D56">
+        <dc:Bounds height="56" width="56.000000000000014" x="71.99999999999999" y="35.00000000000006"/>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="shape__B8C4F63C-81AD-4291-9C1B-84967277EEF6" bpmnElement="_B8C4F63C-81AD-4291-9C1B-84967277EEF6">
+        <dc:Bounds height="102" width="154" x="801" y="12.000000000000057"/>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="shape__8962C15F-55EC-46F7-B926-5D5A1FD8D35E" bpmnElement="_8962C15F-55EC-46F7-B926-5D5A1FD8D35E">
+        <dc:Bounds height="102" width="154" x="984.75" y="12.000000000000057"/>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="shape__5BDBE48C-CC83-46A9-9D56-F846F8FC1045" bpmnElement="_5BDBE48C-CC83-46A9-9D56-F846F8FC1045">
+        <dc:Bounds height="102" width="154" x="162.75" y="12.000000000000057"/>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="shape__834B21EF-9229-44F8-A5DB-D96EBB39A347" bpmnElement="_834B21EF-9229-44F8-A5DB-D96EBB39A347">
+        <dc:Bounds height="102" width="154" x="811.75" y="197.00000000000006"/>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="shape__B9662806-84F3-4444-AD62-4790CDA7C85D" bpmnElement="_B9662806-84F3-4444-AD62-4790CDA7C85D">
+        <dc:Bounds height="56" width="56" x="1164.75" y="35.00000000000006"/>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="shape__A51A809E-03C0-4EA7-91F1-7B3C5E29AD04" bpmnElement="_A51A809E-03C0-4EA7-91F1-7B3C5E29AD04">
+        <dc:Bounds height="56" width="56" x="343.75" y="35.00000000000006"/>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="shape__30C8C01B-4149-4AE5-8D86-D27D57BCA8E7" bpmnElement="_30C8C01B-4149-4AE5-8D86-D27D57BCA8E7">
+        <dc:Bounds height="56" width="56" x="1164.75" y="392.00000000000006"/>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="shape__4B7FF147-F096-435B-8CAF-48318EF786B0" bpmnElement="_4B7FF147-F096-435B-8CAF-48318EF786B0">
+        <dc:Bounds height="102" width="154" x="1263.75" y="369.00000000000006"/>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="shape__457DC13A-0AEC-4390-A860-5CCFFB67B366" bpmnElement="_457DC13A-0AEC-4390-A860-5CCFFB67B366">
+        <dc:Bounds height="56" width="56" x="1468.75" y="392.00000000000006"/>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="shape__F4D56F6C-4CFE-4D5C-BF5E-67261F68EF1A" bpmnElement="_F4D56F6C-4CFE-4D5C-BF5E-67261F68EF1A">
+        <dc:Bounds height="102" width="154" x="435.75" y="12.000000000000057"/>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="shape__6CE52250-BCEE-485C-8AE4-F6CACF2EF5A1" bpmnElement="_6CE52250-BCEE-485C-8AE4-F6CACF2EF5A1">
+        <dc:Bounds height="56" width="56" x="1468.75" y="35.00000000000006"/>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="shape__57DBE42C-6850-4A08-AC73-2BB0FFDFCC8C" bpmnElement="_57DBE42C-6850-4A08-AC73-2BB0FFDFCC8C">
+        <dc:Bounds height="102" width="154" x="618.75" y="12.000000000000057"/>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="shape__940F2A0C-8CC6-4ECA-B504-49363AF68B67" bpmnElement="_940F2A0C-8CC6-4ECA-B504-49363AF68B67">
+        <dc:Bounds height="102" width="154" x="1263.75" y="12.000000000000057"/>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="edge_shape__116F3C54-A10E-4952-9E08-1CACE74CED0B_to_shape__834B21EF-9229-44F8-A5DB-D96EBB39A347" bpmnElement="_7B41F971-C74D-4036-8A5E-EFF81C37986A">
+        <di:waypoint x="889.936170212766" y="114.00000000000006"/>
+        <di:waypoint x="888.75" y="248.00000000000006"/>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="edge_shape__1639F738-45F3-4CD6-A80E-CCEBAA605D56_to_shape__5BDBE48C-CC83-46A9-9D56-F846F8FC1045" bpmnElement="_8863B46B-9B0F-40B9-AAB1-A7503CF9AA0A">
+        <di:waypoint x="99.99999999999999" y="91.00000000000006"/>
+        <di:waypoint x="239.75" y="63.00000000000006"/>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="edge_shape__57DBE42C-6850-4A08-AC73-2BB0FFDFCC8C_to_shape__B8C4F63C-81AD-4291-9C1B-84967277EEF6" bpmnElement="_ACEE7578-B7D2-4EDF-B104-9ECF3DD8A383">
+        <di:waypoint x="695.75" y="63.00000000000006"/>
+        <di:waypoint x="801" y="63.00000000000006"/>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="edge_shape__B8C4F63C-81AD-4291-9C1B-84967277EEF6_to_shape__8962C15F-55EC-46F7-B926-5D5A1FD8D35E" bpmnElement="_A76C6603-0406-423C-940B-3403948DCA1F">
+        <di:waypoint x="878" y="63.00000000000006"/>
+        <di:waypoint x="984.75" y="63.00000000000006"/>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="edge_shape__8962C15F-55EC-46F7-B926-5D5A1FD8D35E_to_shape__B9662806-84F3-4444-AD62-4790CDA7C85D" bpmnElement="_C62F7EFB-A009-450A-81C7-57D36F0DF766">
+        <di:waypoint x="1138.75" y="63.00000000000006"/>
+        <di:waypoint x="1164.75" y="63.00000000000006"/>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="edge_shape__5BDBE48C-CC83-46A9-9D56-F846F8FC1045_to_shape__A51A809E-03C0-4EA7-91F1-7B3C5E29AD04" bpmnElement="_5162ABF0-DD2E-4BDC-9A46-DDCFCB010287">
+        <di:waypoint x="316.75" y="63.00000000000006"/>
+        <di:waypoint x="343.75" y="63.00000000000006"/>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="edge_shape__834B21EF-9229-44F8-A5DB-D96EBB39A347_to_shape__30C8C01B-4149-4AE5-8D86-D27D57BCA8E7" bpmnElement="_5334FFDC-1FCB-47E6-8085-36DC9A3D17B9">
+        <di:waypoint x="888.75" y="248.00000000000006"/>
+        <di:waypoint x="1164.75" y="420.00000000000006"/>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="edge_shape__B9662806-84F3-4444-AD62-4790CDA7C85D_to_shape__940F2A0C-8CC6-4ECA-B504-49363AF68B67" bpmnElement="_B11455DE-F77A-4251-A85B-4C66636E3CD9">
+        <di:waypoint x="1220.75" y="63.00000000000006"/>
+        <di:waypoint x="1263.75" y="63.00000000000006"/>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="edge_shape__B9662806-84F3-4444-AD62-4790CDA7C85D_to_shape__30C8C01B-4149-4AE5-8D86-D27D57BCA8E7" bpmnElement="_B7FC63DD-C08F-4CB3-A51A-79C1B8B18E6E">
+        <di:waypoint x="1192.75" y="91.00000000000006"/>
+        <di:waypoint x="1192.75" y="420.00000000000006"/>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="edge_shape__A51A809E-03C0-4EA7-91F1-7B3C5E29AD04_to_shape__F4D56F6C-4CFE-4D5C-BF5E-67261F68EF1A" bpmnElement="_59F9A0E6-7F9C-43A9-8920-5B40A91169E6">
+        <di:waypoint x="371.75" y="63.00000000000006"/>
+        <di:waypoint x="435.75" y="63.00000000000006"/>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="edge_shape__A51A809E-03C0-4EA7-91F1-7B3C5E29AD04_to_shape__30C8C01B-4149-4AE5-8D86-D27D57BCA8E7" bpmnElement="_C6E61C53-FD35-4347-B69E-30AA93AE4404">
+        <di:waypoint x="371.75" y="91.00000000000006"/>
+        <di:waypoint x="371.75" y="420.00000811728415"/>
+        <di:waypoint x="1192.75" y="420.00000000000006"/>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="edge_shape__30C8C01B-4149-4AE5-8D86-D27D57BCA8E7_to_shape__4B7FF147-F096-435B-8CAF-48318EF786B0" bpmnElement="_94172225-E124-4F14-98DA-C3D62C11254A">
+        <di:waypoint x="1192.75" y="420.00000000000006"/>
+        <di:waypoint x="1263.75" y="420.00000000000006"/>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="edge_shape__4B7FF147-F096-435B-8CAF-48318EF786B0_to_shape__457DC13A-0AEC-4390-A860-5CCFFB67B366" bpmnElement="_527D3164-4989-4D2C-B80B-9BA9D4C8FB89">
+        <di:waypoint x="1340.75" y="420.00000000000006"/>
+        <di:waypoint x="1545.75" y="392.00000000000006"/>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="edge_shape__F4D56F6C-4CFE-4D5C-BF5E-67261F68EF1A_to_shape__57DBE42C-6850-4A08-AC73-2BB0FFDFCC8C" bpmnElement="_9C33F5EA-89C7-4ED1-B3C2-CF18DE439AF5">
+        <di:waypoint x="512.75" y="63.00000000000006"/>
+        <di:waypoint x="695.75" y="63.00000000000006"/>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="edge_shape__940F2A0C-8CC6-4ECA-B504-49363AF68B67_to_shape__6CE52250-BCEE-485C-8AE4-F6CACF2EF5A1" bpmnElement="_7DDA574A-C220-4FEF-9784-22EF8052EDEC">
+        <di:waypoint x="1340.75" y="63.00000000000006"/>
+        <di:waypoint x="1496.75" y="63.00000000000006"/>
+      </bpmndi:BPMNEdge>
+    </bpmndi:BPMNPlane>
+  </bpmndi:BPMNDiagram>
+  <bpmn2:relationship type="BPSimData">
+    <bpmn2:extensionElements>
+      <bpsim:BPSimData>
+        <bpsim:Scenario id="default" name="Simulationscenario">
+          <bpsim:ScenarioParameters/>
+          <bpsim:ElementParameters elementRef="_1639F738-45F3-4CD6-A80E-CCEBAA605D56">
+            <bpsim:TimeParameters>
+              <bpsim:ProcessingTime>
+                <bpsim:NormalDistribution mean="0" standardDeviation="0"/>
+              </bpsim:ProcessingTime>
+            </bpsim:TimeParameters>
+          </bpsim:ElementParameters>
+          <bpsim:ElementParameters elementRef="_B8C4F63C-81AD-4291-9C1B-84967277EEF6">
+            <bpsim:TimeParameters>
+              <bpsim:ProcessingTime>
+                <bpsim:NormalDistribution mean="0" standardDeviation="0"/>
+              </bpsim:ProcessingTime>
+            </bpsim:TimeParameters>
+            <bpsim:ResourceParameters>
+              <bpsim:Availability>
+                <bpsim:FloatingParameter value="0"/>
+              </bpsim:Availability>
+              <bpsim:Quantity>
+                <bpsim:FloatingParameter value="0"/>
+              </bpsim:Quantity>
+            </bpsim:ResourceParameters>
+            <bpsim:CostParameters>
+              <bpsim:UnitCost>
+                <bpsim:FloatingParameter value="0"/>
+              </bpsim:UnitCost>
+            </bpsim:CostParameters>
+          </bpsim:ElementParameters>
+          <bpsim:ElementParameters elementRef="_8962C15F-55EC-46F7-B926-5D5A1FD8D35E">
+            <bpsim:TimeParameters>
+              <bpsim:ProcessingTime>
+                <bpsim:NormalDistribution mean="0" standardDeviation="0"/>
+              </bpsim:ProcessingTime>
+            </bpsim:TimeParameters>
+            <bpsim:ResourceParameters>
+              <bpsim:Availability>
+                <bpsim:FloatingParameter value="0"/>
+              </bpsim:Availability>
+              <bpsim:Quantity>
+                <bpsim:FloatingParameter value="0"/>
+              </bpsim:Quantity>
+            </bpsim:ResourceParameters>
+            <bpsim:CostParameters>
+              <bpsim:UnitCost>
+                <bpsim:FloatingParameter value="0"/>
+              </bpsim:UnitCost>
+            </bpsim:CostParameters>
+          </bpsim:ElementParameters>
+          <bpsim:ElementParameters elementRef="_5BDBE48C-CC83-46A9-9D56-F846F8FC1045">
+            <bpsim:TimeParameters>
+              <bpsim:ProcessingTime>
+                <bpsim:NormalDistribution mean="0" standardDeviation="0"/>
+              </bpsim:ProcessingTime>
+            </bpsim:TimeParameters>
+            <bpsim:ResourceParameters>
+              <bpsim:Availability>
+                <bpsim:FloatingParameter value="0"/>
+              </bpsim:Availability>
+              <bpsim:Quantity>
+                <bpsim:FloatingParameter value="0"/>
+              </bpsim:Quantity>
+            </bpsim:ResourceParameters>
+            <bpsim:CostParameters>
+              <bpsim:UnitCost>
+                <bpsim:FloatingParameter value="0"/>
+              </bpsim:UnitCost>
+            </bpsim:CostParameters>
+          </bpsim:ElementParameters>
+          <bpsim:ElementParameters elementRef="_834B21EF-9229-44F8-A5DB-D96EBB39A347">
+            <bpsim:TimeParameters>
+              <bpsim:ProcessingTime>
+                <bpsim:NormalDistribution mean="0" standardDeviation="0"/>
+              </bpsim:ProcessingTime>
+            </bpsim:TimeParameters>
+            <bpsim:ResourceParameters>
+              <bpsim:Availability>
+                <bpsim:FloatingParameter value="0"/>
+              </bpsim:Availability>
+              <bpsim:Quantity>
+                <bpsim:FloatingParameter value="0"/>
+              </bpsim:Quantity>
+            </bpsim:ResourceParameters>
+            <bpsim:CostParameters>
+              <bpsim:UnitCost>
+                <bpsim:FloatingParameter value="0"/>
+              </bpsim:UnitCost>
+            </bpsim:CostParameters>
+          </bpsim:ElementParameters>
+          <bpsim:ElementParameters elementRef="_4B7FF147-F096-435B-8CAF-48318EF786B0">
+            <bpsim:TimeParameters>
+              <bpsim:ProcessingTime>
+                <bpsim:NormalDistribution mean="0" standardDeviation="0"/>
+              </bpsim:ProcessingTime>
+            </bpsim:TimeParameters>
+            <bpsim:ResourceParameters>
+              <bpsim:Availability>
+                <bpsim:FloatingParameter value="0"/>
+              </bpsim:Availability>
+              <bpsim:Quantity>
+                <bpsim:FloatingParameter value="0"/>
+              </bpsim:Quantity>
+            </bpsim:ResourceParameters>
+            <bpsim:CostParameters>
+              <bpsim:UnitCost>
+                <bpsim:FloatingParameter value="0"/>
+              </bpsim:UnitCost>
+            </bpsim:CostParameters>
+          </bpsim:ElementParameters>
+          <bpsim:ElementParameters elementRef="_F4D56F6C-4CFE-4D5C-BF5E-67261F68EF1A">
+            <bpsim:TimeParameters>
+              <bpsim:ProcessingTime>
+                <bpsim:NormalDistribution mean="0" standardDeviation="0"/>
+              </bpsim:ProcessingTime>
+            </bpsim:TimeParameters>
+            <bpsim:ResourceParameters>
+              <bpsim:Availability>
+                <bpsim:FloatingParameter value="0"/>
+              </bpsim:Availability>
+              <bpsim:Quantity>
+                <bpsim:FloatingParameter value="0"/>
+              </bpsim:Quantity>
+            </bpsim:ResourceParameters>
+            <bpsim:CostParameters>
+              <bpsim:UnitCost>
+                <bpsim:FloatingParameter value="0"/>
+              </bpsim:UnitCost>
+            </bpsim:CostParameters>
+          </bpsim:ElementParameters>
+          <bpsim:ElementParameters elementRef="_57DBE42C-6850-4A08-AC73-2BB0FFDFCC8C">
+            <bpsim:TimeParameters>
+              <bpsim:ProcessingTime>
+                <bpsim:NormalDistribution mean="0" standardDeviation="0"/>
+              </bpsim:ProcessingTime>
+            </bpsim:TimeParameters>
+            <bpsim:ResourceParameters>
+              <bpsim:Availability>
+                <bpsim:FloatingParameter value="0"/>
+              </bpsim:Availability>
+              <bpsim:Quantity>
+                <bpsim:FloatingParameter value="0"/>
+              </bpsim:Quantity>
+            </bpsim:ResourceParameters>
+            <bpsim:CostParameters>
+              <bpsim:UnitCost>
+                <bpsim:FloatingParameter value="0"/>
+              </bpsim:UnitCost>
+            </bpsim:CostParameters>
+          </bpsim:ElementParameters>
+          <bpsim:ElementParameters elementRef="_940F2A0C-8CC6-4ECA-B504-49363AF68B67">
+            <bpsim:TimeParameters>
+              <bpsim:ProcessingTime>
+                <bpsim:NormalDistribution mean="0" standardDeviation="0"/>
+              </bpsim:ProcessingTime>
+            </bpsim:TimeParameters>
+            <bpsim:ResourceParameters>
+              <bpsim:Availability>
+                <bpsim:FloatingParameter value="0"/>
+              </bpsim:Availability>
+              <bpsim:Quantity>
+                <bpsim:FloatingParameter value="0"/>
+              </bpsim:Quantity>
+            </bpsim:ResourceParameters>
+            <bpsim:CostParameters>
+              <bpsim:UnitCost>
+                <bpsim:FloatingParameter value="0"/>
+              </bpsim:UnitCost>
+            </bpsim:CostParameters>
+          </bpsim:ElementParameters>
+        </bpsim:Scenario>
+      </bpsim:BPSimData>
+    </bpmn2:extensionElements>
+    <bpmn2:source>_0IqVEG0AEDySCYWhrcdpgA</bpmn2:source>
+    <bpmn2:target>_0IqVEG0AEDySCYWhrcdpgA</bpmn2:target>
+  </bpmn2:relationship>
+</bpmn2:definitions>
\ No newline at end of file


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@kie.apache.org
For additional commands, e-mail: commits-help@kie.apache.org