pub struct ChioHttpRequest {Show 22 fields
pub request_id: String,
pub method: HttpMethod,
pub route_pattern: String,
pub path: String,
pub query: HashMap<String, String>,
pub headers: HashMap<String, String>,
pub caller: CallerIdentity,
pub body_hash: Option<String>,
pub body_length: u64,
pub session_id: Option<String>,
pub capability_id: Option<String>,
pub tool_server: Option<String>,
pub tool_name: Option<String>,
pub arguments: Option<Value>,
pub model_metadata: Option<ModelMetadata>,
pub governed_intent: Option<Value>,
pub approval_token: Option<Value>,
pub approval_tokens: Option<Value>,
pub threshold_approval_proposal: Option<Value>,
pub supplemental_authorization: Option<Value>,
pub execution_nonce: Option<SignedExecutionNonce>,
pub timestamp: u64,
}Expand description
A protocol-agnostic HTTP request that Chio evaluates. This is the shared input type for all HTTP substrate adapters – reverse proxy, framework middleware, and sidecar alike.
Fields§
§request_id: StringUnique request identifier (UUIDv7 recommended).
method: HttpMethodHTTP method.
route_pattern: StringThe matched route pattern (e.g., “/pets/{petId}”), not the raw path. Used for policy matching.
path: StringThe actual request path (e.g., “/pets/42”).
query: HashMap<String, String>Query parameters.
headers: HashMap<String, String>Selected request headers relevant to policy evaluation. Substrate adapters extract only the headers needed for guards (e.g., Content-Type, Content-Length) – never raw auth headers.
caller: CallerIdentityThe extracted caller identity.
body_hash: Option<String>SHA-256 hash of the request body (for content binding in receipts). None for bodyless requests (GET, HEAD, OPTIONS).
body_length: u64Content-Length of the request body in bytes.
session_id: Option<String>Session ID this request belongs to.
capability_id: Option<String>Capability token ID presented with this request, if any.
tool_server: Option<String>Optional sidecar tool server identity for synthetic tool-call evaluations.
tool_name: Option<String>Optional sidecar tool name for synthetic tool-call evaluations.
arguments: Option<Value>Optional structured tool-call arguments for synthetic sidecar evaluations.
model_metadata: Option<ModelMetadata>Optional model identity and safety tier for model-constrained grants.
governed_intent: Option<Value>Governed intent is not supported by the HTTP authority projection. It is retained here so the boundary can reject it instead of silently ignoring a security-sensitive field.
approval_token: Option<Value>Singular governed approval is unsupported on this projection.
approval_tokens: Option<Value>Threshold governed approvals are unsupported on this projection.
threshold_approval_proposal: Option<Value>Threshold proposal is unsupported on this projection.
Supplemental authorization is unsupported on this projection.
execution_nonce: Option<SignedExecutionNonce>Optional signed nonce presented to complete a strict nonce preflight.
timestamp: u64Unix timestamp (seconds) when the request was received.
Implementations§
Source§impl ChioHttpRequest
impl ChioHttpRequest
Sourcepub fn new(
request_id: String,
method: HttpMethod,
route_pattern: String,
path: String,
caller: CallerIdentity,
) -> Self
pub fn new( request_id: String, method: HttpMethod, route_pattern: String, path: String, caller: CallerIdentity, ) -> Self
Create a minimal request for testing or simple evaluations.
Return the first authorization extension this HTTP projection cannot enforce. Callers use this to deny explicitly at the authority boundary.
Sourcepub fn content_hash(&self) -> Result<String>
pub fn content_hash(&self) -> Result<String>
Compute a content hash binding this request to a receipt. Hashes the canonical JSON of the route pattern, method, body hash, and query parameters.
Trait Implementations§
Source§impl Clone for ChioHttpRequest
impl Clone for ChioHttpRequest
Source§fn clone(&self) -> ChioHttpRequest
fn clone(&self) -> ChioHttpRequest
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ChioHttpRequest
impl Debug for ChioHttpRequest
Source§impl<'de> Deserialize<'de> for ChioHttpRequest
impl<'de> Deserialize<'de> for ChioHttpRequest
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>,
Auto Trait Implementations§
impl Freeze for ChioHttpRequest
impl RefUnwindSafe for ChioHttpRequest
impl Send for ChioHttpRequest
impl Sync for ChioHttpRequest
impl Unpin for ChioHttpRequest
impl UnsafeUnpin for ChioHttpRequest
impl UnwindSafe for ChioHttpRequest
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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> 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