pub struct ServerConfig {
pub cors_allow_all: bool,
pub cors_allow_origins: String,
pub cors_allow_credentials: String,
pub cors_allow_methods: String,
pub cors_allow_headers: String,
pub cors_expose_headers: String,
pub cors_max_age: String,
pub csp: String,
pub log_format: String,
pub request_allocation_size: i64,
}Expand description
All runtime-configurable settings for one server instance.
Fields map 1-to-1 to RWS_CONFIG_* environment variable names documented
in Config. Default values match the environment-variable defaults.
Construct via ServerConfig::from_env() at startup or
ServerConfig::default() in tests.
Fields§
§cors_allow_all: boolRWS_CONFIG_CORS_ALLOW_ALL — when true, all cross-origin requests are
reflected back as allowed (echo the Origin header). Overrides all
other CORS fields. Default: true.
cors_allow_origins: StringRWS_CONFIG_CORS_ALLOW_ORIGINS — comma-separated list of allowed
origins when cors_allow_all is false. Default: "" (none).
cors_allow_credentials: StringRWS_CONFIG_CORS_ALLOW_CREDENTIALS — value for the
Access-Control-Allow-Credentials response header. Default: "".
cors_allow_methods: StringRWS_CONFIG_CORS_ALLOW_METHODS — value for
Access-Control-Allow-Methods. Default: "".
cors_allow_headers: StringRWS_CONFIG_CORS_ALLOW_HEADERS — value for
Access-Control-Allow-Headers. Default: "".
cors_expose_headers: StringRWS_CONFIG_CORS_EXPOSE_HEADERS — value for
Access-Control-Expose-Headers. Default: "".
cors_max_age: StringRWS_CONFIG_CORS_MAX_AGE — value for Access-Control-Max-Age.
Default: "86400".
csp: StringRWS_CONFIG_CSP — Content-Security-Policy header value. An empty
string suppresses the header entirely. Default: the framework default CSP.
log_format: StringRWS_CONFIG_LOG_FORMAT — "json" or "combined". Default: "json".
request_allocation_size: i64RWS_CONFIG_REQUEST_ALLOCATION_SIZE_IN_BYTES — bytes allocated for
incoming request parsing. Default: 10000.
Implementations§
Source§impl ServerConfig
impl ServerConfig
Sourcepub fn from_env() -> Self
pub fn from_env() -> Self
Build a ServerConfig by reading all RWS_CONFIG_* environment
variables. Missing variables fall back to their default values.
Each call reads every variable — the environment lock is taken once
per variable — so per-request code uses ServerConfig::current.
Sourcepub fn current() -> Arc<ServerConfig> ⓘ
pub fn current() -> Arc<ServerConfig> ⓘ
The configuration from the environment, read once and shared: an
atomic load and an Arc clone per call instead of ten getenvs.
Rebuilt after invalidate — which config_reload::reload() (SIGHUP,
POST /admin/config/reload) and every config writer in the crate call,
so hot reload still takes effect on the next request.