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.
- package/README.md +297 -0
- package/dist/agents/agentRegistry.d.ts +68 -0
- package/dist/agents/agentRegistry.d.ts.map +1 -0
- package/dist/agents/agentRegistry.js +222 -0
- package/dist/agents/agentRegistry.js.map +1 -0
- package/dist/agents/formatter-agent.d.ts +10 -0
- package/dist/agents/formatter-agent.d.ts.map +1 -0
- package/dist/agents/formatter-agent.js +49 -0
- package/dist/agents/formatter-agent.js.map +1 -0
- package/dist/agents/genkit-agent.d.ts +12 -0
- package/dist/agents/genkit-agent.d.ts.map +1 -0
- package/dist/agents/genkit-agent.js +119 -0
- package/dist/agents/genkit-agent.js.map +1 -0
- package/dist/agents/i18n-messages.d.ts +17 -0
- package/dist/agents/i18n-messages.d.ts.map +1 -0
- package/dist/agents/i18n-messages.js +92 -0
- package/dist/agents/i18n-messages.js.map +1 -0
- package/dist/agents/index.d.ts +10 -0
- package/dist/agents/index.d.ts.map +1 -0
- package/dist/agents/index.js +26 -0
- package/dist/agents/index.js.map +1 -0
- package/dist/agents/pipeline.d.ts +15 -0
- package/dist/agents/pipeline.d.ts.map +1 -0
- package/dist/agents/pipeline.js +45 -0
- package/dist/agents/pipeline.js.map +1 -0
- package/dist/agents/schema-factory.d.ts +40 -0
- package/dist/agents/schema-factory.d.ts.map +1 -0
- package/dist/agents/schema-factory.js +121 -0
- package/dist/agents/schema-factory.js.map +1 -0
- package/dist/agents/translation-validators.d.ts +26 -0
- package/dist/agents/translation-validators.d.ts.map +1 -0
- package/dist/agents/translation-validators.js +77 -0
- package/dist/agents/translation-validators.js.map +1 -0
- package/dist/agents/translator-agents.d.ts +184 -0
- package/dist/agents/translator-agents.d.ts.map +1 -0
- package/dist/agents/translator-agents.js +613 -0
- package/dist/agents/translator-agents.js.map +1 -0
- package/dist/agents/types/translation.types.d.ts +100 -0
- package/dist/agents/types/translation.types.d.ts.map +1 -0
- package/dist/agents/types/translation.types.js +3 -0
- package/dist/agents/types/translation.types.js.map +1 -0
- package/dist/agents/validator-agent.d.ts +42 -0
- package/dist/agents/validator-agent.d.ts.map +1 -0
- package/dist/agents/validator-agent.js +122 -0
- package/dist/agents/validator-agent.js.map +1 -0
- package/dist/audit/auditTrail.d.ts +55 -0
- package/dist/audit/auditTrail.d.ts.map +1 -0
- package/dist/audit/auditTrail.js +93 -0
- package/dist/audit/auditTrail.js.map +1 -0
- package/dist/compliance/gdprEngine.d.ts +44 -0
- package/dist/compliance/gdprEngine.d.ts.map +1 -0
- package/dist/compliance/gdprEngine.js +178 -0
- package/dist/compliance/gdprEngine.js.map +1 -0
- package/dist/compliance/lgpdEngine.d.ts +51 -0
- package/dist/compliance/lgpdEngine.d.ts.map +1 -0
- package/dist/compliance/lgpdEngine.js +221 -0
- package/dist/compliance/lgpdEngine.js.map +1 -0
- package/dist/config.d.ts +78 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +77 -0
- package/dist/config.js.map +1 -0
- package/dist/errors.d.ts +17 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +40 -0
- package/dist/errors.js.map +1 -0
- package/dist/firebase/tenantManager.d.ts +84 -0
- package/dist/firebase/tenantManager.d.ts.map +1 -0
- package/dist/firebase/tenantManager.js +378 -0
- package/dist/firebase/tenantManager.js.map +1 -0
- package/dist/index.d.ts +36 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +118 -0
- package/dist/index.js.map +1 -0
- package/dist/integration/secure-yaml-runtime.d.ts +68 -0
- package/dist/integration/secure-yaml-runtime.d.ts.map +1 -0
- package/dist/integration/secure-yaml-runtime.js +245 -0
- package/dist/integration/secure-yaml-runtime.js.map +1 -0
- package/dist/parser/secure-yaml-parser.d.ts +62 -0
- package/dist/parser/secure-yaml-parser.d.ts.map +1 -0
- package/dist/parser/secure-yaml-parser.js +234 -0
- package/dist/parser/secure-yaml-parser.js.map +1 -0
- package/dist/performance/autoscaling.d.ts +100 -0
- package/dist/performance/autoscaling.d.ts.map +1 -0
- package/dist/performance/autoscaling.js +339 -0
- package/dist/performance/autoscaling.js.map +1 -0
- package/dist/performance/benchmark.d.ts +104 -0
- package/dist/performance/benchmark.d.ts.map +1 -0
- package/dist/performance/benchmark.js +514 -0
- package/dist/performance/benchmark.js.map +1 -0
- package/dist/performance/index.d.ts +14 -0
- package/dist/performance/index.d.ts.map +1 -0
- package/dist/performance/index.js +35 -0
- package/dist/performance/index.js.map +1 -0
- package/dist/performance/monitor.d.ts +126 -0
- package/dist/performance/monitor.d.ts.map +1 -0
- package/dist/performance/monitor.js +324 -0
- package/dist/performance/monitor.js.map +1 -0
- package/dist/performance/streaming.d.ts +82 -0
- package/dist/performance/streaming.d.ts.map +1 -0
- package/dist/performance/streaming.js +287 -0
- package/dist/performance/streaming.js.map +1 -0
- package/dist/runtime/audit.d.ts +240 -0
- package/dist/runtime/audit.d.ts.map +1 -0
- package/dist/runtime/audit.js +641 -0
- package/dist/runtime/audit.js.map +1 -0
- package/dist/runtime/declarativeAgentRuntime.d.ts +123 -0
- package/dist/runtime/declarativeAgentRuntime.d.ts.map +1 -0
- package/dist/runtime/declarativeAgentRuntime.js +576 -0
- package/dist/runtime/declarativeAgentRuntime.js.map +1 -0
- package/dist/runtime/isolatedRuntime.d.ts +119 -0
- package/dist/runtime/isolatedRuntime.d.ts.map +1 -0
- package/dist/runtime/isolatedRuntime.js +425 -0
- package/dist/runtime/isolatedRuntime.js.map +1 -0
- package/dist/runtime/schemaCompiler.d.ts +35 -0
- package/dist/runtime/schemaCompiler.d.ts.map +1 -0
- package/dist/runtime/schemaCompiler.js +151 -0
- package/dist/runtime/schemaCompiler.js.map +1 -0
- package/dist/runtime/simpleRuntime.d.ts +57 -0
- package/dist/runtime/simpleRuntime.d.ts.map +1 -0
- package/dist/runtime/simpleRuntime.js +187 -0
- package/dist/runtime/simpleRuntime.js.map +1 -0
- package/dist/security/dashboard.d.ts +89 -0
- package/dist/security/dashboard.d.ts.map +1 -0
- package/dist/security/dashboard.js +300 -0
- package/dist/security/dashboard.js.map +1 -0
- package/dist/security/hardening.d.ts +130 -0
- package/dist/security/hardening.d.ts.map +1 -0
- package/dist/security/hardening.js +414 -0
- package/dist/security/hardening.js.map +1 -0
- package/dist/security/index.d.ts +128 -0
- package/dist/security/index.d.ts.map +1 -0
- package/dist/security/index.js +353 -0
- package/dist/security/index.js.map +1 -0
- package/dist/security/monitor.d.ts +88 -0
- package/dist/security/monitor.d.ts.map +1 -0
- package/dist/security/monitor.js +356 -0
- package/dist/security/monitor.js.map +1 -0
- package/dist/security/scanner.d.ts +104 -0
- package/dist/security/scanner.d.ts.map +1 -0
- package/dist/security/scanner.js +298 -0
- package/dist/security/scanner.js.map +1 -0
- package/dist/security/score.d.ts +150 -0
- package/dist/security/score.d.ts.map +1 -0
- package/dist/security/score.js +983 -0
- package/dist/security/score.js.map +1 -0
- package/dist/security/test-security.d.ts +22 -0
- package/dist/security/test-security.d.ts.map +1 -0
- package/dist/security/test-security.js +154 -0
- package/dist/security/test-security.js.map +1 -0
- package/dist/security/threatDetector.d.ts +39 -0
- package/dist/security/threatDetector.d.ts.map +1 -0
- package/dist/security/threatDetector.js +354 -0
- package/dist/security/threatDetector.js.map +1 -0
- package/dist/security/validation.d.ts +69 -0
- package/dist/security/validation.d.ts.map +1 -0
- package/dist/security/validation.js +286 -0
- package/dist/security/validation.js.map +1 -0
- package/dist/server/api/clientsRoute.d.ts +9 -0
- package/dist/server/api/clientsRoute.d.ts.map +1 -0
- package/dist/server/api/clientsRoute.js +71 -0
- package/dist/server/api/clientsRoute.js.map +1 -0
- package/dist/server/api/endpointsRoute.d.ts +8 -0
- package/dist/server/api/endpointsRoute.d.ts.map +1 -0
- package/dist/server/api/endpointsRoute.js +76 -0
- package/dist/server/api/endpointsRoute.js.map +1 -0
- package/dist/server/api/graphql.d.ts +9 -0
- package/dist/server/api/graphql.d.ts.map +1 -0
- package/dist/server/api/graphql.js +180 -0
- package/dist/server/api/graphql.js.map +1 -0
- package/dist/server/errors.d.ts +19 -0
- package/dist/server/errors.d.ts.map +1 -0
- package/dist/server/errors.js +42 -0
- package/dist/server/errors.js.map +1 -0
- package/dist/server/index.d.ts +7 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +24 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/kvStore.d.ts +27 -0
- package/dist/server/kvStore.d.ts.map +1 -0
- package/dist/server/kvStore.js +128 -0
- package/dist/server/kvStore.js.map +1 -0
- package/dist/server/runtimeSecurity.d.ts +28 -0
- package/dist/server/runtimeSecurity.d.ts.map +1 -0
- package/dist/server/runtimeSecurity.js +85 -0
- package/dist/server/runtimeSecurity.js.map +1 -0
- package/dist/server/types.d.ts +53 -0
- package/dist/server/types.d.ts.map +1 -0
- package/dist/server/types.js +8 -0
- package/dist/server/types.js.map +1 -0
- package/dist/types/executionContext.d.ts +16 -0
- package/dist/types/executionContext.d.ts.map +1 -0
- package/dist/types/executionContext.js +3 -0
- package/dist/types/executionContext.js.map +1 -0
- package/package.json +77 -0
- package/src/agents/agentRegistry.ts +272 -0
- package/src/agents/image-agent.yaml +86 -0
- package/src/agents/joker-agent.yaml +47 -0
- package/src/agents/translator-agent.yaml +80 -0
- package/src/audit/auditTrail.ts +134 -0
- package/src/compliance/gdprEngine.ts +209 -0
- package/src/compliance/lgpdEngine.ts +268 -0
- package/src/config.ts +179 -0
- package/src/errors.ts +35 -0
- package/src/firebase/tenantManager.ts +443 -0
- package/src/index.ts +125 -0
- package/src/integration/secure-yaml-runtime.ts +341 -0
- package/src/parser/secure-yaml-parser.ts +273 -0
- package/src/performance/autoscaling.ts +495 -0
- package/src/performance/benchmark.ts +644 -0
- package/src/performance/index.ts +34 -0
- package/src/performance/monitor.ts +469 -0
- package/src/performance/streaming.ts +317 -0
- package/src/runtime/audit.ts +907 -0
- package/src/runtime/declarativeAgentRuntime.ts +836 -0
- package/src/runtime/isolatedRuntime.ts +572 -0
- package/src/runtime/schemaCompiler.ts +228 -0
- package/src/runtime/simpleRuntime.ts +201 -0
- package/src/security/dashboard.ts +462 -0
- package/src/security/hardening.ts +560 -0
- package/src/security/index.ts +439 -0
- package/src/security/monitor.ts +490 -0
- package/src/security/scanner.ts +368 -0
- package/src/security/score.ts +1138 -0
- package/src/security/threatDetector.ts +481 -0
- package/src/security/validation.ts +365 -0
- package/src/server/api/clientsRoute.ts +92 -0
- package/src/server/api/endpointsRoute.ts +97 -0
- package/src/server/api/graphql.ts +249 -0
- package/src/server/errors.ts +38 -0
- package/src/server/index.ts +6 -0
- package/src/server/kvStore.ts +152 -0
- package/src/server/runtimeSecurity.ts +102 -0
- package/src/server/types.ts +60 -0
- package/src/types/executionContext.ts +16 -0
- package/tools/seed.ts +365 -0
- package/tools/test-endpoints.ts +174 -0
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DeclarativeSchemaCompiler = exports.DeclarativeSchemaValidationError = exports.SchemaCompilationError = void 0;
|
|
4
|
+
const node_crypto_1 = require("node:crypto");
|
|
5
|
+
const zod_1 = require("zod");
|
|
6
|
+
class SchemaCompilationError extends Error {
|
|
7
|
+
constructor(message) {
|
|
8
|
+
super(message);
|
|
9
|
+
this.name = "SchemaCompilationError";
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
exports.SchemaCompilationError = SchemaCompilationError;
|
|
13
|
+
class DeclarativeSchemaValidationError extends Error {
|
|
14
|
+
constructor(message, phase, issues) {
|
|
15
|
+
super(message);
|
|
16
|
+
this.phase = phase;
|
|
17
|
+
this.issues = issues;
|
|
18
|
+
this.name = "DeclarativeSchemaValidationError";
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.DeclarativeSchemaValidationError = DeclarativeSchemaValidationError;
|
|
22
|
+
class DeclarativeSchemaCompiler {
|
|
23
|
+
constructor() {
|
|
24
|
+
this.cache = new Map();
|
|
25
|
+
}
|
|
26
|
+
compile(definition, path) {
|
|
27
|
+
const cacheKey = this.createCacheKey(definition, path);
|
|
28
|
+
const cached = this.cache.get(cacheKey);
|
|
29
|
+
if (cached) {
|
|
30
|
+
return cached;
|
|
31
|
+
}
|
|
32
|
+
const schema = this.buildSchema(definition, path);
|
|
33
|
+
this.cache.set(cacheKey, schema);
|
|
34
|
+
return schema;
|
|
35
|
+
}
|
|
36
|
+
clear() {
|
|
37
|
+
this.cache.clear();
|
|
38
|
+
}
|
|
39
|
+
get size() {
|
|
40
|
+
return this.cache.size;
|
|
41
|
+
}
|
|
42
|
+
createCacheKey(definition, path) {
|
|
43
|
+
const serialized = JSON.stringify(definition) ?? "undefined";
|
|
44
|
+
const signature = (0, node_crypto_1.createHash)("sha256").update(serialized).digest("hex");
|
|
45
|
+
return `${path}:${signature}`;
|
|
46
|
+
}
|
|
47
|
+
buildSchema(definition, path) {
|
|
48
|
+
if (!definition ||
|
|
49
|
+
typeof definition !== "object" ||
|
|
50
|
+
Array.isArray(definition)) {
|
|
51
|
+
throw new SchemaCompilationError(`Invalid schema at ${path}: expected object definition`);
|
|
52
|
+
}
|
|
53
|
+
const typedDefinition = definition;
|
|
54
|
+
if (!typedDefinition.type || typeof typedDefinition.type !== "string") {
|
|
55
|
+
throw new SchemaCompilationError(`Schema at ${path} must declare a string 'type'`);
|
|
56
|
+
}
|
|
57
|
+
switch (typedDefinition.type) {
|
|
58
|
+
case "object":
|
|
59
|
+
return this.buildObjectSchema(typedDefinition, path);
|
|
60
|
+
case "array":
|
|
61
|
+
return this.buildArraySchema(typedDefinition, path);
|
|
62
|
+
case "string":
|
|
63
|
+
return this.buildStringSchema(typedDefinition, path);
|
|
64
|
+
case "number":
|
|
65
|
+
return zod_1.z.number();
|
|
66
|
+
case "integer":
|
|
67
|
+
return zod_1.z.number().int();
|
|
68
|
+
case "boolean":
|
|
69
|
+
return zod_1.z.boolean();
|
|
70
|
+
case "any":
|
|
71
|
+
return zod_1.z.any();
|
|
72
|
+
case "unknown":
|
|
73
|
+
return zod_1.z.unknown();
|
|
74
|
+
default:
|
|
75
|
+
if (typedDefinition.enum) {
|
|
76
|
+
return this.buildEnumSchema(typedDefinition.enum, path);
|
|
77
|
+
}
|
|
78
|
+
throw new SchemaCompilationError(`Unsupported schema type '${typedDefinition.type}' at ${path}`);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
buildObjectSchema(definition, path) {
|
|
82
|
+
const properties = definition.properties || {};
|
|
83
|
+
if (typeof properties !== "object") {
|
|
84
|
+
throw new SchemaCompilationError(`Object schema at ${path} must define 'properties' as an object`);
|
|
85
|
+
}
|
|
86
|
+
const requiredFields = new Set(definition.required || []);
|
|
87
|
+
const shape = {};
|
|
88
|
+
for (const [key, childDefinition] of Object.entries(properties)) {
|
|
89
|
+
const childPath = `${path}.properties.${key}`;
|
|
90
|
+
const childSchema = this.buildSchema(childDefinition, childPath);
|
|
91
|
+
shape[key] = requiredFields.has(key)
|
|
92
|
+
? childSchema
|
|
93
|
+
: childSchema.optional();
|
|
94
|
+
}
|
|
95
|
+
let objectSchema = zod_1.z.object(shape);
|
|
96
|
+
if (definition.additionalProperties) {
|
|
97
|
+
objectSchema = objectSchema.catchall(zod_1.z.any());
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
objectSchema = objectSchema.strict();
|
|
101
|
+
}
|
|
102
|
+
return objectSchema;
|
|
103
|
+
}
|
|
104
|
+
buildArraySchema(definition, path) {
|
|
105
|
+
if (!definition.items) {
|
|
106
|
+
throw new SchemaCompilationError(`Array schema at ${path} must define 'items'`);
|
|
107
|
+
}
|
|
108
|
+
const itemSchema = this.buildSchema(definition.items, `${path}.items`);
|
|
109
|
+
let arraySchema = zod_1.z.array(itemSchema);
|
|
110
|
+
if (typeof definition.minItems === "number") {
|
|
111
|
+
arraySchema = arraySchema.min(definition.minItems);
|
|
112
|
+
}
|
|
113
|
+
if (typeof definition.maxItems === "number") {
|
|
114
|
+
arraySchema = arraySchema.max(definition.maxItems);
|
|
115
|
+
}
|
|
116
|
+
return arraySchema;
|
|
117
|
+
}
|
|
118
|
+
buildStringSchema(definition, path) {
|
|
119
|
+
let stringSchema = zod_1.z.string();
|
|
120
|
+
if (typeof definition.minLength === "number") {
|
|
121
|
+
stringSchema = stringSchema.min(definition.minLength);
|
|
122
|
+
}
|
|
123
|
+
if (typeof definition.maxLength === "number") {
|
|
124
|
+
stringSchema = stringSchema.max(definition.maxLength);
|
|
125
|
+
}
|
|
126
|
+
if (definition.enum) {
|
|
127
|
+
return this.buildEnumSchema(definition.enum, path);
|
|
128
|
+
}
|
|
129
|
+
return stringSchema;
|
|
130
|
+
}
|
|
131
|
+
buildEnumSchema(values, path) {
|
|
132
|
+
if (!Array.isArray(values) || values.length === 0) {
|
|
133
|
+
throw new SchemaCompilationError(`Enum at ${path} must be a non-empty array`);
|
|
134
|
+
}
|
|
135
|
+
const literals = values.map((value) => {
|
|
136
|
+
if (typeof value === "string" ||
|
|
137
|
+
typeof value === "number" ||
|
|
138
|
+
typeof value === "boolean") {
|
|
139
|
+
return zod_1.z.literal(value);
|
|
140
|
+
}
|
|
141
|
+
throw new SchemaCompilationError(`Enum at ${path} only supports string, number, or boolean values`);
|
|
142
|
+
});
|
|
143
|
+
if (literals.length === 1) {
|
|
144
|
+
return literals[0];
|
|
145
|
+
}
|
|
146
|
+
const [first, second, ...rest] = literals;
|
|
147
|
+
return zod_1.z.union([first, second, ...rest]);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
exports.DeclarativeSchemaCompiler = DeclarativeSchemaCompiler;
|
|
151
|
+
//# sourceMappingURL=schemaCompiler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schemaCompiler.js","sourceRoot":"","sources":["../../src/runtime/schemaCompiler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { RuntimeConfig } from "../config";
|
|
2
|
+
export interface ExecutionResult<T = any> {
|
|
3
|
+
success: boolean;
|
|
4
|
+
result?: T;
|
|
5
|
+
error?: string;
|
|
6
|
+
executionTime: number;
|
|
7
|
+
memoryUsed: number;
|
|
8
|
+
timestamp: Date;
|
|
9
|
+
}
|
|
10
|
+
export interface ExecutionOptions {
|
|
11
|
+
code: string;
|
|
12
|
+
context?: Record<string, any>;
|
|
13
|
+
securityProfile?: string;
|
|
14
|
+
timeout?: number;
|
|
15
|
+
memoryLimit?: number;
|
|
16
|
+
tenantId?: string;
|
|
17
|
+
}
|
|
18
|
+
export declare class IsolatedRuntimeError extends Error {
|
|
19
|
+
readonly code: string;
|
|
20
|
+
constructor(message: string, code: string);
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Simple Isolated Runtime Manager
|
|
24
|
+
* Provides basic isolated execution functionality
|
|
25
|
+
*/
|
|
26
|
+
export declare class SimpleIsolatedRuntimeManager {
|
|
27
|
+
private config;
|
|
28
|
+
private metrics;
|
|
29
|
+
constructor(config?: RuntimeConfig);
|
|
30
|
+
/**
|
|
31
|
+
* Execute code in isolated environment
|
|
32
|
+
*/
|
|
33
|
+
execute<T = any>(options: ExecutionOptions): Promise<ExecutionResult<T>>;
|
|
34
|
+
/**
|
|
35
|
+
* Execute code in isolated context
|
|
36
|
+
*/
|
|
37
|
+
private executeInIsolate;
|
|
38
|
+
/**
|
|
39
|
+
* Get memory usage for isolate
|
|
40
|
+
*/
|
|
41
|
+
private getMemoryUsage;
|
|
42
|
+
/**
|
|
43
|
+
* Validate execution options
|
|
44
|
+
*/
|
|
45
|
+
private validateExecutionOptions;
|
|
46
|
+
/**
|
|
47
|
+
* Update metrics tracking
|
|
48
|
+
*/
|
|
49
|
+
private updateMetrics;
|
|
50
|
+
/**
|
|
51
|
+
* Get current metrics
|
|
52
|
+
*/
|
|
53
|
+
getMetrics(): Record<string, number[]>;
|
|
54
|
+
}
|
|
55
|
+
export declare const runtimeManager: SimpleIsolatedRuntimeManager;
|
|
56
|
+
export default SimpleIsolatedRuntimeManager;
|
|
57
|
+
//# sourceMappingURL=simpleRuntime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"simpleRuntime.d.ts","sourceRoot":"","sources":["../../src/runtime/simpleRuntime.ts"],"names":[],"mappings":"AAMA,OAAO,EAAmC,aAAa,EAAE,MAAM,WAAW,CAAC;AAE3E,MAAM,WAAW,eAAe,CAAC,CAAC,GAAG,GAAG;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,CAAC,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,oBAAqB,SAAQ,KAAK;aACA,IAAI,EAAE,MAAM;gBAA7C,OAAO,EAAE,MAAM,EAAkB,IAAI,EAAE,MAAM;CAI1D;AAED;;;GAGG;AACH,qBAAa,4BAA4B;IAG3B,OAAO,CAAC,MAAM;IAF1B,OAAO,CAAC,OAAO,CAAoC;gBAE/B,MAAM,GAAE,aAA6B;IAEzD;;OAEG;IACU,OAAO,CAAC,CAAC,GAAG,GAAG,EAC1B,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAmC9B;;OAEG;YACW,gBAAgB;IAiD9B;;OAEG;YACW,cAAc;IAS5B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAwBhC;;OAEG;IACH,OAAO,CAAC,aAAa;IAcrB;;OAEG;IACI,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;CAG9C;AAGD,eAAO,MAAM,cAAc,8BAAqC,CAAC;AACjE,eAAe,4BAA4B,CAAC"}
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.runtimeManager = exports.SimpleIsolatedRuntimeManager = exports.IsolatedRuntimeError = void 0;
|
|
37
|
+
/**
|
|
38
|
+
* Simple Isolated Runtime - Isolated VM v5 Implementation
|
|
39
|
+
* Provides ultra-secure isolated execution environment with zero-trust architecture
|
|
40
|
+
* Simplified version with core functionality
|
|
41
|
+
*/
|
|
42
|
+
const ivm = __importStar(require("isolated-vm"));
|
|
43
|
+
const config_1 = require("../config");
|
|
44
|
+
class IsolatedRuntimeError extends Error {
|
|
45
|
+
constructor(message, code) {
|
|
46
|
+
super(message);
|
|
47
|
+
this.code = code;
|
|
48
|
+
this.name = "IsolatedRuntimeError";
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
exports.IsolatedRuntimeError = IsolatedRuntimeError;
|
|
52
|
+
/**
|
|
53
|
+
* Simple Isolated Runtime Manager
|
|
54
|
+
* Provides basic isolated execution functionality
|
|
55
|
+
*/
|
|
56
|
+
class SimpleIsolatedRuntimeManager {
|
|
57
|
+
constructor(config = config_1.runtimeConfig) {
|
|
58
|
+
this.config = config;
|
|
59
|
+
this.metrics = new Map();
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Execute code in isolated environment
|
|
63
|
+
*/
|
|
64
|
+
async execute(options) {
|
|
65
|
+
const startTime = Date.now();
|
|
66
|
+
try {
|
|
67
|
+
// Validate input
|
|
68
|
+
this.validateExecutionOptions(options);
|
|
69
|
+
// Get security profile
|
|
70
|
+
const profileName = options.securityProfile || this.config.defaultSecurityProfile;
|
|
71
|
+
const securityProfile = config_1.securityProfiles[profileName];
|
|
72
|
+
// Create isolated environment
|
|
73
|
+
const result = await this.executeInIsolate(options, securityProfile);
|
|
74
|
+
const executionTime = Date.now() - startTime;
|
|
75
|
+
result.executionTime = executionTime;
|
|
76
|
+
this.updateMetrics("executionTime", executionTime);
|
|
77
|
+
this.updateMetrics("successRate", result.success ? 1 : 0);
|
|
78
|
+
return result;
|
|
79
|
+
}
|
|
80
|
+
catch (error) {
|
|
81
|
+
const executionTime = Date.now() - startTime;
|
|
82
|
+
return {
|
|
83
|
+
success: false,
|
|
84
|
+
error: error instanceof Error ? error.message : String(error),
|
|
85
|
+
executionTime,
|
|
86
|
+
memoryUsed: 0,
|
|
87
|
+
timestamp: new Date(),
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Execute code in isolated context
|
|
93
|
+
*/
|
|
94
|
+
async executeInIsolate(options, securityProfile) {
|
|
95
|
+
const startTime = Date.now();
|
|
96
|
+
try {
|
|
97
|
+
// Create isolate with memory limit
|
|
98
|
+
const isolate = new ivm.Isolate({
|
|
99
|
+
memoryLimit: securityProfile.memoryLimit,
|
|
100
|
+
});
|
|
101
|
+
// Create context
|
|
102
|
+
const context = await isolate.createContext();
|
|
103
|
+
try {
|
|
104
|
+
// Setup execution
|
|
105
|
+
const script = await isolate.compileScript(options.code);
|
|
106
|
+
// Execute script
|
|
107
|
+
const result = await script.run(context, {
|
|
108
|
+
timeout: options.timeout || securityProfile.timeout,
|
|
109
|
+
});
|
|
110
|
+
// Get memory usage
|
|
111
|
+
const memoryUsed = await this.getMemoryUsage(isolate);
|
|
112
|
+
return {
|
|
113
|
+
success: true,
|
|
114
|
+
result: result,
|
|
115
|
+
executionTime: Date.now() - startTime,
|
|
116
|
+
memoryUsed,
|
|
117
|
+
timestamp: new Date(),
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
finally {
|
|
121
|
+
// Always dispose isolate
|
|
122
|
+
isolate.dispose();
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
catch (error) {
|
|
126
|
+
return {
|
|
127
|
+
success: false,
|
|
128
|
+
error: error instanceof Error ? error.message : String(error),
|
|
129
|
+
executionTime: Date.now() - startTime,
|
|
130
|
+
memoryUsed: 0,
|
|
131
|
+
timestamp: new Date(),
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Get memory usage for isolate
|
|
137
|
+
*/
|
|
138
|
+
async getMemoryUsage(isolate) {
|
|
139
|
+
try {
|
|
140
|
+
const stats = await isolate.getHeapStatistics();
|
|
141
|
+
return (stats.used_heap_size || 0) / (1024 * 1024); // MB
|
|
142
|
+
}
|
|
143
|
+
catch (error) {
|
|
144
|
+
return 0;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Validate execution options
|
|
149
|
+
*/
|
|
150
|
+
validateExecutionOptions(options) {
|
|
151
|
+
if (!options.code || typeof options.code !== "string") {
|
|
152
|
+
throw new IsolatedRuntimeError("Code must be a non-empty string", "INVALID_CODE");
|
|
153
|
+
}
|
|
154
|
+
if (options.code.length > 1024 * 1024) {
|
|
155
|
+
throw new IsolatedRuntimeError("Code exceeds maximum size limit (1MB)", "CODE_TOO_LARGE");
|
|
156
|
+
}
|
|
157
|
+
const memoryLimit = options.memoryLimit || this.config.memoryLimit;
|
|
158
|
+
if (memoryLimit > 8) {
|
|
159
|
+
throw new IsolatedRuntimeError("Memory limit exceeds maximum allowed (8MB)", "MEMORY_LIMIT_EXCEEDED");
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Update metrics tracking
|
|
164
|
+
*/
|
|
165
|
+
updateMetrics(metric, value) {
|
|
166
|
+
if (!this.metrics.has(metric)) {
|
|
167
|
+
this.metrics.set(metric, []);
|
|
168
|
+
}
|
|
169
|
+
const values = this.metrics.get(metric);
|
|
170
|
+
values.push(value);
|
|
171
|
+
// Keep only last 100 values
|
|
172
|
+
if (values.length > 100) {
|
|
173
|
+
values.shift();
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Get current metrics
|
|
178
|
+
*/
|
|
179
|
+
getMetrics() {
|
|
180
|
+
return Object.fromEntries(this.metrics);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
exports.SimpleIsolatedRuntimeManager = SimpleIsolatedRuntimeManager;
|
|
184
|
+
// Singleton instance
|
|
185
|
+
exports.runtimeManager = new SimpleIsolatedRuntimeManager();
|
|
186
|
+
exports.default = SimpleIsolatedRuntimeManager;
|
|
187
|
+
//# sourceMappingURL=simpleRuntime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"simpleRuntime.js","sourceRoot":"","sources":["../../src/runtime/simpleRuntime.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;GAIG;AACH,iDAAmC;AACnC,sCAA2E;AAoB3E,MAAa,oBAAqB,SAAQ,KAAK;IAC7C,YAAY,OAAe,EAAkB,IAAY;QACvD,KAAK,CAAC,OAAO,CAAC,CAAC;QAD4B,SAAI,GAAJ,IAAI,CAAQ;QAEvD,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AALD,oDAKC;AAED;;;GAGG;AACH,MAAa,4BAA4B;IAGvC,YAAoB,SAAwB,sBAAa;QAArC,WAAM,GAAN,MAAM,CAA+B;QAFjD,YAAO,GAA0B,IAAI,GAAG,EAAE,CAAC;IAES,CAAC;IAE7D;;OAEG;IACI,KAAK,CAAC,OAAO,CAClB,OAAyB;QAEzB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,IAAI,CAAC;YACH,iBAAiB;YACjB,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;YAEvC,uBAAuB;YACvB,MAAM,WAAW,GACf,OAAO,CAAC,eAAe,IAAI,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC;YAChE,MAAM,eAAe,GAAG,yBAAgB,CAAC,WAAW,CAAC,CAAC;YAEtD,8BAA8B;YAC9B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAI,OAAO,EAAE,eAAe,CAAC,CAAC;YAExE,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YAC7C,MAAM,CAAC,aAAa,GAAG,aAAa,CAAC;YAErC,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;YACnD,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAE1D,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YAE7C,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;gBAC7D,aAAa;gBACb,UAAU,EAAE,CAAC;gBACb,SAAS,EAAE,IAAI,IAAI,EAAE;aACtB,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,gBAAgB,CAC5B,OAAyB,EACzB,eAAoB;QAEpB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,IAAI,CAAC;YACH,mCAAmC;YACnC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC;gBAC9B,WAAW,EAAE,eAAe,CAAC,WAAW;aACzC,CAAC,CAAC;YAEH,iBAAiB;YACjB,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,aAAa,EAAE,CAAC;YAE9C,IAAI,CAAC;gBACH,kBAAkB;gBAClB,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBAEzD,iBAAiB;gBACjB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE;oBACvC,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,eAAe,CAAC,OAAO;iBACpD,CAAC,CAAC;gBAEH,mBAAmB;gBACnB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;gBAEtD,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,MAAM,EAAE,MAAW;oBACnB,aAAa,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;oBACrC,UAAU;oBACV,SAAS,EAAE,IAAI,IAAI,EAAE;iBACtB,CAAC;YACJ,CAAC;oBAAS,CAAC;gBACT,yBAAyB;gBACzB,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;gBAC7D,aAAa,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;gBACrC,UAAU,EAAE,CAAC;gBACb,SAAS,EAAE,IAAI,IAAI,EAAE;aACtB,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,cAAc,CAAC,OAAoB;QAC/C,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,iBAAiB,EAAE,CAAC;YAChD,OAAO,CAAC,KAAK,CAAC,cAAc,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK;QAC3D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IAED;;OAEG;IACK,wBAAwB,CAAC,OAAyB;QACxD,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtD,MAAM,IAAI,oBAAoB,CAC5B,iCAAiC,EACjC,cAAc,CACf,CAAC;QACJ,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC;YACtC,MAAM,IAAI,oBAAoB,CAC5B,uCAAuC,EACvC,gBAAgB,CACjB,CAAC;QACJ,CAAC;QAED,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QACnE,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;YACpB,MAAM,IAAI,oBAAoB,CAC5B,4CAA4C,EAC5C,uBAAuB,CACxB,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACK,aAAa,CAAC,MAAc,EAAE,KAAa;QACjD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC/B,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC;QACzC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEnB,4BAA4B;QAC5B,IAAI,MAAM,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;YACxB,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,CAAC;IACH,CAAC;IAED;;OAEG;IACI,UAAU;QACf,OAAO,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;CACF;AA/JD,oEA+JC;AAED,qBAAqB;AACR,QAAA,cAAc,GAAG,IAAI,4BAA4B,EAAE,CAAC;AACjE,kBAAe,4BAA4B,CAAC"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { SecurityEvent } from "./monitor";
|
|
2
|
+
import { ThreatAnalysis } from "./threatDetector";
|
|
3
|
+
export interface DashboardConfig {
|
|
4
|
+
refreshInterval: number;
|
|
5
|
+
maxDisplayEvents: number;
|
|
6
|
+
highlightThreshold: number;
|
|
7
|
+
enableRealTimeUpdates: boolean;
|
|
8
|
+
}
|
|
9
|
+
export interface SecurityMetric {
|
|
10
|
+
timestamp: Date;
|
|
11
|
+
tenantId: string;
|
|
12
|
+
metricType: string;
|
|
13
|
+
value: number;
|
|
14
|
+
riskLevel: "low" | "medium" | "high" | "critical";
|
|
15
|
+
description: string;
|
|
16
|
+
}
|
|
17
|
+
export interface SecurityDashboardData {
|
|
18
|
+
summary: SecuritySummary;
|
|
19
|
+
activeAlerts: SecurityEvent[];
|
|
20
|
+
recentThreats: ThreatAnalysis[];
|
|
21
|
+
tenantMetrics: TenantMetrics;
|
|
22
|
+
complianceStatus: ComplianceStatus;
|
|
23
|
+
realTimeChart: RealTimeChartData;
|
|
24
|
+
}
|
|
25
|
+
export interface SecuritySummary {
|
|
26
|
+
totalEvents: number;
|
|
27
|
+
totalAlerts: number;
|
|
28
|
+
threatEvents: number;
|
|
29
|
+
blockedOperations: number;
|
|
30
|
+
securityScore: number;
|
|
31
|
+
lastUpdate: Date;
|
|
32
|
+
}
|
|
33
|
+
export interface TenantMetrics {
|
|
34
|
+
[tenantId: string]: {
|
|
35
|
+
totalOperations: number;
|
|
36
|
+
threatCount: number;
|
|
37
|
+
riskScore: number;
|
|
38
|
+
lastActivity: Date;
|
|
39
|
+
alerts: SecurityEvent[];
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
export interface ComplianceStatus {
|
|
43
|
+
lgpd: ComplianceMetric;
|
|
44
|
+
gdpr: ComplianceMetric;
|
|
45
|
+
audit: ComplianceMetric;
|
|
46
|
+
}
|
|
47
|
+
export interface ComplianceMetric {
|
|
48
|
+
status: "compliant" | "warning" | "violation";
|
|
49
|
+
events: number;
|
|
50
|
+
lastCheck: Date;
|
|
51
|
+
score: number;
|
|
52
|
+
}
|
|
53
|
+
export interface RealTimeChartData {
|
|
54
|
+
labels: string[];
|
|
55
|
+
datasets: {
|
|
56
|
+
label: string;
|
|
57
|
+
data: number[];
|
|
58
|
+
borderColor: string;
|
|
59
|
+
backgroundColor: string;
|
|
60
|
+
}[];
|
|
61
|
+
}
|
|
62
|
+
export declare class SecurityDashboard {
|
|
63
|
+
private config;
|
|
64
|
+
private events;
|
|
65
|
+
private metrics;
|
|
66
|
+
private startTime;
|
|
67
|
+
private updateInterval;
|
|
68
|
+
constructor(config?: Partial<DashboardConfig>);
|
|
69
|
+
initialize(): void;
|
|
70
|
+
private startRealTimeUpdates;
|
|
71
|
+
stopRealTimeUpdates(): void;
|
|
72
|
+
addEvent(event: SecurityEvent): void;
|
|
73
|
+
addMetric(metric: SecurityMetric): void;
|
|
74
|
+
generateMetrics(): void;
|
|
75
|
+
private calculateSecurityScore;
|
|
76
|
+
private generateTenantMetrics;
|
|
77
|
+
private calculateTenantRiskScore;
|
|
78
|
+
private generateComplianceStatus;
|
|
79
|
+
private generateRealTimeChart;
|
|
80
|
+
private getActiveAlerts;
|
|
81
|
+
private getRecentThreats;
|
|
82
|
+
private logDashboardUpdate;
|
|
83
|
+
getDashboardData(): SecurityDashboardData;
|
|
84
|
+
getSecurityMetrics(): SecurityMetric[];
|
|
85
|
+
getEventHistory(limit?: number): SecurityEvent[];
|
|
86
|
+
exportDashboardReport(): string;
|
|
87
|
+
}
|
|
88
|
+
export declare const securityDashboard: SecurityDashboard;
|
|
89
|
+
//# sourceMappingURL=dashboard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../src/security/dashboard.ts"],"names":[],"mappings":"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"}
|