+
Skip to content

[Feature Request] Add TUI #359

@neomantra

Description

@neomantra

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载