feat(registry): add declarative protocol routing and request-scoped storage hook context across registries
This commit is contained in:
@@ -22,6 +22,7 @@ For reporting bugs, issues, or security vulnerabilities, please visit [community
|
||||
- **Shared Storage**: Cloud-agnostic S3-compatible backend via [@push.rocks/smartbucket](https://www.npmjs.com/package/@push.rocks/smartbucket) with standardized `IS3Descriptor` from [@tsclass/tsclass](https://www.npmjs.com/package/@tsclass/tsclass)
|
||||
- **Unified Authentication**: Scope-based permissions across all protocols
|
||||
- **Path-based Routing**: `/oci/*`, `/npm/*`, `/maven/*`, `/cargo/*`, `/composer/*`, `/pypi/*`, `/rubygems/*`
|
||||
- **Declarative Protocol Wiring**: Protocol registration, initialization, and routing stay aligned through shared descriptors
|
||||
|
||||
### 🔐 Authentication & Authorization
|
||||
- NPM UUID tokens for package operations
|
||||
@@ -60,6 +61,7 @@ For reporting bugs, issues, or security vulnerabilities, please visit [community
|
||||
### 🔌 Enterprise Extensibility
|
||||
- **Storage Event Hooks** (`IStorageHooks`): Quota tracking, audit logging, virus scanning, cache invalidation
|
||||
- **Request Actor Context**: Pass user/org info through requests for audit trails and rate limiting
|
||||
- **Request-Scoped Hook Metadata**: Hooks receive protocol, actor, package, and version context without cross-request leakage
|
||||
|
||||
## 📥 Installation
|
||||
|
||||
@@ -233,6 +235,9 @@ const search = await registry.handleRequest({
|
||||
});
|
||||
```
|
||||
|
||||
Scoped package requests are supported with both encoded and unencoded paths, for example
|
||||
`/npm/@scope%2fpackage` and `/npm/@scope/package`.
|
||||
|
||||
### 🦀 Cargo Registry (Rust Crates)
|
||||
|
||||
```typescript
|
||||
|
||||
Reference in New Issue
Block a user