self-serve-integration-service
Version:
Self-Serve Integration Service for managing multiple funder integrations including REST APIs, SOAP APIs, and UI automation
36 lines (29 loc) • 1.18 kB
text/typescript
import dotenv from 'dotenv';
import { EnvironmentVariables } from '../types';
dotenv.config();
// Environment variables with type safety
const config: EnvironmentVariables = {
PORT: process.env['PORT'] || '3003',
NODE_ENV: process.env['NODE_ENV'] || 'development',
DATABASE_URL: process.env['DATABASE_URL'] || '',
JWT_PUBLIC_KEY: process.env['JWT_PUBLIC_KEY'] || undefined,
JWT_ISSUER: process.env['JWT_ISSUER'] || 'self-serve-platform',
JWT_AUDIENCE: process.env['JWT_AUDIENCE'] || 'self-serve-users',
LOG_LEVEL: process.env['LOG_LEVEL'] || 'info',
API_GATEWAY_URL: process.env['API_GATEWAY_URL'] || undefined,
AUTH_SERVICE_URL: process.env['AUTH_SERVICE_URL'] || undefined,
};
// Validate required environment variables
const requiredEnvVars = ['DATABASE_URL'];
for (const envVar of requiredEnvVars) {
if (!process.env[envVar]) {
throw new Error(`Missing required environment variable: ${envVar}`);
}
}
// Validate JWT configuration
if (!process.env['JWT_SECRET'] && !process.env['JWT_PUBLIC_KEY']) {
console.warn(
'Warning: Neither JWT_SECRET nor JWT_PUBLIC_KEY is configured. Authentication will fail.'
);
}
export default config;