Open anonmate opened 2 years ago
From a discussion:
After we get through the initial on-boarding process we want not to repeat it and so we need another arrangement for later doing of the setup. That's ready for the GUI but we lack it in CLI. Possibly a menu like (captured in both versions):
"Then, my point is to have the UI messaging replicate that – so the setup is nothing more than filling in the questions as asked by the CLI (rather than currently stopping and starting the node, filling out details in super specific orders)"
The points about configuration changes going only to the database and not being distributed to the running Node are good.
As for the interactive setup wizard, though, we need to keep in mind that the major purpose of masq
, at least in the presence of an easier-to-use GUI, is not its interactive mode, but its non-interactive mode that allows shell-scripting control of MASQ. (Not many people use the non-interactive mode, but it's still most important.) Currently, interactive setup and non-interactive setup is done with exactly the same code. Obviously, the non-interactive mode can't have a wizard, so the addition of a wizard for the interactive mode would mean two different setup codebases, and changes to each of them and synchronization between them with every modification.
This does not eliminate the wizard from consideration, but it's a factor that affects future maintenance and shouldn't be forgotten.
Currently, setting up the node in the CLI is full of odd quirks and things you have to do that aren't clear or intuitive. Though there may be technical reasons for some of this, it doesn't mean it should work like this. It also has negative effects for the GUI because set up is not a 'line-by-line' experience. It requires a lot of node restarts, zero-hop to be used to store set up values, amongst other things.
I propose that we have a set up command that runs a user-friendly command prompt that walks you through each step of the node set up process, exactly like what we have created for the UI, but in a CLI way. Stepwise sequencing with error validation at each step, with explanations of what you are doing and why. Much of this phrasing and verbiage could be copied from the UI design itself I'm sure. Right now, we're using
zero-hop
as a sort of 'setup mode' in the UI which is not it's intended use, so this work will also benefit the UI by having a simple interfacing with node setup, rather than hacking something together with going in and out of zero-hop mode, with various start ups, shutdowns, passwords required, restarts needed for DB to refresh.. etc.1) Setup item title and description and if required, why it's needed with formatting example 2) Enter in value, or [Y/N] response 3) Error or success message –> onto the next setup item ... Repeat until finished and node successfully starts up. the UX of the GUI onboarding can be followed if needed, just.. for the CLI instead.
Linking in all of this with websockets so the UI can have all this information would also be good, including my biggest pet peeve so far.. error handling. There are errors for most things, but only when the UI provokes a setup change. Major errors aren't sent through WS to the UI. This might be another ticket to handle on it's own.
I've attached an example of good setup UX in the screenshot below (Showing nice formatting, check marks, progress indicators, step by step sequencing – no documentation or prior knowledge required to set up because of the user experience/wording)