Some checks failed
AOC Guard CI / aoc-guard (push) Has been cancelled
AOC Guard CI / aoc-verify (push) Has been cancelled
Concelier Attestation Tests / attestation-tests (push) Has been cancelled
Docs CI / lint-and-preview (push) Has been cancelled
devportal-offline / build-offline (push) Has been cancelled
Mirror Thin Bundle Sign & Verify / mirror-sign (push) Has been cancelled
- Added AirgapTimelineImpact, AirgapTimelineImpactInput, and AirgapTimelineImpactResult records for managing air-gap bundle import impacts. - Introduced EvidenceSnapshotRecord, EvidenceSnapshotLinkInput, and EvidenceSnapshotLinkResult records for linking findings to evidence snapshots. - Created IEvidenceSnapshotRepository interface for managing evidence snapshot records. - Developed StalenessValidationService to validate staleness and enforce freshness thresholds. - Implemented AirgapTimelineService for emitting timeline events related to bundle imports. - Added EvidenceSnapshotService for linking findings to evidence snapshots and verifying their validity. - Introduced AirGapOptions for configuring air-gap staleness enforcement and thresholds. - Added minimal jsPDF stub for offline/testing builds in the web application. - Created TypeScript definitions for jsPDF to enhance type safety in the web application.
46 lines
1.4 KiB
C#
46 lines
1.4 KiB
C#
namespace StellaOps.Findings.Ledger.Infrastructure.AirGap;
|
|
|
|
/// <summary>
|
|
/// Repository for managing evidence snapshot links.
|
|
/// </summary>
|
|
public interface IEvidenceSnapshotRepository
|
|
{
|
|
/// <summary>
|
|
/// Inserts a new evidence snapshot record.
|
|
/// </summary>
|
|
Task InsertAsync(EvidenceSnapshotRecord record, CancellationToken cancellationToken);
|
|
|
|
/// <summary>
|
|
/// Gets evidence snapshots for a finding.
|
|
/// </summary>
|
|
Task<IReadOnlyList<EvidenceSnapshotRecord>> GetByFindingIdAsync(
|
|
string tenantId,
|
|
string findingId,
|
|
CancellationToken cancellationToken);
|
|
|
|
/// <summary>
|
|
/// Gets the latest evidence snapshot for a finding.
|
|
/// </summary>
|
|
Task<EvidenceSnapshotRecord?> GetLatestByFindingIdAsync(
|
|
string tenantId,
|
|
string findingId,
|
|
CancellationToken cancellationToken);
|
|
|
|
/// <summary>
|
|
/// Gets all evidence snapshots for a bundle.
|
|
/// </summary>
|
|
Task<IReadOnlyList<EvidenceSnapshotRecord>> GetByBundleUriAsync(
|
|
string tenantId,
|
|
string bundleUri,
|
|
CancellationToken cancellationToken);
|
|
|
|
/// <summary>
|
|
/// Checks if an evidence snapshot exists and is not expired.
|
|
/// </summary>
|
|
Task<bool> ExistsValidAsync(
|
|
string tenantId,
|
|
string findingId,
|
|
string dsseDigest,
|
|
CancellationToken cancellationToken);
|
|
}
|