pub struct IngressRequest {
pub method: HttpMethod,
pub protocol: Protocol,
pub path: String,
pub endpoint: EndpointKind,
pub logical_index: String,
pub doc_id: Option<String>,
pub headers: Vec<(String, String)>,
pub body: Vec<u8>,
pub query: Option<String>,
pub client_cert_subject: Option<String>,
pub secure: bool,
}Expand description
A parsed, owned client request ready for the pipeline.
Fields§
§method: HttpMethodThe HTTP method.
protocol: ProtocolThe wire protocol the request arrived on (HTTP/1.1, HTTP/2, or gRPC). The
auto ingress builder negotiates h1/h2 per connection; the engine records
it for tracing and may select the upstream protocol from it (docs/04 §7).
path: StringThe raw request path (used to route proxy admin endpoints such as
/debug/explain/{id} that are not OpenSearch paths).
endpoint: EndpointKindThe endpoint classification derived from method + path.
logical_index: StringThe logical index from the path (pre-rewrite), empty if the path has none.
doc_id: Option<String>The document id from the path, if the endpoint carries one (_doc/{id}).
headers: Vec<(String, String)>The request headers, in arrival order.
body: Vec<u8>The request body.
query: Option<String>The raw URL query string (without the ?), if any. The engine forwards
only an allow-list of cursor params (scroll/keep_alive) upstream,
query-affecting params are never forwarded, so the body partition filter
cannot be bypassed (NFR-S4).
client_cert_subject: Option<String>The verified client-certificate identity, if the connection was mutually authenticated (mTLS). A stable id derived from the cert, never the raw certificate material.
secure: boolWhether the request arrived over a TLS-terminated connection. The handler refuses to mutate a request body over cleartext, since the proxy must terminate TLS to rewrite the stream (NFR-S1).
Trait Implementations§
Source§impl Clone for IngressRequest
impl Clone for IngressRequest
Source§fn clone(&self) -> IngressRequest
fn clone(&self) -> IngressRequest
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 IngressRequest
impl Debug for IngressRequest
impl Eq for IngressRequest
Source§impl PartialEq for IngressRequest
impl PartialEq for IngressRequest
Source§fn eq(&self, other: &IngressRequest) -> bool
fn eq(&self, other: &IngressRequest) -> bool
self and other values to be equal, and is used by ==.impl StructuralPartialEq for IngressRequest
Auto Trait Implementations§
impl Freeze for IngressRequest
impl RefUnwindSafe for IngressRequest
impl Send for IngressRequest
impl Sync for IngressRequest
impl Unpin for IngressRequest
impl UnsafeUnpin for IngressRequest
impl UnwindSafe for IngressRequest
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<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.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> 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