pub struct Security {
pub max_sensitivity_egress: Option<Sensitivity>,
pub max_sensitivity_journaled: Option<Sensitivity>,
pub max_delegation_depth: Option<u8>,
pub content: Option<Content>,
}Expand description
The constraints a runtime enforces.
Fields§
§max_sensitivity_egress: Option<Sensitivity>The highest sensitivity any value may reach an outward sink at. Combined with the sink’s own ceiling at dispatch; the stricter limit wins.
max_sensitivity_journaled: Option<Sensitivity>The highest sensitivity a value may reach an effect whose arguments the journal records.
A different question from max_sensitivity_egress,
and the one that decides whether personal data in a run can ever be
erased. The journal is append-only, so an argument recorded there — a
model prompt, a tool call’s arguments — is never removed. Egress asks
may this leave; this asks may this be written down forever.
This is the refuse it answer. The seal it answer is
RuntimeBuilder::keyring, which puts the same payloads under a per-case
data key that erase_case destroys, reaching every copy including
backups. They compose rather than compete: a sealed deployment may still
declare a ceiling for the classes it would rather never hold at all,
since a sealed record is still a record and a key ring is still an
operational dependency.
Absent means unbounded. Setting it makes the mistake a refusal at dispatch rather than a discovery at an erasure request: bytes above the ceiling belong in a blob, with the chain committing to the digest.
max_delegation_depth: Option<u8>How far authority may be re-delegated. Checked both against the runtime’s configured identity and against every delegating sink before dispatch.
content: Option<Content>Rules over a value’s content, applied at admission, where an effect’s output arrives, and at sinks. They may refuse a value, raise its sensitivity or redact it at a sink — never admit, trust or lower it.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Security
impl<'de> Deserialize<'de> for Security
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 Security
impl JsonSchema for Security
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 moreimpl StructuralPartialEq for Security
Auto Trait Implementations§
impl !Freeze for Security
impl RefUnwindSafe for Security
impl Send for Security
impl Sync for Security
impl Unpin for Security
impl UnsafeUnpin for Security
impl UnwindSafe for Security
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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> ⓘ
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