Files
git.stella-ops.org/docs/features/checked/web/orphan-evidence-proof-component-adoption.md
master 7fbf04ab1e feat(ui): adopt evidence proof components on mounted flows [SPRINT-018]
Wire QuickVerifyDrawer, EvidenceChecklist, ProofChainViewer, and
DsseEnvelopeViewer into evidence-export, triage, and release-orchestrator
evidence-detail surfaces for richer proof verification workflows.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 19:25:17 +02:00

4.0 KiB

Orphan Evidence Proof Component Adoption

Module

Web

Status

VERIFIED

Description

Revival of dormant proof-verification widgets (EvidenceChecklistComponent, QuickVerifyDrawerComponent, ProofChainViewerComponent, DsseEnvelopeViewerComponent) by adopting them into already-shipped Evidence, Triage, and Releases flows. The widgets are now reachable from real operator workflows rather than orphan navigation.

Sprint

SPRINT_20260308_018_FE_orphan_evidence_proof_component_adoption

Adopted Components and Host Surfaces

QuickVerifyDrawerComponent

  • evidence-bundles.component.ts: Opens from bundle verify action, passes bundle ID as artifact ID.
  • replay-controls.component.ts: Opens from result "Quick Verify" button, passes artifact ID from replay result.
  • evidence-detail.component.ts: Opens from header "Quick Verify" button, passes content hash as artifact ID.

EvidenceChecklistComponent

  • vex-decision-modal.component.ts: New "Required Evidence" section before Review. VexStatus is mapped to checklist status via computed property (NOT_AFFECTED -> not_affected, UNDER_INVESTIGATION -> under_investigation, AFFECTED_* -> affected, FIXED -> fixed).

ProofChainViewerComponent

  • provenance-visualization.component.ts: Maps ProvenanceNode[] to ChainNode[] via computed property. Filters out unknown-type nodes (finding, advisory). Renders after chain legend section.
  • evidence-detail.component.ts: Maps gate results + approvals to ChainNode[] (SBOM from first artifact, policy from gate results, approval from approvals). Renders in signature tab.

DsseEnvelopeViewerComponent

  • triage-attestation-detail-modal.component.ts: Replaces raw JSON section with DSSE envelope viewer. Builds DsseEnvelope from raw attestation data with fallback to raw JSON when data is not DSSE-shaped.
  • evidence-detail.component.ts: Builds DsseEnvelope from packet signature data. Renders in signature tab.

Implementation Details

  • Working directory: src/Web/StellaOps.Web
  • Modified files:
    • src/Web/StellaOps.Web/src/app/features/evidence-export/evidence-bundles.component.ts
    • src/Web/StellaOps.Web/src/app/features/evidence-export/replay-controls.component.ts
    • src/Web/StellaOps.Web/src/app/features/evidence-export/provenance-visualization.component.ts
    • src/Web/StellaOps.Web/src/app/features/triage/vex-decision-modal.component.ts
    • src/Web/StellaOps.Web/src/app/features/triage/vex-decision-modal.component.html
    • src/Web/StellaOps.Web/src/app/features/triage/triage-attestation-detail-modal.component.ts
    • src/Web/StellaOps.Web/src/app/features/triage/triage-attestation-detail-modal.component.html
    • src/Web/StellaOps.Web/src/app/features/release-orchestrator/evidence/evidence-detail/evidence-detail.component.ts
  • New test files:
    • src/Web/StellaOps.Web/src/app/features/release-orchestrator/evidence/evidence-detail/evidence-detail.component.spec.ts
  • Updated test files:
    • src/Web/StellaOps.Web/src/app/features/triage/vex-decision-modal.component.spec.ts
    • src/Web/StellaOps.Web/src/app/features/triage/triage-attestation-detail-modal.component.spec.ts
    • src/Web/StellaOps.Web/src/app/features/evidence-export/evidence-bundles.component.spec.ts
    • src/Web/StellaOps.Web/src/app/features/evidence-export/replay-controls.component.spec.ts
    • src/Web/StellaOps.Web/src/app/features/evidence-export/provenance-visualization.component.spec.ts

Exclusions

  • EvidenceDrawerComponent (EvidencePacketDrawerComponent): Already mounted in evidence-list.component.ts and evidence-center-page.component.ts. No gap found; excluded from this sprint.
  • No new top-level routes introduced.
  • No second evidence product shell created.

Verification

  • Angular build verified clean on all modified files (pre-existing errors in policy-interop, certificate-inventory, glossary-tooltip are unrelated).
  • Focused unit tests cover all computed properties, signal states, and template rendering for each adopted widget.
  • Date (UTC): 2026-03-08