pub struct Finding {Show 18 fields
pub stable_id: String,
pub asset_id: String,
pub service_id: Option<String>,
pub title: String,
pub severity: String,
pub tool: String,
pub target_url: Option<String>,
pub detail: Option<String>,
pub detail_path: Option<String>,
pub reference: Option<String>,
pub cves: Vec<String>,
pub endpoints: Vec<String>,
pub technologies: Vec<String>,
pub first_seen: String,
pub last_seen: String,
pub status: String,
pub exploitability: Option<String>,
pub metadata: Value,
}Expand description
A vulnerability / security finding on an asset with exploitability tracking.
Fields§
§stable_id: String§asset_id: String§service_id: Option<String>§title: String§severity: String§tool: String§target_url: Option<String>§detail: Option<String>Short excerpt kept in the database; full evidence lives in a file
referenced by detail_path.
detail_path: Option<String>Relative path into the content store holding the full detail/evidence.
reference: Option<String>§cves: Vec<String>§endpoints: Vec<String>§technologies: Vec<String>§first_seen: String§last_seen: String§status: String§exploitability: Option<String>§metadata: ValueImplementations§
Source§impl Finding
impl Finding
Sourcepub fn new(asset_id: &str, tool: &str, title: &str) -> Self
pub fn new(asset_id: &str, tool: &str, title: &str) -> Self
Build a finding with a stable identity.
The identity key deliberately folds only scanner framing differences (surrounding whitespace, repeated/pipe-separated delimiters) so that the same logical finding never forks into two database rows across scans. Case and spelling are left untouched so previously imported rows keep their existing stable_id (backward compatibility).
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Finding
impl<'de> Deserialize<'de> for Finding
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for Finding
impl RefUnwindSafe for Finding
impl Send for Finding
impl Sync for Finding
impl Unpin for Finding
impl UnsafeUnpin for Finding
impl UnwindSafe for Finding
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more