-
Notifications
You must be signed in to change notification settings - Fork 37
Description
Is your feature request related to a problem? Please describe.
tctl
is a great tool to expose the Temporal API to a CLI environment. It lets users browse and control Workflows, etc. It is the command-line analogue to the Web GUI. However, the Web GUI has features such as interactive listings of Workflows, where it is dynamically refreshed and you can drill into a Workflow.
A Text User Interface (TUI) can have the same interactivity available. Go libraries such a BubbleTea and the Charm.sh ecosystem make it easy (and fun!) to implement.
I operate Temporal on Nomad (see my WIP Terraform Module for it). Like Kubernetes, HashiCorp Nomad has a web interface and also a CLI interface.
But for most of my Nomad operations, I actually use a tool called wander because it is often more nimble than either when you really need it. wander
is the TUI-ification of the Nomad Web GUI.
Describe the solution you'd like
I don't think there needs to be a separate tool and that the TUI falls naturally with the command hierarchy.
Normally, one might do this:
$ tctl wf listall
> user finds the workflow ID you want
$ tctl wf show -w <id>
> user looks at list and realizes they that you want to send it a signal
$ tctl wf signal -w <id > --input <input>
That workflow could be done with the interactive
or int
(or tui
?) command:
$ tctl wf int
# tctl brings up a TUI interactive list of Workflows
> user types /test
# tctl filters to just show Workflows named like "test"
> user arrows down to their specific Workflow
# tctl changes selection to the Workflow
> user presses return
# tctl switch to a brings up Summary with pretty-printed table of Workflow info
> user presses ESC
# tctl switches back to the previous view
> user presses `S`
# tctl pops up a textbox for the --input
> user fills text box and tab-return closes the box
# tctl pops up "Are you sure?"
> users presses `Y`
# tctl sends selected signal input to Workflow
...etc...
Additional context
Obviously this is not a small feature request and is very cross cutting. There are tons of TUI interactions that can are useful within the tctl
command hierarchy. But the important things are already teased out by the Web GUI:
- lists of workflows in a namespace and their state
- lists of schedules and their state
- interactive filtering
I also note these tools work great over SSH.
I saw references in the repo to "interactive mode", but that was isolated to pagination of results.