pub type SecurityOutput = SecurityOutput<SecurityOutputConfig, SecurityGate>;Expand description
Concrete full fallow security envelope.
Aliased Type§
pub struct SecurityOutput {Show 14 fields
pub schema_version: SecuritySchemaVersion,
pub version: ToolVersion,
pub elapsed_ms: ElapsedMs,
pub config: SecurityOutputConfig<Severity>,
pub gate_outcomes: Option<GateOutcomes>,
pub request_outcomes: Option<RequestOutcomes>,
pub meta: Option<Meta>,
pub gate: Option<SecurityGate<SecurityGateMode>>,
pub workspace_diagnostics: Vec<WorkspaceDiagnostic>,
pub security_findings: Vec<SecurityFinding>,
pub attack_surface: Option<Vec<SecurityAttackSurfaceEntry>>,
pub unresolved_edge_files: usize,
pub unresolved_callee_sites: usize,
pub unresolved_callee_diagnostics: Option<SecurityUnresolvedCalleeDiagnostics>,
}Fields§
§schema_version: SecuritySchemaVersionSchema version of this envelope.
version: ToolVersionFallow CLI version that produced this output.
elapsed_ms: ElapsedMsWall-clock milliseconds spent producing the report.
config: SecurityOutputConfig<Severity>Privacy-safe config context relevant to security candidate generation.
gate_outcomes: Option<GateOutcomes>The verdict of every gate this run evaluated, keyed by name. The CLI
always emits it, with the command’s default exit rule in it also when
no flag armed a gate, so a CI integration reads the verdict instead of
guessing from a process status it usually cannot see. A gate fails the
build when status is fail AND enforced is true. The typed
programmatic API runs no CLI gate and leaves it absent. See
[crate::GateOutcomes].
request_outcomes: Option<RequestOutcomes>Every narrowing or shaping request this run RECEIVED, keyed by name,
absent when it was asked for nothing. An entry whose status is not
applied means the run could not do what it was asked and reported
something WIDER instead, so what follows is a valid report of a scope
nobody requested. Honoured requests are published too, with
status: "applied", so an absent object means “nothing was asked for”,
never “nothing failed”. See [crate::RequestOutcomes].
meta: Option<Meta>Security-specific rule and field metadata, emitted with --explain.
gate: Option<SecurityGate<SecurityGateMode>>Gate verdict, present only when --gate <mode> was set (issue #886).
Emitted on pass too (verdict: "pass", new_count: 0) so consumers
distinguish “gate ran and passed” from “gate did not run” (absent).
workspace_diagnostics: Vec<WorkspaceDiagnostic>Diagnostics owned by this security analysis run.
security_findings: Vec<SecurityFinding>Security candidates. Paths are project-root-relative, forward-slash.
attack_surface: Option<Vec<SecurityAttackSurfaceEntry>>Opt-in attack-surface inventory from untrusted entry points to reachable
sinks. Present only when --surface was requested.
unresolved_edge_files: usizeIn-band blind spot: number of "use client" files whose transitive
import cone contains a dynamic import() the reachability BFS could not
follow. A leak hidden behind such an edge would not be reported, so a
zero finding count with a non-zero value here is NOT a clean bill.
unresolved_callee_sites: usizeIn-band blind spot: number of sink-shaped nodes the catalogue detector could not flatten to a static callee path (dynamic dispatch, computed members, aliased bindings). A zero finding count with a non-zero value here is NOT a clean bill.
unresolved_callee_diagnostics: Option<SecurityUnresolvedCalleeDiagnostics>Bounded diagnostics for unresolved callee blind spots.