Type: New Feature
Affects Version/s: None
Fix Version/s: None
Current service implementation is as such -
Repo Env: It contains a bunch of Repo within in. This has a version though and can encapsulate a particular version of the repo
Repo: It contains the Debian packages, It is also versioned.
So in 'Repo service' users create a repo env that encapsulates bunch of repos (a particular version of the repo, not the whole repo). And this repo env has its own version as well.
While deploying, they will know the version of the repo env to be deployed and what packages to be deployed. they will use a proprietory command to get all the source list file for the repo using the repo env version and add that to the /etc/apt/source.list.d folder. Then they will do apt update and install the packages. Since only a particular repo version is used, only a particular version of the debian packages will be installed.
Effectively from the diagram If I use Ea.2 Environment, Da.1, Dc.1 and Db.2 packages will get installed.
Requirement 1) Having versioning inside Repo. This is similar to the snapshot feature of Nexus, https://help.sonatype.com/repomanager3/formats/apt-repositories
Requirement 2) We need somehow map multiple of these Repo snapshots under a REpo Env (in Jfrog case, equivalent to a virtual environment) and this Virtual Repo should also provide Snapshots.
Requirement 1 is mandatory, for Requirement 2 - this can be flexibly implemented to suit the use case.