4.0 KiB
4.0 KiB
Sprint 123 - Ingestion & Evidence · 110.C) Excititor.V
Active items only. Completed/historic work now resides in docs/implplan/archived/tasks.md (updated 2025-11-08).
[Ingestion & Evidence] 110.C) Excititor.V Depends on: Sprint 110.C - Excititor.IV Summary: Ingestion & Evidence focus on Excititor (phase V).
Prep: Read
docs/modules/excititor/architecture.mdand the Excititor componentAGENTS.mdfiles before touching this sprint’s tasks.
Task ID State Task description Owners (Source) EXCITITOR-VEXLENS-30-001 VEX evidence enrichersDONE Ensure every observation exported to VEX Lens carries issuer hints, signature blobs, product tree snippets, and staleness metadata so the lens can compute consensus without calling back into Excititor. Completed: Enhanced OpenVexSourceEntrywith enrichment fields (issuerHint, signatureType, keyId, transparencyLogRef, trustWeight, trustTier, stalenessSeconds, productTreeSnippet). UpdatedOpenVexStatementMerger.BuildSources()to extract from VexClaim. EnhancedOpenVexExportSourceJSON serialization.Excititor WebService Guild, VEX Lens Guild (src/Excititor/StellaOps.Excititor.WebService) EXCITITOR-VULN-29-001 VEX key canonicalizationDONE Canonicalize advisory/product keys (map to advisory_key, capture scope metadata) while preserving original identifiers inlinks[]; run backfill + regression tests. Completed: CreatedVexAdvisoryKeyCanonicalizer(CVE/GHSA/RHSA/DSA/USN) andVexProductKeyCanonicalizer(PURL/CPE/RPM/DEB/OCI) inCore/Canonicalization/. All 47 tests passing. Supports extracting PURLs/CPEs from component identifiers.Excititor WebService Guild (src/Excititor/StellaOps.Excititor.WebService) EXCITITOR-VULN-29-002 Evidence retrieval APIsTODO Provide /vuln/evidence/vex/{advisory_key}returning tenant-scoped raw statements, provenance, and attestation references for Vuln Explorer evidence tabs. Depends on EXCITITOR-VULN-29-001.Excititor WebService Guild (src/Excititor/StellaOps.Excititor.WebService) EXCITITOR-VULN-29-004 ObservabilityTODO Add metrics/logs for normalization errors, suppression scopes, withdrawn statements, and feed them to Vuln Explorer + Advisory AI dashboards. Depends on EXCITITOR-VULN-29-002. Excititor WebService Guild, Observability Guild (src/Excititor/StellaOps.Excititor.WebService) EXCITITOR-STORE-AOC-19-001 vex_raw schema validatorDONE Ship Mongo JSON Schema + validator tooling (including Offline Kit instructions) so operators can prove Excititor stores only immutable evidence. Completed: Created VexRawSchemaValidatorinStorage.Mongo/Validation/withValidate(),ValidateBatch(),GetJsonSchema()methods. Added Offline Kit docs atdocs/airgap/vex-raw-schema-validation.md.Excititor Storage Guild (src/Excititor/__Libraries/StellaOps.Excititor.Storage.Mongo) EXCITITOR-STORE-AOC-19-002 Idempotency index & migrationDONE Create unique indexes, run migrations/backfills, and document rollback steps for the new schema validator. Depends on EXCITITOR-STORE-AOC-19-001. Completed: Created VexRawIdempotencyIndexMigrationwith unique indexes (provider+source+digest), query indexes (digest+provider), and time-based index. Added rollback docs atdocs/airgap/vex-raw-migration-rollback.md. Registered migration in ServiceCollectionExtensions.Excititor Storage Guild, DevOps Guild (src/Excititor/__Libraries/StellaOps.Excititor.Storage.Mongo) EXCITITOR-AIRGAP-56-001 Mirror registration APIsTODO Support mirror bundle registration + provenance exposure, including sealed-mode error mapping and staleness metrics surfaced via API responses. Excititor WebService Guild (src/Excititor/StellaOps.Excititor.WebService) EXCITITOR-AIRGAP-58-001 Portable evidence bundlesTODO Produce portable evidence bundles linked to timeline + attestation metadata for sealed deployments, and document verifier steps for Advisory AI teams. Depends on EXCITITOR-AIRGAP-56-001. Excititor Core Guild, Evidence Locker Guild (src/Excititor/__Libraries/StellaOps.Excititor.Core)