const { InfisicalClient } = require("@infisical/sdk") module.exports = async function injectEnvFromInfisical() { const envMode = (global.FORCE_ENV ?? global.isProduction) ? "prod" : "dev" console.log( `[BOOT] 🔑 Injecting env variables from INFISICAL in [${envMode}] mode...`, ) const client = new InfisicalClient({ auth: { universalAuth: { clientId: process.env.INFISICAL_CLIENT_ID, clientSecret: process.env.INFISICAL_CLIENT_SECRET, }, }, }) const secrets = await client.listSecrets({ environment: envMode, path: process.env.INFISICAL_PATH ?? "/", projectId: process.env.INFISICAL_PROJECT_ID ?? null, includeImports: false, }) //inject to process.env secrets.forEach((secret) => { if (!process.env[secret.secretKey]) { process.env[secret.secretKey] = secret.secretValue } }) }