Running Workflows locally with BAMOE Quarkus Dev UI extension

The BAMOE Quarkus Dev UI extension is a web app that attaches to the Quarkus Dev UI and allows developers to interact and manage running processes.

BAMOE Quarkus Dev UI extension Process Instances page

You will need to create a Business Service with the Quarkus framework support. Once you have done this you can add the BAMOE Quarkus Dev UI extension dependency to your pom.xml file:

<dependency>
  <groupId>com.ibm.bamoe</groupId>
  <artifactId>bamoe-quarkus-devui</artifactId>
</dependency>

Then setup the application.properties file to add users and user groups in the format:

bamoe.devui.users.<username>.groups=<comma separated list of groups>

For example:

bamoe.devui.users.jdoe.groups=admin,HR,IT
bamoe.devui.users.alice.groups=HR,IT
bamoe.devui.users.admin.groups=admin

To include the Swagger UI with the Open API specifications for you Workflow, add the following properties:

quarkus.swagger-ui.always-include=true
quarkus.smallrye-openapi.path=docs/openapi.json

To execute the project in the local development environment, open a new terminal and execute:

mvn clean quarkus:dev

This command should install the dependencies and run your Quarkus application in Dev mode locally (usually at http://localhost:8080).

Using the BAMOE Quarkus Dev UI extension interface to manage processes

To access the BAMOE Quarkus Dev UI extension, open a browser and navigate to http://localhost:8080/q/dev-ui/. This is the Quarkus Dev UI, where the BAMOE Quarkus Dev UI extension is listed.

Accessing the BAMOE Quarkus Dev UI extension from the Quarkus Dev UI

Scroll down until to the BAMOE Quarkus Dev UI box and click on any item in the list (Process Instances, Tasks, Jobs, or Forms) to open the BAMOE Quarkus Dev UI extension web app.

Process Instances

Process Instances page

The Process Instances page will display all the running processes and their execution status. Clicking on any process instance will open the Process Instance details page.

Process Details page

Starting a new process instance

To start a new process instance, go to the Process Definitions tab. There, all the Process Definitions are listed, one for each Workflow in your resources directory.

Process Definitions page

Click on any Process Definition to open its respective initialization form.

Process Definition form page

Fill the form with relevant data for you Workflow and click on Start.

Note
The Process Defitions forms are auto generated, but can be customized in the Forms page. See more in the Forms section.

Jobs

Jobs page

The Jobs page will display all the scheduled jobs and their execution status. Clicking on the actions menu on any job will show available options, including Details, which will open the job details modal.

Job details page

Tasks

Tasks page

The Tasks page will display all the User Tasks and their priorities and status. Clicking on the task name will open the User Task Form that can be filled and submitted to progress it to the next phase.

Task Form page

Clicking on View Details will open a side panel with more details regarding the current task, including the parent process, possible assigned users/groups, id, name, and state.

Task details panel
Note
The Task forms are auto generated, but can be customized in the Forms page. See more in the Forms section.

Forms

Forms page

The Forms page will display all the available forms in the project. It initially will be empty, since all forms (for User Tasks and Process Definitions) are auto generated.

To add custom forms (for the hiring Process Definition or HR Interview User Task for example), follow the steps in Form code generation functionality and then place the generated forms in the src/main/resources/custom-forms-dev folder.

Using the Swagger UI

Not directly related to the BAMOE Quarkus Dev UI extension, but also a useful tool to explore the REST and GraphQL API endpoints of your Workflow.

Swagger UI page

The Swagger UI lists all endpoints generated for your Workflow as well as the extra endpoints for management, such as /management/processes.

To use the API, select any endpoint and click on Try it out to test it.

Swagger UI try it out page