You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This discussion proposes an intelligent UI version of the LittleHorse CLI lhctl that would make it far easier for new and old LittleHorse Users to make requests.
Motivation
lhctl, the command line interface for executing RPCs with LittleHorse, is a powerful tool that makes sending RPC requests to LittleHorse super easy. It abstracts away the structure of each request and gives users a simple command format to make an RPC request.
For example, a RunWfRequest may take on this form in JSON using Postman:
lhctl run my-workflow user_name "jacob" birth_year 2002
This format is a lot more concise, but leaves much to be desired in terms of structure...
Unknowns to the user:
What workflows are available to run?
What are the inputs for a specific workflow?
What are the types for each input?
How should inputs of different types be formatted?
Sure, these unknowns can be figured out through executing some more commands, but then we fall back into the same problem of not knowing the command structure. This leads us down a rabbit hole of using help commands and retracing our steps. This works for some power users, but there must be a better way for general users...
Proposal
I believe a lot of these concerns can be solved with a visual version of lhctl, a command palette of sorts, that supports service and object reflection.
I propose we build an lhctl+: RPC Command Palette UI.
Features:
This UI would allow users to search the available service definitions within a server, gathered using Server Reflection.
Once a user selects a service, the UI would display a form with all of the necessary fields to fulfill the service request.
We can define custom components for each field type.
Timestamps could have a time picker component.
Ints could have an input component that only accepts Integer inputs.
Some field inputs could even fetch further data from the server, like a WfSpecName input that fetches all of the WfSpecs on the server using RPC SearchWfSpecRequest.
The request response could be formatted using custom components depending on the content. Objects mentioned in the response with dedicated pages in the dashboard (like WfRuns) could link back to those pages.
lhctl+ would take all of the "guess work" out of running RPCs with LittleHorse.
Mockups
The following mockups were developed to flesh out this idea. They are influenced by the shadcn/ui library. However, the idea for lhctl+ is language and library agnostic, this could be implemented in any number of ways like via a TUI.
Lofty Goals
If designed carefully and purposefully, this LittleHorse feature could easily be turned into its own open source project allowing others to create their own command palettes with custom UI components for gRPC services, going far beyond the capabilities of existing gRPC client implementations like Postman.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
Background
This discussion proposes an intelligent UI version of the LittleHorse CLI
lhctl
that would make it far easier for new and old LittleHorse Users to make requests.Motivation
lhctl
, the command line interface for executing RPCs with LittleHorse, is a powerful tool that makes sending RPC requests to LittleHorse super easy. It abstracts away the structure of each request and gives users a simple command format to make an RPC request.For example, a
RunWfRequest
may take on this form in JSON using Postman:But with
lhctl
, it gets reduced to:lhctl run my-workflow user_name "jacob" birth_year 2002
This format is a lot more concise, but leaves much to be desired in terms of structure...
Unknowns to the user:
Sure, these unknowns can be figured out through executing some more commands, but then we fall back into the same problem of not knowing the command structure. This leads us down a rabbit hole of using help commands and retracing our steps. This works for some power users, but there must be a better way for general users...
Proposal
I believe a lot of these concerns can be solved with a visual version of
lhctl
, a command palette of sorts, that supports service and object reflection.I propose we build an lhctl+: RPC Command Palette UI.
Features:
Timestamp
s could have a time picker component.Int
s could have an input component that only accepts Integer inputs.WfSpecName
input that fetches all of theWfSpec
s on the server using RPCSearchWfSpecRequest
.lhctl+
would take all of the "guess work" out of running RPCs with LittleHorse.Mockups
The following mockups were developed to flesh out this idea. They are influenced by the shadcn/ui library. However, the idea for
lhctl+
is language and library agnostic, this could be implemented in any number of ways like via a TUI.Lofty Goals
If designed carefully and purposefully, this LittleHorse feature could easily be turned into its own open source project allowing others to create their own command palettes with custom UI components for gRPC services, going far beyond the capabilities of existing gRPC client implementations like Postman.
Beta Was this translation helpful? Give feedback.
All reactions