beddel 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (236) hide show
  1. package/README.md +297 -0
  2. package/dist/agents/agentRegistry.d.ts +68 -0
  3. package/dist/agents/agentRegistry.d.ts.map +1 -0
  4. package/dist/agents/agentRegistry.js +222 -0
  5. package/dist/agents/agentRegistry.js.map +1 -0
  6. package/dist/agents/formatter-agent.d.ts +10 -0
  7. package/dist/agents/formatter-agent.d.ts.map +1 -0
  8. package/dist/agents/formatter-agent.js +49 -0
  9. package/dist/agents/formatter-agent.js.map +1 -0
  10. package/dist/agents/genkit-agent.d.ts +12 -0
  11. package/dist/agents/genkit-agent.d.ts.map +1 -0
  12. package/dist/agents/genkit-agent.js +119 -0
  13. package/dist/agents/genkit-agent.js.map +1 -0
  14. package/dist/agents/i18n-messages.d.ts +17 -0
  15. package/dist/agents/i18n-messages.d.ts.map +1 -0
  16. package/dist/agents/i18n-messages.js +92 -0
  17. package/dist/agents/i18n-messages.js.map +1 -0
  18. package/dist/agents/index.d.ts +10 -0
  19. package/dist/agents/index.d.ts.map +1 -0
  20. package/dist/agents/index.js +26 -0
  21. package/dist/agents/index.js.map +1 -0
  22. package/dist/agents/pipeline.d.ts +15 -0
  23. package/dist/agents/pipeline.d.ts.map +1 -0
  24. package/dist/agents/pipeline.js +45 -0
  25. package/dist/agents/pipeline.js.map +1 -0
  26. package/dist/agents/schema-factory.d.ts +40 -0
  27. package/dist/agents/schema-factory.d.ts.map +1 -0
  28. package/dist/agents/schema-factory.js +121 -0
  29. package/dist/agents/schema-factory.js.map +1 -0
  30. package/dist/agents/translation-validators.d.ts +26 -0
  31. package/dist/agents/translation-validators.d.ts.map +1 -0
  32. package/dist/agents/translation-validators.js +77 -0
  33. package/dist/agents/translation-validators.js.map +1 -0
  34. package/dist/agents/translator-agents.d.ts +184 -0
  35. package/dist/agents/translator-agents.d.ts.map +1 -0
  36. package/dist/agents/translator-agents.js +613 -0
  37. package/dist/agents/translator-agents.js.map +1 -0
  38. package/dist/agents/types/translation.types.d.ts +100 -0
  39. package/dist/agents/types/translation.types.d.ts.map +1 -0
  40. package/dist/agents/types/translation.types.js +3 -0
  41. package/dist/agents/types/translation.types.js.map +1 -0
  42. package/dist/agents/validator-agent.d.ts +42 -0
  43. package/dist/agents/validator-agent.d.ts.map +1 -0
  44. package/dist/agents/validator-agent.js +122 -0
  45. package/dist/agents/validator-agent.js.map +1 -0
  46. package/dist/audit/auditTrail.d.ts +55 -0
  47. package/dist/audit/auditTrail.d.ts.map +1 -0
  48. package/dist/audit/auditTrail.js +93 -0
  49. package/dist/audit/auditTrail.js.map +1 -0
  50. package/dist/compliance/gdprEngine.d.ts +44 -0
  51. package/dist/compliance/gdprEngine.d.ts.map +1 -0
  52. package/dist/compliance/gdprEngine.js +178 -0
  53. package/dist/compliance/gdprEngine.js.map +1 -0
  54. package/dist/compliance/lgpdEngine.d.ts +51 -0
  55. package/dist/compliance/lgpdEngine.d.ts.map +1 -0
  56. package/dist/compliance/lgpdEngine.js +221 -0
  57. package/dist/compliance/lgpdEngine.js.map +1 -0
  58. package/dist/config.d.ts +78 -0
  59. package/dist/config.d.ts.map +1 -0
  60. package/dist/config.js +77 -0
  61. package/dist/config.js.map +1 -0
  62. package/dist/errors.d.ts +17 -0
  63. package/dist/errors.d.ts.map +1 -0
  64. package/dist/errors.js +40 -0
  65. package/dist/errors.js.map +1 -0
  66. package/dist/firebase/tenantManager.d.ts +84 -0
  67. package/dist/firebase/tenantManager.d.ts.map +1 -0
  68. package/dist/firebase/tenantManager.js +378 -0
  69. package/dist/firebase/tenantManager.js.map +1 -0
  70. package/dist/index.d.ts +36 -0
  71. package/dist/index.d.ts.map +1 -0
  72. package/dist/index.js +118 -0
  73. package/dist/index.js.map +1 -0
  74. package/dist/integration/secure-yaml-runtime.d.ts +68 -0
  75. package/dist/integration/secure-yaml-runtime.d.ts.map +1 -0
  76. package/dist/integration/secure-yaml-runtime.js +245 -0
  77. package/dist/integration/secure-yaml-runtime.js.map +1 -0
  78. package/dist/parser/secure-yaml-parser.d.ts +62 -0
  79. package/dist/parser/secure-yaml-parser.d.ts.map +1 -0
  80. package/dist/parser/secure-yaml-parser.js +234 -0
  81. package/dist/parser/secure-yaml-parser.js.map +1 -0
  82. package/dist/performance/autoscaling.d.ts +100 -0
  83. package/dist/performance/autoscaling.d.ts.map +1 -0
  84. package/dist/performance/autoscaling.js +339 -0
  85. package/dist/performance/autoscaling.js.map +1 -0
  86. package/dist/performance/benchmark.d.ts +104 -0
  87. package/dist/performance/benchmark.d.ts.map +1 -0
  88. package/dist/performance/benchmark.js +514 -0
  89. package/dist/performance/benchmark.js.map +1 -0
  90. package/dist/performance/index.d.ts +14 -0
  91. package/dist/performance/index.d.ts.map +1 -0
  92. package/dist/performance/index.js +35 -0
  93. package/dist/performance/index.js.map +1 -0
  94. package/dist/performance/monitor.d.ts +126 -0
  95. package/dist/performance/monitor.d.ts.map +1 -0
  96. package/dist/performance/monitor.js +324 -0
  97. package/dist/performance/monitor.js.map +1 -0
  98. package/dist/performance/streaming.d.ts +82 -0
  99. package/dist/performance/streaming.d.ts.map +1 -0
  100. package/dist/performance/streaming.js +287 -0
  101. package/dist/performance/streaming.js.map +1 -0
  102. package/dist/runtime/audit.d.ts +240 -0
  103. package/dist/runtime/audit.d.ts.map +1 -0
  104. package/dist/runtime/audit.js +641 -0
  105. package/dist/runtime/audit.js.map +1 -0
  106. package/dist/runtime/declarativeAgentRuntime.d.ts +123 -0
  107. package/dist/runtime/declarativeAgentRuntime.d.ts.map +1 -0
  108. package/dist/runtime/declarativeAgentRuntime.js +576 -0
  109. package/dist/runtime/declarativeAgentRuntime.js.map +1 -0
  110. package/dist/runtime/isolatedRuntime.d.ts +119 -0
  111. package/dist/runtime/isolatedRuntime.d.ts.map +1 -0
  112. package/dist/runtime/isolatedRuntime.js +425 -0
  113. package/dist/runtime/isolatedRuntime.js.map +1 -0
  114. package/dist/runtime/schemaCompiler.d.ts +35 -0
  115. package/dist/runtime/schemaCompiler.d.ts.map +1 -0
  116. package/dist/runtime/schemaCompiler.js +151 -0
  117. package/dist/runtime/schemaCompiler.js.map +1 -0
  118. package/dist/runtime/simpleRuntime.d.ts +57 -0
  119. package/dist/runtime/simpleRuntime.d.ts.map +1 -0
  120. package/dist/runtime/simpleRuntime.js +187 -0
  121. package/dist/runtime/simpleRuntime.js.map +1 -0
  122. package/dist/security/dashboard.d.ts +89 -0
  123. package/dist/security/dashboard.d.ts.map +1 -0
  124. package/dist/security/dashboard.js +300 -0
  125. package/dist/security/dashboard.js.map +1 -0
  126. package/dist/security/hardening.d.ts +130 -0
  127. package/dist/security/hardening.d.ts.map +1 -0
  128. package/dist/security/hardening.js +414 -0
  129. package/dist/security/hardening.js.map +1 -0
  130. package/dist/security/index.d.ts +128 -0
  131. package/dist/security/index.d.ts.map +1 -0
  132. package/dist/security/index.js +353 -0
  133. package/dist/security/index.js.map +1 -0
  134. package/dist/security/monitor.d.ts +88 -0
  135. package/dist/security/monitor.d.ts.map +1 -0
  136. package/dist/security/monitor.js +356 -0
  137. package/dist/security/monitor.js.map +1 -0
  138. package/dist/security/scanner.d.ts +104 -0
  139. package/dist/security/scanner.d.ts.map +1 -0
  140. package/dist/security/scanner.js +298 -0
  141. package/dist/security/scanner.js.map +1 -0
  142. package/dist/security/score.d.ts +150 -0
  143. package/dist/security/score.d.ts.map +1 -0
  144. package/dist/security/score.js +983 -0
  145. package/dist/security/score.js.map +1 -0
  146. package/dist/security/test-security.d.ts +22 -0
  147. package/dist/security/test-security.d.ts.map +1 -0
  148. package/dist/security/test-security.js +154 -0
  149. package/dist/security/test-security.js.map +1 -0
  150. package/dist/security/threatDetector.d.ts +39 -0
  151. package/dist/security/threatDetector.d.ts.map +1 -0
  152. package/dist/security/threatDetector.js +354 -0
  153. package/dist/security/threatDetector.js.map +1 -0
  154. package/dist/security/validation.d.ts +69 -0
  155. package/dist/security/validation.d.ts.map +1 -0
  156. package/dist/security/validation.js +286 -0
  157. package/dist/security/validation.js.map +1 -0
  158. package/dist/server/api/clientsRoute.d.ts +9 -0
  159. package/dist/server/api/clientsRoute.d.ts.map +1 -0
  160. package/dist/server/api/clientsRoute.js +71 -0
  161. package/dist/server/api/clientsRoute.js.map +1 -0
  162. package/dist/server/api/endpointsRoute.d.ts +8 -0
  163. package/dist/server/api/endpointsRoute.d.ts.map +1 -0
  164. package/dist/server/api/endpointsRoute.js +76 -0
  165. package/dist/server/api/endpointsRoute.js.map +1 -0
  166. package/dist/server/api/graphql.d.ts +9 -0
  167. package/dist/server/api/graphql.d.ts.map +1 -0
  168. package/dist/server/api/graphql.js +180 -0
  169. package/dist/server/api/graphql.js.map +1 -0
  170. package/dist/server/errors.d.ts +19 -0
  171. package/dist/server/errors.d.ts.map +1 -0
  172. package/dist/server/errors.js +42 -0
  173. package/dist/server/errors.js.map +1 -0
  174. package/dist/server/index.d.ts +7 -0
  175. package/dist/server/index.d.ts.map +1 -0
  176. package/dist/server/index.js +24 -0
  177. package/dist/server/index.js.map +1 -0
  178. package/dist/server/kvStore.d.ts +27 -0
  179. package/dist/server/kvStore.d.ts.map +1 -0
  180. package/dist/server/kvStore.js +128 -0
  181. package/dist/server/kvStore.js.map +1 -0
  182. package/dist/server/runtimeSecurity.d.ts +28 -0
  183. package/dist/server/runtimeSecurity.d.ts.map +1 -0
  184. package/dist/server/runtimeSecurity.js +85 -0
  185. package/dist/server/runtimeSecurity.js.map +1 -0
  186. package/dist/server/types.d.ts +53 -0
  187. package/dist/server/types.d.ts.map +1 -0
  188. package/dist/server/types.js +8 -0
  189. package/dist/server/types.js.map +1 -0
  190. package/dist/types/executionContext.d.ts +16 -0
  191. package/dist/types/executionContext.d.ts.map +1 -0
  192. package/dist/types/executionContext.js +3 -0
  193. package/dist/types/executionContext.js.map +1 -0
  194. package/package.json +77 -0
  195. package/src/agents/agentRegistry.ts +272 -0
  196. package/src/agents/image-agent.yaml +86 -0
  197. package/src/agents/joker-agent.yaml +47 -0
  198. package/src/agents/translator-agent.yaml +80 -0
  199. package/src/audit/auditTrail.ts +134 -0
  200. package/src/compliance/gdprEngine.ts +209 -0
  201. package/src/compliance/lgpdEngine.ts +268 -0
  202. package/src/config.ts +179 -0
  203. package/src/errors.ts +35 -0
  204. package/src/firebase/tenantManager.ts +443 -0
  205. package/src/index.ts +125 -0
  206. package/src/integration/secure-yaml-runtime.ts +341 -0
  207. package/src/parser/secure-yaml-parser.ts +273 -0
  208. package/src/performance/autoscaling.ts +495 -0
  209. package/src/performance/benchmark.ts +644 -0
  210. package/src/performance/index.ts +34 -0
  211. package/src/performance/monitor.ts +469 -0
  212. package/src/performance/streaming.ts +317 -0
  213. package/src/runtime/audit.ts +907 -0
  214. package/src/runtime/declarativeAgentRuntime.ts +836 -0
  215. package/src/runtime/isolatedRuntime.ts +572 -0
  216. package/src/runtime/schemaCompiler.ts +228 -0
  217. package/src/runtime/simpleRuntime.ts +201 -0
  218. package/src/security/dashboard.ts +462 -0
  219. package/src/security/hardening.ts +560 -0
  220. package/src/security/index.ts +439 -0
  221. package/src/security/monitor.ts +490 -0
  222. package/src/security/scanner.ts +368 -0
  223. package/src/security/score.ts +1138 -0
  224. package/src/security/threatDetector.ts +481 -0
  225. package/src/security/validation.ts +365 -0
  226. package/src/server/api/clientsRoute.ts +92 -0
  227. package/src/server/api/endpointsRoute.ts +97 -0
  228. package/src/server/api/graphql.ts +249 -0
  229. package/src/server/errors.ts +38 -0
  230. package/src/server/index.ts +6 -0
  231. package/src/server/kvStore.ts +152 -0
  232. package/src/server/runtimeSecurity.ts +102 -0
  233. package/src/server/types.ts +60 -0
  234. package/src/types/executionContext.ts +16 -0
  235. package/tools/seed.ts +365 -0
  236. package/tools/test-endpoints.ts +174 -0
@@ -0,0 +1,439 @@
1
+ /**
2
+ * Beddel Security Module - Advanced Security Monitoring System v2025
3
+ *
4
+ * Complete security monitoring solution with real-time threat detection,
5
+ * ML-based anomaly analysis, and automated incident response.
6
+ */
7
+
8
+ // Export types separately from values to fix isolatedModules
9
+ export type { AlertLevel, SecurityEvent, ThreatAnalysis } from "./monitor";
10
+ export { SecurityMonitor, securityMonitor } from "./monitor";
11
+ export {
12
+ ThreatDetectionEngine,
13
+ AnomalyDetector,
14
+ ThreatMLModel,
15
+ } from "./threatDetector";
16
+ export type { DashboardConfig, SecurityMetric } from "./dashboard";
17
+ export { SecurityDashboard, securityDashboard } from "./dashboard";
18
+
19
+ import { SecurityMonitor, securityMonitor } from "./monitor";
20
+ import { ThreatDetectionEngine } from "./threatDetector";
21
+ import { SecurityDashboard, securityDashboard } from "./dashboard";
22
+
23
+ /**
24
+ * Security Manager - Main security system coordinator
25
+ */
26
+ export class SecurityManager {
27
+ private monitor: SecurityMonitor;
28
+ private dashboard: SecurityDashboard;
29
+ private isInitialized: boolean = false;
30
+
31
+ constructor() {
32
+ this.monitor = securityMonitor;
33
+ this.dashboard = securityDashboard;
34
+ }
35
+
36
+ /**
37
+ * Initialize the complete security system
38
+ */
39
+ public initialize(): void {
40
+ if (this.isInitialized) {
41
+ console.log("🔒 Security system already initialized");
42
+ return;
43
+ }
44
+
45
+ try {
46
+ // Start monitoring
47
+ this.monitor.startMonitoring();
48
+
49
+ // Initialize dashboard
50
+ this.dashboard.initialize();
51
+
52
+ // Set up event listeners
53
+ this.setupEventListeners();
54
+
55
+ this.isInitialized = true;
56
+ console.log("🛡️ Beddel Security System v2025 initialized successfully");
57
+
58
+ // Schedule periodic health check
59
+ this.scheduleHealthCheck();
60
+ } catch (error) {
61
+ console.error("❌ Failed to initialize security system:", error);
62
+ throw error;
63
+ }
64
+ }
65
+
66
+ /**
67
+ * Set up event listeners for security events
68
+ */
69
+ private setupEventListeners(): void {
70
+ // Listen for security events
71
+ this.monitor.on("securityEvent", (event: any) => {
72
+ console.log(
73
+ `🔍 Security event detected: ${event.tenantId} - ${event.operation} (Risk: ${event.riskScore})`
74
+ );
75
+
76
+ // Add to dashboard
77
+ this.dashboard.addEvent(event);
78
+
79
+ // Auto-respond to high-risk events
80
+ if (event.riskScore > 0.8) {
81
+ this.autoRespondToThreat(event);
82
+ }
83
+ });
84
+
85
+ // Listen for security alerts
86
+ this.monitor.on("securityAlert", (event: any) => {
87
+ console.log(
88
+ `🚨 SECURITY ALERT: ${event.tenantId} - ${event.operation} (Score: ${event.riskScore})`
89
+ );
90
+ this.handleSecurityAlert(event);
91
+ });
92
+
93
+ // Listen for monitoring events
94
+ this.monitor.on("monitoringStarted", () => {
95
+ console.log("✅ Security monitoring started");
96
+ });
97
+
98
+ this.monitor.on("monitoringStopped", () => {
99
+ console.log("⏹️ Security monitoring stopped");
100
+ });
101
+ }
102
+
103
+ /**
104
+ * Monitor security operations
105
+ */
106
+ public async monitorSecurity(
107
+ tenantId: string,
108
+ operation: string,
109
+ metadata: any = {}
110
+ ): Promise<any> {
111
+ if (!this.isInitialized) {
112
+ throw new Error("Security system not initialized");
113
+ }
114
+
115
+ try {
116
+ // Add security context to metadata
117
+ const enrichedMetadata = {
118
+ ...metadata,
119
+ securityTimestamp: new Date().toISOString(),
120
+ securitySystem: "Beddel-v2025",
121
+ };
122
+
123
+ return await this.monitor.monitorActivity(
124
+ tenantId,
125
+ operation,
126
+ enrichedMetadata
127
+ );
128
+ } catch (error) {
129
+ console.error("❌ Security monitoring failed:", error);
130
+ throw error;
131
+ }
132
+ }
133
+
134
+ /**
135
+ * Auto-respond to threats
136
+ */
137
+ private async autoRespondToThreat(event: any): Promise<void> {
138
+ console.log(`🔄 Auto-responding to threat from ${event.tenantId}`);
139
+
140
+ switch (event.alertLevel) {
141
+ case "emergency":
142
+ // Immediate response required
143
+ console.log(
144
+ `🚨 EMERGENCY RESPONSE: Isolating tenant ${event.tenantId}`
145
+ );
146
+
147
+ // In a real implementation, would:
148
+ // 1. Block tenant operations
149
+ // 2. Notify security team
150
+ // 3. Preserve evidence
151
+ // 4. Alert compliance team
152
+
153
+ break;
154
+
155
+ case "critical":
156
+ console.log(
157
+ `⚠️ CRITICAL RESPONSE: Enhanced monitoring for ${event.tenantId}`
158
+ );
159
+ break;
160
+
161
+ case "warning":
162
+ console.log(
163
+ `⚠️ WARNING RESPONSE: Alerting security team about ${event.tenantId}`
164
+ );
165
+ break;
166
+ }
167
+
168
+ // Generate automated incident response
169
+ await this.generateIncidentResponse(event);
170
+ }
171
+
172
+ /**
173
+ * Handle security alerts
174
+ */
175
+ private handleSecurityAlert(event: any): void {
176
+ // Add alert to dashboard
177
+ const alertMetric = {
178
+ timestamp: new Date(),
179
+ tenantId: event.tenantId,
180
+ metricType: "security_alert",
181
+ value: event.riskScore,
182
+ riskLevel: this.assessRiskLevel(event.riskScore),
183
+ description: `Security alert: ${event.operation}`,
184
+ };
185
+
186
+ this.dashboard.addMetric(alertMetric);
187
+
188
+ // Log alert details
189
+ console.warn(`🚨 Security Alert Details:
190
+ Tenant: ${event.tenantId}
191
+ Operation: ${event.operation}
192
+ Risk Score: ${event.riskScore}
193
+ Alert Level: ${event.alertLevel}
194
+ Time: ${event.timestamp}
195
+ `);
196
+ }
197
+
198
+ /**
199
+ * Assess risk level
200
+ */
201
+ private assessRiskLevel(
202
+ riskScore: number
203
+ ): "low" | "medium" | "high" | "critical" {
204
+ if (riskScore >= 0.9) return "critical";
205
+ if (riskScore >= 0.7) return "high";
206
+ if (riskScore >= 0.4) return "medium";
207
+ return "low";
208
+ }
209
+
210
+ /**
211
+ * Generate incident response
212
+ */
213
+ private async generateIncidentResponse(event: any): Promise<void> {
214
+ const incidentId = `INC-${Date.now()}-${Math.random()
215
+ .toString(36)
216
+ .substr(2, 9)}`;
217
+ const responseActions: string[] = [];
218
+
219
+ // Determine response actions based on risk level
220
+ if (event.riskScore > 0.8) {
221
+ responseActions.push("Isolate tenant immediately");
222
+ responseActions.push("Block further operations");
223
+ responseActions.push("Alert security team");
224
+ responseActions.push("Preserve audit logs");
225
+ responseActions.push("Notify compliance team");
226
+ } else if (event.riskScore > 0.6) {
227
+ responseActions.push("Increase monitoring");
228
+ responseActions.push("Log all operations");
229
+ responseActions.push("Alert security team");
230
+ responseActions.push("Check access permissions");
231
+ } else {
232
+ responseActions.push("Monitor closely");
233
+ responseActions.push("Document the event");
234
+ }
235
+
236
+ console.log(`📋 Incident Response Generated:
237
+ Incident ID: ${incidentId}
238
+ Tenant: ${event.tenantId}
239
+ Risk Level: ${event.riskScore}
240
+ Response Actions: ${responseActions.length}
241
+ `);
242
+
243
+ // Simulate response execution
244
+ for (const action of responseActions) {
245
+ console.log(` • Executing: ${action}`);
246
+ // Simulate processing time
247
+ await new Promise((resolve) => setTimeout(resolve, 100));
248
+ }
249
+
250
+ console.log(`✅ Incident response completed for ${incidentId}`);
251
+ }
252
+
253
+ /**
254
+ ** Get current dashboard data
255
+ */
256
+ public getDashboardData(): any {
257
+ return this.dashboard.getDashboardData();
258
+ }
259
+
260
+ /**
261
+ * Get security metrics
262
+ */
263
+ public getSecurityMetrics(): any[] {
264
+ return this.dashboard.getSecurityMetrics();
265
+ }
266
+
267
+ /**
268
+ * Export security report
269
+ */
270
+ public exportSecurityReport(): string {
271
+ const data = this.getDashboardData();
272
+ const report = this.dashboard.exportDashboardReport();
273
+
274
+ const securityReport = `
275
+ # Beddel Security Report - ${new Date().toISOString()}
276
+
277
+ ## System Status
278
+ - Security System: ACTIVE
279
+ - Monitoring Status: ${
280
+ this.monitor.isMonitoringActive() ? "RUNNING" : "STOPPED"
281
+ }
282
+ - Risk Score: ${data.summary.securityScore}/10
283
+ - Total Events: ${data.summary.totalEvents}
284
+
285
+ ${report}
286
+ `;
287
+
288
+ return securityReport;
289
+ }
290
+
291
+ /**
292
+ * Get monitoring status
293
+ */
294
+ public getMonitoringStatus(): { active: boolean; eventsProcessed: number } {
295
+ return {
296
+ active: this.monitor.isMonitoringActive(),
297
+ eventsProcessed: this.monitor.getMetrics().totalEvents,
298
+ };
299
+ }
300
+
301
+ /**
302
+ * Get threat statistics
303
+ */
304
+ public getThreatStatistics(): any {
305
+ return this.monitor.getThreatStatistics();
306
+ }
307
+
308
+ /**
309
+ * Get real-time security updates
310
+ */
311
+ public getRealTimeUpdates(): any {
312
+ return {
313
+ dashboard: this.getDashboardData(),
314
+ metrics: this.getSecurityMetrics(),
315
+ status: this.getMonitoringStatus(),
316
+ };
317
+ }
318
+
319
+ /**
320
+ * Stop the security system
321
+ */
322
+ public stop(): void {
323
+ if (!this.isInitialized) {
324
+ console.log("Security system not running");
325
+ return;
326
+ }
327
+
328
+ this.monitor.stopMonitoring();
329
+ this.dashboard.stopRealTimeUpdates();
330
+ this.stopHealthCheck();
331
+
332
+ this.isInitialized = false;
333
+ console.log("🛑 Security system stopped");
334
+ }
335
+
336
+ /**
337
+ * Schedule health check
338
+ */
339
+ private scheduleHealthCheck(): void {
340
+ // Health check every 5 minutes
341
+ setInterval(() => {
342
+ this.performHealthCheck();
343
+ }, 5 * 60 * 1000);
344
+ }
345
+
346
+ /**
347
+ * Perform health check
348
+ */
349
+ private performHealthCheck(): void {
350
+ try {
351
+ const status = this.getMonitoringStatus();
352
+ const dashboard = this.getDashboardData();
353
+ const threats = this.getThreatStatistics();
354
+
355
+ console.log(`🔍 Security Health Check:
356
+ Status: ${status.active ? "ACTIVE" : "INACTIVE"}
357
+ Events Processed: ${status.eventsProcessed}
358
+ Security Score: ${dashboard.summary.securityScore}/10
359
+ Threat Detection: ${threats.patternsLoaded} patterns active
360
+ Last Update: ${dashboard.summary.lastUpdate.toISOString()}
361
+ `);
362
+
363
+ // If security score is too low, raise alert
364
+ if (dashboard.summary.securityScore < 7.0) {
365
+ console.error("🚨 CRITICAL: Security score below acceptable threshold");
366
+ }
367
+ } catch (error) {
368
+ console.error("❌ Health check failed:", error);
369
+ }
370
+ }
371
+
372
+ /**
373
+ * Stop health check
374
+ */
375
+ private stopHealthCheck(): void {
376
+ // Implementation would clear any health check intervals
377
+ console.log("Health checks stopped");
378
+ }
379
+ }
380
+
381
+ // Global security manager instance
382
+ export const securityManager = new SecurityManager();
383
+
384
+ /**
385
+ * Initialize security system globally
386
+ */
387
+ export function initializeSecuritySystem(): void {
388
+ securityManager.initialize();
389
+ }
390
+
391
+ /**
392
+ * Monitor security operation
393
+ */
394
+ export function monitorSecurity(
395
+ tenantId: string,
396
+ operation: string,
397
+ metadata: any = {}
398
+ ): Promise<any> {
399
+ return securityManager.monitorSecurity(tenantId, operation, metadata);
400
+ }
401
+
402
+ /**
403
+ * Get security dashboard data
404
+ */
405
+ export function getSecurityDashboard(): any {
406
+ return securityManager.getDashboardData();
407
+ }
408
+
409
+ /**
410
+ * Export security report
411
+ */
412
+ export function exportSecurityReport(): string {
413
+ return securityManager.exportSecurityReport();
414
+ }
415
+
416
+ /**
417
+ * Stop security system
418
+ */
419
+ export function stopSecuritySystem(): void {
420
+ securityManager.stop();
421
+ }
422
+
423
+ // Export types and interfaces
424
+ export interface SecuritySystemStatus {
425
+ active: boolean;
426
+ securityScore: number;
427
+ eventsProcessed: number;
428
+ threatDetectionRate: number;
429
+ lastUpdate: Date;
430
+ }
431
+
432
+ export interface SecurityIncident {
433
+ id: string;
434
+ tenantId: string;
435
+ riskScore: number;
436
+ alertLevel: string;
437
+ timestamp: Date;
438
+ status: "new" | "in_progress" | "resolved" | "escalated";
439
+ }