Source

vault/index.js

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;
    }
}