import { vaultSecrets } from "@config/vault-secrets";
import { vaultService } from "@services/vault.service";
import { getLogger } from "@utils/asyncLocalStorage";
/**
* Initializes the Vault service and loads secrets from Vault.
* @category Vault
* @returns {Promise<void>} - Promise that resolves when the Vault service is initialized and secrets are loaded.
*/
export async function initializeVault() {
const logger = getLogger();
logger.info("Initializing Vault service...");
try {
await vaultService.initialize();
// Load secrets from Vault after initialization
await vaultSecrets.loadSecrets();
logger.info("Vault service and secrets initialized successfully");
}
catch (error) {
logger.error({
error: error instanceof Error ? error.message : "Unknown error",
}, "Failed to initialize Vault service");
throw error;
}
}
/**
* Closes the Vault service.
* @category Vault
* @returns {void} - Closes the Vault service.
* @throws {Error} - If the Vault service cannot be closed.
*/
export function closeVault() {
const logger = getLogger();
logger.info("Closing Vault service...");
try {
vaultService.close();
logger.info("Vault service closed successfully");
}
catch (error) {
logger.error({
error: error instanceof Error ? error.message : "Unknown error",
}, "Error closing Vault service");
throw error;
}
}
Source