pub struct PolicyRule {
pub name: String,
pub description: Option<String>,
pub when: RuleWhen,
pub require: BTreeMap<String, Vec<String>>,
pub mask: Vec<String>,
pub deny: bool,
pub on_runtime: RuntimeAction,
}policy only.Expand description
A rule over one label: which sinks it applies to, and what satisfies it.
Fields§
§name: StringStable rule name — named in every violation, audit entry and metric.
description: Option<String>§when: RuleWhenWhat the rule applies to.
require: BTreeMap<String, Vec<String>>Sink attributes a labelled column’s destination must carry, each with
its allowed values: { residency: [eu], environment: [prod, staging] }.
A sink missing the attribute violates the rule.
mask: Vec<String>Mask actions that satisfy the rule instead: a column masked by one of
these (redact / hash / tokenize / partial) may land anywhere the
rule would otherwise refuse. Empty = masking does not satisfy the rule.
deny: boolThe labelled column may not reach a matching sink at all (unless a
listed mask action applies).
on_runtime: RuntimeActionWhat a run does when a value detector finds the label at run time in a column the static pass could not see: fail the run before the page is written, or quarantine the offending records to the DLQ.
Trait Implementations§
Source§impl Clone for PolicyRule
impl Clone for PolicyRule
Source§impl Debug for PolicyRule
impl Debug for PolicyRule
Source§impl Default for PolicyRule
impl Default for PolicyRule
Source§impl<'de> Deserialize<'de> for PolicyRule
impl<'de> Deserialize<'de> for PolicyRule
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>,
Source§impl JsonSchema for PolicyRule
impl JsonSchema for PolicyRule
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
$ref keyword. Read moreSource§impl PartialEq for PolicyRule
impl PartialEq for PolicyRule
Source§impl Serialize for PolicyRule
impl Serialize for PolicyRule
impl StructuralPartialEq for PolicyRule
Auto Trait Implementations§
impl Freeze for PolicyRule
impl RefUnwindSafe for PolicyRule
impl Send for PolicyRule
impl Sync for PolicyRule
impl Unpin for PolicyRule
impl UnsafeUnpin for PolicyRule
impl UnwindSafe for PolicyRule
Blanket Implementations§
impl<T> Allocation for T
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
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> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
Source§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
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> ⓘ
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> ⓘ
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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request