finish secrets finding work and audit remarks work save
This commit is contained in:
@@ -14,7 +14,7 @@ public sealed class TriageAttestation
|
||||
/// </summary>
|
||||
[Key]
|
||||
[Column("id")]
|
||||
public Guid Id { get; init; } = Guid.NewGuid();
|
||||
public required Guid Id { get; init; }
|
||||
|
||||
/// <summary>
|
||||
/// The finding this attestation applies to.
|
||||
@@ -57,7 +57,7 @@ public sealed class TriageAttestation
|
||||
/// When this attestation was collected.
|
||||
/// </summary>
|
||||
[Column("collected_at")]
|
||||
public DateTimeOffset CollectedAt { get; init; } = DateTimeOffset.UtcNow;
|
||||
public required DateTimeOffset CollectedAt { get; init; }
|
||||
|
||||
/// <summary>
|
||||
/// Navigation property back to the finding.
|
||||
|
||||
@@ -14,7 +14,7 @@ public sealed class TriageDecision
|
||||
/// </summary>
|
||||
[Key]
|
||||
[Column("id")]
|
||||
public Guid Id { get; init; } = Guid.NewGuid();
|
||||
public required Guid Id { get; init; }
|
||||
|
||||
/// <summary>
|
||||
/// The finding this decision applies to.
|
||||
@@ -82,7 +82,7 @@ public sealed class TriageDecision
|
||||
/// When the decision was created.
|
||||
/// </summary>
|
||||
[Column("created_at")]
|
||||
public DateTimeOffset CreatedAt { get; init; } = DateTimeOffset.UtcNow;
|
||||
public required DateTimeOffset CreatedAt { get; init; }
|
||||
|
||||
/// <summary>
|
||||
/// When the decision was revoked (null = active).
|
||||
|
||||
@@ -15,7 +15,7 @@ public sealed class TriageEffectiveVex
|
||||
/// </summary>
|
||||
[Key]
|
||||
[Column("id")]
|
||||
public Guid Id { get; init; } = Guid.NewGuid();
|
||||
public required Guid Id { get; init; }
|
||||
|
||||
/// <summary>
|
||||
/// The finding this VEX status applies to.
|
||||
@@ -71,7 +71,7 @@ public sealed class TriageEffectiveVex
|
||||
/// When this VEX status became valid.
|
||||
/// </summary>
|
||||
[Column("valid_from")]
|
||||
public DateTimeOffset ValidFrom { get; init; } = DateTimeOffset.UtcNow;
|
||||
public required DateTimeOffset ValidFrom { get; init; }
|
||||
|
||||
/// <summary>
|
||||
/// When this VEX status expires (null = indefinite).
|
||||
@@ -83,7 +83,7 @@ public sealed class TriageEffectiveVex
|
||||
/// When this record was collected.
|
||||
/// </summary>
|
||||
[Column("collected_at")]
|
||||
public DateTimeOffset CollectedAt { get; init; } = DateTimeOffset.UtcNow;
|
||||
public required DateTimeOffset CollectedAt { get; init; }
|
||||
|
||||
// Navigation property
|
||||
[ForeignKey(nameof(FindingId))]
|
||||
|
||||
@@ -14,7 +14,7 @@ public sealed class TriageEvidenceArtifact
|
||||
/// </summary>
|
||||
[Key]
|
||||
[Column("id")]
|
||||
public Guid Id { get; init; } = Guid.NewGuid();
|
||||
public required Guid Id { get; init; }
|
||||
|
||||
/// <summary>
|
||||
/// The finding this evidence applies to.
|
||||
@@ -95,7 +95,7 @@ public sealed class TriageEvidenceArtifact
|
||||
/// When this artifact was created.
|
||||
/// </summary>
|
||||
[Column("created_at")]
|
||||
public DateTimeOffset CreatedAt { get; init; } = DateTimeOffset.UtcNow;
|
||||
public required DateTimeOffset CreatedAt { get; init; }
|
||||
|
||||
// Navigation property
|
||||
[ForeignKey(nameof(FindingId))]
|
||||
|
||||
@@ -16,7 +16,7 @@ public sealed class TriageFinding
|
||||
/// </summary>
|
||||
[Key]
|
||||
[Column("id")]
|
||||
public Guid Id { get; init; } = Guid.NewGuid();
|
||||
public required Guid Id { get; init; }
|
||||
|
||||
/// <summary>
|
||||
/// The asset this finding applies to.
|
||||
@@ -60,19 +60,19 @@ public sealed class TriageFinding
|
||||
/// When this finding was first observed.
|
||||
/// </summary>
|
||||
[Column("first_seen_at")]
|
||||
public DateTimeOffset FirstSeenAt { get; init; } = DateTimeOffset.UtcNow;
|
||||
public required DateTimeOffset FirstSeenAt { get; init; }
|
||||
|
||||
/// <summary>
|
||||
/// When this finding was last observed.
|
||||
/// </summary>
|
||||
[Column("last_seen_at")]
|
||||
public DateTimeOffset LastSeenAt { get; set; } = DateTimeOffset.UtcNow;
|
||||
public required DateTimeOffset LastSeenAt { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// When this finding was last updated.
|
||||
/// </summary>
|
||||
[Column("updated_at")]
|
||||
public DateTimeOffset UpdatedAt { get; set; } = DateTimeOffset.UtcNow;
|
||||
public required DateTimeOffset UpdatedAt { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Current status of the finding (e.g., "open", "resolved", "muted").
|
||||
|
||||
@@ -14,7 +14,7 @@ public sealed class TriagePolicyDecision
|
||||
/// </summary>
|
||||
[Key]
|
||||
[Column("id")]
|
||||
public Guid Id { get; init; } = Guid.NewGuid();
|
||||
public required Guid Id { get; init; }
|
||||
|
||||
/// <summary>
|
||||
/// The finding this decision applies to.
|
||||
@@ -46,7 +46,7 @@ public sealed class TriagePolicyDecision
|
||||
/// When this decision was applied.
|
||||
/// </summary>
|
||||
[Column("applied_at")]
|
||||
public DateTimeOffset AppliedAt { get; init; } = DateTimeOffset.UtcNow;
|
||||
public required DateTimeOffset AppliedAt { get; init; }
|
||||
|
||||
/// <summary>
|
||||
/// Navigation property back to the finding.
|
||||
|
||||
@@ -14,7 +14,7 @@ public sealed class TriageReachabilityResult
|
||||
/// </summary>
|
||||
[Key]
|
||||
[Column("id")]
|
||||
public Guid Id { get; init; } = Guid.NewGuid();
|
||||
public required Guid Id { get; init; }
|
||||
|
||||
/// <summary>
|
||||
/// The finding this reachability result applies to.
|
||||
@@ -58,7 +58,7 @@ public sealed class TriageReachabilityResult
|
||||
/// When this result was computed.
|
||||
/// </summary>
|
||||
[Column("computed_at")]
|
||||
public DateTimeOffset ComputedAt { get; init; } = DateTimeOffset.UtcNow;
|
||||
public required DateTimeOffset ComputedAt { get; init; }
|
||||
|
||||
/// <summary>
|
||||
/// Content-addressed ID of the reachability subgraph for this finding.
|
||||
|
||||
@@ -14,7 +14,7 @@ public sealed class TriageRiskResult
|
||||
/// </summary>
|
||||
[Key]
|
||||
[Column("id")]
|
||||
public Guid Id { get; init; } = Guid.NewGuid();
|
||||
public required Guid Id { get; init; }
|
||||
|
||||
/// <summary>
|
||||
/// The finding this risk result applies to.
|
||||
@@ -79,7 +79,7 @@ public sealed class TriageRiskResult
|
||||
/// When this result was computed.
|
||||
/// </summary>
|
||||
[Column("computed_at")]
|
||||
public DateTimeOffset ComputedAt { get; init; } = DateTimeOffset.UtcNow;
|
||||
public required DateTimeOffset ComputedAt { get; init; }
|
||||
|
||||
// Navigation property
|
||||
[ForeignKey(nameof(FindingId))]
|
||||
|
||||
@@ -14,7 +14,7 @@ public sealed class TriageScan
|
||||
/// </summary>
|
||||
[Key]
|
||||
[Column("id")]
|
||||
public Guid Id { get; init; } = Guid.NewGuid();
|
||||
public required Guid Id { get; init; }
|
||||
|
||||
/// <summary>
|
||||
/// Image reference that was scanned.
|
||||
@@ -51,7 +51,7 @@ public sealed class TriageScan
|
||||
/// When the scan started.
|
||||
/// </summary>
|
||||
[Column("started_at")]
|
||||
public DateTimeOffset StartedAt { get; init; } = DateTimeOffset.UtcNow;
|
||||
public required DateTimeOffset StartedAt { get; init; }
|
||||
|
||||
/// <summary>
|
||||
/// When the scan completed.
|
||||
|
||||
@@ -14,7 +14,7 @@ public sealed class TriageSnapshot
|
||||
/// </summary>
|
||||
[Key]
|
||||
[Column("id")]
|
||||
public Guid Id { get; init; } = Guid.NewGuid();
|
||||
public required Guid Id { get; init; }
|
||||
|
||||
/// <summary>
|
||||
/// The finding this snapshot applies to.
|
||||
@@ -58,7 +58,7 @@ public sealed class TriageSnapshot
|
||||
/// When this snapshot was created.
|
||||
/// </summary>
|
||||
[Column("created_at")]
|
||||
public DateTimeOffset CreatedAt { get; init; } = DateTimeOffset.UtcNow;
|
||||
public required DateTimeOffset CreatedAt { get; init; }
|
||||
|
||||
// Navigation property
|
||||
[ForeignKey(nameof(FindingId))]
|
||||
|
||||
Reference in New Issue
Block a user