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,300 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.securityDashboard = exports.SecurityDashboard = void 0;
4
+ const monitor_1 = require("./monitor");
5
+ class SecurityDashboard {
6
+ constructor(config = {}) {
7
+ this.events = [];
8
+ this.metrics = [];
9
+ this.updateInterval = null;
10
+ this.config = {
11
+ refreshInterval: 5000,
12
+ maxDisplayEvents: 50,
13
+ highlightThreshold: 0.7,
14
+ enableRealTimeUpdates: true,
15
+ ...config,
16
+ };
17
+ this.startTime = new Date();
18
+ }
19
+ initialize() {
20
+ console.log("🛡️ Security Dashboard initialized");
21
+ if (this.config.enableRealTimeUpdates) {
22
+ this.startRealTimeUpdates();
23
+ }
24
+ }
25
+ startRealTimeUpdates() {
26
+ if (this.updateInterval) {
27
+ clearInterval(this.updateInterval);
28
+ }
29
+ this.updateInterval = setInterval(() => {
30
+ this.generateMetrics();
31
+ }, this.config.refreshInterval);
32
+ }
33
+ stopRealTimeUpdates() {
34
+ if (this.updateInterval) {
35
+ clearInterval(this.updateInterval);
36
+ this.updateInterval = null;
37
+ }
38
+ }
39
+ addEvent(event) {
40
+ this.events.push(event);
41
+ // Keep only recent events
42
+ if (this.events.length > this.config.maxDisplayEvents * 2) {
43
+ this.events = this.events.slice(-this.config.maxDisplayEvents * 2);
44
+ }
45
+ }
46
+ addMetric(metric) {
47
+ this.metrics.push(metric);
48
+ // Keep metrics for last 24 hours only
49
+ const cutoff = new Date(Date.now() - 24 * 60 * 60 * 1000);
50
+ this.metrics = this.metrics.filter((m) => m.timestamp > cutoff);
51
+ }
52
+ generateMetrics() {
53
+ const now = new Date();
54
+ // Generate security summary
55
+ const summary = {
56
+ totalEvents: this.events.length,
57
+ totalAlerts: this.events.filter((e) => e.riskScore > 0.7).length,
58
+ threatEvents: this.events.filter((e) => e.riskScore > 0.8).length,
59
+ blockedOperations: this.events.filter((e) => e.alertLevel === monitor_1.AlertLevel.EMERGENCY).length,
60
+ securityScore: this.calculateSecurityScore(),
61
+ lastUpdate: now,
62
+ };
63
+ // Generate tenant metrics
64
+ const tenantMetrics = this.generateTenantMetrics();
65
+ // Generate compliance status
66
+ const complianceStatus = this.generateComplianceStatus();
67
+ // Generate real-time chart data
68
+ const realTimeChart = this.generateRealTimeChart();
69
+ // Create dashboard data
70
+ const dashboardData = {
71
+ summary,
72
+ activeAlerts: this.getActiveAlerts(),
73
+ recentThreats: this.getRecentThreats(),
74
+ tenantMetrics,
75
+ complianceStatus,
76
+ realTimeChart,
77
+ };
78
+ // Log dashboard update
79
+ this.logDashboardUpdate(dashboardData);
80
+ }
81
+ calculateSecurityScore() {
82
+ if (this.events.length === 0)
83
+ return 10.0;
84
+ const recentEvents = this.events.filter((e) => new Date(e.timestamp).getTime() > Date.now() - 24 * 60 * 60 * 1000);
85
+ if (recentEvents.length === 0)
86
+ return 9.5;
87
+ // Calculate based on threat ratios
88
+ const totalEvents = recentEvents.length;
89
+ const highRiskEvents = recentEvents.filter((e) => e.riskScore > 0.7).length;
90
+ const mediumRiskEvents = recentEvents.filter((e) => e.riskScore > 0.4 && e.riskScore <= 0.7).length;
91
+ const highRiskRatio = highRiskEvents / totalEvents;
92
+ const mediumRiskRatio = mediumRiskEvents / totalEvents;
93
+ // Start with perfect score
94
+ let score = 10.0;
95
+ // Penalties based on risk ratios
96
+ score -= highRiskRatio * 3.0; // High risk events cost 3 points
97
+ score -= mediumRiskRatio * 1.5; // Medium risk events cost 1.5 points
98
+ return Math.max(score, 5.0); // Minimum score of 5.0
99
+ }
100
+ generateTenantMetrics() {
101
+ const metrics = {};
102
+ const tenantIds = Array.from(new Set(this.events.map((e) => e.tenantId)));
103
+ tenantIds.forEach((tenantId) => {
104
+ const tenantEvents = this.events.filter((e) => e.tenantId === tenantId);
105
+ metrics[tenantId] = {
106
+ totalOperations: tenantEvents.length,
107
+ threatCount: tenantEvents.filter((e) => e.riskScore > 0.6).length,
108
+ riskScore: this.calculateTenantRiskScore(tenantEvents),
109
+ lastActivity: tenantEvents.length > 0
110
+ ? new Date(Math.max(...tenantEvents.map((e) => new Date(e.timestamp).getTime())))
111
+ : new Date(),
112
+ alerts: tenantEvents.slice(-5), // Last 5 events
113
+ };
114
+ });
115
+ return metrics;
116
+ }
117
+ calculateTenantRiskScore(events) {
118
+ if (events.length === 0)
119
+ return 0.0;
120
+ const recentEvents = events.filter((e) => new Date(e.timestamp).getTime() > Date.now() - 6 * 60 * 60 * 1000 // Last 6 hours
121
+ );
122
+ if (recentEvents.length === 0)
123
+ return 0.1;
124
+ const avgRiskScore = recentEvents.reduce((sum, e) => sum + e.riskScore, 0) /
125
+ recentEvents.length;
126
+ const maxRiskScore = Math.max(...recentEvents.map((e) => e.riskScore));
127
+ // Weighted average with emphasis on maximum risk
128
+ return avgRiskScore * 0.7 + maxRiskScore * 0.3;
129
+ }
130
+ generateComplianceStatus() {
131
+ const now = new Date();
132
+ // LGPD compliance check
133
+ const lgpdEvents = this.events.filter((e) => e.metadata && e.metadata.lgpdRelevant && e.riskScore > 0.5);
134
+ // GDPR compliance check
135
+ const gdprEvents = this.events.filter((e) => e.metadata && e.metadata.gdprRelevant && e.riskScore > 0.5);
136
+ // Audit compliance check
137
+ const auditEvents = this.events.filter((e) => e.operation.includes("audit") || e.operation.includes("log"));
138
+ return {
139
+ lgpd: {
140
+ status: lgpdEvents.length > 0
141
+ ? lgpdEvents.some((e) => e.riskScore > 0.8)
142
+ ? "violation"
143
+ : "warning"
144
+ : "compliant",
145
+ events: lgpdEvents.length,
146
+ lastCheck: now,
147
+ score: lgpdEvents.length > 0
148
+ ? lgpdEvents.some((e) => e.riskScore > 0.8)
149
+ ? 3.0
150
+ : 6.0
151
+ : 9.0,
152
+ },
153
+ gdpr: {
154
+ status: gdprEvents.length > 0
155
+ ? gdprEvents.some((e) => e.riskScore > 0.8)
156
+ ? "violation"
157
+ : "warning"
158
+ : "compliant",
159
+ events: gdprEvents.length,
160
+ lastCheck: now,
161
+ score: gdprEvents.length > 0
162
+ ? gdprEvents.some((e) => e.riskScore > 0.8)
163
+ ? 3.0
164
+ : 6.0
165
+ : 9.0,
166
+ },
167
+ audit: {
168
+ status: auditEvents.length > 0 ? "compliant" : "warning",
169
+ events: auditEvents.length,
170
+ lastCheck: now,
171
+ score: 8.5,
172
+ },
173
+ };
174
+ }
175
+ generateRealTimeChart() {
176
+ const now = Date.now();
177
+ const timeLabels = [];
178
+ const riskData = [];
179
+ const eventData = [];
180
+ // Generate data for last 30 minutes (5-minute intervals)
181
+ for (let i = 5; i >= 0; i--) {
182
+ const time = new Date(now - i * 5 * 60 * 1000);
183
+ timeLabels.push(time.toLocaleTimeString("pt-BR"));
184
+ const intervalStart = new Date(time.getTime() - 5 * 60 * 1000);
185
+ const intervalEvents = this.events.filter((e) => {
186
+ const eventTime = new Date(e.timestamp).getTime();
187
+ return (eventTime >= intervalStart.getTime() && eventTime <= time.getTime());
188
+ });
189
+ const avgRiskScore = intervalEvents.length > 0
190
+ ? intervalEvents.reduce((sum, e) => sum + e.riskScore, 0) /
191
+ intervalEvents.length
192
+ : 0;
193
+ riskData.push(Math.round(avgRiskScore * 100) / 100);
194
+ eventData.push(intervalEvents.length);
195
+ }
196
+ return {
197
+ labels: timeLabels,
198
+ datasets: [
199
+ {
200
+ label: "Average Risk Score",
201
+ data: riskData,
202
+ borderColor: "#8884d8",
203
+ backgroundColor: "#8884d840",
204
+ },
205
+ {
206
+ label: "Event Count",
207
+ data: eventData,
208
+ borderColor: "#82ca9d",
209
+ backgroundColor: "#82ca9d40",
210
+ },
211
+ ],
212
+ };
213
+ }
214
+ getActiveAlerts() {
215
+ return this.events
216
+ .filter((e) => e.riskScore >= this.config.highlightThreshold)
217
+ .slice(-10); // Last 10 high-risk events
218
+ }
219
+ getRecentThreats() {
220
+ // Return mock threat analysis for recent events
221
+ return this.events.slice(-5).map((event) => ({
222
+ riskScore: event.riskScore,
223
+ threatType: `potential_${event.operation}`,
224
+ confidence: 0.8,
225
+ recommendations: [
226
+ `Monitor tenant ${event.tenantId}`,
227
+ "Check access logs",
228
+ ],
229
+ }));
230
+ }
231
+ logDashboardUpdate(data) {
232
+ const { summary } = data;
233
+ console.log(`\n🛡️ Security Dashboard Update - ${new Date().toISOString()}`);
234
+ console.log(` 📊 Total Events: ${summary.totalEvents}`);
235
+ console.log(` 🚨 Total Alerts: ${summary.totalAlerts}`);
236
+ console.log(` 🎯 Security Score: ${summary.securityScore}/10`);
237
+ console.log(` 🔒 Threat Events: ${summary.threatEvents}`);
238
+ console.log(` 🚫 Blocked Operations: ${summary.blockedOperations}`);
239
+ // Log tenant summaries
240
+ const tenantEntries = Object.entries(data.tenantMetrics);
241
+ tenantEntries.forEach(([tenantId, metrics]) => {
242
+ console.log(` 🏢 ${tenantId}: ${metrics.riskScore.toFixed(1)} risk score, ${metrics.threatCount} threats`);
243
+ });
244
+ }
245
+ getDashboardData() {
246
+ this.generateMetrics();
247
+ return {
248
+ summary: {
249
+ totalEvents: this.events.length,
250
+ totalAlerts: this.events.filter((e) => e.riskScore > 0.7).length,
251
+ threatEvents: this.events.filter((e) => e.riskScore > 0.8).length,
252
+ blockedOperations: this.events.filter((e) => e.alertLevel === monitor_1.AlertLevel.EMERGENCY).length,
253
+ securityScore: this.calculateSecurityScore(),
254
+ lastUpdate: new Date(),
255
+ },
256
+ activeAlerts: this.getActiveAlerts(),
257
+ recentThreats: this.getRecentThreats(),
258
+ tenantMetrics: this.generateTenantMetrics(),
259
+ complianceStatus: this.generateComplianceStatus(),
260
+ realTimeChart: this.generateRealTimeChart(),
261
+ };
262
+ }
263
+ getSecurityMetrics() {
264
+ return this.metrics.slice(-20); // Last 20 metrics
265
+ }
266
+ getEventHistory(limit = 100) {
267
+ return this.events.slice(-limit);
268
+ }
269
+ exportDashboardReport() {
270
+ const data = this.getDashboardData();
271
+ const report = [
272
+ "# Security Dashboard Report",
273
+ `Generated: ${new Date().toISOString()}`,
274
+ "",
275
+ "## Executive Summary",
276
+ `- Security Score: ${data.summary.securityScore}/10`,
277
+ `- Total Events: ${data.summary.totalEvents}`,
278
+ `- Active Alerts: ${data.summary.totalAlerts}`,
279
+ `- Threat Events: ${data.summary.threatEvents}`,
280
+ ``,
281
+ "## Tenant Status",
282
+ ...Object.entries(data.tenantMetrics).map(([tenant, metrics]) => `- ${tenant}: ${metrics.riskScore.toFixed(1)} risk, ${metrics.threatCount} threats`),
283
+ ``,
284
+ "## Compliance Status",
285
+ `- LGPD: ${data.complianceStatus.lgpd.status} (${data.complianceStatus.lgpd.score}/10)`,
286
+ `- GDPR: ${data.complianceStatus.gdpr.status} (${data.complianceStatus.gdpr.score}/10)`,
287
+ `- Audit: ${data.complianceStatus.audit.status} (${data.complianceStatus.audit.score}/10)`,
288
+ ``,
289
+ "## Recent High-Risk Events",
290
+ ...data.activeAlerts
291
+ .slice(-5)
292
+ .map((alert, index) => `${index + 1}. ${alert.tenantId} - ${alert.operation} (Risk: ${alert.riskScore.toFixed(1)})`),
293
+ ];
294
+ return report.join("\n");
295
+ }
296
+ }
297
+ exports.SecurityDashboard = SecurityDashboard;
298
+ // Singleton instance
299
+ exports.securityDashboard = new SecurityDashboard();
300
+ //# sourceMappingURL=dashboard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../src/security/dashboard.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,130 @@
1
+ /**
2
+ * Security hardening utilities for YAML parsing
3
+ */
4
+ export interface SecurityHardeningOptions {
5
+ maxCircularReferences: number;
6
+ validateStructureIntegrity: boolean;
7
+ enableContentInspection: boolean;
8
+ logSecurityEvents: boolean;
9
+ maxNestingDepth: number;
10
+ enableCircularReferenceDetection: boolean;
11
+ detectAndBlock: boolean;
12
+ sanitizeOnFailure: boolean;
13
+ validationPolicy: 'strict' | 'moderate' | 'lenient';
14
+ }
15
+ export interface SecurityEvent {
16
+ timestamp: number;
17
+ type: SecurityEventType;
18
+ path: string;
19
+ severity: 'low' | 'medium' | 'high' | 'critical';
20
+ message: string;
21
+ details?: any;
22
+ }
23
+ export type SecurityEventType = 'circular_reference' | 'deep_nesting' | 'oversized_object' | 'potential_injection' | 'invalid_structure' | 'content_inspection_warning' | 'schema_violation';
24
+ export interface StructureStats {
25
+ maxDepth: number;
26
+ totalKeys: number;
27
+ circularReferences: number;
28
+ uniqueObjects: number;
29
+ totalSize: number;
30
+ deepestPath: string;
31
+ }
32
+ export interface ContentIssue {
33
+ path: string;
34
+ type: string;
35
+ severity: 'low' | 'medium' | 'high';
36
+ description: string;
37
+ pattern: string;
38
+ }
39
+ export interface SecurityHardeningStats {
40
+ totalEvents: number;
41
+ recentEvents: number;
42
+ passes: number;
43
+ fails: number;
44
+ warnings: number;
45
+ securityScore: number;
46
+ eventsByType: Record<string, number>;
47
+ recentAlerts: SecurityEvent[];
48
+ }
49
+ export declare class SecurityHardening {
50
+ private readonly options;
51
+ private events;
52
+ private passes;
53
+ private fails;
54
+ private warnings;
55
+ constructor(options?: Partial<SecurityHardeningOptions>);
56
+ /**
57
+ * Executa hardening completo em um objeto
58
+ */
59
+ harden(obj: any): {
60
+ result: any;
61
+ secure: boolean;
62
+ stats: SecurityHardeningStats;
63
+ };
64
+ /**
65
+ * Detecta referências circulares no objeto
66
+ */
67
+ detectCircularReferences(obj: any, visited?: WeakSet<object>, path?: string): void;
68
+ /**
69
+ * Valida a integridade estrutural do objeto
70
+ */
71
+ validateObjectStructure(obj: any): boolean;
72
+ private isValidStructure;
73
+ /**
74
+ * Verifica se um tipo é permitido
75
+ */
76
+ private isAllowedType;
77
+ /**
78
+ * Inspeciona o conteúdo para padrões perigosos
79
+ */
80
+ inspectContent(obj: any): {
81
+ issues: ContentIssue[];
82
+ warnings: number;
83
+ };
84
+ /**
85
+ * Sanitiza um objeto remover conteúdo potencialmente perigoso
86
+ */
87
+ sanitizeObject(obj: any): any;
88
+ /**
89
+ * Sanitiza strings removendo conteúdo perigoso
90
+ */
91
+ private sanitizeString;
92
+ /**
93
+ * Adiciona um evento de segurança
94
+ */
95
+ private addSecurityEvent;
96
+ /**
97
+ * Obtém estatísticas do hardening
98
+ */
99
+ getStatistics(): SecurityHardeningStats;
100
+ /**
101
+ * Calcula o score de segurança (0-100)
102
+ */
103
+ private calculateSecurityScore;
104
+ /**
105
+ * Agrupa eventos por tipo
106
+ */
107
+ private groupEventsByType;
108
+ /**
109
+ * Obtém alertas recentes
110
+ */
111
+ private getRecentAlerts;
112
+ /**
113
+ * Mapeia severidade para uso de eventos
114
+ */
115
+ private mapSeverity;
116
+ /**
117
+ * Reinicia as estatísticas
118
+ */
119
+ private resetStatistics;
120
+ /**
121
+ * Executa limpeza e validação final
122
+ */
123
+ cleanup(): void;
124
+ }
125
+ /**
126
+ * Função auxiliar para criar instância de hardening
127
+ */
128
+ declare function createSecurityHardening(options?: Partial<SecurityHardeningOptions>): SecurityHardening;
129
+ export { createSecurityHardening };
130
+ //# sourceMappingURL=hardening.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hardening.d.ts","sourceRoot":"","sources":["../../src/security/hardening.ts"],"names":[],"mappings":"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"}