From f4e0fc4f2896e7207481dba9b9e5d09602b1915a Mon Sep 17 00:00:00 2001 From: "Rodrigo Rodriguez (Pragmatismo)" Date: Fri, 19 Dec 2025 09:33:56 -0300 Subject: [PATCH] fix: allow container install without Vault configured - Make create_container_service work without DATABASE_URL from Vault - Components like vault, vector_db that don't need DB can now install first - DB_PASSWORD defaults to empty string when Vault is not available --- src/core/package_manager/facade.rs | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/core/package_manager/facade.rs b/src/core/package_manager/facade.rs index ebc85ca1..8788a3aa 100644 --- a/src/core/package_manager/facade.rs +++ b/src/core/package_manager/facade.rs @@ -723,10 +723,20 @@ impl PackageManager { exec_cmd: &str, env_vars: &HashMap, ) -> Result<()> { - let database_url = get_database_url_sync() - .context("Failed to get DATABASE_URL from Vault. Ensure Vault is configured.")?; - let (_db_username, db_password, _db_server, _db_port, _db_name) = - parse_database_url(&database_url); + // Try to get DB password from Vault, but don't fail if Vault isn't available yet + // (e.g., when installing Vault itself or other components that don't need DB) + let db_password = match get_database_url_sync() { + Ok(url) => { + let (_, password, _, _, _) = parse_database_url(&url); + password + } + Err(_) => { + trace!( + "Vault not available for DB_PASSWORD in container service, using empty string" + ); + String::new() + } + }; let rendered_cmd = exec_cmd .replace("{{DB_PASSWORD}}", &db_password)