{ "module": "sbomservice", "featureCount": 8, "summary": { "checked": 8, "unchecked": 0, "unimplemented": 0, "blocked": 0 }, "buildNote": "All 3 test projects pass: StellaOps.SbomService.Tests (59 tests), StellaOps.SbomService.Lineage.Tests (34 tests, after fixing FluentAssertions ref and rewriting outdated LineageGraphOptimizerTests), StellaOps.SbomService.Persistence.Tests (8 tests). Total: 101 tests green.", "features": { "sbom-lineage-api-backend": { "status": "done", "runId": "run-001", "tier0": "pass", "tier1": "pass", "tier2d": "pass", "notes": [ "REST API endpoints for lineage graph queries, diff computation, and export. All source files verified, integration tests pass." ], "tier": 2, "retryCount": 0, "sourceVerified": true, "buildVerified": true, "e2eVerified": true, "skipReason": null, "lastRunId": "run-001", "lastUpdatedUtc": "2026-02-13T08:00:00Z", "featureFile": "docs/features/checked/sbomservice/sbom-lineage-api-backend.md" }, "sbom-lineage-edge-persistence": { "status": "done", "runId": "run-001", "tier0": "pass", "tier1": "pass", "tier2d": "pass", "notes": [ "PostgreSQL-backed persistence for sbom_lineage_edges with BFS traversal, RLS tenant isolation, ISbomLineageEdgeRepository interface and in-memory test impl." ], "tier": 2, "retryCount": 0, "sourceVerified": true, "buildVerified": true, "e2eVerified": true, "skipReason": null, "lastRunId": "run-001", "lastUpdatedUtc": "2026-02-13T08:00:00Z", "featureFile": "docs/features/checked/sbomservice/sbom-lineage-edge-persistence.md" }, "sbom-lineage-graph-visualization": { "status": "done", "runId": "run-001", "tier0": "pass", "tier1": "pass", "tier2d": "pass", "notes": [ "Backend graph service, optimizer, stream service, REST controller. Tests rewritten to match actual API. 24 behavioral tests pass (optimizer + stream + determinism)." ], "tier": 2, "retryCount": 0, "sourceVerified": true, "buildVerified": true, "e2eVerified": true, "skipReason": null, "lastRunId": "run-001", "lastUpdatedUtc": "2026-02-13T08:00:00Z", "featureFile": "docs/features/checked/sbomservice/sbom-lineage-graph-visualization.md" }, "sbom-lineage-hover-cache-with-valkey": { "status": "done", "runId": "run-001", "tier0": "pass", "tier1": "pass", "tier2d": "pass", "notes": [ "Valkey/Redis caching with 5-min TTL for hover cards, 10-min TTL for compare cache. DistributedLineageHoverCache + InMemoryLineageHoverCache + ValkeyLineageCompareCache all implemented." ], "tier": 2, "retryCount": 0, "sourceVerified": true, "buildVerified": true, "e2eVerified": true, "skipReason": null, "lastRunId": "run-001", "lastUpdatedUtc": "2026-02-13T08:00:00Z", "featureFile": "docs/features/checked/sbomservice/sbom-lineage-hover-cache-with-valkey.md" }, "sbom-lineage-ndjson-streaming-export": { "status": "done", "runId": "run-001", "tier0": "pass", "tier1": "pass", "tier2d": "pass", "notes": [ "NDJSON export with application/x-ndjson content type, deterministic ordering, 50MB limit, configurable includes, optional keyless signing. Integration test verifies end-to-end." ], "tier": 2, "retryCount": 0, "sourceVerified": true, "buildVerified": true, "e2eVerified": true, "skipReason": null, "lastRunId": "run-001", "lastUpdatedUtc": "2026-02-13T08:00:00Z", "featureFile": "docs/features/checked/sbomservice/sbom-lineage-ndjson-streaming-export.md" }, "sbom-service-lineage-projection-api": { "status": "done", "runId": "run-001", "tier0": "pass", "tier1": "pass", "tier2d": "pass", "notes": [ "Projection API with SbomProjectionResult, hash integrity, file and Postgres repositories. Integration tests verify tenant requirement and payload content." ], "tier": 2, "retryCount": 0, "sourceVerified": true, "buildVerified": true, "e2eVerified": true, "skipReason": null, "lastRunId": "run-001", "lastUpdatedUtc": "2026-02-13T08:00:00Z", "featureFile": "docs/features/checked/sbomservice/sbom-service-lineage-projection-api.md" }, "sbom-service-registry-source-integration": { "status": "done", "runId": "run-001", "tier0": "pass", "tier1": "pass", "tier2d": "pass", "notes": [ "Full CRUD for registry sources, webhook processing, scan job emission, auto-discovery. 12+ dedicated unit tests covering create, read, update, delete, trigger, pause, resume, run history." ], "tier": 2, "retryCount": 0, "sourceVerified": true, "buildVerified": true, "e2eVerified": true, "skipReason": null, "lastRunId": "run-001", "lastUpdatedUtc": "2026-02-13T08:00:00Z", "featureFile": "docs/features/checked/sbomservice/sbom-service-registry-source-integration.md" }, "sbom-verdict-linking-table": { "status": "done", "runId": "run-001", "tier0": "pass", "tier1": "pass", "tier2d": "pass", "notes": [ "sbom_verdict_links table with upsert on (sbom_version_id, cve, tenant_id), RLS, confidence scoring. Two repository layers (Lineage + Persistence) with PostgreSQL implementation." ], "tier": 2, "retryCount": 0, "sourceVerified": true, "buildVerified": true, "e2eVerified": true, "skipReason": null, "lastRunId": "run-001", "lastUpdatedUtc": "2026-02-13T08:00:00Z", "featureFile": "docs/features/checked/sbomservice/sbom-verdict-linking-table.md" } }, "lastUpdatedUtc": "2026-02-13T08:00:00Z" }