datapilot-cli
Version:
Enterprise-grade streaming multi-format data analysis with comprehensive statistical insights and intelligent relationship detection - supports CSV, JSON, Excel, TSV, Parquet - memory-efficient, cross-platform
174 lines • 5.72 kB
TypeScript
/**
* Security Configuration Management
* Centralised security settings and policy management
*/
import type { LogContext } from '../utils/logger';
export interface SecurityPolicy {
/** Input validation settings */
inputValidation: {
maxFileSize: number;
allowedExtensions: string[];
allowedMimeTypes: string[];
allowSymlinks: boolean;
maxPathDepth: number;
rateLimit: number;
};
/** File access control settings */
fileAccess: {
defaultOperations: string[];
requireIntegrityCheck: boolean;
tempFileTimeout: number;
maxConcurrentHandles: number;
auditLogRetention: number;
};
/** Error handling and disclosure settings */
errorHandling: {
hideSystemPaths: boolean;
sanitiseErrorMessages: boolean;
maxStackTraceDepth: number;
logSecurityEvents: boolean;
};
/** Cryptographic settings */
cryptography: {
hashAlgorithm: 'sha256' | 'sha512';
encryptSensitiveData: boolean;
keyDerivationIterations: number;
saltLength: number;
};
/** Network and external access settings */
network: {
allowExternalConnections: boolean;
allowedDomains: string[];
requestTimeout: number;
maxRequestSize: number;
};
/** Process isolation settings */
process: {
restrictFileSystemAccess: boolean;
disableShellExecution: boolean;
memoryLimit: number;
cpuLimit: number;
};
}
export interface SecurityConfiguration {
/** Current security policy */
policy: SecurityPolicy;
/** Environment-specific overrides */
environmentOverrides: Map<string, Partial<SecurityPolicy>>;
/** Security feature flags */
features: {
enableAdvancedThreatDetection: boolean;
enableRealTimeMonitoring: boolean;
enableBehaviouralAnalysis: boolean;
enableIntrusionDetection: boolean;
};
/** Compliance settings */
compliance: {
enableGDPRMode: boolean;
enableSOXCompliance: boolean;
enableHIPAAMode: boolean;
dataRetentionDays: number;
};
}
/**
* Default security policy with secure defaults
*/
export declare const DEFAULT_SECURITY_POLICY: SecurityPolicy;
/**
* Security Configuration Manager
*/
export declare class SecurityConfigManager {
private static instance;
private config;
private configValidators;
private sensitiveKeys;
private constructor();
static getInstance(): SecurityConfigManager;
/**
* Get current security policy
*/
getSecurityPolicy(): SecurityPolicy;
/**
* Update security policy with validation
*/
updateSecurityPolicy(updates: Partial<SecurityPolicy>, context?: LogContext): void;
/**
* Apply environment-specific security overrides
*/
applyEnvironmentOverrides(environment: string): void;
/**
* Get security features configuration
*/
getSecurityFeatures(): Record<string, boolean>;
/**
* Enable or disable security features
*/
updateSecurityFeatures(features: Partial<Record<keyof SecurityConfiguration['features'], boolean>>, context?: LogContext): void;
/**
* Get compliance settings
*/
getComplianceSettings(): Record<string, unknown>;
/**
* Check if a specific security feature is enabled
*/
isFeatureEnabled(feature: keyof SecurityConfiguration['features']): boolean;
/**
* Get effective security policy for environment
*/
getEffectivePolicy(environment?: string): SecurityPolicy;
/**
* Validate current security configuration
*/
validateConfiguration(): {
isValid: boolean;
errors: string[];
warnings: string[];
recommendations: string[];
};
/**
* Export security configuration (with sensitive data redacted)
*/
exportConfiguration(includeSensitive?: boolean): Record<string, unknown>;
/**
* Import security configuration with validation
*/
importConfiguration(configData: Record<string, unknown>, context?: LogContext): void;
private initializeValidators;
private initializeSensitiveKeys;
private loadEnvironmentOverrides;
private validatePolicyUpdates;
private validateImportedConfig;
private deepMergePolicy;
private sanitiseForLogging;
private logSecurityEvent;
}
/**
* Factory function for easy access
*/
export declare function getSecurityConfig(): SecurityConfigManager;
/**
* Security policy builder for fluent configuration
*/
export declare class SecurityPolicyBuilder {
private policy;
static create(): SecurityPolicyBuilder;
inputValidation(config: Partial<SecurityPolicy['inputValidation']>): SecurityPolicyBuilder;
fileAccess(config: Partial<SecurityPolicy['fileAccess']>): SecurityPolicyBuilder;
errorHandling(config: Partial<SecurityPolicy['errorHandling']>): SecurityPolicyBuilder;
cryptography(config: Partial<SecurityPolicy['cryptography']>): SecurityPolicyBuilder;
network(config: Partial<SecurityPolicy['network']>): SecurityPolicyBuilder;
process(config: Partial<SecurityPolicy['process']>): SecurityPolicyBuilder;
build(): Partial<SecurityPolicy>;
}
/**
* Pre-defined security profiles
*/
export declare const SecurityProfiles: {
/** High security profile for production environments */
HIGH_SECURITY: Partial<SecurityPolicy>;
/** Balanced security profile for general use */
BALANCED: Partial<SecurityPolicy>;
/** Development profile with relaxed security for debugging */
DEVELOPMENT: Partial<SecurityPolicy>;
};
//# sourceMappingURL=security-config.d.ts.map