temporalio / temporalio/ui

Display workflow business state in UI

Open
#1,009 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
TypeScript
Stars
431
Forks
179
Avg merge
2d 9h
Merged PRs (30d)
71

Description

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

People want to know the state of their workflows (business state, beyond the Open/Cancelled/Completed workflow status). Current options require either:

  1. knowledge of the workflow's code, and the ability to read Event History and build a mental model of where in the code the execution is
  2. adding a query, running the query, and interpreting the results
  3. building an app that does the queries and provides a custom UI (or using a framework that gives you a UI, like xstate, or writing updates in activities to a system that has an automatic UI, like a CMS)

Describe the solution you'd like

A solution that is simple for non-developers to understand and doesn't take much engineering. Number 3 above can be simple to understand, but requires a good amount of development.

MVP

An MVP of this might be a special query like __ui_state that returns an object that's displayed as a table of key-value pairs, like returning this:

{
  "Order state": "Shipped",
  "Item IDs": [123, 456], 
  "Ordered at": "Fri Dec 23 2022 18:15:47 GMT-0500", 
  "Shipped at": "Fri Dec 23 2022 18:15:47 GMT-0500"
}  

displays this at the top of the History tab (if query is implemented and returns a valid JSON object):

image
Custom UI

A more involved solution would allow for more UI components than just a table of values. Either prebuilt components that the dev can select from, or components that they code and somehow get added to the page. And some way for the dev to specify how to get the data for each component (query name, poll frequency, return value field).

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the workflow History tab and the proposed __ui_state query behavior described in the issue. Determine how a valid JSON object would be surfaced as a key-value table, and define the MVP boundary separately from the custom UI proposal. Done means the supported business-state data is visible to non-developers without requiring custom application development.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
frontend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.