use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct CommandPolicyConfig {
#[serde(default = "default_policy_mode")]
pub mode: String,
#[serde(default)]
pub allowlist: Vec<String>,
#[serde(default)]
pub denylist: Vec<String>,
}
fn default_policy_mode() -> String {
"allowlist".to_string()
}
impl Default for CommandPolicyConfig {
fn default() -> Self {
Self {
mode: default_policy_mode(),
allowlist: Vec::new(),
denylist: Vec::new(),
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct UrlPolicyConfig {
#[serde(default = "default_url_policy_enabled")]
pub enabled: bool,
#[serde(default, alias = "allowPrivate")]
pub allow_private: bool,
#[serde(default, alias = "allowedDomains")]
pub allowed_domains: Vec<String>,
#[serde(default, alias = "blockedDomains")]
pub blocked_domains: Vec<String>,
}
fn default_url_policy_enabled() -> bool {
true
}
impl Default for UrlPolicyConfig {
fn default() -> Self {
Self {
enabled: default_url_policy_enabled(),
allow_private: false,
allowed_domains: Vec::new(),
blocked_domains: Vec::new(),
}
}
}