Files
FEDEO/backend/src/utils/secrets.ts
2026-02-14 12:16:50 +01:00

62 lines
1.5 KiB
TypeScript

import {InfisicalSDK} from "@infisical/sdk"
const client = new InfisicalSDK({
siteUrl: "https://secrets.fedeo.io"
})
export let secrets = {
} as {
COOKIE_SECRET: string
JWT_SECRET: string
PORT: number
HOST: string
DATABASE_URL: string
S3_BUCKET: string
ENCRYPTION_KEY: string
MAILER_SMTP_HOST: string
MAILER_SMTP_PORT: number
MAILER_SMTP_SSL: string
MAILER_SMTP_USER: string
MAILER_SMTP_PASS: string
MAILER_FROM: string
S3_ENDPOINT: string
S3_REGION: string
S3_ACCESS_KEY: string
S3_SECRET_KEY: string
M2M_API_KEY: string
API_BASE_URL: string
GOCARDLESS_BASE_URL: string
GOCARDLESS_SECRET_ID: string
GOCARDLESS_SECRET_KEY: string
DOKUBOX_IMAP_HOST: string
DOKUBOX_IMAP_PORT: number
DOKUBOX_IMAP_SECURE: boolean
DOKUBOX_IMAP_USER: string
DOKUBOX_IMAP_PASSWORD: string
OPENAI_API_KEY: string
STIRLING_API_KEY: string
}
export async function loadSecrets () {
await client.auth().universalAuth.login({
clientId: process.env.INFISICAL_CLIENT_ID,
clientSecret: process.env.INFISICAL_CLIENT_SECRET,
});
const allSecrets = await client.secrets().listSecrets({
environment: "dev", // stg, dev, prod, or custom environment slugs
projectId: "39774094-2aaf-49fb-a213-d6b2c10f6144"
});
allSecrets.secrets.forEach(secret => {
secrets[secret.secretKey] = secret.secretValue
})
console.log("✅ Secrets aus Infisical geladen");
console.log(Object.keys(secrets).length + " Stück")
}