FY26 GitLab Package: Virtual Registry support (Maven, container images, npm, PyPI, NuGet)
# **Virtual Registry Proposal** ## **Overview** Implement a virtual registry feature that enhances our current package registry capabilities. This virtual registry will provide advanced proxying, caching, and management features to improve package management and distribution within GitLab. ## **Key Features** 1. **Multi-Source Proxying and Caching** * Support proxying and caching from up to 15 different upstream sources. 2. **Multiple Registries per Group** * Allow multiple virtual registries to be configured within a single group. 3. **GitLab Registry Integration** * Enable adding GitLab-hosted registries as sources for a virtual registry. 4. **Lifecycle Management** * Implement lifecycle policies with options to clear the cache every 90 days. 5. **User Interface for Configuration** * Develop a user-friendly interface for managing settings and configurations of virtual registries. 6. **Cache Exploration UI** * Create a UI for discovering and investigating items stored in the cache. 7. **Package Filtering** * Implement an allow/deny list to control access to packages based on name and version. 8. **Publishing Capability** * Enable users to publish packages directly to the virtual registry. 9. **Adoption Tracking and Analytics** * Implement instrumentation to track the adoption and usage of virtual registries, including: * Total number of groups with the feature enabled * Number of packages pulled from virtual registries * Cache hit ratio * UI usage data (e.g., number of virtual registries per group, number of upstream sources per virtual registry) ## **Goals** * Enhance package management capabilities within GitLab * Improve caching and distribution efficiency * Provide greater flexibility and control over registry configurations * Offer insights into registry usage and performance ## Priorities * [Maven](https://gitlab.com/groups/gitlab-org/-/epics/14137 "Maven virtual registry") * [npm](https://gitlab.com/groups/gitlab-org/-/epics/3608 "npm virtual registry") * [PyPI](https://gitlab.com/groups/gitlab-org/-/epics/3612 "PyPI dependency proxy") * [NuGet](https://gitlab.com/groups/gitlab-org/-/epics/3611 "NuGet virtual registry") RPM, Debian, and Rubygems support will be delivered after the above four.
epic