feat(registry): add Nexus-compatible named Maven and npm registries - #889
feat(registry): add Nexus-compatible named Maven and npm registries#889ivaseeq wants to merge 3 commits into
Conversation
|
@ivaseeq — thank you for this, it is careful work. Sorry that we can't take all of it yet: the named-repository model moves enough of the routing and the storage layout that we are not ready to commit to that shape, and we are still thinking it through. What we could take, we did. The packument rebuild and the abbreviated We did run it before deciding, against S3 with 500 versions, and a couple of measurements from that might be worth having regardless of what happens here — the one that would matter most to you is that data written by a released NORA reads back as 404 under the new layout. Still thinking about the rest. |
What changed
Why
This enables a fresh Nora installation to replace the developer-facing Maven and npm flows currently served by Nexus. Clients retain their standard Maven and npm commands; deployments change only registry endpoints and authentication material.
The packument cache fixes a migration and developer-flow failure observed with packages containing thousands of versions: every metadata request previously fanned out into thousands of S3 reads and exceeded the ingress timeout. The cache is derived and rebuildable; authoritative hosted state remains split by responsibility.
The target topology is a singleton writer. Migration from older Nora object layouts and active-active mutable metadata coordination are intentionally outside this change.
Validation
cargo fmt --all -- --checkcargo clippy -p nora-registry --all-targets -- -D warningsgit diff --check