pub struct FindingExtras {
pub finding_group_id: Option<String>,
pub time_to_fix: Option<FixEffort>,
pub compensating_controls: Vec<String>,
pub suppressed: bool,
pub original_severity: Option<Severity>,
pub suppression_reason: Option<String>,
}Expand description
Optional finding metadata. Lives on every Finding via
#[serde(flatten)] so consumers see the fields at the top of the
finding object — same place they’d appear if declared inline on
Finding. Default-constructed extras serialize to nothing (all
Option::None and empty Vecs skip-serialize), so existing
snapshots remain byte-stable until a rule populates a field.
Why a wrapper struct? The 30+ rule call sites use struct
literal syntax. Adding fields directly to Finding would force
every site to edit. With extras: FindingExtras::default(), new
extras can be added in a single place.
Fields§
§finding_group_id: Option<String>Stable UUID v5 over (NAMESPACE, fingerprint) — collapses
per-hop findings against the same authority root into one group
for SIEM display. See compute_finding_group_id.
time_to_fix: Option<FixEffort>Coarse remediation effort. See FixEffort.
compensating_controls: Vec<String>Human-readable list of controls that already neutralise (or partially neutralise) this finding — populated when a compensating-control detector downgrades severity. Empty when no downgrade applied.
suppressed: boolSet to true by the suppression applicator when a matching
.taudit-suppressions.yml entry exists AND the configured mode
is Suppress. The finding still appears in output (audit trail
preserved) but consumers can filter on this field.
original_severity: Option<Severity>Original pre-downgrade severity. Populated by the suppression
applicator OR a compensating-control detector when severity
is mutated. None means the current severity is the rule-emitted
value.
suppression_reason: Option<String>Operator-supplied justification from the matching suppression
entry. None when no suppression applies.
Trait Implementations§
Source§impl Clone for FindingExtras
impl Clone for FindingExtras
Source§fn clone(&self) -> FindingExtras
fn clone(&self) -> FindingExtras
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more