fix(security): store LLM API keys in encrypted secrets store instead of plaintext

This commit is contained in:
italic-jinxin
2026-03-25 18:08:09 +08:00
parent 7584843a92
commit 01d60fa281
14 changed files with 762 additions and 20 deletions
+2
View File
@@ -551,6 +551,7 @@ fn gateway_state_has_multi_tenant_fields() {
startup_time: std::time::Instant::now(),
webhook_rate_limiter: RateLimiter::new(10, 60),
active_config: Default::default(),
secrets_store: None,
};
assert_eq!(state.default_user_id, "fallback");
@@ -902,6 +903,7 @@ async fn start_multi_user_server_with_db() -> (
startup_time: std::time::Instant::now(),
webhook_rate_limiter: RateLimiter::new(10, 60),
active_config: Default::default(),
secrets_store: None,
});
let addr: SocketAddr = "127.0.0.1:0".parse().unwrap();
+2
View File
@@ -217,6 +217,7 @@ async fn start_test_server_with_provider(
routine_engine: Arc::new(tokio::sync::RwLock::new(None)),
startup_time: std::time::Instant::now(),
active_config: ironclaw::channels::web::server::ActiveConfigSnapshot::default(),
secrets_store: None,
});
let auth = ironclaw::channels::web::auth::MultiAuthState::single(
@@ -715,6 +716,7 @@ async fn test_no_llm_provider_returns_503() {
routine_engine: Arc::new(tokio::sync::RwLock::new(None)),
startup_time: std::time::Instant::now(),
active_config: ironclaw::channels::web::server::ActiveConfigSnapshot::default(),
secrets_store: None,
});
let auth = ironclaw::channels::web::auth::MultiAuthState::single(
@@ -240,6 +240,7 @@ impl GatewayWorkflowHarness {
routine_engine: Arc::clone(&routine_slot),
startup_time: Instant::now(),
active_config: ironclaw::channels::web::server::ActiveConfigSnapshot::default(),
secrets_store: None,
});
let mut agent = Agent::new(
+1
View File
@@ -65,6 +65,7 @@ async fn start_test_server() -> (
routine_engine: Arc::new(tokio::sync::RwLock::new(None)),
startup_time: std::time::Instant::now(),
active_config: ironclaw::channels::web::server::ActiveConfigSnapshot::default(),
secrets_store: None,
});
let auth = ironclaw::channels::web::auth::MultiAuthState::single(