rwadurian/backend/services/backup-service/src/config/index.ts

31 lines
1002 B
TypeScript

export default () => ({
app: {
port: parseInt(process.env.APP_PORT || '3002', 10),
env: process.env.APP_ENV || 'development',
},
database: {
url: process.env.DATABASE_URL,
},
security: {
serviceJwtSecret: process.env.SERVICE_JWT_SECRET,
allowedServices: (process.env.ALLOWED_SERVICES || 'identity-service,recovery-service')
.split(',')
.map((s) => s.trim()),
},
encryption: {
key: process.env.BACKUP_ENCRYPTION_KEY,
keyId: process.env.BACKUP_ENCRYPTION_KEY_ID || 'key-v1',
},
rateLimit: {
maxRetrievePerDay: parseInt(process.env.MAX_RETRIEVE_PER_DAY || '3', 10),
maxStorePerMinute: parseInt(process.env.MAX_STORE_PER_MINUTE || '10', 10),
},
audit: {
logRetentionDays: parseInt(process.env.AUDIT_LOG_RETENTION_DAYS || '365', 10),
},
monitoring: {
prometheusEnabled: process.env.PROMETHEUS_ENABLED === 'true',
prometheusPort: parseInt(process.env.PROMETHEUS_PORT || '9102', 10),
},
});