pub struct ProxySection {
pub calls_per_minute: Option<u32>,
pub burst_calls: Option<u32>,
pub in_flight_per_account: Option<usize>,
pub in_flight_per_tree: Option<usize>,
pub in_flight_total: Option<usize>,
pub target_cache_secs: Option<u64>,
pub target_cache_entries: Option<usize>,
pub app_view: Option<String>,
}Expand description
What one account may spend of atproto-proxy, which forwards a call to
whatever service a DID document names, from this server’s address.
Reload: needs a restart. The values are read once, into the router.
Fields§
§calls_per_minute: Option<u32>How many proxied calls one account’s budget refills by each minute.
Reasonable range: 1 to 6000. Sixty, the default, is one a second
sustained: far above the few calls a minute an agent makes, and the
most one account can make a third party see from this server’s
address. A call over it is refused 429 with Retry-After.
burst_calls: Option<u32>How many proxied calls one account may make at once from a full budget.
Reasonable range: 1 to 1000. Sixty, the default, covers a client that opens a view by fanning out a few dozen calls.
in_flight_per_account: Option<usize>How many of one account’s proxied calls may be open at once.
Reasonable range: 1 to 64. Eight, the default, is more than an
agent opens at once, and a sixteenth of in_flight_total.
in_flight_per_tree: Option<usize>How many proxied calls may be open at once across one account tree: an account the operator admitted, and every account created beneath it.
Reasonable range: 1 to 512. 64, the default, is half of
in_flight_total, so one creator’s accounts leave half for every
other tree. A per-tree cap at or above in_flight_total has no
effect.
in_flight_total: Option<usize>How many proxied calls may be open at once across every account.
Reasonable range: 1 to 512. 128, the default, is a quarter of the 512 requests this server serves at once. One creator may hold thousands of accounts, and this keeps their calls to a service that never answers from holding the rest. A per-account cap above it has no effect.
target_cache_secs: Option<u64>How long the endpoint a target’s DID document names is kept, in seconds.
Reasonable range: 10 to 3600. Five minutes, the default, fetches a document once for every few hundred calls to it, and reaches a service that moved within five minutes. Every call still checks the addresses the endpoint resolves to.
target_cache_entries: Option<usize>How many targets’ endpoints are kept, the least recently used dropped first.
Reasonable range: 16 to 100_000. An entry is a few kilobytes at most. 1024, the default, holds the services a deployment’s agents call in a few megabytes.
app_view: Option<String>Where an app.bsky.* call with no atproto-proxy header goes, as
that header names a service: did#service, such as
did:web:api.bsky.app#bsky_appview. The call is authorized and
signed as a proxied call to that service is.
Unset, the default, sends such a call nowhere: it is
MethodNotImplemented.
Trait Implementations§
Source§impl Clone for ProxySection
impl Clone for ProxySection
Source§fn clone(&self) -> ProxySection
fn clone(&self) -> ProxySection
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 ProxySection
impl Debug for ProxySection
Source§impl Default for ProxySection
impl Default for ProxySection
Source§fn default() -> ProxySection
fn default() -> ProxySection
Source§impl<'de> Deserialize<'de> for ProxySection
impl<'de> Deserialize<'de> for ProxySection
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 PartialEq for ProxySection
impl PartialEq for ProxySection
Source§fn eq(&self, other: &ProxySection) -> bool
fn eq(&self, other: &ProxySection) -> bool
self and other values to be equal, and is used by ==.