pub struct ServeConfig {Show 18 fields
pub addr: Option<SocketAddr>,
pub data_dir: Option<PathBuf>,
pub auth_root_private_key: Option<String>,
pub auth_root_public_key: Option<String>,
pub bootstrap_secret: Option<String>,
pub signer: Option<AuthSignerConfig>,
pub max_upload_bytes: Option<u64>,
pub upload_idle_timeout_secs: Option<u64>,
pub max_concurrent_uploads: Option<usize>,
pub http_redirect_addr: Option<SocketAddr>,
pub default_site: Option<String>,
pub pop_origin: Option<String>,
pub protect_previews: bool,
pub cluster_rate_limit: bool,
pub shared_cache_coherence: bool,
pub blob_notify_tier: Option<ProvisionTier>,
pub blob_notify_account_id: Option<String>,
pub console: Option<ConsoleConfig>,
}Expand description
serve section — server defaults, overridden by flags/env.
Fields§
§addr: Option<SocketAddr>Bind address (e.g. 0.0.0.0:8080).
data_dir: Option<PathBuf>Data directory for filesystem backends.
auth_root_private_key: Option<String>Token root private key (hex) — issuing node: verifies and mints tokens / OIDC exchanges.
auth_root_public_key: Option<String>Token root public key (hex) — verify-only node.
bootstrap_secret: Option<String>Single-use bootstrap secret enabling POST /api/tokens/bootstrap (mint the
first token without an admin bearer). Prefer the BOATRAMP_BOOTSTRAP_SECRET
env / --bootstrap-secret flag so it isn’t persisted in the config file.
signer: Option<AuthSignerConfig>External token signer ([serve.signer]): mint with a
KMS/HSM/Vault-held root key instead of an in-process auth_root_private_key.
Absent ⇒ the in-process key. When set, its public half is the trust anchor.
max_upload_bytes: Option<u64>Reject blob uploads larger than this many bytes.
upload_idle_timeout_secs: Option<u64>Abort an upload that stalls for longer than this many seconds.
max_concurrent_uploads: Option<usize>Cap on simultaneous blob uploads.
http_redirect_addr: Option<SocketAddr>In a TLS mode, bind this plain-HTTP address on a second listener that
redirects to HTTPS (dual-listener). Only read in tls builds.
default_site: Option<String>Site to serve for a Host matching no domain, instead of 404.
pop_origin: Option<String>The fleet’s canonical public origin (e.g. https://cp.example.com) that a
per-request proof-of-possession must bind to (aud). Required for
holder-bound (cnf/PoP) tokens to be usable — a proof’s origin is compared
against this value, never against a Host/X-Forwarded-* header.
protect_previews: boolRequire a valid control-plane token to view deployment previews.
cluster_rate_limit: boolRate-limit cluster-wide via the control-plane KV instead of per node.
Keep the config cache coherent across processes sharing one KV via the changelog.
blob_notify_tier: Option<ProvisionTier>Cloud blob-change notification provisioning tier (FA-5b2): how boatramp
obtains the native event pipeline (S3→SQS) that backs a blob trigger —
dry-run (print the recipe), provision (create + retract), verify-only
(operator pre-wired), or refuse (fail closed). Absent ⇒ no provisioning:
blob triggers then work only on a self-watching backend (fs). Only wired
for the S3 backend (--features s3).
blob_notify_account_id: Option<String>The AWS account id used to scope the provisioned SQS queue’s SendMessage
policy (aws:SourceAccount). Required when blob_notify_tier provisions.
console: Option<ConsoleConfig>[serve.console] — the embedded web management console. Absent (or
enabled: false) ⇒ not served. This is the baseline for the dynamic
console.* daemon-config override, which can enable/move it at runtime
(boatramp config set console.enabled true) without a restart.
Trait Implementations§
Source§impl Clone for ServeConfig
impl Clone for ServeConfig
Source§fn clone(&self) -> ServeConfig
fn clone(&self) -> ServeConfig
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 ServeConfig
impl Debug for ServeConfig
Source§impl Default for ServeConfig
impl Default for ServeConfig
Source§fn default() -> ServeConfig
fn default() -> ServeConfig
Source§impl<'de> Deserialize<'de> for ServeConfigwhere
ServeConfig: Default,
impl<'de> Deserialize<'de> for ServeConfigwhere
ServeConfig: Default,
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 ServeConfig
impl RefUnwindSafe for ServeConfig
impl Send for ServeConfig
impl Sync for ServeConfig
impl Unpin for ServeConfig
impl UnsafeUnpin for ServeConfig
impl UnwindSafe for ServeConfig
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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> ⓘ
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