-
Notifications
You must be signed in to change notification settings - Fork 86
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Improved UX for Plugin installation/uninstallation #549
Comments
Update to RC-3 milestone per community discussion on |
@yizha1 is there anyone actively working on this feature? If not, I'd like to start working on it. My team and I ran into this exact scenario where each of us were on a different OS and had to figure out how to install the plugins. Imo, adding this feature would greatly improve the user experience and I'd like to help. :) |
@duffney Great and your contributions are welcome! 👍 Currently it is not assigned to anyone yet. You can take it. Here are some steps we are now practicing on a feature development:
This feature is planned for rc.3, and the current target date is around the first week Apr. Let me know if you have further questions. |
Awesome! I appreciate you sharing the timeline with me also. My next question is, what do you mean by "in the community"? Are you referring to posting the solution in the Slack community or as agenda item for a community call? Either way I'll get started with that and tag you in the PR for the plugin spec changes. Thank you so much @yizha1 ! :) |
@duffney No problem. WRT to the |
That makes perfect sense, thank you for the explanation. Here's what I was thinking based on the information in the issue: Solution: Improve the plugin installation user experience by adding two subcommands to the
I chose the words install and remove to match the Please let me know if you think this size of issue warrants a hackmd.io post and community presentation. |
Here's a link to the spec PR. If it's easier to collaborate outside the PR, please lmk. :) |
@priteshbandi @vaninrao10 @shizhMSFT @FeynmanZhou PTAL at Josh's proposal for this issue starting from this comment #549 (comment). If needed, we can invite Josh to the community meeting for further discussion. |
…ugin-installation-ux
Move this feature to post v1 release. |
Been having a chat with @toddysm about the challenges of installation right and it seems to be an challenging problem. For e.g.
The goal of this to ensure that plugin installation is taken care of by an OCI artifact that will include the binary and also download and install the binary in the appropriate config location. Second it is digest verified and the binary executable blob can be verfiied against the manifest hash. Lastly if there is a signature attached with the plugin itself, notation can verify it at and we can implement this at a later phase. |
@sajayantony If the plugin file is packaged into an OCI artifact, then it can be downloaded and installed from an OCI registry. Plugin developers can sign and add SBOM to the OCI artifact type of plugin to ensure security and integrity in its distribution. I like this idea. @notaryproject/notaryproject-notation-maintainers Could you take a look at this proposal? If we have an agreement on this proposal, I think the next step would be to update the Spec plugin-extensibility.md and related CLI spec to define the overall plugin conventions and CLI experience. |
LGTM @duffney Please take a look at this proposal by @sajayantony . Since this issue is out of v1 scope now, we have more time, maybe we can aim at the final experience. @FeynmanZhou I agree with your last comment, besides that, we also need to add user document for plugin on website. |
Sharing an implementation by @noelbundick-msft ratify-project/ratify#519 |
notation plugin install <registry>/<repository>@<digest> # remote source
notation plugin install --file <tarfile_path> --checksum <digest> # local source |
This is a really good point. |
What is the areas you would like to add the new feature to?
Notation CLI
Is your feature request related to a problem?
For remote signing, users need to install a signing plugin into notation. Here is the current UX of plugin installation:
plugins
under notation configuration directoryplugins
for the vendor plugin (of cause, users can use commandmkdir -p
)notation plugin ls
to make sure the plugin is installedIt takes so many steps to just install a plugin, and it is also error prone since most steps are manual steps and user need to figure out the directory path accordingly.
What solution do you propose?
To improve the plugin installation UX and meet the timeline of v1.0 release. A phased approach is recommended. This issue only addressed the solution for the first phase.
The goal of the first phase is that users don't need to create directories, remember the names, and verify the installation using
notation plugin ls
. The solution is to introduce two new sub-commands fornotation plugin
:notation plugin --name <plugin name> import <plugin file>
notation plugin delete <plugin name>
With that, the steps of plugin installation can be reduced to two steps
notation plugin import <plugin package>
. The result of the execution indicates the success or failure of installation.Users can easily delete plugin as well using just one command:
notation plugin delete <plugin name>
. If users forget the plugin name when deleting, users can use the existing commandnotation plugin ls
to check the name.What alternatives have you considered?
None
Any additional context?
No response
The text was updated successfully, but these errors were encountered: