linebridge/server/bootloader/injectEnvFromInfisical.js
2025-04-14 14:54:18 +00:00

33 lines
831 B
JavaScript

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