Files
git.stella-ops.org/src/Scanner
master 6592cdcc9b refactor(graph): absorb Cartographer into graph-api + wire Graph Indexer
- Wire Graph Indexer library + Persistence into graph-api (csproj refs + DI)
- Add build/overlay endpoints matching Scheduler HTTP contracts
  (POST/GET /api/graphs/builds, POST/GET /api/graphs/overlays)
- Add PostgresGraphRepository for reading from graph.graph_nodes/edges
- Register SBOM ingest, analytics, change-stream, and inspector pipelines
- Comment out Cartographer container in compose (empty shell, Slot 21)
- Add cartographer.stella-ops.local as backwards-compat alias on graph-api
- Update Scheduler config to target graph.stella-ops.local
- Update services-matrix.env, hosts file, port-registry, module-matrix
- Update component-map, architecture docs, Scanner/Graph READMEs
- Eliminates 1 container (stellaops-cartographer)

All 133 existing tests pass (77 Api + 37 Indexer + 19 Core).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-08 15:48:18 +03:00
..
2026-02-01 21:37:40 +02:00
2026-02-11 01:32:14 +02:00
2026-01-02 15:52:55 +02:00

Scanner

Container(s): stellaops-scanner-web, stellaops-scanner-worker Slot: 8 (web + worker) | Port: 8444 (web) | Consumer Group: scanner (web) Resource Tier: heavy (web + worker)

Note: Cartographer (Slot 21) has been retired and merged into graph-api (Slot 20). See src/Graph/README.md for the merged service.

Purpose

The Scanner module performs SBOM generation, vulnerability analysis, reachability mapping, and supply-chain security scanning of container images. The web service exposes scan APIs (triage, SBOM queries, offline-kit management, replay commands), while the worker processes scan jobs from Valkey queues through a multi-stage pipeline (analyzers, EPSS enrichment, secrets detection, crypto analysis, build provenance, PoE generation, verdict push).

API Surface

  • scanner (via Router) — SBOM queries, scan submissions, triage, reachability slices, offline-kit import/export, smart-diff, policy gate evaluation
  • cartographer — RETIRED; merged into graph-api (Slot 20)

Storage

PostgreSQL schema scanner (via ScannerStorage:Postgres); RustFS object store for artifacts (scanner-artifacts bucket)

Background Workers

  • ScannerWorkerHostedService — processes scan jobs from Valkey queue
  • EpssIngestJob — EPSS score ingestion
  • EpssEnrichmentJob — live EPSS enrichment of scan results
  • EpssSignalJob — EPSS signal emission
  • FnDriftMetricsExporter — function drift metrics