Source

vault/index.js

import { logger } from "@config/logger";
import { vaultSecrets } from "@config/vault-secrets";
import { vaultService } from "@services/vault.service";
/**
 * Initialize Vault connectivity and load secrets into memory.
 * @category Config
 * @returns {Promise<void>} Resolves when secrets are loaded.
 */
export async function initializeVault() {
    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");
        // Load fallback secrets when Vault fails
        logger.warn("Loading secrets from fallback values...");
        await vaultSecrets.loadSecrets();
        logger.info("Vault service failed but fallback secrets loaded successfully");
    }
}
/**
 * Gracefully close Vault connections.
 * @category Config
 * @returns {void}
 */
export function closeVault() {
    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;
    }
}