This commit is contained in:
simon.franken
2026-02-16 16:09:07 +01:00
parent d200254783
commit a9228d19c8
8 changed files with 226 additions and 105 deletions

View File

@@ -1,47 +1,47 @@
import dotenv from 'dotenv';
import path from 'path';
import dotenv from "dotenv";
import path from "path";
dotenv.config({ path: path.resolve(__dirname, '../../.env') });
dotenv.config({ path: path.resolve(__dirname, "../../.env") });
export const config = {
port: parseInt(process.env.PORT || '3001', 10),
nodeEnv: process.env.NODE_ENV || 'development',
port: parseInt(process.env.PORT || "3001", 10),
nodeEnv: process.env.NODE_ENV || "development",
database: {
url: process.env.DATABASE_URL || '',
url: process.env.DATABASE_URL || "",
},
oidc: {
issuerUrl: process.env.OIDC_ISSUER_URL || '',
clientId: process.env.OIDC_CLIENT_ID || '',
redirectUri: process.env.OIDC_REDIRECT_URI || 'http://localhost:3001/auth/callback',
issuerUrl: process.env.OIDC_ISSUER_URL || "",
clientId: process.env.OIDC_CLIENT_ID || "",
redirectUri:
process.env.OIDC_REDIRECT_URI ||
"http://localhost:3001/api/auth/callback",
},
session: {
secret: process.env.SESSION_SECRET || 'default-secret-change-in-production',
secret: process.env.SESSION_SECRET || "default-secret-change-in-production",
maxAge: 24 * 60 * 60 * 1000, // 24 hours
},
cors: {
origin: process.env.FRONTEND_URL || 'http://localhost:5173',
origin: process.env.FRONTEND_URL || "http://localhost:5173",
credentials: true,
},
};
export function validateConfig(): void {
const required = [
'DATABASE_URL',
'OIDC_ISSUER_URL',
'OIDC_CLIENT_ID',
];
const required = ["DATABASE_URL", "OIDC_ISSUER_URL", "OIDC_CLIENT_ID"];
for (const key of required) {
if (!process.env[key]) {
throw new Error(`Missing required environment variable: ${key}`);
}
}
if (config.session.secret.length < 32) {
console.warn('Warning: SESSION_SECRET should be at least 32 characters for security');
console.warn(
"Warning: SESSION_SECRET should be at least 32 characters for security",
);
}
}
}