# OCI Layer Manifest Infrastructure for Delta Scanning ## Module Scanner ## Status VERIFIED ## Description Infrastructure for OCI manifest snapshotting with layer digest resolution and diffID-based layer tracking. Provides layer reuse detection across image versions and a registry client abstraction to support delta scanning workflows. Distinct from generic "OCI Ancestry Extraction" in known features. ## Implementation Details - **Manifest Snapshot Service**: - `src/Scanner/__Libraries/StellaOps.Scanner.Manifest/IOciManifestSnapshotService.cs` - `IOciManifestSnapshotService` interface for manifest snapshot operations - `src/Scanner/__Libraries/StellaOps.Scanner.Manifest/OciManifestSnapshotService.cs` - `OciManifestSnapshotService` captures and compares OCI manifest snapshots for delta scanning - **Manifest Models**: - `src/Scanner/__Libraries/StellaOps.Scanner.Manifest/Models/OciManifestSnapshot.cs` - `OciManifestSnapshot` representing a point-in-time manifest state with layer digests - `src/Scanner/__Libraries/StellaOps.Scanner.Manifest/Models/ManifestComparisonResult.cs` - `ManifestComparisonResult` identifies added, removed, and unchanged layers between snapshots - **Layer Digest Resolution**: - `src/Scanner/__Libraries/StellaOps.Scanner.Manifest/Resolution/ILayerDigestResolver.cs` - Interface for resolving layer digests to diffIDs - `src/Scanner/__Libraries/StellaOps.Scanner.Manifest/Resolution/LayerDigestResolver.cs` - `LayerDigestResolver` resolves compressed layer digests to uncompressed diffIDs for consistent tracking - **Layer Reuse Detection**: - `src/Scanner/__Libraries/StellaOps.Scanner.Manifest/Reuse/LayerReuseDetector.cs` - `LayerReuseDetector` identifies unchanged layers across image versions to skip re-analysis - **Persistence**: - `src/Scanner/__Libraries/StellaOps.Scanner.Manifest/Persistence/IManifestSnapshotRepository.cs` - Repository interface for snapshot storage - `src/Scanner/__Libraries/StellaOps.Scanner.Manifest/Persistence/ManifestSnapshotRepository.cs` - PostgreSQL-backed snapshot persistence - **DI Registration**: `src/Scanner/__Libraries/StellaOps.Scanner.Manifest/ManifestServiceCollectionExtensions.cs` ## E2E Test Plan - [ ] Scan an image and verify a manifest snapshot is captured with all layer digests and diffIDs - [ ] Rescan a newer version of the same image and verify manifest comparison correctly identifies added, removed, and unchanged layers - [ ] Verify layer reuse detection skips unchanged layers in subsequent scans, reducing scan time - [ ] Verify diffID-based tracking correctly matches layers across manifest versions despite compressed digest differences - [ ] Verify manifest snapshots are persisted and retrievable for historical comparison --- ## Verification | Check | Result | |-------|--------| | Tier 0 - Source files exist | PASS | | Tier 1 - Build + code review | PASS | | Tier 2 - Integration tests | PASS | | Verified | 2026-02-13T18:10:00Z |