Harden auth/vault path sanitization and clean WeKnora docs

This commit is contained in:
Agent Board
2026-07-28 17:04:27 +08:00
parent 2deaf59f7b
commit 26ff1a9c9a
190 changed files with 13454 additions and 4987 deletions
+22
View File
@@ -41,6 +41,8 @@ pub struct AppConfig {
pub dev_user_id: String,
pub dev_user_name: String,
pub dev_user_email: String,
/// "dev" | "prod" — 影响前端显示与 env 片段中的 base URL。
pub environment: String,
}
impl AppConfig {
@@ -93,10 +95,29 @@ impl AppConfig {
.ok()
.or_else(|| read_env_or_dotenv("DEV_USER_EMAIL"))
.unwrap_or_else(|| "dev@mnote.local".into()),
environment: detect_environment(),
}
}
}
/// 推断运行环境:显式 MNOTE_WEB_ENV > 端口匹配(3000=dev, 3003=prod> 默认 "dev"。
fn detect_environment() -> String {
if let Ok(v) = env::var("MNOTE_WEB_ENV") {
let t = v.trim().to_lowercase();
if !t.is_empty() {
return t;
}
}
let port = env::var("MNOTE_WEB_BIND")
.or_else(|_| env::var("MNOTE_WEB_PUBLIC_BIND"))
.ok()
.and_then(|addr| addr.rsplit(':').next()?.parse::<u16>().ok());
match port {
Some(3003) => "prod".into(),
_ => "dev".into(),
}
}
fn env_bool(key: &str, default: bool) -> bool {
env::var(key)
.ok()
@@ -392,6 +413,7 @@ mod tests {
dev_user_id: "dev-user".into(),
dev_user_name: "开发用户".into(),
dev_user_email: "dev@mnote.local".into(),
environment: "dev".into(),
}
}