101 lines
2.7 KiB
Markdown
101 lines
2.7 KiB
Markdown
# component_architecture_packsregistry.md - **Stella Ops PacksRegistry** (2025Q4)
|
|
|
|
> Task packs registry and distribution service.
|
|
|
|
> **Scope.** Implementation-ready architecture for **PacksRegistry**: the registry for task packs, policy packs, and analyzer packs that can be distributed to TaskRunner instances.
|
|
|
|
---
|
|
|
|
## 0) Mission & boundaries
|
|
|
|
**Mission.** Provide a **centralized registry** for distributable task packs, policy packs, and analyzer bundles. Enable versioned pack management with integrity verification and air-gap support.
|
|
|
|
**Boundaries.**
|
|
|
|
* PacksRegistry **stores and distributes** packs; it does not execute them.
|
|
* Pack execution is handled by **TaskRunner**.
|
|
* All packs are **content-addressed** with integrity verification.
|
|
* Supports **offline distribution** via bundle export.
|
|
|
|
---
|
|
|
|
## 1) Solution & project layout
|
|
|
|
```
|
|
src/PacksRegistry/StellaOps.PacksRegistry/
|
|
├─ StellaOps.PacksRegistry.Core/ # Pack models, validation
|
|
├─ StellaOps.PacksRegistry.Infrastructure/ # Storage, distribution
|
|
├─ StellaOps.PacksRegistry.Persistence.EfCore/ # EF Core persistence
|
|
├─ StellaOps.PacksRegistry.WebService/ # REST API
|
|
├─ StellaOps.PacksRegistry.Worker/ # Background processing
|
|
└─ StellaOps.PacksRegistry.Tests/
|
|
|
|
src/PacksRegistry/__Libraries/
|
|
└─ StellaOps.PacksRegistry.Persistence/ # Persistence abstractions
|
|
```
|
|
|
|
---
|
|
|
|
## 2) External dependencies
|
|
|
|
* **PostgreSQL** - Pack metadata storage
|
|
* **RustFS/S3** - Pack content storage
|
|
* **Authority** - Authentication and authorization
|
|
* **TaskRunner** - Pack consumer
|
|
|
|
---
|
|
|
|
## 3) Contracts & data model
|
|
|
|
### 3.1 Pack
|
|
|
|
```json
|
|
{
|
|
"packId": "policy-baseline-v2",
|
|
"version": "2.1.0",
|
|
"type": "policy",
|
|
"name": "Baseline Security Policy",
|
|
"description": "Standard security policy pack",
|
|
"digest": "sha256:abc123...",
|
|
"size": 45678,
|
|
"publishedAt": "2025-01-15T10:30:00Z",
|
|
"author": "stellaops",
|
|
"dependencies": [],
|
|
"metadata": {
|
|
"minRunnerVersion": "1.5.0"
|
|
}
|
|
}
|
|
```
|
|
|
|
### 3.2 Pack Types
|
|
|
|
| Type | Description |
|
|
|------|-------------|
|
|
| `policy` | Policy rule packs |
|
|
| `analyzer` | Scanner analyzer packs |
|
|
| `task` | TaskRunner task definitions |
|
|
| `bundle` | Composite packs |
|
|
|
|
---
|
|
|
|
## 4) REST API
|
|
|
|
```
|
|
GET /packs → { packs: PackSummary[] }
|
|
GET /packs/{id} → { pack: Pack }
|
|
GET /packs/{id}/versions → { versions: Version[] }
|
|
GET /packs/{id}/{version} → binary content
|
|
|
|
POST /packs { manifest, content } → { packId }
|
|
DELETE /packs/{id}/{version} → { deleted: bool }
|
|
|
|
GET /healthz | /readyz | /metrics
|
|
```
|
|
|
|
---
|
|
|
|
## Related Documentation
|
|
|
|
* TaskRunner: `../taskrunner/architecture.md`
|
|
* Policy: `../policy/architecture.md`
|