Skip to main content
Glama
index.ts8.31 kB
/** * Security System Index * Central export for all security components */ // Core Security Components export { SecurityConfig, SecurityUtils, createSecureError, getEnvironmentSecurity } from "./SecurityConfig.js"; import { SecurityValidationError } from "./InputValidator.js"; import { LoggerFactory } from "@/utils/logger.js"; export { InputSanitizer, SecuritySchemas, SecurityLimiter, SecurityValidationError, validateSecurity, ToolSchemas, } from "./InputValidator.js"; // AI-Powered Security Scanner import { AISecurityScanner } from "./AISecurityScanner.js"; import type { SecurityScanResult } from "./AISecurityScanner.js"; export { AISecurityScanner } from "./AISecurityScanner.js"; // Automated Remediation System import { AutomatedRemediation, RemediationResult as _RemediationResult } from "./AutomatedRemediation.js"; export { AutomatedRemediation, RemediationResult } from "./AutomatedRemediation.js"; // Security Code Reviewer import { SecurityReviewer, CodeReviewResult as _CodeReviewResult } from "./SecurityReviewer.js"; export { SecurityReviewer, CodeReviewResult } from "./SecurityReviewer.js"; // Security Configuration Manager import { SecurityConfigManager } from "./SecurityConfigManager.js"; export { SecurityConfigManager } from "./SecurityConfigManager.js"; // Security Monitoring and Alerting import { SecurityMonitor, SecurityEvent as _SecurityEvent } from "./SecurityMonitoring.js"; export { SecurityMonitor, SecurityEvent } from "./SecurityMonitoring.js"; // CI/CD Pipeline Integration import { SecurityCIPipeline, PipelineSecurityReport as _PipelineSecurityReport } from "./SecurityCIPipeline.js"; export { SecurityCIPipeline, PipelineSecurityReport } from "./SecurityCIPipeline.js"; // Security Types (new modular exports) export * from "./SecurityTypes.js"; export { SecurityGateExecutor } from "./SecurityGateExecutor.js"; export { SecurityReportGenerator } from "./SecurityReportGenerator.js"; // Type definitions for external use export interface SecurityScanOptions { targets?: string[]; depth?: "shallow" | "deep" | "comprehensive"; includeFileSystem?: boolean; includeRuntime?: boolean; } export interface SecurityReviewOptions { rules?: string[]; excludeRules?: string[]; aiAnalysis?: boolean; recursive?: boolean; } export interface SecurityGateOptions { skipNonBlocking?: boolean; continueOnFailure?: boolean; dryRun?: boolean; } /** * Security System Manager * Orchestrates all security components */ export class SecuritySystem { private scanner: AISecurityScanner; private remediation: AutomatedRemediation; private reviewer: SecurityReviewer; private configManager: SecurityConfigManager; private monitor: SecurityMonitor; private pipeline: SecurityCIPipeline; private initialized = false; constructor() { this.scanner = new AISecurityScanner(); this.remediation = new AutomatedRemediation(); this.reviewer = new SecurityReviewer(); this.configManager = new SecurityConfigManager(); this.monitor = new SecurityMonitor(); this.pipeline = new SecurityCIPipeline(); } /** * Initialize the security system */ async initialize(): Promise<void> { if (this.initialized) { const logger = LoggerFactory.security(); logger.info("Security system already initialized"); return; } const logger = LoggerFactory.security(); logger.info("Initializing comprehensive security system"); try { // Initialize all components await this.configManager.initialize(); await this.pipeline.initialize(); // Start monitoring this.monitor.start(); this.initialized = true; logger.info("Security system initialized successfully"); } catch (_error) { logger.error("Security system initialization failed", { _error: _error instanceof Error ? _error.message : String(_error), }); throw new SecurityValidationError("Security system initialization failed", [{ message: String(_error) }]); } } /** * Perform comprehensive security scan */ async scan(options?: SecurityScanOptions) { this.ensureInitialized(); return await this.scanner.performScan(options); } /** * Perform security code review */ async review(filePath: string, options?: SecurityReviewOptions): Promise<_CodeReviewResult> { this.ensureInitialized(); return await this.reviewer.reviewFile(filePath, options); } /** * Create and execute remediation plan */ async remediate(scanResult: unknown, dryRun = false): Promise<_RemediationResult[]> { this.ensureInitialized(); const plan = await this.remediation.createRemediationPlan(scanResult as SecurityScanResult); return await this.remediation.executeRemediationPlan(plan, { dryRun }); } /** * Execute security gates for CI/CD */ async executeGates(stage: string, context: unknown, options?: SecurityGateOptions): Promise<_PipelineSecurityReport> { this.ensureInitialized(); const validStages = ["pre-commit", "pre-build", "pre-deploy", "post-deploy"] as const; type ValidStage = (typeof validStages)[number]; const validStage = validStages.includes(stage as ValidStage) ? (stage as ValidStage) : "pre-commit"; // Create a minimal PipelineContext from unknown input const pipelineContext = { repositoryUrl: "", branch: "", commit: "", author: "", environment: "development", buildNumber: "", artifacts: [], ...(typeof context === "object" && context !== null ? context : {}), }; return await this.pipeline.executeSecurityGates(validStage, pipelineContext, options); } /** * Log security event */ async logEvent(eventData: unknown): Promise<_SecurityEvent> { this.ensureInitialized(); // Create a minimal SecurityEvent from unknown input const securityEventData = { type: "system" as const, description: "Security event", severity: "low" as const, source: "unknown", details: {}, riskScore: 0, ...(typeof eventData === "object" && eventData !== null ? eventData : {}), }; return await this.monitor.logSecurityEvent(securityEventData); } /** * Get security status */ getStatus() { this.ensureInitialized(); return { system: this.initialized, monitoring: this.monitor.getStatus(), scanner: this.scanner.getLatestScan(), pipeline: this.pipeline.getStatistics(), }; } /** * Shutdown security system */ shutdown(): void { if (!this.initialized) { return; } const logger = LoggerFactory.security(); logger.info("Shutting down security system"); this.monitor.stop(); this.initialized = false; logger.info("Security system shutdown complete"); } /** * Ensure system is initialized */ private ensureInitialized(): void { if (!this.initialized) { throw new SecurityValidationError("Security system not initialized", [{ message: "Call initialize() first" }]); } } /** * Get individual components for advanced usage */ getComponents() { return { scanner: this.scanner, remediation: this.remediation, reviewer: this.reviewer, configManager: this.configManager, monitor: this.monitor, pipeline: this.pipeline, }; } } /** * Default security system instance */ export const securitySystem = new SecuritySystem(); /** * Convenience functions for common operations */ export const security = { /** * Quick security scan */ scan: (options?: SecurityScanOptions) => securitySystem.scan(options), /** * Quick security review */ review: (filePath: string, options?: SecurityReviewOptions) => securitySystem.review(filePath, options), /** * Quick remediation */ remediate: (scanResult: unknown, dryRun = true) => securitySystem.remediate(scanResult, dryRun), /** * Log security event */ logEvent: (eventData: unknown) => securitySystem.logEvent(eventData), /** * Get security status */ status: () => securitySystem.getStatus(), /** * Initialize security system */ init: () => securitySystem.initialize(), /** * Shutdown security system */ shutdown: () => securitySystem.shutdown(), };

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/docdyhr/mcp-wordpress'

If you have feedback or need assistance with the MCP directory API, please join our Discord server