Vagrant Repository MVC
Problem to solve
Binary Repository Managers (https://en.wikipedia.org/wiki/Binary_repository_manager) allow easy access and management of artifacts created and consumed by projects. Software like JFrog Artifactory (https://www.jfrog.com/artifactory/) or Sonatype Nexus (https://www.sonatype.com/nexus-repository-oss) are examples of multi-protocol repositories.
We want to enhance our existing artifacts system, allowing access using the most common package managers. This issue focuses on Vagrant
Proposal
The MVP will focus on:
Intended users
- Delaney (Development Team Lead)
- Sasha (Software Developer)
- Devon (DevOps Engineer)
- Sidney (Systems Administrator)
Further details
Proposal
A list of possible MRs for any given package system:
MVP MRs (system is not useable until all are completed)
- Empty file structure (api file, base service for this package)
- Authentication system for 'logging in' to the package manager
- Identify metadata and create applicable tables
- Endpoints required for upload/publish
- Endpoints required for install/download
- Endpoints required for remove
Possible post-MVP MRs (system is useable, but these may be desired before releasing for general use)
- Endpoints required for search
- Limits on file sizes
- Tracking for metrics
- Support building/updating deleting packages with CI
- Group/sub-group support
- Instance level support
Permissions and Security
Permissions and Security
The permissions should follow the same levels as NPM, Maven and Conan.
Project Permissions: UI
Action | Guest | Reporter | Developer | Maintainer | Owner |
---|---|---|---|---|---|
Pull from Maven, NPM, Conan, NuGet | x | x | x | x | |
Publish to Maven, NPM, Conan, NuGet | x | x | x |
Project Permissions: API
Action | Guest | Reporter | Developer | Maintainer | Owner |
---|---|---|---|---|---|
List project packages (5) | x | x | |||
Get a project package | x | x | |||
List package files | x | x | |||
Delete a project package | x | x |
Group Permissions: API
Action | Guest | Reporter | Developer | Maintainer | Owner |
---|---|---|---|---|---|
List the packages of a group (coming soon) | x | x |
Instance Level Permissions
Action | Guest | Reporter | Developer | Maintainer | Owner |
---|---|---|---|---|---|
Enable the Packages feature | x | ||||
Migrate local packages to object storage | x | ||||
Disable the Packages feature | x |
Documentation
Testing
What does success look like, and how can we measure that?
What is the type of buyer?
Links / references
Edited by Sean Arnold