36 lines
1.6 KiB
Markdown
36 lines
1.6 KiB
Markdown
# OCI Ancestry Extraction
|
|
|
|
## Module
|
|
Scanner
|
|
|
|
## Status
|
|
VERIFIED
|
|
|
|
## Description
|
|
Extract base image references from OCI manifest config.history to populate lineage parent relationships.
|
|
|
|
## Implementation Details
|
|
- **Ancestry Extractor**:
|
|
- `src/Scanner/__Libraries/StellaOps.Scanner.Storage.Oci/IOciAncestryExtractor.cs` - `IOciAncestryExtractor` interface defining the ancestry extraction contract
|
|
- `src/Scanner/__Libraries/StellaOps.Scanner.Storage.Oci/OciAncestryExtractor.cs` - `OciAncestryExtractor` extracts base image references from OCI manifest config.history to populate lineage parent relationships
|
|
- **Layer Dependency Graph**:
|
|
- `src/Scanner/__Libraries/StellaOps.Scanner.Core/Models/LayerDependencyGraph.cs` - `LayerDependencyGraph` models parent-child layer relationships from ancestry data
|
|
|
|
## E2E Test Plan
|
|
- [ ] Scan a container image built from a known base image and verify the OCI ancestry extractor identifies the base image reference from config.history
|
|
- [ ] Verify lineage parent relationships are populated correctly linking child image to base image
|
|
- [ ] Verify multi-stage build ancestry is correctly resolved (identifying intermediate build stages)
|
|
- [ ] Verify images with `LABEL` or `org.opencontainers.image.base.name` annotations use those for ancestry when available
|
|
- [ ] Verify images without config.history (scratch-based) are handled gracefully with no parent relationship
|
|
|
|
---
|
|
|
|
## 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 |
|