pub struct DetectorSpec {
pub id: String,
pub name: String,
pub service: String,
pub severity: Severity,
pub patterns: Vec<PatternSpec>,
pub companion: Option<CompanionSpec>,
pub verify: Option<VerifySpec>,
pub keywords: Vec<String>,
}Expand description
Full detector definition loaded from TOML.
§Examples
use keyhog_core::{DetectorSpec, PatternSpec, Severity};
let spec = DetectorSpec {
id: "demo-token".into(),
name: "Demo Token".into(),
service: "demo".into(),
severity: Severity::High,
patterns: vec![PatternSpec {
regex: "demo_[A-Z0-9]{8}".into(),
description: Some("Demo credential".into()),
group: None,
}],
companion: None,
verify: None,
keywords: vec!["demo_".into()],
};
assert_eq!(spec.patterns.len(), 1);Fields§
§id: StringStable detector identifier.
name: StringHuman-readable detector name.
service: StringService namespace used for grouping and verification limits.
severity: SeveritySeverity reported for matches from this detector.
patterns: Vec<PatternSpec>One or more regex patterns that identify the credential.
companion: Option<CompanionSpec>Optional nearby companion requirement.
verify: Option<VerifySpec>Optional live-verification configuration.
keywords: Vec<String>Context keywords that help lower false positives.
Trait Implementations§
Source§impl Clone for DetectorSpec
impl Clone for DetectorSpec
Source§fn clone(&self) -> DetectorSpec
fn clone(&self) -> DetectorSpec
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for DetectorSpec
impl Debug for DetectorSpec
Source§impl<'de> Deserialize<'de> for DetectorSpec
impl<'de> Deserialize<'de> for DetectorSpec
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 DetectorSpec
impl RefUnwindSafe for DetectorSpec
impl Send for DetectorSpec
impl Sync for DetectorSpec
impl Unpin for DetectorSpec
impl UnsafeUnpin for DetectorSpec
impl UnwindSafe for DetectorSpec
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,
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