When I attempted to implement Nuget in 1.1 I realized that nitro_repo design would not allow it. To be done in a clean manner.
So the 2.0 plan will be to scrap the current repository code to be a totally new structure and contain re usable components and to stop trying to standardize everything and just take advantage of the data provided by the artifact layout.
Have all of the the layout providers be in crates outside of the main Cargo project. Allowing for more organized code
We also need to clean up the design of the the storage API and implement external storages
I also need to evaluate the use of DynamicRepository and DynamicStorage enums and consider using a Box in the future
Design search providers to be used for the different artifact layouts
Repository Types I hope to implement with this release
Nuget
Cargo
pypi
Apt and RPM
Docker
The End Goal of this project
I would like to really start to get public support into this project and make it an actual alternative to projects such as Nexus
Repository Manager. Creates Repos, Create Storages, and modify settings
Deployer(Contains Special Properties)
Viewer(Contains Special Properties) Same as deployer. This will only matter if the repository is set to private. If it is set to public. The rules wont matter
Deployer Special Properties
* is a wild card
{} Will be parsed as json
() are just meant as variables for example
Available Repository classifiers. type Meaning the repository type. Such as NPM or Maven. policy Reference if its Snapshot, Mixed, Release.
Examples
*/* can deploy to all repositories
(storage_name)/* Can deploy to all repositories in a specific storage
(storage_name)/(repository)
(storage_name)/{"type": "npm"} can deploy to all npm repos
(storage_name)/{"policy": "Snapshot"} can deploy to all Snapshot. Policy can be combined with type.
Any combination of the rules can be combined so */{"policy":"Release", "type": "maven"} So this will say any storage. But only maven policies set to Release
The frontend contains a lot of minor visual bugs due to my bad CSS.
This is an issue tracking those. All of these I am accepting of any idea or approach of making it cleaner.
The collapsing of the horizontal menus through out Admin Panel
Do to bugs in how NPM was implemented on my behalf and how I have changed how Nitro_Repo interacts with files the NPM implementation had to be scrapped.
In the future this will exist so we can add Google Authenticator Support.
We will add setting so an admin can say that only use the Auth Token as a login in deploy
Requirements
Make sure the backend is being stored in a secure way
Add controllers for creating, deleting, and seeing a list of the tokens created(But token is not sent back)
Frontend listing
Frontend Create
Frontend Delete
Finally add handling in the backend for accepting these tokens.
Bonus: Delete all tokens system wide. (If a security breach happened)
Bonus: Create a requirement system wide and per repository
Bonus Tasks are optional to complete this issue. Will be added in the future if not here.
As of now Nitro_Repo is built around Linux. With some testing Nitro_Repo seems to work fine on Windows however, I would like to improve the experience.