5.3 KiB
5.3 KiB
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
RsaSignatureVerifiervalidates the signature on retrieval