build-trust / ockam

Orchestrate end-to-end encryption, cryptographic identities, mutual authentication, and authorization policies between distributed applications – at massive scale.
https://ockam.io
Apache License 2.0
4.47k stars 562 forks source link

Make `ockam identity delete` (no args) interactive by asking the user to choose from a list of identity names to delete (tuify) #6463

Closed nazmulidris closed 11 months ago

nazmulidris commented 1 year ago

Current behavior

When a user runs ockam identity delete without any arguments, currently they are shown some help text. Here's a screenshot of this.

Image

Desired behavior

Instead of displaying help text, change the behavior of this command so that it becomes interactive with the user. Note that this can only be allowed to happen if:

This what the user flow should look like in interactive mode.

1) Use the tuify crate's select_from_list() function to ask the user to select from a list of identity names. They should be able to make multiple selections. If there are none, then simply display a message saying that none exist (not an error) and exit.

2) Once the user has made their selection(s), display a confirmation prompt letting the user know that that a destructive operation is about to take place with the identity names they have selected. Use select_from_list() to display this prompt. They should be able to make a single selection.

3) If they choose "YES", then delete each selected identity, and display a success / failure message for each identity that got deleted.

The following is a video showing a generic user flow that shows the user experience when a user is asked to choose a from a list of "things". Then an action is performed on each "thing". Finally status information is reported for each action that is performed on each "thing". Please note that this flow is not specific to this issue. Image https://asciinema.org/a/612547

Implementation details


We love helping new contributors! ❤️ If you have questions or need help as you explore, please join us on Discord. If you're looking for other issues to contribute to, please checkout our good first issues.

Darioazzali commented 1 year ago

May I have this too?

nazmulidris commented 1 year ago

@Darioazzali That's awesome, this is all yours. Also, please checkout the tui.rs file that Adrian added to help you implement this: https://github.com/build-trust/ockam/pull/6884

Please let us know if you have any questions as you explore. You can also ask questions on the contributors discord https://discord.gg/RAbjRr3kds