pub struct RateLimitsConfig {Show 15 fields
pub disabled: bool,
pub oauth_public_per_second: u64,
pub oauth_auth_per_second: u64,
pub contexts_per_second: u64,
pub tasks_per_second: u64,
pub artifacts_per_second: u64,
pub agent_registry_per_second: u64,
pub agents_per_second: u64,
pub mcp_registry_per_second: u64,
pub mcp_per_second: u64,
pub stream_per_second: u64,
pub content_per_second: u64,
pub gateway_per_second: u64,
pub bridge_auth_per_second: u64,
pub burst_multiplier: u64,
}Expand description
Per-route-group request budgets, in requests per second.
Each *_per_second field governs one route group:
oauth_public—/api/v1/core/oauthpublic endpoints,/auth/link-passkey, and the public gateway session routes under/api/public/gateway.oauth_auth— the authenticated half of/api/v1/core/oauth, plus/api/v1/core/users.contexts—/api/v1/core/contextsand the inbound/api/v1/webhookmount.tasks—/api/v1/core/tasks.artifacts—/api/v1/core/artifacts.agent_registry—/api/v1/agents/registry, discovery only, kept apart fromagents_per_secondso listing agents cannot spend an execution budget.agents—/api/v1/agentsexecution, and the Slack and Teams inbound mounts that dispatch to an agent.mcp_registry—/api/v1/mcp/registry, the MCP server catalog, discovery only.mcp—/api/v1/mcptool calls, the busiest protocol route group.stream—/api/v1/stream, long-lived SSE connections, so this is a connection budget rather than a request one and is set high.content—/api/v1/content,/api/v1/sync,/api/v1/marketplace,/api/v1/analyticsand/track/engagement.gateway— inference traffic under/v1:/v1/messagesand the OpenAI-shaped/v1/chat/completions.bridge_auth—/v1/auth/bridge/*, deliberately separate fromgateway_per_second: sign-in is low-volume and must stay reachable on an instance whose inference traffic is saturating its own budget. Sharing one bucket let a busy gateway lock every user out of authenticating.
per_second_budgets projects those fields as a list; both validators
iterate it rather than naming the fields themselves, which had already let
them drift apart and let a zero in an unnamed field through.
Fields§
§disabled: bool§oauth_public_per_second: u64§oauth_auth_per_second: u64§contexts_per_second: u64§tasks_per_second: u64§artifacts_per_second: u64§agent_registry_per_second: u64§agents_per_second: u64§mcp_registry_per_second: u64§mcp_per_second: u64§stream_per_second: u64§content_per_second: u64§gateway_per_second: u64§bridge_auth_per_second: u64§burst_multiplier: u64Implementations§
Trait Implementations§
Source§impl Clone for RateLimitsConfig
impl Clone for RateLimitsConfig
impl Copy for RateLimitsConfig
Source§impl Debug for RateLimitsConfig
impl Debug for RateLimitsConfig
Source§impl Default for RateLimitsConfig
impl Default for RateLimitsConfig
Source§impl<'de> Deserialize<'de> for RateLimitsConfig
impl<'de> Deserialize<'de> for RateLimitsConfig
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>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl JsonSchema for RateLimitsConfig
impl JsonSchema for RateLimitsConfig
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Returns a string that uniquely identifies the schema produced by this type. Read more
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Generates a JSON Schema for this type. Read more
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
Whether JSON Schemas generated for this type should be included directly in parent schemas,
rather than being re-used where possible using the
$ref keyword. Read moreAuto Trait Implementations§
impl Freeze for RateLimitsConfig
impl RefUnwindSafe for RateLimitsConfig
impl Send for RateLimitsConfig
impl Sync for RateLimitsConfig
impl Unpin for RateLimitsConfig
impl UnsafeUnpin for RateLimitsConfig
impl UnwindSafe for RateLimitsConfig
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
Mutably borrows from an owned value. Read more
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>,
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
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> ⓘ
Converts
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> ⓘ
Converts
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