Multi-select delete for the Container Registry
Problem to solve
The GitLab Container Registry allows users to build, push and discover Docker images/tags alongside their source code and CI pipelines. From /container_registry
users can view a list of images/tags, find and copy the path, and remove images/tags. However, the current user interface only allows a user to untag one image at a time. For projects with many images this presents a couple of user experience problems.
The first is performance. It's a known issue that having many images in a project's container registry can lead to performance degradation of /container_registry
. Giving users tools to manage and maintain their container registry can help improve the responsiveness and performance of the container registry UI.
The second issue is the overall user experience. Users expect the ability select and delete multiple items at a time. Based on our recent user research, this was a common frustrating experience for heavy container registry users.
Intended users
Proposal
Allow users to select multiple images/tags at once and provide a Remove all
button that will untag any selected items.
User stories
- As a developer, when I am untagging retired images from my container registry, need the ability to select multiple images or tags and untag them all at once, so that I can more efficiently manage the container registry.
- Selecting a top-level image, should auto-select all of the tags underneath that image
- Until we resolve https://gitlab.com/gitlab-org/gitlab-ce/issues/21405, selecting a tag should auto-select any tags that share the same
Tag ID
. Once #21405 (moved) is resolved, only selected images or tags will be deleted. - We will still warn users that they are about to untag the selected images, but we should only show one modal to confirm the action. (https://gitlab.com/gitlab-org/gitlab-ce/issues/42399 & https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/30532)
Further details
As we evaluate larger changes to the Container Registry we are working to leverage our existing implementation as much as possible. Introducing multi-select will help users maintain their registries and in turn, help improve performance.
Permissions and Security
- Developers, maintainers, and owners will all have the ability to untag multiple images/tags.
- For the Container Registry API we do not allow developers to bulk delete images, but since they are manually selecting the images and we are providing a confirmation modal, we will allow it.
Documentation
- Update the image in the container registry user docs
Testing
- We need to test that the untagging behavior works as expected and that only items selected are removed.
- Test that the confirmation modal works as expected.
What does success look like, and how can we measure that?
Success looks like users are untagging images in their projects container registry and helping to improve performance.
Metrics
Priority | Category | Metric | Aggregated by | SMAU Eligible? | Data available? |
---|---|---|---|---|---|
P1 | Container Registry | # of page views of /container registry
|
|
Yes | ? |
P1 | Container Registry | # of images/tags deleted one at a time from the UI |
|
Yes | ? |
P1 | Container Registry | # of images/tags deleted in bulk from the UI |
|
Yes | ? |