Files
git.stella-ops.org/docs/features/unchecked/scanner/container-layout-discovery-contract.md

2.4 KiB

Container Layout Discovery Contract

Module

Scanner

Status

IMPLEMENTED

Description

Standardized contract for discovering and mapping container filesystem layouts, enabling analyzers to locate language-specific artifacts across different container image structures.

Implementation Details

  • Root File System Abstraction:
    • src/Scanner/__Libraries/StellaOps.Scanner.EntryTrace/FileSystem/IRootFileSystem.cs - Interface for abstract root filesystem access
    • src/Scanner/__Libraries/StellaOps.Scanner.EntryTrace/FileSystem/DirectoryRootFileSystem.cs - Directory-backed root filesystem implementation
    • src/Scanner/__Libraries/StellaOps.Scanner.EntryTrace/FileSystem/LayeredRootFileSystem.cs - Layered (OCI) root filesystem implementation
  • OCI Image Context:
    • src/Scanner/__Libraries/StellaOps.Scanner.EntryTrace/Oci/OciImageConfig.cs - OCI image config model for container layout discovery
    • src/Scanner/__Libraries/StellaOps.Scanner.EntryTrace/EntryTraceImageContextFactory.cs - Creates image context for entrypoint analysis
  • Entry Trace Analyzer:
    • src/Scanner/__Libraries/StellaOps.Scanner.EntryTrace/IEntryTraceAnalyzer.cs - Interface for entry trace analysis
    • src/Scanner/__Libraries/StellaOps.Scanner.EntryTrace/EntryTraceAnalyzer.cs - Main analyzer discovering container layout and locating language-specific artifacts
    • src/Scanner/__Libraries/StellaOps.Scanner.EntryTrace/EntryTraceContext.cs - Context model with discovered layout info
    • src/Scanner/__Libraries/StellaOps.Scanner.EntryTrace/EntryTraceTypes.cs - Type definitions for discovered artifacts
  • Entrypoint Specification:
    • src/Scanner/__Libraries/StellaOps.Scanner.EntryTrace/EntrypointSpecification.cs - Specifies expected entrypoints per container layout
  • DI: src/Scanner/__Libraries/StellaOps.Scanner.EntryTrace/ServiceCollectionExtensions.cs

E2E Test Plan

  • Scan a container image and verify the EntryTraceAnalyzer discovers the filesystem layout (root paths, language directories)
  • Verify LayeredRootFileSystem correctly merges multiple OCI layers into a unified filesystem view
  • Verify language-specific artifacts are located across different base images (Alpine, Debian, Ubuntu, distroless)
  • Verify the OCI image config is parsed to determine CMD/ENTRYPOINT for entrypoint analysis
  • Verify the layout discovery works for multi-stage build images with non-standard directory structures