[Dashboard] Juju web CLI investigation

In the screenshots of the Juju Dashboard, you may have noticed the persistent terminal UI that has been temporarily removed. We’ve been working on a few different approaches of providing a terminal-like experience that is both secure and fully-featured-enough to be useful in environments of various levels of security requirements.

Outside of the security implications, there will always be a tension between the available feature set of your local shell vs a remote one. We wouldn’t be able to implement every feature in a shared remote shell that you could do locally. This means that users will always have to switch back to their local terminal for some interactions. With this in mind, we wanted to take another look at this problem while also maintaining the efficiency of a CLI in the dashboard.

We’re investigating what we’re calling the Juju wCLI. It is a simulated Juju CLI in the browser that performs the necessary API calls under the hood to perform the same actions the Juju CLI does in your local shell. This gives us the ability to enhance the CLI commands and responses while iterating quickly to find the best interactions.

How this might work:

The wCLI would also be directly connected to the UI above:

There would be a subset of commands supported as some Juju commands don’t make sense in this context.

This is currently just an investigation and we would like to hear your feedback.

  • What Juju commands do you use regularly?
  • Are there any common errors or typos you make when using those commands?
2 Likes

I would like to think ‘juju actions’ would be good to expose since operators would then be able to use a webgui to perform much of operator tasks through that.

Hi Erik, thanks for your reply. We are exploring a more actionable UI for certain features. The original concept of having the CLI integrated was that operators would act in a familiar way through the CLI with the UI being an enhancement of that experience. We are interviewing several users also about this aspect, so your input and ideas on this would be great.

1 Like

I love to help out there as much as I can.

1 Like

Hi folks, please don’t make this web-specific. The CLI itself should be in the Juju cli binary, so I can do this:

$ juju
user@controller:model: status

user@controller:model: switch anothermodel
user@controller:anothermodel:

etc