Code Monkey home page Code Monkey logo

zeebe-play's Introduction

zeebe-play

License

Compatible with: Camunda Platform 8

A web application for Zeebe to play with processes. You could describe it as a token simulation but for executable processes (i.e. models enhanced with technical properties). It enables you to walk through your process by completing tasks and triggering events, in an intuitive way.

โœจ You could use it to:

  • explore how your process runs on Zeebe, the workflow engine of Camunda Platform 8
  • check if your process with its technical properties behaves as expected
  • replay a given scenario

Demo


๐Ÿช Credits

Zeebe-Play is build on top of other great community projects, for example:

  • EZE, an embedded Zeebe engine to run the processes
  • ZeeQS, a GraphQL API to import and aggregate Zeebe's data
  • Zeebe Hazelcast Exporter, an exporter based on Hazelcast to consume Zeebe's data

๐Ÿ”ฅ Disclaimer

This project is a community-driven extension and not officially supported by Camunda. It is not recommended to be used in a production environment.

โ›ฝ Install

Docker

The docker image is published to GitHub Packages .

Pull the image using the following command:

docker pull ghcr.io/camunda-community-hub/zeebe-play:latest

Next, have a look at usage on how to start the docker container, and the different configurations.

Docker Compose

For a local setup, the repository contains a docker-compose file. It contains multiple profiles for different configurations.

Embedded Zeebe engine and in-memory database:

docker-compose --profile in-memory up

Remote Zeebe engine and in-memory database:

docker-compose --profile remote-engine up

Embedded Zeebe engine and PostgreSQL database:

docker-compose --profile postgres up

After Zeebe-Play is started, go to http://localhost:8080 and play.

๐Ÿš€ Usage

Zeebe-Play can be used in different configurations:

  • with embedded or remote Zeebe engine (default: embedded)
  • with in-memory or persistent database (default: in-memory)

See the following sections for detailed instructions.

After Zeebe-Play is started, go to http://localhost:8080 and play.

Default

By default, Zeebe-Play runs the processes on an embedded Zeebe engine (EZE) and stores the data in an in-memory database (H2). Since there is no persistence, Zeebe-Play starts always with a fresh state (i.e. no data on restart).

Use the following command to start the docker container:

docker run -p 8080:8080 -p 26500:26500 ghcr.io/camunda-community-hub/zeebe-play:latest
  • expose port 8080 for the web application
  • (optional) expose port 26500 for the Camunda modeler and Zeebe clients

Or, if you run it on your local machine (Linux only):

docker run --network="host" ghcr.io/camunda-community-hub/zeebe-play:latest

Connecting to a remote Zeebe engine

Zeebe-Play can connect to a remote Zeebe engine to run the processes.

In the Zeebe broker

  • configure the Hazelcast exporter
  • enable the clock endpoint to use the time travel function
    • ZEEBE_CLOCK_CONTROLLED=true (environment variable)
    • zeebe.clock.controlled: true (application.yaml)
  • expose the ports
    • 26500 for connecting the Zeebe client
    • 5701 for connection to Hazelcast

For example, using the pre-built community Zeebe image with Hazelcast exporter:

docker run -p 26500:26500 -p 5701:5701 -e ZEEBE_CLOCK_CONTROLLED=true ghcr.io/camunda-community-hub/zeebe-with-hazelcast-exporter:8.0.5

Or, if you run it on your local machine (Linux only):

docker run --network="host" -e ZEEBE_CLOCK_CONTROLLED=true ghcr.io/camunda-community-hub/zeebe-with-hazelcast-exporter:8.0.5

In Zeebe-Play

  • set the Zeebe engine to remote:
    • ZEEBE_ENGINE=remote (environment variable)
    • zeebe.engine: remote (application.yaml)
  • (optional) configure the Zeebe broker connection (default: 127.0.0.1:26500)
    • ZEEBE_CLIENT_BROKER_GATEWAYADDRESS (environment variable)
    • zeebe.client.broker.gatewayAddress (application.yaml)
  • (optional) configure the Zeebe clock API (default: 127.0.0.1:9600/actuator/clock)
    • ZEEBE_CLOCK_ENDPOINT (environment variable)
    • zeebe.clock.endpoint (application.yaml)
  • (optional) configure the Hazelcast connection (default: localhost:5701)
    • ZEEBE_CLIENT_WORKER_HAZELCAST_CONNECTION (environment variable)
    • zeebe.client.worker.hazelcast.connection (application.yaml)
docker run -p 8080:8080 -e ZEEBE_ENGINE=remote ghcr.io/camunda-community-hub/zeebe-play:latest

Or, if you run it on your local machine (Linux only):

docker run --network="host" -e ZEEBE_ENGINE=remote ghcr.io/camunda-community-hub/zeebe-play:latest

Enable persistence

Zeebe-Play can store data in a persistent database, like PostgreSQL. This option is only useful in combination with a remote Zeebe engine because the embedded Engine doesn't persist its data. As a result, Zeebe-Play would show data of processes and instances but Zeebe wouldn't know about these.

Configure the following properties in Zeebe-Play:

(environment variables)

SPRING_DATASOURCE_URL=jdbc:postgresql://127.0.0.1:5432/postgres
SPRING_DATASOURCE_USERNAME=postgres
SPRING_DATASOURCE_PASSWORD=zeebe
SPRING_DATASOURCE_DRIVERCLASSNAME=org.postgresql.Driver
SPRING_JPA_PROPERTIES_HIBERNATE_DIALECT=org.hibernate.dialect.PostgreSQLDialect
SPRING_JPA_HIBERNATE_DLL_AUTO=create

(application.yaml)

spring:
  datasource:
    url: jdbc:postgresql://127.0.0.1:5432/postgres
    username: postgres
    password: zeebe
    driverClassName: org.postgresql.Driver
  jpa:
    properties.hibernate.dialect: org.hibernate.dialect.PostgreSQLDialect
    hibernate.dll-auto=create

๐Ÿ—๏ธ Contributions

Contributions are welcome ๐ŸŽ‰ Please have a look at the Contribution Guide.

โ“ FAQ

What is the difference to the bpmn-js token simulation?

The bpmn-js token simulation is a great tool to learn BPMN. Since it doesn't run the process on Zeebe, the workflow engine of Camunda Platform 8, it ignores some technical properties of the process, like expressions, message correlations, or timers, or execute them differently.

The token simulation is especially handy when crafting the process. Zeebe-Play shows its value when enhancing the technical properties of the process to execute it on Zeebe.

What is the difference to the Zeebe Simple Monitor?

The Zeebe Simple Monitor is similar to Zeebe-Play but it focuses more on monitoring process instances.

The goal of Zeebe-Play is to walk through a single process instance in an intuative way to understand how it is executed.

Additionally, Zeebe-Play has a different architecture to benefit from other community projects and to build a more responsive frontend.

Can I use it in production?

No. It is not recommended to use Zeebe Play in a production environment.

The application is not designed to handle big data, or to import the data reliable. And, it is too easy to manipulate a process accidentally.

๐Ÿ›‚ Code of Conduct

This project adheres to the Contributor Covenant Code of Conduct. By participating, you are expected to uphold this code. Read more about the Camunda Community Code of Conduct and how to report unacceptable behavior.

๐Ÿ“– License

Apache License, Version 2.0

zeebe-play's People

Contributors

actions-user avatar dependabot[bot] avatar hkupitz avatar saig0 avatar sebastianstamm avatar skayliu avatar vsgoulart avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

zeebe-play's Issues

I can use Camunda's Connectors

Is your feature request related to a problem? Please describe.
In my process, I use Camunda's Connectors, for example, the REST connector. I want to run this process and verify that the connectors produce the expected result.

To verify this process locally, I need to run all connectors locally and connect them to Zeebe-Play.

Describe the solution you'd like
Camunda's Connectors are bundled with Zeebe-Play. I can run my process without additional setup.

I can enable or disable the connectors that I need.

Describe alternatives you've considered
I run the connectors locally myself and connect them to Zeebe-Play.

Additional context
https://docs.camunda.io/docs/next/components/integration-framework/connectors/out-of-the-box-connectors/available-connectors-overview/

I can select a BPMN element

Is your feature request related to a problem? Please describe.
When I look at a process instance, the view can contain many data. For example, all variables of the process instance.

I would have a better overview of the data if I could select or filter the data.

Describe the solution you'd like
I can select a BPMN element in the process diagram. The data is filtered by the selected element.

For example, the view shows only the variables of the selected element. The audit log (or element instance tree) shows only the select element and its parent and child instances.

Describe alternatives you've considered
I can filter in separate views, for example, filter variables by their element.

Additional context
I like how it is implemented in Operate.

I can see the most recent element instances first

Is your feature request related to a problem? Please describe.
In the process instance view, I can see all element instances of the process instance, both active and completed. If the process contains many elements then I could be hard to see the active element instances.

Describe the solution you'd like
I can filter the element instances by state. For example, show only the active element instances.

By default, the view should show only the active element instances.

Describe alternatives you've considered
I can sort element instances. For example, by their activation time (i.e. the creation time). So, I can see the most recent element instances first.

Additional context

image

Ad-Blocker breaks functionality

Describe the bug
When having an ad-blocker enabled, some functionality, like starting a new instance or rewinding, breaks.

To Reproduce

228804328-7041b099-f20a-4685-b4f9-05f31ad96d66.mov

Expected behavior
All functionality works even with an adblocker.

Environment (please complete the following information):

  • Zeebe-Play Version: 1.7.0
  • Configuration: hosted by Camunda (though I guess all other configurations are also affected)

Additional context
Ad-blockers could prevent the file containing the optional mixpanel integration code to load, which defines some globally available functions. With this file missing, those functions are never defined, causing the application to break.

XOR Gate conditions don't render

Describe the bug
The condition on a sequence path coming out of an XOR or Inclusive gate doesn't appear.

To Reproduce
Steps to reproduce the behavior:

  1. Select the template "Absence request"
  2. Create a new process instance
  3. Mouse-over the info icon on the "Rejected" path to the right of the first XOR gate

Expected behavior
Show condition: = approvalResult = "rejected"

Screenshots
image
image

Environment (please complete the following information):

  • Zeebe-Play version | dev
  • Zeebe engine version | 1.2.0 (8.2.0)
  • Opened through Web Modeler

Additional context

Keep diagram position and zoom after rewind

Is your feature request related to a problem? Please describe.
When I have a big diagram and need to zoom in to a particular section to interact with, after I reload the page or use the rewind functionality, the diagram is displayed in its original zoomed-out state again. That means I have to find and manually zoom in to the correct place again, which is frustrating and slows me down.

Describe the solution you'd like
I want that the diagram position and zoom is kept after I reload the page or use the rewind feature.

The UI is reloaded automatically

Is your feature request related to a problem? Please describe.
Currently, the UI is reloaded only if a command is executed. In many cases, I need to reload the UI manually to see the new data.

Describe the solution you'd like
The UI reloads automatically if new data is available. For example, for a process instance.

Describe alternatives you've considered
Manual reload like now.

Additional context
Requires:

Timer start event is listed in the process instance view

Describe the bug
My process has two timer start event. A timer start event is triggered and created a process instance.

I open the process instance and see that the timer count is 1 but no timer is listed. The JS console shows an error.

To Reproduce
Steps to reproduce the behavior:

  1. Deploy a process with a timer start event
  2. Trigger the timer start event
  3. Open the created process instance
  4. Verify that the timer count is 1 but no timer is listed

Expected behavior
The timer count is 0. The process instance doesn't contain any timers.

The timer start event should be excluded for the process instance itself.

Screenshots

image

Environment (please complete the following information):

  • Zeebe-Play Version: 1.1.0
  • Configuration: default

Additional context

No variable found for name 'MYSQL_PWD' with mysql database connector

Describe the bug
No variable found for name 'MYSQL_PWD' with MySQL Database Connector

failed to evaluate expression '{operation:"mysql.read-data",databaseConnection:{host:"127.0.0.1",port:"3306",username:"root",password:MYSQL_PWD},data:{databaseName:"testdb",tableName:"my_table",columnNames:null,filters:null,orderBy:null,limit:null}}': no variable found for name 'MYSQL_PWD'

To Reproduce
Steps to reproduce the behavior:

  1. Add the dependency to Zeebe Play of Camunda MySQL Database Connector from Awesome Camunda Platform 8 Connectors#Partner Connectors
    <dependency>
      <groupId>com.infosys.camundaconnectors.db.mysql</groupId>
      <artifactId>connector-mysql</artifactId>
      <version>0.1.0-SNAPSHOT</version>
    </dependency>
  1. deploy a process with a mysql connector in it
  2. provide the secret =secrets.MYSQL_PWD for the mysql connector of password filed.
  3. start a process instance.
  4. See error

Expected behavior
It should invoke the connector and the task shuold be done

Screenshots
Process_02mw6a3_MySQL2

Environment (please complete the following information):

  • Zeebe-Play Version: main
  • Configuration: default

Additional context

<?xml version="1.0" encoding="UTF-8"?>
<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:zeebe="http://camunda.org/schema/zeebe/1.0" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:modeler="http://camunda.org/schema/modeler/1.0" id="Definitions_0tu89l7" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="5.10.0" modeler:executionPlatform="Camunda Cloud" modeler:executionPlatformVersion="8.2.0">
  <bpmn:process id="Process_02mw6a3" name="Process_02mw6a3" isExecutable="true">
    <bpmn:startEvent id="StartEvent_1">
      <bpmn:outgoing>Flow_0e85v2j</bpmn:outgoing>
    </bpmn:startEvent>
    <bpmn:endEvent id="Event_14rx1tu">
      <bpmn:incoming>Flow_00dxllt</bpmn:incoming>
    </bpmn:endEvent>
    <bpmn:sequenceFlow id="Flow_00dxllt" sourceRef="Activity_0tsit78" targetRef="Event_14rx1tu" />
    <bpmn:serviceTask id="Activity_0tsit78" name="Read Data of MySQL" zeebe:modelerTemplate="com.infosys.camundaconnectors.db.mysql.v1" zeebe:modelerTemplateVersion="1" zeebe:modelerTemplateIcon="data:image/svg+xml;utf8,%3Csvg xmlns=&#39;http://www.w3.org/2000/svg&#39; xmlns:xlink=&#39;http://www.w3.org/1999/xlink&#39; width=&#39;18&#39; height=&#39;18&#39; viewBox=&#39;0 0 18 18&#39;%3E%3Cimage xlink:href=&#39;data:image/png;base64,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&#39; x=&#39;0&#39; y=&#39;0&#39; height=&#39;100%25&#39; width=&#39;100%25&#39;/%3E%3C/svg%3E">
      <bpmn:extensionElements>
        <zeebe:taskDefinition type="com.infosys.camundaconnectors.db:mysql:1" />
        <zeebe:ioMapping>
          <zeebe:input source="mysql.read-data" target="operation" />
          <zeebe:input source="127.0.0.1" target="databaseConnection.host" />
          <zeebe:input source="3306" target="databaseConnection.port" />
          <zeebe:input source="root" target="databaseConnection.username" />
          <zeebe:input source="=secrets.MYSQL_PWD" target="databaseConnection.password" />
          <zeebe:input source="testdb" target="data.databaseName" />
          <zeebe:input source="my_table" target="data.tableName" />
          <zeebe:input source="=null" target="data.columnNames" />
          <zeebe:input source="=null" target="data.filters" />
          <zeebe:input source="=null" target="data.orderBy" />
          <zeebe:input source="=null" target="data.limit" />
        </zeebe:ioMapping>
        <zeebe:taskHeaders>
          <zeebe:header key="resultVariable" value="queryStatus" />
        </zeebe:taskHeaders>
      </bpmn:extensionElements>
      <bpmn:incoming>Flow_0e85v2j</bpmn:incoming>
      <bpmn:outgoing>Flow_00dxllt</bpmn:outgoing>
    </bpmn:serviceTask>
    <bpmn:sequenceFlow id="Flow_0e85v2j" sourceRef="StartEvent_1" targetRef="Activity_0tsit78" />
  </bpmn:process>
  <bpmndi:BPMNDiagram id="BPMNDiagram_1">
    <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Process_02mw6a3">
      <bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1">
        <dc:Bounds x="179" y="99" width="36" height="36" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Event_14rx1tu_di" bpmnElement="Event_14rx1tu">
        <dc:Bounds x="542" y="99" width="36" height="36" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Activity_1uui2vr_di" bpmnElement="Activity_0tsit78">
        <dc:Bounds x="330" y="77" width="100" height="80" />
        <bpmndi:BPMNLabel />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNEdge id="Flow_00dxllt_di" bpmnElement="Flow_00dxllt">
        <di:waypoint x="430" y="117" />
        <di:waypoint x="542" y="117" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="Flow_0e85v2j_di" bpmnElement="Flow_0e85v2j">
        <di:waypoint x="215" y="117" />
        <di:waypoint x="330" y="117" />
      </bpmndi:BPMNEdge>
    </bpmndi:BPMNPlane>
  </bpmndi:BPMNDiagram>
</bpmn:definitions>

Make it easier to start a new process instance of the demo process

Description

The start page mentions a demo process that can be deployed directly from the card by clicking on it. After the process is deployed, the button below is enabled and a new instance of the process can be created.

However, if you leave the page then the button is disabled again and you need to click on the deploy button again.

It would be easier to create a new instance of the demo process if the button would be always enabled if the process is deployed once.

Zeebe Play can send data to mixpanel

Is your feature request related to a problem? Please describe.

I would like to find out

  • How many people complete process instances?
  • Where do they get stuck?
  • Is there a particular element / thing that causes them to get stuck?

This is only relevant for users of Camundas SaaS offering.

Describe the solution you'd like
When a users accesses the hosted version of Zeebe Play that is integrated with the Camunda Web Modeler, and this user has agreed to the required preconditions for tracking (e.g. cookie consent, no "Do not track" setting, etc.) in the Camunda Web Modeler, the hosted instance of Zeebe Play sends data to mixpanel when the user starts an instance, completes tasks, completes instances, as well as the presence of errors and incidents.

Users that are using a self-hosted version of Zeebe Play should not be affected by this.

Rewind doesn't replay call process jobs

Describe the bug
Rewinding to a task after a called process doesn't place the token at the desired task. Instead, the token goes to the called process.

To Reproduce
Steps to reproduce the behavior:

  1. Create a process that calls a second process
  2. Execute the process, including the called process
  3. Rewind to a point after the called process
  4. See that the called process isn't replayed

Expected behavior
Rewinding to a location results in going to that location

Screenshots
image

Environment (please complete the following information):

  • Zeebe-Play Version: 1.2.0 (8.2.0) dev
  • Configuration: Opened through Web Modeler

Additional context
Add any other context about the problem here.

On a child process instance, the breadcrumb increases on reload

Describe the bug
I open a child process instance. On the top, the breadcrumb shows the parent process instance.

image

If I reload the page then the breadcrumb increases and shows duplicated data.

image

To Reproduce
Steps to reproduce the behavior:

  1. Deploy a parent and a child process
  2. Create an instance of the parent process
  3. Open the child process instance
  4. Click on the reload button on the page

Expected behavior
The breadcrumb doesn't change on reload.

Screenshots
See above.

Environment (please complete the following information):

  • Zeebe-Play Version: 1.0.0
  • Configuration: default

Additional context

On a call activity, I can't jump to the process instance if an incident is created

Describe the bug
A process contains a call activity. If the call activity is active or completed then I can jump to the child process instance.

image

If an incident is created on the call activity then the button to resolve the incident overlaps with the button to jump to the child process instance.

image

Either the incident resolve or the jump to child instance button is visible.

To Reproduce
Steps to reproduce the behavior:

  1. Deploy the parent process with a call activity that has an output mapping
  2. Deploy the child process
  3. Create an instance of the parent process
  4. Complete the child process instance
  5. Verify that an incident is created

Expected behavior
The buttons don't overlap. Show the "jump to child instance" button on the right top corner of the call activity.

Currently, the info icon is shown in the right top corner. Move the info icon to the bottom right corner.

Screenshots
See above.

Environment (please complete the following information):

  • Zeebe-Play Version: 1.0.0
  • Configuration: default

Additional context

Rewind does not reach selected task after non-element time travel

Describe the bug
When using the time travel feature that is not bound to an element, using the menu next to the "Set Variables" functionality and then continuing the process, when rewinding, it always goes back to the state it was before the time travel occured.

To Reproduce
Steps to reproduce the behavior:

  1. Have a process with two user tasks
  2. Create a new instance of the process and complete the first user task
  3. Use the Time Travel feature to travel by any amount of time
  4. Complete the second user task
  5. Rewind to the second user task

Expected behavior
I get placed in a new instance at the second user task.

Observed behavior
I get placed in a new instance at the first user task.

Additional context
This happens because the rewind looks for a timer attached to an element in order to replay the time-travel. If there is no element, the replay cannot continue. To fix this, we should replay the actual time travel timeDefinition if the time travel happened without any specific element attachment.

I only see relevant files too choose from for a new deployment

Is your feature request related to a problem? Please describe.
When making a new deployment to Zeebe Play, I usually have downloaded the bpmn file beforehand (e.g. from Webmodeler) so it ends up in my - very messy - downloads directory. When uploading the file to Zeebe Play, I can see all files in the directory instead of only those that make sense to upload

Describe the solution you'd like
Only show .bpmn, .xml, and .dmn files in the "New Deployment" file input dialog

User form drop-down is not styled properly

Describe the bug
The drop-down of a user form is not styled properly. The action buttons (x - clean, v - open) are directly after the text. See the screenshots.

To Reproduce
Steps to reproduce the behavior:

  1. Select the template "Absence request"
  2. Create a new process instance
  3. Open the user form of the first user task

Expected behavior
The user form looks similar to Camunda Tasklist.

image

Screenshots

image

Environment (please complete the following information):

  • Zeebe-Play Version: 1.8.0
  • Configuration: Embedded, Web Modeler

Additional context

Improve Incident UX flow

Is your feature request related to a problem? Please describe.
I'm always frustrated when an incident occurs and the primary action (clicking the resolve button) does not resolve the incident

Describe the solution you'd like

  • When completing a job that leads to an incident, we keep the success job completion notification
  • As soon as an incident occurs, we inform the user via a sticky error toast notification
  • This incident toast notification contains a clickable element that opens the bottom drawer and switches to the incidents tab
  • The Resolve incident button (both in the diagram as well as in the incident tab) opens a modal that contains:
    • the incident error message
    • a way for users to add variables to the process
    • a way for users to inspect existing variables in the process

I can see the process instance that was created by a timer

Is your feature request related to a problem? Please describe.
I deployed a process with a timer start event and other start events. I want to see which process instance was created by which timer. Similar to message start events.

Describe the solution you'd like
In the process view, I can see the process instance that was created by a timer start event.

Describe alternatives you've considered
None.

Additional context
Requires camunda-community-hub/zeeqs#309

I can see the user tasks of a process instance

Is your feature request related to a problem? Please describe.
I want to see the user tasks of a process instance, similar to jobs.

Describe the solution you'd like
The process instance view has a new tab for user tasks. It shows important information about a user task:

  • (job) key
  • assignee
  • candidate groups
  • state
  • related element
  • related element instance

If the user task has a form, I can open and fill the form.

If the user task has no form, I can complete the task (i.e. the job) with or without variables.

Describe alternatives you've considered
None.

Additional context
Related to #10

I can rewind a process instance to a previous state

Is your feature request related to a problem? Please describe.

When testing a process, I need to complete process instance with different payloads to test different scenarios. To do so, I have to manually create the instances and click through them again and again, which is very time consuming.

Describe the solution you'd like
When completing a user task with a form, I want this form to be pre-filled with the values I entered previously so I just have to click the complete button for the form. In cases where there is no form, but I still completed the task with a variable payload previously, I want the previous payload to be reusable without having to enter it again.

In addition, I would like to "go back in time" and rewind a process instance to a previous state so I can quickly test different scenarios for a single task.

So, in summary:

  • When opening the form of a user task, this form is pre-filled with the values of the previous completion of the same usertask
  • User Task forms have a reset button in the footer of the modal that reverts any pre-filled values as well as any user input in the form
  • Tasks without forms (e.g. service tasks or user tasks without forms) that were completed with variables before show a "Use previous response" button as primary action that completes the task using the same variable payload as before
    • The "Complete Job" action is still available via the dropdown
  • Tasks that were completed show a "Rewind to this element" button
  • Clicking this rewind button prevents the user from taking any other action until the rewind process is completed
  • Clicking the rewind button creates a new process instance and uses saved history data to progress this new instance until the selected task becomes completable. The user is then redirected to this new instance.

Describe alternatives you've considered
#72 and #73 could be alternatives, but describe slightly different UX. They could still be valuable additions, even with the rewind functionality.

Fail service task appears to hang, then can't rewind

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behavior:

  1. Run 'Order Fulfillment' process in Zeebe Play
  2. Fail a task with 12 retries
  3. Not have any clear next steps in the process.
  4. Wait...
  5. Rewind

Expected behavior
To have a primary action to perform after I fail the task.
Then, to be able to rewind the process

Screenshots
image

Environment (please complete the following information):

  • Zeebe-Play Version: 8.2.0-alpha4
    • Configuration: SaaS

Additional context
Add any other context about the problem here.

I can evaluate DMN decisions

Is your feature request related to a problem? Please describe.
I model a DMN decision and want to evaluate it to verify that it produces the expected output. But currently, there is no way to evaluate the decision on-the-fly.

Describe the solution you'd like
I can evaluate a DMN decision with variables and see the output of the decision.

Describe alternatives you've considered
I use a BPMN process with a business rule task to evaluate the decision.

Additional context
Requires #64.

I can get all process variables as JSON

Is your feature request related to a problem? Please describe.
A process instance has many variables. I can see these variables in the process instance view in a key-value table. If I want to create a new instance of the process with the same variable then I need to collect all variables from the table.

Describe the solution you'd like
I can get all variables of the process instance as a JSON document. Either only the global variables or the variables from a given element's view.

Describe alternatives you've considered
I collect the variables manually from the variable table.

Additional context

Update form-js to enable recent form features of 8.2

Is your feature request related to a problem? Please describe.

In 8.2, we will have new form features incl.

  • New row-based layout
  • Text templating for the text view

Those forms are currently not supported in Zeebe Play.
However, there is backwards compatibility, that means it does not break, but will render with the old layout and do not render templated texts.

Describe the solution you'd like
Do a dependency update

Additional context
https://www.npmjs.com/package/@bpmn-io/form-js/v/0.13.1

I can create and execute test cases

Is your feature request related to a problem? Please describe.
As a user, I want to create test cases for my processes to verify that the processes behave as expected.

Describe the solution you'd like
I want to create test cases for my process visually on the diagram.

I want to execute the test cases and see if the processes fulfill the expectation. If not, I want to analyze the test run.

Further ideas:

  • import and export of test cases
  • create a test case by recording commands (like in Selenium)

Describe alternatives you've considered
None.

Additional context
Requires camunda-community-hub/zeebe-spec#100.

The view of the correlated messages of a message start event is broken

Describe the bug
I deploy a process with two message start events. I published a message for each message start event.

I want to see the correlated messages of the start events. But the view is broken (see the screenshots).

To Reproduce
Steps to reproduce the behavior:

  1. Deploy a process with two message start events
  2. Publish a message for each start event
  3. View the message subscriptions
  4. Click on the correlated messages
  5. See that the view is broken

Expected behavior
I see the correlated messages.

Screenshots

image

Environment (please complete the following information):

  • Zeebe-Play Version: 1.0.0
  • Configuration: default,

Additional context

Rewind does not work correctly if instance had an incident

Describe the bug
When a process instance had an incident, even if this incident was resolved, the rewind does not reach tasks that were completed after the incident was resolved and the task completed.

To Reproduce

2023-02-14.11-07-29.mp4

Expected behavior
Rewind works correctly even if there are incidents.

Additional context
We probably need to replay the resolve incident action, too.

Autodiscovered secret names with dashes are cut of before the first dash

Describe the bug
Autodiscovered secret names with dashes are cut of before the first dash.

To Reproduce
Steps to reproduce the behavior:

  1. Refer a secret with a dash in it's name in Modeler
  2. Run the diagram in play mode
  3. Click on the "missing secrets" notification
  4. A secret is autoprovided, but with the wrong name

Bildschirmfoto 2023-04-19 um 09 05 03

Bildschirmfoto 2023-04-19 um 09 04 50

Expected behavior

The correct name is populated.

Environment (please complete the following information):

  • Zeebe-Play Version: Current as of April 19th 2023

Clean up info icons

In the Process view, the info icon that describes the condition of the sequence flow in in the lower right corner of the bounding box of that sequence flow. There are situations where this placement is confusing, see screenshot:

image

In addition, all other info icons are blue, fighting for attention with the primary call to action button.

We should remove the misplaced sequence flow icons and de-emphasise the remaining icons.

Acceptance Criteria

  • Sequence Flow info icons are removed
  • All other info icons are de-emphasised

Call it just "Play" in Camunda hosted instances

Is your feature request related to a problem? Please describe.
With the upcoming Camunda 8.2 release, the Web Modeler integration of Zeebe Play will call it just "Play". This conflicts with the name "Zeebe Play" in the header.

Describe the solution you'd like
When I open Play from the Camunda Webmodeler, I want it to be called Play so I don't have to wonder whether I'm in the correct feature. The Zeebe and play icons are removed. Having the play icon could confuse the user with the "Run" functionality of Webmodeler.

Handle non-existing data gracefully

Description

We should improve the UI and handle non-existing data gracefully.

For example, if the process of a process instance is not available. In ZeeQS, the process would be null. The UI should handle this case and show placeholders for non-existing data (e.g. the diagram). The existing data should be visible.

Long variables spill out of incident screen

Describe the bug
Long variables are not wrapped in the incident screen, causing them to spill out of the screen

To Reproduce
Steps to reproduce the behavior:

  1. Begin a process
  2. Add a long variable (example: {"billerStreet":"Automation Avenue","invoiceDate":"2023-04-12","billerName":"ACME Corp.","firstName":"John","invoiceValue":399.95,"purpose":"Hosting of the exciting Camunda Platform 8.2 release webinar","billerStreetNo":"1","department":"product","lastName":"Doe","invoiceUrl":"https://drive.google.com/file/d/1vLwZ_on7OIPDszZHW_z2zt3Q_JC_2TCu/view?usp=sharing","billerZip":"12345","billerCity":"San Francamunda","item":"Webinar Hosting"}
  3. Trigger an incident
  4. View variables

Expected behavior
The variables wrap so I can see the full content

Screenshots
image

Environment (please complete the following information):

  • Zeebe-Play Version: 1.2.0 (8.2.0) dev
  • Configuration: Opened through Web Modeler

Additional context
Add any other context about the problem here.

Support new top-level signal start event

Is your feature request related to a problem? Please describe.
Zeebe will support top-level signal start events with 8.2. It would be great if we could use these in Zeebe Play as well.

Describe the solution you'd like
Support top-level signal start events:

  • allow deploying processes with these events
  • allow broadcasting signal events from the Zeebe Play UI

Describe alternatives you've considered
๐Ÿคท

Additional context
Part of a larger effort to support signal events.

Process instance is not updated after idle-time

Describe the bug
When I am looking at a process instance (or process) page for a longer time, and then complete a job, the process instance state is no longer updated.

To Reproduce
Steps to reproduce the behavior:

  1. Open a process instance page where a job can be completed
  2. Wait for a while (in my case 60 seconds) without doing anything
  3. Complete the job
  4. I get a job completion notification, but the process instance state is not updated until I manually refresh the page

Expected behavior
The process instance state is updated automatically after completing a job

Environment (please complete the following information):

  • Zeebe-Play Version: dev
  • Configuration: Hosted on play.camunda.io

Additional context
The websocket connection runs into an idle timeout and closes, preventing updates to be communicated.

I can view and complete the form of a user task

Is your feature request related to a problem? Please describe.
A process contains user tasks that can be backed by user forms. Currently, the user tasks can be completed in the process like other tasks.

But I don't have the option to view the defined user form or complete the form with the defined variables.

Describe the solution you'd like
I can see the user form of a user task.

If the user task is active then I can view and complete the user form. The user form should be rendered with the process variables.

If the user completes the form then the related job should be completed with the variables of the form.

Describe alternatives you've considered
None. Handle it like other tasks.

Additional context
The data about user forms must be exposed in ZeeQS first. camunda-community-hub/zeeqs#284

I can create a process instance with the variables of another process instance

Is your feature request related to a problem? Please describe.
When I develop a process, I modify and test the process. I repeat this loop multiple times until it works as expected. But every time, I need to enter the same variable to test the process.

Describe the solution you'd like
I want to select a process instance (of the last run) and create a new instance of the same process with the (global) variables of the selected process instance.

Describe alternatives you've considered
#11

Additional context

Rewind does not set variables correctly

Describe the bug
When using the "Set Variables" functionality and then rewinding the process instance to a previous state, but after the variables were set, the new instance does not have the new variables.

To Reproduce
Steps to reproduce the behavior:

  1. Be in a process instance
  2. Use "Set Variables" to set a new variable in the global scope
  3. Complete a task
  4. Rewind to the completed Task

Expected behavior
The new instance after the rewind has the new variable that was set using the "Set Variables" functionality

Observed behavior
The new instance does not have the new variable.

Additional context
The "Set Variables" modal does not produce entries in the instance history to replay.

I can create a process instance at any element

Is your feature request related to a problem? Please describe.
I have a large process and want to test a part at the end of the process.

To test the part at the end, I need to play through the whole process first. Every time.

Describe the solution you'd like
I can create the process instance not only at the start event but at any element. This allows for skipping not relevant parts.

Describe alternatives you've considered
None.

Additional context
This feature is available in Zeebe since version 8.1.

Use icons for the element instance state

Is your feature request related to a problem? Please describe.
I open the page of a process instance. On the diagram, I can see the element instance state when hovering over the element. It shows the number of active (blue), completed (gray), and terminated (black) element instances.

image

But the different states are not intuitive.

Describe the solution you'd like
In addition to the color, show an icon for each number.

Describe alternatives you've considered
None.

Additional context

Zeebe-Play doesn't start with remote configuration

Describe the bug
If I try to start Zeebe-Play with a configuration to a remote Zeebe engine, the application doesn't start.

To Reproduce
Steps to reproduce the behavior:

  1. Start Zeebe Broker with Hazelcast exporter
  2. Run
docker run -p 8081:8080 -e ZEEBE_ENGINE=remote -e ZEEBE_CLIENT_WORKER_HAZELCAST_CONNECTION=<ip>:5701 -e ZEEBE_CLIENT_BROKER_GATEWAYADDRESS=<ip>:26500 ghcr.io/camunda-community-hub/zeebe-play:1.8.0

Expected behavior
Zeebe-Play runs and connects to a remote Zeebe engine.

Log output

2023-04-11 12:41:24.570 ERROR 1 --- [           main] o.s.boot.SpringApplication               : Application run failed

org.springframework.context.ApplicationContextException: Failed to start bean 'zeebeClientLifecycle'; nested exception is java.lang.NoClassDefFoundError: io/camunda/connector/runtime/util/outbound/OutboundConnectorRegistrationHelper
	at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:181) ~[spring-context-5.3.25.jar:5.3.25]
	at org.springframework.context.support.DefaultLifecycleProcessor.access$200(DefaultLifecycleProcessor.java:54) ~[spring-context-5.3.25.jar:5.3.25]
	at org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.start(DefaultLifecycleProcessor.java:356) ~[spring-context-5.3.25.jar:5.3.25]
	at java.base/java.lang.Iterable.forEach(Unknown Source) ~[na:na]
	at org.springframework.context.support.DefaultLifecycleProcessor.startBeans(DefaultLifecycleProcessor.java:155) ~[spring-context-5.3.25.jar:5.3.25]
	at org.springframework.context.support.DefaultLifecycleProcessor.onRefresh(DefaultLifecycleProcessor.java:123) ~[spring-context-5.3.25.jar:5.3.25]
	at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:935) ~[spring-context-5.3.25.jar:5.3.25]
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:586) ~[spring-context-5.3.25.jar:5.3.25]
	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:147) ~[spring-boot-2.7.8.jar:2.7.8]
	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:731) ~[spring-boot-2.7.8.jar:2.7.8]
	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:408) ~[spring-boot-2.7.8.jar:2.7.8]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:307) ~[spring-boot-2.7.8.jar:2.7.8]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1303) ~[spring-boot-2.7.8.jar:2.7.8]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1292) ~[spring-boot-2.7.8.jar:2.7.8]
	at org.camunda.community.zeebe.play.ZeebePlayApplicationKt.main(ZeebePlayApplication.kt:46) ~[classes/:na]
Caused by: java.lang.NoClassDefFoundError: io/camunda/connector/runtime/util/outbound/OutboundConnectorRegistrationHelper
	at io.camunda.zeebe.spring.client.connector.OutboundConnectorManager.loadClasspathOutboundConnectors(OutboundConnectorManager.java:51) ~[spring-zeebe-8.1.17.jar:na]
	at io.camunda.zeebe.spring.client.connector.OutboundConnectorManager.start(OutboundConnectorManager.java:38) ~[spring-zeebe-8.1.17.jar:na]
	at io.camunda.zeebe.spring.client.annotation.processor.OutboundConnectorAnnotationProcessor.start(OutboundConnectorAnnotationProcessor.java:56) ~[spring-zeebe-8.1.17.jar:na]
	at io.camunda.zeebe.spring.client.annotation.processor.ZeebeAnnotationProcessorRegistry.lambda$startAll$0(ZeebeAnnotationProcessorRegistry.java:38) ~[spring-zeebe-8.1.17.jar:na]
	at java.base/java.util.ArrayList.forEach(Unknown Source) ~[na:na]
	at io.camunda.zeebe.spring.client.annotation.processor.ZeebeAnnotationProcessorRegistry.startAll(ZeebeAnnotationProcessorRegistry.java:38) ~[spring-zeebe-8.1.17.jar:na]
	at io.camunda.zeebe.spring.client.lifecycle.ZeebeClientLifecycle.start(ZeebeClientLifecycle.java:49) ~[spring-zeebe-8.1.17.jar:na]
	at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:178) ~[spring-context-5.3.25.jar:5.3.25]
	... 14 common frames omitted
Caused by: java.lang.ClassNotFoundException: io.camunda.connector.runtime.util.outbound.OutboundConnectorRegistrationHelper
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(Unknown Source) ~[na:na]
	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(Unknown Source) ~[na:na]
	at java.base/java.lang.ClassLoader.loadClass(Unknown Source) ~[na:na]
	... 22 common frames omitted

Environment (please complete the following information):

  • Zeebe-Play Version: 1.7.0, 1.8.0
  • Configuration: remote Zeebe

Additional context
It worked in version 1.6.0.

Unable to invoke the SendGrid connector with secret provided

Describe the bug
Unable to invoke the sendgrid connector (secret provided)
To Reproduce
Steps to reproduce the behavior:

  1. Deploy a process with a sendgrid connector in it
  2. provide the secret for the sendgrid connector
  3. start the process instance,invoke the connector
  4. See error

Expected behavior
It should invoke the connector and the mail delivery shuold be done
Screenshots
image

Environment (please complete the following information):

  • Zeebe-Play Version: 1.8.1
  • Configuration: in memory

Align UI with Camunda Web Modeler

Is your feature request related to a problem? Please describe.
Remove unnecessary elements so the user can focus on the core workflow
Align UX with Web Modeler so there's less of a jarring change when opening Zeebe Play

Describe the solution you'd like

  • Update breadcrumb style and add status pills
  • make info panel collapsable
  • add global actions in instance view with tooltip
  • move notifications to the left and update style
  • update bottom bar tab styles
  • make bottom bar resizable
  • add modeler zoom controls
  • remove bpmn.io logo
  • update 404 page style
  • make info icon overlay squarer

Support for Mysql connector

Hi
Cannot load driver class: com.mysql.cj.jdbc.Driver

please can you add support for mysql db, including mysql connector dependency in pom

Thanks in advance.

I can see the properties of a user task

Is your feature request related to a problem? Please describe.
I want to see the following properties of a user task:

  • assignee
  • candidate groups

Describe the solution you'd like
I see the properties of the user task. The properties should be displayed similarly to the job type of service tasks.

The user task should have an icon "i" on the corner. If I hover over the icon then the properties are displayed.

image

Describe alternatives you've considered
None.

Additional context
Requires camunda-community-hub/zeeqs#283

Fix typo in incident retry notification

Describe the bug
When increasing the retries in case of an incident, a popup shows with the text: "Retries of job 123 increase."

To Reproduce
Steps to reproduce the behavior:

  1. Produce an incident.
  2. Go to the "Incidents" tab.
  3. Click on the "Resolve" button.

Expected behavior
The popup text should be: "Retries of job 123 increased."

Screenshots
image

Environment:

  • Zeebe-Play Version: 1.5.0

I can see how DMN table was evaluated

Is your feature request related to a problem? Please describe.
I deployed a process with a business rule task with DMN implementation. I also deployed the required DMN. After executing the preceding tasks, DMN task get automatically evaluated, and I can see its output in variables, but have no insight into how it got to that result.

Describe the solution you'd like
Possibly "Show state transitions"-button for executed business rule task could, when activated, show a link which would pop up a dmn-js based visualization for the executed table highlighting the chosen row.

On a call activity, I can jump to the child process before it is executed

Is your feature request related to a problem? Please describe.
A call activity references a child process. If the call activity is activated or completed then I can jump to the child process instance.

But only if the call activity is activated or completed.

Describe the solution you'd like
From a call activity, I want to jump to the child process. If the call activity is activated or completed then it jumps to the child process instance, as it is now.

Otherwise, it jumps to the process that will be called from the call activity. The child process could change over time if a new version of the process is deployed.

If no child process is deployed then I can see a warning or note. I could remind me to deploy the child process before an incident is created when activating the call activity.

Describe alternatives you've considered
None.

Additional context
None.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.