up
Some checks failed
AOC Guard CI / aoc-guard (push) Has been cancelled
AOC Guard CI / aoc-verify (push) Has been cancelled
Docs CI / lint-and-preview (push) Has been cancelled
Notify Smoke Test / Notify Unit Tests (push) Has been cancelled
Notify Smoke Test / Notifier Service Tests (push) Has been cancelled
Notify Smoke Test / Notification Smoke Test (push) Has been cancelled
Policy Lint & Smoke / policy-lint (push) Has been cancelled
Scanner Analyzers / Discover Analyzers (push) Has been cancelled
Scanner Analyzers / Build Analyzers (push) Has been cancelled
Scanner Analyzers / Test Language Analyzers (push) Has been cancelled
Scanner Analyzers / Validate Test Fixtures (push) Has been cancelled
Scanner Analyzers / Verify Deterministic Output (push) Has been cancelled
Signals CI & Image / signals-ci (push) Has been cancelled
Signals Reachability Scoring & Events / reachability-smoke (push) Has been cancelled
Signals Reachability Scoring & Events / sign-and-upload (push) Has been cancelled
Manifest Integrity / Validate Schema Integrity (push) Has been cancelled
Manifest Integrity / Validate Contract Documents (push) Has been cancelled
Manifest Integrity / Validate Pack Fixtures (push) Has been cancelled
Manifest Integrity / Audit SHA256SUMS Files (push) Has been cancelled
Manifest Integrity / Verify Merkle Roots (push) Has been cancelled
devportal-offline / build-offline (push) Has been cancelled
Mirror Thin Bundle Sign & Verify / mirror-sign (push) Has been cancelled
Some checks failed
AOC Guard CI / aoc-guard (push) Has been cancelled
AOC Guard CI / aoc-verify (push) Has been cancelled
Docs CI / lint-and-preview (push) Has been cancelled
Notify Smoke Test / Notify Unit Tests (push) Has been cancelled
Notify Smoke Test / Notifier Service Tests (push) Has been cancelled
Notify Smoke Test / Notification Smoke Test (push) Has been cancelled
Policy Lint & Smoke / policy-lint (push) Has been cancelled
Scanner Analyzers / Discover Analyzers (push) Has been cancelled
Scanner Analyzers / Build Analyzers (push) Has been cancelled
Scanner Analyzers / Test Language Analyzers (push) Has been cancelled
Scanner Analyzers / Validate Test Fixtures (push) Has been cancelled
Scanner Analyzers / Verify Deterministic Output (push) Has been cancelled
Signals CI & Image / signals-ci (push) Has been cancelled
Signals Reachability Scoring & Events / reachability-smoke (push) Has been cancelled
Signals Reachability Scoring & Events / sign-and-upload (push) Has been cancelled
Manifest Integrity / Validate Schema Integrity (push) Has been cancelled
Manifest Integrity / Validate Contract Documents (push) Has been cancelled
Manifest Integrity / Validate Pack Fixtures (push) Has been cancelled
Manifest Integrity / Audit SHA256SUMS Files (push) Has been cancelled
Manifest Integrity / Verify Merkle Roots (push) Has been cancelled
devportal-offline / build-offline (push) Has been cancelled
Mirror Thin Bundle Sign & Verify / mirror-sign (push) Has been cancelled
This commit is contained in:
@@ -2443,6 +2443,29 @@ internal sealed class BackendOperationsClient : IBackendOperationsClient
|
||||
|
||||
var updatedAt = document.UpdatedAt ?? DateTimeOffset.MinValue;
|
||||
|
||||
PolicyFindingUncertainty? uncertainty = null;
|
||||
if (document.Uncertainty is not null)
|
||||
{
|
||||
IReadOnlyList<PolicyFindingUncertaintyState>? states = null;
|
||||
if (document.Uncertainty.States is not null)
|
||||
{
|
||||
states = document.Uncertainty.States
|
||||
.Where(s => s is not null)
|
||||
.Select(s => new PolicyFindingUncertaintyState(
|
||||
string.IsNullOrWhiteSpace(s!.Code) ? null : s.Code,
|
||||
string.IsNullOrWhiteSpace(s.Name) ? null : s.Name,
|
||||
s.Entropy,
|
||||
string.IsNullOrWhiteSpace(s.Tier) ? null : s.Tier))
|
||||
.ToList();
|
||||
}
|
||||
|
||||
uncertainty = new PolicyFindingUncertainty(
|
||||
string.IsNullOrWhiteSpace(document.Uncertainty.AggregateTier) ? null : document.Uncertainty.AggregateTier,
|
||||
document.Uncertainty.RiskScore,
|
||||
states,
|
||||
document.Uncertainty.ComputedAt);
|
||||
}
|
||||
|
||||
return new PolicyFindingDocument(
|
||||
findingId,
|
||||
status,
|
||||
@@ -2450,6 +2473,7 @@ internal sealed class BackendOperationsClient : IBackendOperationsClient
|
||||
sbomId,
|
||||
advisoryIds,
|
||||
vex,
|
||||
uncertainty,
|
||||
document.PolicyVersion ?? 0,
|
||||
updatedAt,
|
||||
string.IsNullOrWhiteSpace(document.RunId) ? null : document.RunId);
|
||||
|
||||
@@ -10,4 +10,36 @@ internal sealed record EntryTraceResponseModel(
|
||||
DateTimeOffset GeneratedAt,
|
||||
EntryTraceGraph Graph,
|
||||
IReadOnlyList<string> Ndjson,
|
||||
EntryTracePlan? BestPlan);
|
||||
EntryTracePlan? BestPlan,
|
||||
SemanticEntrypointSummary? Semantic = null);
|
||||
|
||||
/// <summary>
|
||||
/// Summary of semantic entrypoint analysis for CLI display.
|
||||
/// </summary>
|
||||
internal sealed record SemanticEntrypointSummary
|
||||
{
|
||||
public string Intent { get; init; } = "Unknown";
|
||||
public IReadOnlyList<string> Capabilities { get; init; } = Array.Empty<string>();
|
||||
public IReadOnlyList<ThreatVectorSummary> Threats { get; init; } = Array.Empty<ThreatVectorSummary>();
|
||||
public IReadOnlyList<DataBoundarySummary> DataBoundaries { get; init; } = Array.Empty<DataBoundarySummary>();
|
||||
public string? Framework { get; init; }
|
||||
public string? Language { get; init; }
|
||||
public double ConfidenceScore { get; init; }
|
||||
public string ConfidenceTier { get; init; } = "Unknown";
|
||||
public string AnalyzedAt { get; init; } = string.Empty;
|
||||
}
|
||||
|
||||
internal sealed record ThreatVectorSummary
|
||||
{
|
||||
public string Type { get; init; } = string.Empty;
|
||||
public double Confidence { get; init; }
|
||||
public string? CweId { get; init; }
|
||||
public string? OwaspCategory { get; init; }
|
||||
}
|
||||
|
||||
internal sealed record DataBoundarySummary
|
||||
{
|
||||
public string Type { get; init; } = string.Empty;
|
||||
public string Direction { get; init; } = string.Empty;
|
||||
public string Sensitivity { get; init; } = string.Empty;
|
||||
}
|
||||
|
||||
@@ -25,6 +25,7 @@ internal sealed record PolicyFindingDocument(
|
||||
string SbomId,
|
||||
IReadOnlyList<string> AdvisoryIds,
|
||||
PolicyFindingVexMetadata? Vex,
|
||||
PolicyFindingUncertainty? Uncertainty,
|
||||
int PolicyVersion,
|
||||
DateTimeOffset UpdatedAt,
|
||||
string? RunId);
|
||||
@@ -33,6 +34,18 @@ internal sealed record PolicyFindingSeverity(string Normalized, double? Score);
|
||||
|
||||
internal sealed record PolicyFindingVexMetadata(string? WinningStatementId, string? Source, string? Status);
|
||||
|
||||
internal sealed record PolicyFindingUncertainty(
|
||||
string? AggregateTier,
|
||||
double? RiskScore,
|
||||
IReadOnlyList<PolicyFindingUncertaintyState>? States,
|
||||
DateTimeOffset? ComputedAt);
|
||||
|
||||
internal sealed record PolicyFindingUncertaintyState(
|
||||
string? Code,
|
||||
string? Name,
|
||||
double? Entropy,
|
||||
string? Tier);
|
||||
|
||||
internal sealed record PolicyFindingExplainResult(
|
||||
string FindingId,
|
||||
int PolicyVersion,
|
||||
|
||||
@@ -27,6 +27,8 @@ internal sealed class PolicyFindingDocumentDocument
|
||||
|
||||
public PolicyFindingVexDocument? Vex { get; set; }
|
||||
|
||||
public PolicyFindingUncertaintyDocument? Uncertainty { get; set; }
|
||||
|
||||
public int? PolicyVersion { get; set; }
|
||||
|
||||
public DateTimeOffset? UpdatedAt { get; set; }
|
||||
@@ -34,6 +36,28 @@ internal sealed class PolicyFindingDocumentDocument
|
||||
public string? RunId { get; set; }
|
||||
}
|
||||
|
||||
internal sealed class PolicyFindingUncertaintyDocument
|
||||
{
|
||||
public string? AggregateTier { get; set; }
|
||||
|
||||
public double? RiskScore { get; set; }
|
||||
|
||||
public List<PolicyFindingUncertaintyStateDocument>? States { get; set; }
|
||||
|
||||
public DateTimeOffset? ComputedAt { get; set; }
|
||||
}
|
||||
|
||||
internal sealed class PolicyFindingUncertaintyStateDocument
|
||||
{
|
||||
public string? Code { get; set; }
|
||||
|
||||
public string? Name { get; set; }
|
||||
|
||||
public double? Entropy { get; set; }
|
||||
|
||||
public string? Tier { get; set; }
|
||||
}
|
||||
|
||||
internal sealed class PolicyFindingSeverityDocument
|
||||
{
|
||||
public string? Normalized { get; set; }
|
||||
|
||||
Reference in New Issue
Block a user