use super::logging::LogFormat;
use super::security::ClientAuthMode;
pub const fn default_port() -> u16 {
3536
}
pub const fn default_max_players() -> u8 {
8
}
pub const fn default_ping_timeout() -> u64 {
30
}
pub const fn default_heartbeat_throttle_secs() -> u64 {
30
}
pub const fn default_room_cleanup_interval() -> u64 {
60
}
pub const fn default_max_rooms_per_game() -> usize {
1000
}
pub const fn default_empty_room_timeout() -> u64 {
300 }
pub const fn default_inactive_room_timeout() -> u64 {
3600 }
pub const fn default_reconnection_window() -> u64 {
300 }
pub const fn default_event_buffer_size() -> usize {
100 }
pub const fn default_enable_reconnection() -> bool {
true }
pub const fn default_max_room_creations() -> u32 {
5
}
pub const fn default_rate_limit_time_window() -> u64 {
60
}
pub const fn default_max_join_attempts() -> u32 {
20
}
pub const fn default_max_game_name_length() -> usize {
64
}
pub const fn default_room_code_length() -> usize {
6
}
pub const fn default_max_player_name_length() -> usize {
32
}
pub const fn default_max_players_limit() -> u8 {
100
}
pub const fn default_enable_message_pack_game_data() -> bool {
true
}
pub const fn default_sdk_enforce() -> bool {
true
}
pub const fn default_allow_unicode_player_names() -> bool {
true
}
pub const fn default_allow_spaces_in_player_names() -> bool {
true
}
pub const fn default_allow_leading_trailing_whitespace() -> bool {
false
}
pub fn default_allowed_player_name_symbols() -> Vec<char> {
vec!['-', '_']
}
pub fn default_region_id() -> String {
"default".to_string()
}
pub fn default_log_dir() -> String {
"logs".to_string()
}
pub fn default_log_filename() -> String {
"server.log".to_string()
}
pub fn default_rotation() -> String {
"daily".to_string()
}
pub const fn default_enable_file_logging() -> bool {
true
}
pub const fn default_log_format() -> LogFormat {
LogFormat::Json
}
pub fn default_cors_origins() -> String {
"http://localhost:3000,http://localhost:5173".to_string()
}
pub const fn default_require_auth() -> bool {
true }
pub const fn default_max_message_size() -> usize {
65536 }
pub const fn default_max_connections_per_ip() -> usize {
10
}
pub const fn default_client_auth_mode() -> ClientAuthMode {
ClientAuthMode::None
}
pub fn default_token_binding_subprotocol() -> String {
"signalfish.tokenbinding.v1".to_string()
}
pub const fn default_rate_limit_cache_cleanup_interval_secs() -> u64 {
300
}
pub const fn default_rate_limit_cache_retention_secs() -> u64 {
172_800
}
pub const fn default_rate_limit_cache_alert_rows() -> u64 {
100_000
}
pub const fn default_dashboard_cache_refresh_interval_secs() -> u64 {
5
}
pub const fn default_dashboard_cache_ttl_secs() -> u64 {
30
}
pub const fn default_dashboard_cache_history_window_secs() -> u64 {
300
}
pub fn default_dashboard_history_fields() -> Vec<DashboardHistoryField> {
vec![
DashboardHistoryField::ActiveRooms,
DashboardHistoryField::RoomsByGame,
DashboardHistoryField::PlayerPercentiles,
DashboardHistoryField::GamePercentiles,
]
}
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize, PartialEq, Eq)]
pub enum DashboardHistoryField {
ActiveRooms,
RoomsByGame,
PlayerPercentiles,
GamePercentiles,
ActiveConnections,
RoomsCreated,
}
pub const fn default_dedup_cache_capacity() -> usize {
100_000
}
pub const fn default_dedup_cache_ttl_secs() -> u64 {
60
}
pub const fn default_dedup_cache_cleanup_interval_secs() -> u64 {
30
}
pub const fn default_membership_snapshot_interval_secs() -> u64 {
30
}
pub fn default_relay_type() -> String {
"matchbox".to_string() }
pub const fn default_enable_batching() -> bool {
true }
pub const fn default_batch_size() -> usize {
10 }
pub const fn default_batch_interval_ms() -> u64 {
16 }
pub const fn default_auth_timeout_secs() -> u64 {
10 }