mirror of
https://github.com/ragestudio/linebridge.git
synced 2025-06-09 10:34:17 +00:00
33 lines
831 B
JavaScript
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
|
|
}
|
|
})
|
|
}
|