pub struct CallContext {
pub deadline: Option<Timestamp>,
pub bearer_capability: Vec<u8>,
pub bearer_proof: Option<BearerProof>,
pub request_proof: Option<RequestProof>,
pub human_verification: Option<HumanVerification>,
pub client_operation_id: String,
pub trace: Option<TraceContext>,
pub bearer_grant_envelope: Vec<u8>,
pub bearer_authority_key_selector: Vec<u8>,
pub bearer_authority_proof: Vec<u8>,
}Expand description
Context shared by every hosted call. The method path and encoded request body stay in the operation-stream envelope because both are inputs to routing and canonical request signing.
Fields§
§deadline: Option<Timestamp>§bearer_capability: Vec<u8>§bearer_proof: Option<BearerProof>§request_proof: Option<RequestProof>§human_verification: Option<HumanVerification>§client_operation_id: String§trace: Option<TraceContext>§bearer_grant_envelope: Vec<u8>Optional signed GrantEnvelope v2 paired with a client-minted Biscuit. The byte-exact envelope contract is defined by AccessTokenResponse.grant_envelope in identity.proto.
O(1) authority-key selector for keyed biscuit verification (weft#1960 leg C). The raw 32-byte Ed25519 biscuit_authority_public_key the client-minted token’s authority block is signed under (AccessTokenResponse.biscuit_authority_public_key, identity.proto field 17). ADVISORY: it only PICKS which registered authority key to verify against; the biscuit signature still proves the key, so a wrong or absent selector is rejected, never trusted. Empty = legacy scan fallback during cutover.
Optional canonical v2 ThreadControlAuthority for an owned-device call. At most 64 KiB. The sealed Biscuit MUST exactly equal bearer_capability; its mint root MUST match any supplied key selector and the verified proof chain. The receiver verifies accepted owner history and mint attachment against its independently pinned owner and current revocations. This evidence cannot establish a new trusted owner or broaden any caveat.
Trait Implementations§
Source§impl Clone for CallContext
impl Clone for CallContext
Source§impl Debug for CallContext
impl Debug for CallContext
Source§impl Default for CallContext
impl Default for CallContext
impl Eq for CallContext
Source§impl Hash for CallContext
impl Hash for CallContext
Source§impl Message for CallContext
impl Message for CallContext
Source§fn encoded_len(&self) -> usize
fn encoded_len(&self) -> usize
Source§fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self. Read moreSource§fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self.