mirror of
https://github.com/kjanat/livedash-node.git
synced 2026-01-16 15:32:10 +01:00
- Implement repository pattern for data access layer - Add comprehensive service layer for business logic - Create scheduler management system with health monitoring - Add bounded buffer utility for memory management - Enhance security audit logging with retention policies
149 lines
3.7 KiB
TypeScript
149 lines
3.7 KiB
TypeScript
/**
|
|
* Application-wide constants and configuration values
|
|
* Centralizes magic numbers and reduces code duplication
|
|
*/
|
|
|
|
// Time constants (in milliseconds)
|
|
export const TIME = {
|
|
SECOND: 1000,
|
|
MINUTE: 60 * 1000,
|
|
HOUR: 60 * 60 * 1000,
|
|
DAY: 24 * 60 * 60 * 1000,
|
|
WEEK: 7 * 24 * 60 * 60 * 1000,
|
|
} as const;
|
|
|
|
// Database and query limits
|
|
export const DATABASE = {
|
|
CONNECTION_POOL_SIZE: 15,
|
|
QUERY_TIMEOUT: 30 * TIME.SECOND,
|
|
MAX_RETRY_ATTEMPTS: 3,
|
|
RETRY_DELAY_BASE: 1 * TIME.SECOND,
|
|
RETRY_DELAY_MAX: 30 * TIME.SECOND,
|
|
} as const;
|
|
|
|
// Batch processing configuration
|
|
export const BATCH_PROCESSING = {
|
|
MAX_REQUESTS_PER_BATCH: 1000,
|
|
MIN_STATUS_CHECK_INTERVAL: 1 * TIME.MINUTE,
|
|
MAX_BATCH_TIMEOUT: 24 * TIME.HOUR,
|
|
REQUEST_TIMEOUT: 60 * TIME.SECOND,
|
|
CIRCUIT_BREAKER_TIMEOUT: 5 * TIME.MINUTE,
|
|
DEFAULT_BATCH_SIZE: 50,
|
|
} as const;
|
|
|
|
// AI Processing limits
|
|
export const AI_PROCESSING = {
|
|
MAX_TOKENS: 1000,
|
|
DEFAULT_TEMPERATURE: 0.7,
|
|
MAX_RETRIES: 3,
|
|
TIMEOUT: 60 * TIME.SECOND,
|
|
} as const;
|
|
|
|
// Rate limiting configuration
|
|
export const RATE_LIMITING = {
|
|
AUTH_WINDOW: 15 * TIME.MINUTE,
|
|
AUTH_MAX_ATTEMPTS: 5,
|
|
REGISTRATION_WINDOW: 1 * TIME.HOUR,
|
|
REGISTRATION_MAX_ATTEMPTS: 3,
|
|
PASSWORD_RESET_WINDOW: 15 * TIME.MINUTE,
|
|
PASSWORD_RESET_MAX_ATTEMPTS: 5,
|
|
CSP_REPORT_WINDOW: 1 * TIME.MINUTE,
|
|
CSP_REPORT_MAX_REPORTS: 10,
|
|
DEFAULT_WINDOW: 1 * TIME.MINUTE,
|
|
DEFAULT_MAX_REQUESTS: 100,
|
|
} as const;
|
|
|
|
// Security monitoring configuration
|
|
export const SECURITY_MONITORING = {
|
|
EVENT_BUFFER_MAX_SIZE: 10000,
|
|
EVENT_BUFFER_CLEANUP_INTERVAL: 5 * TIME.MINUTE,
|
|
EVENT_RETENTION_HOURS: 1,
|
|
ALERT_RETENTION_DAYS: 30,
|
|
BACKGROUND_PROCESSING_INTERVAL: 30 * TIME.SECOND,
|
|
THREAT_DETECTION_WINDOW: 1 * TIME.MINUTE,
|
|
ANOMALY_CONFIDENCE_THRESHOLD: 0.8,
|
|
} as const;
|
|
|
|
// Cache configuration
|
|
export const CACHE = {
|
|
DEFAULT_TTL: 5 * TIME.MINUTE,
|
|
LONG_TTL: 1 * TIME.HOUR,
|
|
SHORT_TTL: 30 * TIME.SECOND,
|
|
MAX_SIZE: 10000,
|
|
CLEANUP_INTERVAL: 5 * TIME.MINUTE,
|
|
} as const;
|
|
|
|
// File processing limits
|
|
export const FILE_PROCESSING = {
|
|
MAX_FILE_SIZE: 100 * 1024 * 1024, // 100MB
|
|
CHUNK_SIZE: 1024 * 1024, // 1MB
|
|
MAX_CONCURRENT_UPLOADS: 5,
|
|
UPLOAD_TIMEOUT: 10 * TIME.MINUTE,
|
|
} as const;
|
|
|
|
// Session configuration
|
|
export const SESSION = {
|
|
PLATFORM_USER_DURATION: 8 * TIME.HOUR,
|
|
COMPANY_USER_DURATION: 24 * TIME.HOUR,
|
|
CLEANUP_INTERVAL: 1 * TIME.HOUR,
|
|
MAX_CONCURRENT_SESSIONS: 5,
|
|
} as const;
|
|
|
|
// Scheduler configuration
|
|
export const SCHEDULER = {
|
|
CSV_IMPORT_INTERVAL: 5 * TIME.MINUTE,
|
|
PROCESSING_INTERVAL: 2 * TIME.MINUTE,
|
|
BATCH_CREATION_INTERVAL: 5 * TIME.MINUTE,
|
|
BATCH_STATUS_CHECK_INTERVAL: 2 * TIME.MINUTE,
|
|
AUDIT_LOG_CLEANUP_INTERVAL: 24 * TIME.HOUR,
|
|
DEFAULT_CONCURRENCY: 5,
|
|
MAX_PROCESSING_TIME: 30 * TIME.MINUTE,
|
|
} as const;
|
|
|
|
// API configuration
|
|
export const API = {
|
|
DEFAULT_TIMEOUT: 30 * TIME.SECOND,
|
|
LONG_TIMEOUT: 2 * TIME.MINUTE,
|
|
MAX_RETRIES: 3,
|
|
RETRY_DELAY: 1 * TIME.SECOND,
|
|
MAX_RESPONSE_SIZE: 10 * 1024 * 1024, // 10MB
|
|
} as const;
|
|
|
|
// Validation limits
|
|
export const VALIDATION = {
|
|
MIN_PASSWORD_LENGTH: 12,
|
|
MAX_PASSWORD_LENGTH: 128,
|
|
MAX_EMAIL_LENGTH: 254,
|
|
MAX_NAME_LENGTH: 100,
|
|
MAX_DESCRIPTION_LENGTH: 1000,
|
|
MAX_SEARCH_QUERY_LENGTH: 500,
|
|
} as const;
|
|
|
|
// Environment-specific configurations
|
|
export const ENVIRONMENT = {
|
|
DEVELOPMENT: {
|
|
LOG_LEVEL: "debug",
|
|
MOCK_EXTERNAL_APIS: true,
|
|
STRICT_CSP: false,
|
|
},
|
|
PRODUCTION: {
|
|
LOG_LEVEL: "warn",
|
|
MOCK_EXTERNAL_APIS: false,
|
|
STRICT_CSP: true,
|
|
},
|
|
TEST: {
|
|
LOG_LEVEL: "error",
|
|
MOCK_EXTERNAL_APIS: true,
|
|
STRICT_CSP: false,
|
|
},
|
|
} as const;
|
|
|
|
// Feature flags
|
|
export const FEATURES = {
|
|
ENABLE_BATCH_OPTIMIZATION: true,
|
|
ENABLE_SECURITY_MONITORING: true,
|
|
ENABLE_PERFORMANCE_TRACKING: true,
|
|
ENABLE_CACHE: true,
|
|
ENABLE_RATE_LIMITING: true,
|
|
} as const;
|