update
This commit is contained in:
100
ts/config/index.ts
Normal file
100
ts/config/index.ts
Normal file
@ -0,0 +1,100 @@
|
||||
// Export configuration interfaces
|
||||
export * from './base.config.js';
|
||||
export * from './email.config.js';
|
||||
export * from './sms.config.js';
|
||||
export * from './platform.config.js';
|
||||
|
||||
// Export validation tools
|
||||
export * from './validator.js';
|
||||
export * from './schemas.js';
|
||||
|
||||
// Re-export commonly used types
|
||||
import type { IPlatformConfig } from './platform.config.js';
|
||||
import type { IEmailConfig, IMtaConfig } from './email.config.js';
|
||||
import type { ISmsConfig } from './sms.config.js';
|
||||
import type {
|
||||
IBaseConfig,
|
||||
ITlsConfig,
|
||||
IHttpServerConfig,
|
||||
IRateLimitConfig,
|
||||
IQueueConfig
|
||||
} from './base.config.js';
|
||||
|
||||
// Default platform configuration
|
||||
export const defaultConfig: IPlatformConfig = {
|
||||
id: 'platform-service-config',
|
||||
version: '1.0.0',
|
||||
environment: 'production',
|
||||
name: 'PlatformService',
|
||||
enabled: true,
|
||||
logging: {
|
||||
level: 'info',
|
||||
structured: true,
|
||||
correlationTracking: true
|
||||
},
|
||||
server: {
|
||||
enabled: true,
|
||||
host: '0.0.0.0',
|
||||
port: 3000,
|
||||
cors: true
|
||||
},
|
||||
email: {
|
||||
useMta: true,
|
||||
mtaConfig: {
|
||||
smtp: {
|
||||
enabled: true,
|
||||
port: 25,
|
||||
hostname: 'mta.lossless.one',
|
||||
maxSize: 10 * 1024 * 1024 // 10MB
|
||||
},
|
||||
tls: {
|
||||
domain: 'mta.lossless.one',
|
||||
autoRenew: true
|
||||
},
|
||||
security: {
|
||||
useDkim: true,
|
||||
verifyDkim: true,
|
||||
verifySpf: true,
|
||||
verifyDmarc: true,
|
||||
enforceDmarc: true,
|
||||
useTls: true,
|
||||
requireValidCerts: false,
|
||||
securityLogLevel: 'warn',
|
||||
checkIPReputation: true,
|
||||
scanContent: true,
|
||||
maliciousContentAction: 'tag',
|
||||
threatScoreThreshold: 50,
|
||||
rejectHighRiskIPs: false
|
||||
},
|
||||
domains: {
|
||||
local: ['lossless.one'],
|
||||
autoCreateDnsRecords: true,
|
||||
dkimSelector: 'mta'
|
||||
}
|
||||
},
|
||||
templateConfig: {
|
||||
from: 'no-reply@lossless.one',
|
||||
replyTo: 'support@lossless.one'
|
||||
},
|
||||
loadTemplatesFromDir: true
|
||||
},
|
||||
paths: {
|
||||
dataDir: 'data',
|
||||
logsDir: 'logs',
|
||||
tempDir: 'temp',
|
||||
emailTemplatesDir: 'templates/email'
|
||||
}
|
||||
};
|
||||
|
||||
// Export main types for convenience
|
||||
export type {
|
||||
IPlatformConfig,
|
||||
IEmailConfig,
|
||||
IMtaConfig,
|
||||
ISmsConfig,
|
||||
IBaseConfig,
|
||||
ITlsConfig,
|
||||
IHttpServerConfig,
|
||||
IRateLimitConfig,
|
||||
IQueueConfig
|
||||
};
|
Reference in New Issue
Block a user