pub enum DenyOrigin {
Gotcha,
ConsultMandate,
Policy,
}Expand description
Which gate produced a Decision::Deny.
Each origin already maps 1:1 to a distinct decision_reason_code in the
enforcement log, so this is information the system requires downstream and
used to drop between the decision and the message. Matching on it
exhaustively means a new origin cannot silently inherit whatever branch its
key prefix happens to land in.
Variants§
Gotcha
Confirmed gotcha above the enforcement threshold. file_key is the
record to consult.
ConsultMandate
Inherited signed-floor consult mandate. file_key is the mandated file.
Policy
Local policy. file_key is the POLICY key, which is not consultable —
the consultable key lives in reason.
Implementations§
Source§impl DenyOrigin
impl DenyOrigin
Sourcepub fn deny_event(self, key: String) -> HookEvent
pub fn deny_event(self, key: String) -> HookEvent
The event that records this deny in the enforcement log.
Origin and event are chosen together at every deny site, and each event
maps to a distinct decision_reason_code downstream. Deriving the event
here means the agent-facing message and the audit chain cannot disagree
about what denied, and a new origin cannot be added without choosing one.
Trait Implementations§
Source§impl Clone for DenyOrigin
impl Clone for DenyOrigin
Source§fn clone(&self) -> DenyOrigin
fn clone(&self) -> DenyOrigin
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for DenyOrigin
Source§impl Debug for DenyOrigin
impl Debug for DenyOrigin
impl Eq for DenyOrigin
Source§impl PartialEq for DenyOrigin
impl PartialEq for DenyOrigin
impl StructuralPartialEq for DenyOrigin
Auto Trait Implementations§
impl Freeze for DenyOrigin
impl RefUnwindSafe for DenyOrigin
impl Send for DenyOrigin
impl Sync for DenyOrigin
impl Unpin for DenyOrigin
impl UnsafeUnpin for DenyOrigin
impl UnwindSafe for DenyOrigin
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.impl<T> Fruit for T
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 more