Fuzz corpus management interface - MVC implementation
Problem to solve
Provide an easy way for users to manage their corpus'.
Proposal
Implement the designs from the MVC (https://www.figma.com/file/eSIeuIPKFwEDs4X9ky2O5E/Corpus-Registry?node-id=156%3A0) which was previously designed as part of this design issue
Frontend Implementation Plan
- Add corpus management dropdown to security configuration page
- Implement Corpus management list table
- Show row data
- Add buttons to trigger corpus deletion
- Add button to download artifacts
- Add aggregate file size count to top of table
- Add, "Add new corpus" button
- Create file upload Modal
- Link "Add new corpus" button to trigger corpus upload modal
Notes:
We are only missing the job name for the "Target" column which is detailed in: #273169 (comment 457316773)
We can leverage all existing endpoints as detailed in:
Currently we actually have most of the needed APIs to use the GitLab generic package registry as storage:
- Publish a new package (or version) https://docs.gitlab.com/ee/user/packages/generic_packages/#publish-a-package-file
- Download a a package https://docs.gitlab.com/ee/user/packages/generic_packages/#download-package-file
- List packages and filter (for example filter only corpus related by prefix) https://docs.gitlab.com/ee/api/packages.html#list-packages
- Delete a package - https://docs.gitlab.com/ee/api/packages.html#delete-a-project-package
The only missing part is to be able not to show the corpus package in the package registry screen. There is an open issue which discuss this feature #195486. I'm going to work on an MR that will address this.
Backend Implementation Plan
Fuzz Corpus Backend technical implementation
User Permissions
User must be able to see the security dashboard to interact with the corpus management.
The following page may contain information related to upcoming products, features and functionality. It is important to note that the information presented is for informational purposes only, so please do not rely on the information for purchasing or planning purposes. Just like with all projects, the items mentioned on the page are subject to change or delay, and the development, release, and timing of any products, features, or functionality remain at the sole discretion of GitLab Inc.