Skip to main content

wisegate_core/
defaults.rs

1//! Default configuration values for WiseGate.
2//!
3//! This module centralizes all default values used throughout WiseGate,
4//! ensuring consistency between production code and tests.
5
6use std::time::Duration;
7
8/// Default maximum requests per rate limit window.
9pub const RATE_LIMIT_REQUESTS: u32 = 100;
10
11/// Default rate limit window duration in seconds.
12pub const RATE_LIMIT_WINDOW_SECS: u64 = 60;
13
14/// Default rate limit window duration.
15pub const RATE_LIMIT_WINDOW: Duration = Duration::from_secs(RATE_LIMIT_WINDOW_SECS);
16
17/// Default cleanup threshold (number of entries before triggering cleanup).
18pub const RATE_LIMIT_CLEANUP_THRESHOLD: usize = 10_000;
19
20/// Default cleanup interval in seconds.
21pub const RATE_LIMIT_CLEANUP_INTERVAL_SECS: u64 = 60;
22
23/// Default cleanup interval duration.
24pub const RATE_LIMIT_CLEANUP_INTERVAL: Duration =
25    Duration::from_secs(RATE_LIMIT_CLEANUP_INTERVAL_SECS);
26
27/// Default proxy timeout in seconds.
28pub const PROXY_TIMEOUT_SECS: u64 = 30;
29
30/// Default proxy timeout duration.
31pub const PROXY_TIMEOUT: Duration = Duration::from_secs(PROXY_TIMEOUT_SECS);
32
33/// Maximum time to receive a complete set of client request headers.
34pub const CLIENT_HEADER_TIMEOUT_SECS: u64 = 30;
35
36/// Maximum time to receive the complete client request body.
37pub const CLIENT_BODY_TIMEOUT_SECS: u64 = 30;
38
39/// Default client body deadline, independent of the upstream timeout.
40pub const CLIENT_BODY_TIMEOUT: Duration = Duration::from_secs(CLIENT_BODY_TIMEOUT_SECS);
41
42/// Default maximum body size in megabytes.
43pub const MAX_BODY_SIZE_MB: usize = 100;
44
45/// Default maximum body size in bytes.
46pub const MAX_BODY_SIZE: usize = MAX_BODY_SIZE_MB * 1024 * 1024;
47
48/// Default maximum concurrent connections.
49pub const MAX_CONNECTIONS: usize = 10_000;
50
51/// Default authentication realm.
52pub const AUTH_REALM: &str = "WiseGate";