Files
git.stella-ops.org/docs/features/unchecked/evidencelocker/evidence-card-api-endpoint.md

2.2 KiB

Evidence Card API Endpoint

Module

EvidenceLocker

Status

IMPLEMENTED

Description

API endpoint for evidence card export with format query parameter, response headers (X-Evidence-Pack-Id, X-Content-Digest, X-Evidence-Card-Version, X-Rekor-Log-Index), and OpenAPI spec.

Implementation Details

  • Modules: src/EvidenceLocker/StellaOps.EvidenceLocker/Api/, src/EvidenceLocker/StellaOps.EvidenceLocker/StellaOps.EvidenceLocker.WebService/
  • Key Classes:
    • ExportEndpoints (src/EvidenceLocker/StellaOps.EvidenceLocker/Api/ExportEndpoints.cs) - REST endpoints for evidence card export with format parameter
    • ExportJobService (src/EvidenceLocker/StellaOps.EvidenceLocker/Api/ExportJobService.cs) - manages export jobs for evidence cards
    • VerdictEndpoints (src/EvidenceLocker/StellaOps.EvidenceLocker/Api/VerdictEndpoints.cs) - verdict-related API endpoints
    • VerdictContracts (src/EvidenceLocker/StellaOps.EvidenceLocker/Api/VerdictContracts.cs) - API contract models for verdict data
    • EvidenceContracts (src/EvidenceLocker/StellaOps.EvidenceLocker/StellaOps.EvidenceLocker.WebService/Contracts/EvidenceContracts.cs) - API contract models for evidence data
    • EvidencePortableBundleService (src/EvidenceLocker/StellaOps.EvidenceLocker/StellaOps.EvidenceLocker.Infrastructure/Services/EvidencePortableBundleService.cs) - creates portable evidence bundles for export
  • Interfaces: IExportJobService
  • Source: SPRINT_20260112_005_BE_evidence_card_api.md

E2E Test Plan

  • Call the evidence card export endpoint and verify response includes X-Evidence-Pack-Id, X-Content-Digest, X-Evidence-Card-Version, and X-Rekor-Log-Index headers
  • Export with format=json and verify the response is valid JSON matching the evidence card schema
  • Export with format=tar.gz and verify a downloadable archive is returned via EvidencePortableBundleService
  • Verify VerdictEndpoints returns verdict data with proper contract models from VerdictContracts
  • Verify the API is documented in OpenAPI spec with correct parameter and response schemas
  • Verify export of a non-existent evidence card returns a 404 with appropriate error message