pulseengine_mcp_auth/
config.rs1use serde::{Deserialize, Serialize};
4use std::path::PathBuf;
5
6#[derive(Debug, Clone, Serialize, Deserialize)]
8pub struct AuthConfig {
9 pub storage: StorageConfig,
11 pub enabled: bool,
13 pub cache_size: usize,
15 pub session_timeout_secs: u64,
17 pub max_failed_attempts: u32,
19 pub rate_limit_window_secs: u64,
21}
22
23#[derive(Debug, Clone, Serialize, Deserialize)]
25pub enum StorageConfig {
26 File {
28 path: PathBuf,
30 },
31 Environment {
33 prefix: String,
35 },
36 Memory,
38}
39
40impl Default for AuthConfig {
41 fn default() -> Self {
42 Self {
43 storage: StorageConfig::File {
44 path: dirs::home_dir()
45 .unwrap_or_else(|| PathBuf::from("."))
46 .join(".loxone")
47 .join("auth"),
48 },
49 enabled: true,
50 cache_size: 1000,
51 session_timeout_secs: 3600, max_failed_attempts: 5,
53 rate_limit_window_secs: 900, }
55 }
56}
57
58impl AuthConfig {
59 pub fn disabled() -> Self {
61 Self {
62 enabled: false,
63 ..Default::default()
64 }
65 }
66
67 pub fn memory() -> Self {
69 Self {
70 storage: StorageConfig::Memory,
71 ..Default::default()
72 }
73 }
74}