Fix build and code structure improvements. New but essential UI functionality. CI improvements. Documentation improvements. AI module improvements.
This commit is contained in:
100
docs/modules/packsregistry/architecture.md
Normal file
100
docs/modules/packsregistry/architecture.md
Normal file
@@ -0,0 +1,100 @@
|
||||
# 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`
|
||||
Reference in New Issue
Block a user