drogue_bazaar/actix/http/
config.rs

1use super::defaults;
2use crate::actix::http::CorsConfig;
3use serde::Deserialize;
4
5/// HTTP server configuration.
6#[derive(Clone, Debug, Deserialize)]
7pub struct HttpConfig {
8    #[serde(default = "defaults::bind_addr")]
9    pub bind_addr: String,
10    #[serde(default = "defaults::max_json_payload_size")]
11    pub max_json_payload_size: usize,
12    #[serde(default = "defaults::max_payload_size")]
13    pub max_payload_size: usize,
14    #[serde(default)]
15    pub disable_tls: bool,
16    #[serde(default)]
17    pub disable_tls_psk: bool,
18    #[serde(default)]
19    pub cert_bundle_file: Option<String>,
20    #[serde(default)]
21    pub key_file: Option<String>,
22
23    #[serde(default)]
24    pub workers: Option<usize>,
25
26    #[serde(default)]
27    pub metrics_namespace: Option<String>,
28
29    #[serde(default)]
30    pub cors: Option<CorsConfig>,
31}
32
33impl Default for HttpConfig {
34    fn default() -> Self {
35        Self {
36            bind_addr: defaults::bind_addr(),
37            max_json_payload_size: defaults::max_json_payload_size(),
38            max_payload_size: defaults::max_payload_size(),
39            disable_tls: false,
40            disable_tls_psk: false,
41            cert_bundle_file: None,
42            key_file: None,
43            workers: None,
44            metrics_namespace: None,
45            cors: None,
46        }
47    }
48}