Files
git.stella-ops.org/docs/features/unimplemented/binaryindex/symbol-source-connectors.md
2026-02-12 10:27:23 +02:00

3.3 KiB

Symbol Source Connectors (Debuginfod, Buildinfo, Ddeb, SecDb)

Module

BinaryIndex

Status

PARTIALLY_IMPLEMENTED

Description

Four symbol source connector implementations (Debuginfod, Debian Buildinfo, Ubuntu Ddeb, Alpine SecDb), each with plugin registration and configuration support.

Implementation Details

  • Modules: src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Corpus/, src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Corpus.Alpine/, src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Corpus.Debian/, src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Corpus.Rpm/
  • Key Classes:
    • Alpine SecDb: AlpineCorpusConnector (src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Corpus.Alpine/AlpineCorpusConnector.cs) - connects to Alpine security database; ApkBuildSecfixesExtractor - extracts secfixes from APK build files
    • Debian Buildinfo: DebianCorpusConnector (src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Corpus.Debian/DebianCorpusConnector.cs) - connects to Debian buildinfo sources; DebianMirrorPackageSource - mirrors Debian repositories
    • RPM: RpmCorpusConnector (src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Corpus.Rpm/RpmCorpusConnector.cs) - connects to RPM repositories; SrpmChangelogExtractor - extracts changelogs from source RPMs
    • Library-specific: CurlCorpusConnector, GlibcCorpusConnector, OpenSslCorpusConnector, ZlibCorpusConnector (src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Corpus/Connectors/)
  • Interfaces: IBinaryCorpusConnector, ILibraryCorpusConnector, IAlpinePackageSource, IDebianPackageSource, IRpmPackageSource
  • Package Extractors: AlpinePackageExtractor, DebianPackageExtractor, RpmPackageExtractor - extract binaries from packages using IBinaryFeatureExtractor

E2E Test Plan

  • Connect via AlpineCorpusConnector and verify secfixes data is extracted from APK builds
  • Connect via DebianCorpusConnector and verify buildinfo data is retrieved from Debian mirrors
  • Connect via RpmCorpusConnector and verify RPM changelog extraction works
  • Verify library-specific connectors (OpenSSL, glibc, curl, zlib) retrieve correct binary versions
  • Verify all connectors produce CorpusSnapshot with consistent snapshot IDs
  • Verify package extractors use IBinaryFeatureExtractor to extract identity features from packages

Verification Outcome (run-001)

  • Tier 0/1/2 artifacts: docs/qa/feature-checks/runs/binaryindex/symbol-source-connectors/run-001/
  • Result: not implemented at full claim parity.
  • Verified behavior:
    • Alpine, Debian, and RPM mirror package source/parsing and package extractor suites execute successfully with deterministic cache-fallback behavior.
    • Corpus contracts and package extractors pass local behavioral tests.
  • Missing behavior:
    • No Debuginfod/Buildinfo/Ddeb connector implementation classes were found in the declared module paths, despite the feature claim naming those connector families.
    • Library-specific connector extraction flows remain placeholder-backed (CurlCorpusConnector, GlibcCorpusConnector, OpenSslCorpusConnector, ZlibCorpusConnector), with deb/apk extraction paths returning null.
    • No dedicated tests were found for these library-specific connector classes, so end-to-end retrieval behavior for those connectors is not verified.