pub struct FilterEntry {
pub id: String,
pub source: String,
pub digest: String,
pub isolation: IsolationKind,
pub init_deadline_ms: Option<u64>,
pub request_deadline_ms: Option<u64>,
pub max_memory_bytes: Option<u64>,
pub ratelimit: Option<RateLimitConfig>,
pub outbound_http: Option<OutboundHttpConfig>,
pub outbound_tcp: Option<OutboundTcpConfig>,
pub wasi: WasiKind,
pub config: Option<BTreeMap<String, String>>,
}Expand description
One filter to load, pinned by OCI digest.
Fields§
§id: StringHost-assigned identity; namespaces the filter’s KV (ADR 000011) and names it in chains.
KV continuity is per-id and survives reload (f000004 #4): reloading the same id
with a new digest keeps the same KV namespace, so the new version inherits the old
version’s bytes (good for rate-limit counters — a reload doesn’t reset them). If a new
version changes its state encoding, handle the migration or use a new id (= a fresh
namespace).
source: StringManifest-relative path to the local OCI image-layout for this filter.
digest: StringPinned OCI image-manifest digest, sha256:... (reproducibility / supply chain).
isolation: IsolationKind§init_deadline_ms: Option<u64>§request_deadline_ms: Option<u64>§max_memory_bytes: Option<u64>§ratelimit: Option<RateLimitConfig>Host-side token bucket for this filter’s host-ratelimit (ADR 000026). Absent = the filter
has no limiter (its try-acquire fails closed). Operator-configured so an untrusted filter
cannot override its own limit.
outbound_http: Option<OutboundHttpConfig>This filter’s outbound HTTP policy (ADR 000036), [filter.outbound_http]. Absent = no
outbound HTTP capability. Requires the outbound-http build; otherwise a present section is
rejected at validate (fail-closed).
outbound_tcp: Option<OutboundTcpConfig>This filter’s outbound TCP policy (ADR 000060), [filter.outbound_tcp]: the wasi:sockets
lend behind the same deny-by-default allowlist + SSRF floor shape as outbound HTTP. Absent =
no outbound TCP capability. Requires the outbound-tcp build; otherwise a present section
is rejected at validate (fail-closed).
wasi: WasiKindThis filter’s WASI grant (ADR 000063), wasi = "none" | "minimal". Absent/"none" (the
default) keeps the filter zero-WASI (Tier A). Requires the fat-guest build; otherwise
"minimal" is rejected at validate (fail-closed).
config: Option<BTreeMap<String, String>>This filter’s business config (ADR 000066), [filter.config]: an arbitrary string→string
map the filter reads back via host-config::get. The host does not interpret keys or
values — only the filter does (e.g. Redis host/port, window seconds, on_backend_error).
Absent = an empty map (every get reads None). Unlike ratelimit / outbound_*, this is
a base capability with no feature gate.
Trait Implementations§
Source§impl Clone for FilterEntry
impl Clone for FilterEntry
Source§fn clone(&self) -> FilterEntry
fn clone(&self) -> FilterEntry
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 FilterEntry
impl Debug for FilterEntry
Source§impl<'de> Deserialize<'de> for FilterEntry
impl<'de> Deserialize<'de> for FilterEntry
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 FilterEntry
impl JsonSchema for FilterEntry
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 moreAuto Trait Implementations§
impl Freeze for FilterEntry
impl RefUnwindSafe for FilterEntry
impl Send for FilterEntry
impl Sync for FilterEntry
impl Unpin for FilterEntry
impl UnsafeUnpin for FilterEntry
impl UnwindSafe for FilterEntry
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,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
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