semi implemented and features implemented save checkpoint

This commit is contained in:
master
2026-02-08 18:00:49 +02:00
parent 04360dff63
commit 1bf6bbf395
20895 changed files with 716795 additions and 64 deletions

View File

@@ -0,0 +1,38 @@
# Packs Registry Service with Mirroring and Compliance Dashboards
## Module
PacksRegistry
## Status
IMPLEMENTED
## Description
Registry service for managing pack lifecycle (publish, version, deprecate) with mirroring support for air-gapped environments, attestation integration, and compliance dashboard APIs.
## Implementation Details
- **Pack Service**: `src/PacksRegistry/StellaOps.PacksRegistry/StellaOps.PacksRegistry.Core/Services/PackService.cs` -- core pack lifecycle operations: publish, query, version, and deprecate packs.
- **Mirror Service**: `src/PacksRegistry/StellaOps.PacksRegistry/StellaOps.PacksRegistry.Core/Services/MirrorService.cs` -- manages mirror sources for air-gapped pack distribution.
- **Attestation Service**: `src/PacksRegistry/StellaOps.PacksRegistry/StellaOps.PacksRegistry.Core/Services/AttestationService.cs` -- manages attestation records for packs, verifying pack provenance and signatures.
- **Compliance Service**: `src/PacksRegistry/StellaOps.PacksRegistry/StellaOps.PacksRegistry.Core/Services/ComplianceService.cs` -- computes compliance summaries for pack registries (attestation coverage, signature verification status).
- **Lifecycle Service**: `src/PacksRegistry/StellaOps.PacksRegistry/StellaOps.PacksRegistry.Core/Services/LifecycleService.cs` -- manages pack lifecycle transitions (active, deprecated, archived).
- **Parity Service**: `src/PacksRegistry/StellaOps.PacksRegistry/StellaOps.PacksRegistry.Core/Services/ParityService.cs` -- tracks parity between primary and mirror registries.
- **Export Service**: `src/PacksRegistry/StellaOps.PacksRegistry/StellaOps.PacksRegistry.Core/Services/ExportService.cs` -- exports pack data for offline/air-gap seeding.
- **Core Contracts**: `src/PacksRegistry/StellaOps.PacksRegistry/StellaOps.PacksRegistry.Core/Contracts/` -- interfaces: `IPackRepository.cs`, `IMirrorRepository.cs`, `IAttestationRepository.cs`, `IAuditRepository.cs`, `ILifecycleRepository.cs`, `IParityRepository.cs`, `IPackSignatureVerifier.cs`.
- **Core Models**: `src/PacksRegistry/StellaOps.PacksRegistry/StellaOps.PacksRegistry.Core/Models/` -- `PackRecord.cs`, `MirrorSourceRecord.cs`, `AttestationRecord.cs`, `AuditRecord.cs`, `LifecycleRecord.cs`, `ParityRecord.cs`, `PackPolicyOptions.cs`.
- **Web API Contracts**: `src/PacksRegistry/StellaOps.PacksRegistry/StellaOps.PacksRegistry.WebService/Contracts/` -- DTOs: `PackUploadRequest.cs`, `PackResponse.cs`, `PackManifestResponse.cs`, `MirrorRequest.cs`, `MirrorResponse.cs`, `MirrorSyncRequest.cs`, `AttestationUploadRequest.cs`, `AttestationResponse.cs`, `ComplianceSummaryResponse.cs`, `LifecycleRequest.cs`, `LifecycleResponse.cs`, `ParityRequest.cs`, `ParityResponse.cs`, `OfflineSeedRequest.cs`, `RotateSignatureRequest.cs`.
- **Infrastructure (File System)**: `src/PacksRegistry/StellaOps.PacksRegistry/StellaOps.PacksRegistry.Infrastructure/FileSystem/` -- file-based repository implementations: `FilePackRepository.cs`, `FileMirrorRepository.cs`, `FileAttestationRepository.cs`, `FileAuditRepository.cs`, `FileLifecycleRepository.cs`, `FileParityRepository.cs`.
- **Infrastructure (InMemory)**: `src/PacksRegistry/StellaOps.PacksRegistry/StellaOps.PacksRegistry.Infrastructure/InMemory/` -- in-memory repository implementations for testing.
- **Signature Verification**: `src/PacksRegistry/StellaOps.PacksRegistry/StellaOps.PacksRegistry.Infrastructure/Verification/RsaSignatureVerifier.cs`, `SimpleSignatureVerifier.cs` -- RSA and simple signature verification for pack integrity.
- **Postgres Persistence**: `src/PacksRegistry/__Libraries/StellaOps.PacksRegistry.Persistence/Postgres/Repositories/` -- `PostgresPackRepository.cs`, `PostgresMirrorRepository.cs`, `PostgresAttestationRepository.cs`, `PostgresAuditRepository.cs`, `PostgresLifecycleRepository.cs`, `PostgresParityRepository.cs`.
- **EF Core Context**: `src/PacksRegistry/__Libraries/StellaOps.PacksRegistry.Persistence/EfCore/Context/PacksRegistryDbContext.cs` -- Entity Framework Core context.
- **Worker**: `src/PacksRegistry/StellaOps.PacksRegistry/StellaOps.PacksRegistry.Worker/Worker.cs` -- background worker for mirror sync and parity checks.
- **Tests**: `src/PacksRegistry/StellaOps.PacksRegistry/StellaOps.PacksRegistry.Tests/PackServiceTests.cs`, `PacksApiTests.cs`, `FilePackRepositoryTests.cs`, `ExportServiceTests.cs`, `RsaSignatureVerifierTests.cs`; `src/PacksRegistry/__Tests/StellaOps.PacksRegistry.Persistence.Tests/PostgresPackRepositoryTests.cs`
## E2E Test Plan
- [ ] Publish a pack via the REST API and verify it is stored in the registry with correct metadata (name, version, digest)
- [ ] Configure a mirror source and trigger a sync; verify the pack is replicated to the mirror with matching digest
- [ ] Upload an attestation for a published pack and verify the compliance dashboard endpoint reports the pack as attested
- [ ] Deprecate a pack via lifecycle API and verify it is no longer returned in active pack queries but remains queryable with a deprecated filter
- [ ] Verify parity check: publish a pack, sync to mirror, then update the primary; run parity check and confirm the mirror is reported as out-of-sync
- [ ] Export packs for offline seeding and verify the exported bundle contains all pack data and attestations needed for air-gap import
- [ ] Verify RSA signature verification: publish a signed pack and verify `RsaSignatureVerifier` validates the signature on retrieval