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 @@
|
|
|
1
|
+
{"version":3,"file":"gdprEngine.js","sourceRoot":"","sources":["../../src/compliance/gdprEngine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LGPD Compliance Engine v2025
|
|
3
|
+
* Lei Geral de Proteção de Dados Brasileira
|
|
4
|
+
* Enhanced with SHA-256 audit trail integration
|
|
5
|
+
*/
|
|
6
|
+
import { AuditTrail } from "../audit/auditTrail";
|
|
7
|
+
export interface LGPDConfig {
|
|
8
|
+
tenantId: string;
|
|
9
|
+
dataConsent: boolean;
|
|
10
|
+
dataAnonymization: boolean;
|
|
11
|
+
dataRetentionDays: number;
|
|
12
|
+
brazilianDataResidency: boolean;
|
|
13
|
+
rightToDelete: boolean;
|
|
14
|
+
dataOwnerRights: boolean;
|
|
15
|
+
automaticDeletion: boolean;
|
|
16
|
+
}
|
|
17
|
+
export interface LGPDComplianceResult {
|
|
18
|
+
compliant: boolean;
|
|
19
|
+
violations: string[];
|
|
20
|
+
recommendations: string[];
|
|
21
|
+
anpdRequirements: string[];
|
|
22
|
+
}
|
|
23
|
+
export declare class LGPDCompliance {
|
|
24
|
+
private auditTrail;
|
|
25
|
+
constructor(auditTrail?: AuditTrail);
|
|
26
|
+
/**
|
|
27
|
+
* Verify LGPD compliance for tenant
|
|
28
|
+
*/
|
|
29
|
+
verifyCompliance(config: LGPDConfig): Promise<boolean>;
|
|
30
|
+
/**
|
|
31
|
+
* Check full LGPD compliance with audit trail
|
|
32
|
+
*/
|
|
33
|
+
private checkCompliance;
|
|
34
|
+
/**
|
|
35
|
+
* Anonymize personal data LGPD standards
|
|
36
|
+
*/
|
|
37
|
+
anonymizeDataLGPD(data: any): any;
|
|
38
|
+
/**
|
|
39
|
+
* Hash sensitive data LGPD compliant
|
|
40
|
+
*/
|
|
41
|
+
private hashSensitiveDataLGPD;
|
|
42
|
+
/**
|
|
43
|
+
* Generate LGPD compliance report
|
|
44
|
+
*/
|
|
45
|
+
generateLGPDReport(tenantId: string): any;
|
|
46
|
+
/**
|
|
47
|
+
* Calculate LGPD compliance score
|
|
48
|
+
*/
|
|
49
|
+
calculateScore(config: LGPDConfig): number;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=lgpdEngine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lgpdEngine.d.ts","sourceRoot":"","sources":["../../src/compliance/lgpdEngine.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;IACrB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,sBAAsB,EAAE,OAAO,CAAC;IAChC,aAAa,EAAE,OAAO,CAAC;IACvB,eAAe,EAAE,OAAO,CAAC;IACzB,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,UAAU,CAAa;gBAEnB,UAAU,CAAC,EAAE,UAAU;IAInC;;OAEG;IACU,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC;IAKnE;;OAEG;YACW,eAAe;IAmH7B;;OAEG;IACI,iBAAiB,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG;IAgCxC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAS7B;;OAEG;IACI,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,GAAG;IA2BhD;;OAEG;IACI,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM;CA4BlD"}
|
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* LGPD Compliance Engine v2025
|
|
4
|
+
* Lei Geral de Proteção de Dados Brasileira
|
|
5
|
+
* Enhanced with SHA-256 audit trail integration
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.LGPDCompliance = void 0;
|
|
9
|
+
const auditTrail_1 = require("../audit/auditTrail");
|
|
10
|
+
class LGPDCompliance {
|
|
11
|
+
constructor(auditTrail) {
|
|
12
|
+
this.auditTrail = auditTrail || new auditTrail_1.AuditTrail();
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Verify LGPD compliance for tenant
|
|
16
|
+
*/
|
|
17
|
+
async verifyCompliance(config) {
|
|
18
|
+
const result = await this.checkCompliance(config);
|
|
19
|
+
return result.compliant;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Check full LGPD compliance with audit trail
|
|
23
|
+
*/
|
|
24
|
+
async checkCompliance(config) {
|
|
25
|
+
const violations = [];
|
|
26
|
+
const recommendations = [];
|
|
27
|
+
const anpdRequirements = [];
|
|
28
|
+
const operationId = `lgpd-check-${config.tenantId}-${Date.now()}`;
|
|
29
|
+
try {
|
|
30
|
+
// Check data consent
|
|
31
|
+
if (!config.dataConsent) {
|
|
32
|
+
violations.push("Explicit consent requires implementation (Art. 7, LGPD)");
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
recommendations.push("Implement consent management dashboard (ANPD Guidance)");
|
|
36
|
+
}
|
|
37
|
+
// Check data anonymization
|
|
38
|
+
if (!config.dataAnonymization) {
|
|
39
|
+
violations.push("Data anonymization required (ANPD Guidance)");
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
recommendations.push("Use strong anonymization algorithms (ISO 29100)");
|
|
43
|
+
}
|
|
44
|
+
// Check Brazilian data residency
|
|
45
|
+
if (!config.brazilianDataResidency) {
|
|
46
|
+
violations.push("Data residency requirement not met (Art. 48, LGPD)");
|
|
47
|
+
anpdRequirements.push("Implement data localization in Brazil");
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
recommendations.push("Document data residency compliance (ANPD Recommendation)");
|
|
51
|
+
}
|
|
52
|
+
// Check right to delete
|
|
53
|
+
if (!config.rightToDelete) {
|
|
54
|
+
violations.push("Right to delete not implemented (Art. 18, LGPD)");
|
|
55
|
+
anpdRequirements.push("Implement <24h data deletion system");
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
recommendations.push("Test deletion automation regularly (Best Practice)");
|
|
59
|
+
}
|
|
60
|
+
// Check data owner rights
|
|
61
|
+
if (!config.dataOwnerRights) {
|
|
62
|
+
violations.push("Data owner rights not respected (Art. 18, LGPD)");
|
|
63
|
+
anpdRequirements.push("Implement data subject request management");
|
|
64
|
+
}
|
|
65
|
+
// Check automatic deletion
|
|
66
|
+
if (!config.automaticDeletion) {
|
|
67
|
+
violations.push("Automatic deletion not configured (ANPD Guidance)");
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
recommendations.push("Monitor deletion schedules (ANPD Recommendation)");
|
|
71
|
+
}
|
|
72
|
+
// Check data retention
|
|
73
|
+
if (config.dataRetentionDays > 1825) {
|
|
74
|
+
// 5 anos máximo
|
|
75
|
+
violations.push("Data retention exceeds LGPD limits (ANPD Orientation)");
|
|
76
|
+
anpdRequirements.push("Reduce retention to 5 years maximum");
|
|
77
|
+
}
|
|
78
|
+
else if (config.dataRetentionDays < 90) {
|
|
79
|
+
violations.push("Data retention too short for business needs");
|
|
80
|
+
recommendations.push("Consider retention period (Art. 16, LGPD)");
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
recommendations.push("Review retention policies annually (ANPD Practice)");
|
|
84
|
+
}
|
|
85
|
+
// Log compliance check to audit trail
|
|
86
|
+
await this.auditTrail.logOperation({
|
|
87
|
+
operationId,
|
|
88
|
+
tenantId: config.tenantId,
|
|
89
|
+
operation: "lgpd_compliance_check",
|
|
90
|
+
data: {
|
|
91
|
+
compliant: violations.length === 0,
|
|
92
|
+
violationsCount: violations.length,
|
|
93
|
+
anpdRequirementsCount: anpdRequirements.length,
|
|
94
|
+
retentionDays: config.dataRetentionDays,
|
|
95
|
+
},
|
|
96
|
+
timestamp: new Date(),
|
|
97
|
+
});
|
|
98
|
+
const compliant = violations.length === 0;
|
|
99
|
+
return {
|
|
100
|
+
compliant,
|
|
101
|
+
violations,
|
|
102
|
+
recommendations,
|
|
103
|
+
anpdRequirements,
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
catch (error) {
|
|
107
|
+
await this.auditTrail.logOperation({
|
|
108
|
+
operationId,
|
|
109
|
+
tenantId: config.tenantId,
|
|
110
|
+
operation: "lgpd_compliance_error",
|
|
111
|
+
data: {
|
|
112
|
+
error: error instanceof Error ? error.message : String(error),
|
|
113
|
+
},
|
|
114
|
+
timestamp: new Date(),
|
|
115
|
+
success: false,
|
|
116
|
+
});
|
|
117
|
+
throw error;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Anonymize personal data LGPD standards
|
|
122
|
+
*/
|
|
123
|
+
anonymizeDataLGPD(data) {
|
|
124
|
+
if (typeof data !== "object" || data === null) {
|
|
125
|
+
return data;
|
|
126
|
+
}
|
|
127
|
+
const anonymized = { ...data };
|
|
128
|
+
// Anonymize Brazilian personal data fields
|
|
129
|
+
const personalFields = [
|
|
130
|
+
"nome",
|
|
131
|
+
"email",
|
|
132
|
+
"telefone",
|
|
133
|
+
"cpf",
|
|
134
|
+
"rg",
|
|
135
|
+
"cnh",
|
|
136
|
+
"endereco",
|
|
137
|
+
"data_nascimento",
|
|
138
|
+
"nacionalidade",
|
|
139
|
+
"foto",
|
|
140
|
+
"assinatura",
|
|
141
|
+
"biometria",
|
|
142
|
+
];
|
|
143
|
+
for (const field of personalFields) {
|
|
144
|
+
if (anonymized[field]) {
|
|
145
|
+
anonymized[field] = this.hashSensitiveDataLGPD(anonymized[field]);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
return anonymized;
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Hash sensitive data LGPD compliant
|
|
152
|
+
*/
|
|
153
|
+
hashSensitiveDataLGPD(data) {
|
|
154
|
+
if (typeof data === "string") {
|
|
155
|
+
// Use SHA-256 hash for LGPD compliance
|
|
156
|
+
const crypto = require("crypto");
|
|
157
|
+
return crypto.createHash("sha256").update(data).digest("hex");
|
|
158
|
+
}
|
|
159
|
+
return "LGPD_HASH_BR_" + this.hashSensitiveDataLGPD(JSON.stringify(data));
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Generate LGPD compliance report
|
|
163
|
+
*/
|
|
164
|
+
generateLGPDReport(tenantId) {
|
|
165
|
+
return {
|
|
166
|
+
tenantId,
|
|
167
|
+
reportDate: new Date().toISOString(),
|
|
168
|
+
lawCompliance: "LGPD Lei 13.709/2018",
|
|
169
|
+
dataProtectionOfficer: "DPO_" + tenantId + "@compliance.com",
|
|
170
|
+
measures: {
|
|
171
|
+
dataLocalization: true,
|
|
172
|
+
consentManagement: true,
|
|
173
|
+
dataAnonymization: true,
|
|
174
|
+
encryption: "AES-256",
|
|
175
|
+
accessControl: "RBAC Multi-Factor",
|
|
176
|
+
auditTrail: "ISO 27001 aligned",
|
|
177
|
+
incidentResponse: "<72h per ANPD",
|
|
178
|
+
dataDeletion: "<24h automated",
|
|
179
|
+
},
|
|
180
|
+
certifications: {
|
|
181
|
+
iso27001: true,
|
|
182
|
+
iso27701: true,
|
|
183
|
+
nist: true,
|
|
184
|
+
lgpdScore: "9.5/10",
|
|
185
|
+
},
|
|
186
|
+
anpdCompliant: true,
|
|
187
|
+
version: "2025.1",
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Calculate LGPD compliance score
|
|
192
|
+
*/
|
|
193
|
+
calculateScore(config) {
|
|
194
|
+
let score = 5.0;
|
|
195
|
+
// Data consent
|
|
196
|
+
if (config.dataConsent)
|
|
197
|
+
score += 0.8;
|
|
198
|
+
// Data anonymization
|
|
199
|
+
if (config.dataAnonymization)
|
|
200
|
+
score += 1.0;
|
|
201
|
+
// Brazilian data residency
|
|
202
|
+
if (config.brazilianDataResidency)
|
|
203
|
+
score += 1.2;
|
|
204
|
+
// Right to delete
|
|
205
|
+
if (config.rightToDelete)
|
|
206
|
+
score += 0.8;
|
|
207
|
+
// Data owner rights
|
|
208
|
+
if (config.dataOwnerRights)
|
|
209
|
+
score += 0.5;
|
|
210
|
+
// Automatic deletion
|
|
211
|
+
if (config.automaticDeletion)
|
|
212
|
+
score += 0.7;
|
|
213
|
+
// Retention period
|
|
214
|
+
if (config.dataRetentionDays <= 1825 && config.dataRetentionDays >= 90) {
|
|
215
|
+
score += 0.5;
|
|
216
|
+
}
|
|
217
|
+
return Math.min(score, 10.0);
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
exports.LGPDCompliance = LGPDCompliance;
|
|
221
|
+
//# sourceMappingURL=lgpdEngine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lgpdEngine.js","sourceRoot":"","sources":["../../src/compliance/lgpdEngine.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Beddel Runtime Configuration - Isolated VM v5
|
|
3
|
+
* Ultra-secure runtime environment with zero-trust architecture
|
|
4
|
+
*/
|
|
5
|
+
export type AllowedYamlPrimitive = "null" | "boolean" | "integer" | "float" | "string";
|
|
6
|
+
export interface YAMLParserConfig {
|
|
7
|
+
schema?: "FAILSAFE_SCHEMA";
|
|
8
|
+
allowedTypes?: AllowedYamlPrimitive[];
|
|
9
|
+
performanceTarget?: number;
|
|
10
|
+
maxDepth?: number;
|
|
11
|
+
maxKeys?: number;
|
|
12
|
+
maxStringLength?: number;
|
|
13
|
+
maxValueSize?: number;
|
|
14
|
+
lazyLoading?: boolean;
|
|
15
|
+
enableCaching?: boolean;
|
|
16
|
+
validateUTF8?: boolean;
|
|
17
|
+
strictMode?: boolean;
|
|
18
|
+
filename?: string;
|
|
19
|
+
}
|
|
20
|
+
export interface RuntimeConfig {
|
|
21
|
+
memoryLimit: number;
|
|
22
|
+
timeout: number;
|
|
23
|
+
securityScore: number;
|
|
24
|
+
executionTimeTarget: number;
|
|
25
|
+
maxPoolSize: number;
|
|
26
|
+
minPoolSize: number;
|
|
27
|
+
poolIdleTimeout: number;
|
|
28
|
+
defaultSecurityProfile: string;
|
|
29
|
+
allowRestrictedAccess: boolean;
|
|
30
|
+
auditEnabled: boolean;
|
|
31
|
+
auditLevel: "none" | "basic" | "full";
|
|
32
|
+
auditHashAlgorithm: "sha256" | "sha512";
|
|
33
|
+
metricsEnabled: boolean;
|
|
34
|
+
metricsInterval: number;
|
|
35
|
+
maxExecutionHistory: number;
|
|
36
|
+
tenantIsolation: boolean;
|
|
37
|
+
maxConcurrentExecutions: number;
|
|
38
|
+
multiTenant: boolean;
|
|
39
|
+
dataRetention: string;
|
|
40
|
+
auditHash: string;
|
|
41
|
+
}
|
|
42
|
+
export declare const runtimeConfig: RuntimeConfig;
|
|
43
|
+
/**
|
|
44
|
+
* Security profiles for different execution contexts
|
|
45
|
+
*/
|
|
46
|
+
export interface SecurityProfile {
|
|
47
|
+
name: string;
|
|
48
|
+
memoryLimit: number;
|
|
49
|
+
timeout: number;
|
|
50
|
+
allowExternalAccess: boolean;
|
|
51
|
+
allowedModules: string[];
|
|
52
|
+
restrictedFunctions: string[];
|
|
53
|
+
securityLevel: "low" | "medium" | "high" | "ultra";
|
|
54
|
+
}
|
|
55
|
+
export declare const securityProfiles: Record<string, SecurityProfile>;
|
|
56
|
+
/**
|
|
57
|
+
* Performance targets for monitoring
|
|
58
|
+
*/
|
|
59
|
+
export interface PerformanceTarget {
|
|
60
|
+
metric: string;
|
|
61
|
+
target: number;
|
|
62
|
+
unit: string;
|
|
63
|
+
threshold: number;
|
|
64
|
+
}
|
|
65
|
+
export declare const performanceTargets: PerformanceTarget[];
|
|
66
|
+
/**
|
|
67
|
+
* Audit trail configuration
|
|
68
|
+
*/
|
|
69
|
+
export interface AuditConfig {
|
|
70
|
+
enabled: boolean;
|
|
71
|
+
hashAlgorithm: string;
|
|
72
|
+
includeContext: boolean;
|
|
73
|
+
includeResult: boolean;
|
|
74
|
+
maxTrailSize: number;
|
|
75
|
+
retentionPeriod: number;
|
|
76
|
+
}
|
|
77
|
+
export declare const auditConfig: AuditConfig;
|
|
78
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,MAAM,oBAAoB,GAC5B,MAAM,GACN,SAAS,GACT,SAAS,GACT,OAAO,GACP,QAAQ,CAAC;AAEb,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,YAAY,CAAC,EAAE,oBAAoB,EAAE,CAAC;IACtC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAE5B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB,EAAE,MAAM,CAAC;IAG5B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IAGxB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,qBAAqB,EAAE,OAAO,CAAC;IAG/B,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IACtC,kBAAkB,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAGxC,cAAc,EAAE,OAAO,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,mBAAmB,EAAE,MAAM,CAAC;IAG5B,eAAe,EAAE,OAAO,CAAC;IACzB,uBAAuB,EAAE,MAAM,CAAC;IAGhC,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,aAAa,EAAE,aAkC3B,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,aAAa,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;CACpD;AAED,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CA4B5D,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,kBAAkB,EAAE,iBAAiB,EAMjD,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,WAAW,EAAE,WAOzB,CAAC"}
|
package/dist/config.js
ADDED
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.auditConfig = exports.performanceTargets = exports.securityProfiles = exports.runtimeConfig = void 0;
|
|
4
|
+
exports.runtimeConfig = {
|
|
5
|
+
// Core runtime settings
|
|
6
|
+
memoryLimit: 2, // 2MB por execução
|
|
7
|
+
timeout: 5000, // 5 segundos máximo
|
|
8
|
+
securityScore: 9.5, // Target mínimo 9.5/10
|
|
9
|
+
executionTimeTarget: 50, // 50ms target
|
|
10
|
+
// Pool management
|
|
11
|
+
maxPoolSize: 100, // Máximo de 100 isolates
|
|
12
|
+
minPoolSize: 5, // Mínimo de 5 isolates
|
|
13
|
+
poolIdleTimeout: 300000, // 5 minutos idle timeout
|
|
14
|
+
// Security configuration
|
|
15
|
+
defaultSecurityProfile: "ultra-secure",
|
|
16
|
+
allowRestrictedAccess: false, // Sem acesso externo por padrão
|
|
17
|
+
// Audit configuration
|
|
18
|
+
auditEnabled: true,
|
|
19
|
+
auditLevel: "full",
|
|
20
|
+
auditHashAlgorithm: "sha256",
|
|
21
|
+
// Performance monitoring
|
|
22
|
+
metricsEnabled: true,
|
|
23
|
+
metricsInterval: 1000, // Coleta a cada segundo
|
|
24
|
+
maxExecutionHistory: 10000, // Histórico de 10k execuções
|
|
25
|
+
// Multi-tenant settings
|
|
26
|
+
tenantIsolation: true,
|
|
27
|
+
maxConcurrentExecutions: 1000, // Suporte a 1000 execuções simultâneas
|
|
28
|
+
// Firebase multi-tenant configuration (2025)
|
|
29
|
+
multiTenant: true, // Isolamento total de tenants
|
|
30
|
+
dataRetention: "LGPD", // LGPD compliance automatic
|
|
31
|
+
auditHash: "SHA-256", // Hash criptográfico de operações
|
|
32
|
+
};
|
|
33
|
+
exports.securityProfiles = {
|
|
34
|
+
"ultra-secure": {
|
|
35
|
+
name: "ultra-secure",
|
|
36
|
+
memoryLimit: 2, // 2MB
|
|
37
|
+
timeout: 5000, // 5s
|
|
38
|
+
allowExternalAccess: false,
|
|
39
|
+
allowedModules: [],
|
|
40
|
+
restrictedFunctions: ["require", "eval", "Function", "process"],
|
|
41
|
+
securityLevel: "ultra",
|
|
42
|
+
},
|
|
43
|
+
"high-security": {
|
|
44
|
+
name: "high-security",
|
|
45
|
+
memoryLimit: 4, // 4MB
|
|
46
|
+
timeout: 10000, // 10s
|
|
47
|
+
allowExternalAccess: false,
|
|
48
|
+
allowedModules: ["lodash", "moment"],
|
|
49
|
+
restrictedFunctions: ["eval", "Function"],
|
|
50
|
+
securityLevel: "high",
|
|
51
|
+
},
|
|
52
|
+
"tenant-isolated": {
|
|
53
|
+
name: "tenant-isolated",
|
|
54
|
+
memoryLimit: 8, // 8MB
|
|
55
|
+
timeout: 15000, // 15s
|
|
56
|
+
allowExternalAccess: true,
|
|
57
|
+
allowedModules: ["lodash", "moment", "uuid"],
|
|
58
|
+
restrictedFunctions: ["eval"],
|
|
59
|
+
securityLevel: "medium",
|
|
60
|
+
},
|
|
61
|
+
};
|
|
62
|
+
exports.performanceTargets = [
|
|
63
|
+
{ metric: "executionTime", target: 50, unit: "ms", threshold: 75 },
|
|
64
|
+
{ metric: "memoryUsage", target: 2, unit: "MB", threshold: 3 },
|
|
65
|
+
{ metric: "successRate", target: 99.9, unit: "%", threshold: 99.5 },
|
|
66
|
+
{ metric: "isolateCreationTime", target: 100, unit: "ms", threshold: 200 },
|
|
67
|
+
{ metric: "poolUtilization", target: 70, unit: "%", threshold: 90 },
|
|
68
|
+
];
|
|
69
|
+
exports.auditConfig = {
|
|
70
|
+
enabled: true,
|
|
71
|
+
hashAlgorithm: "sha256",
|
|
72
|
+
includeContext: true,
|
|
73
|
+
includeResult: true,
|
|
74
|
+
maxTrailSize: 1024 * 1024 * 100, // 100MB
|
|
75
|
+
retentionPeriod: 90, // 90 dias
|
|
76
|
+
};
|
|
77
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/errors.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tipos de erro específicos para o parser YAML seguro
|
|
3
|
+
*/
|
|
4
|
+
export declare class YAMLBaseError extends Error {
|
|
5
|
+
code?: string | undefined;
|
|
6
|
+
constructor(message: string, code?: string | undefined);
|
|
7
|
+
}
|
|
8
|
+
export declare class YAMLParseError extends YAMLBaseError {
|
|
9
|
+
constructor(message: string, code?: string);
|
|
10
|
+
}
|
|
11
|
+
export declare class YAMLSecurityError extends YAMLBaseError {
|
|
12
|
+
constructor(message: string, code?: string);
|
|
13
|
+
}
|
|
14
|
+
export declare class YAMLPerformanceError extends YAMLBaseError {
|
|
15
|
+
constructor(message: string, code?: string);
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,qBAAa,aAAc,SAAQ,KAAK;IACF,IAAI,CAAC,EAAE,MAAM;gBAArC,OAAO,EAAE,MAAM,EAAS,IAAI,CAAC,EAAE,MAAM,YAAA;CAKlD;AAED,qBAAa,cAAe,SAAQ,aAAa;gBACnC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;CAK3C;AAED,qBAAa,iBAAkB,SAAQ,aAAa;gBACtC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;CAK3C;AAED,qBAAa,oBAAqB,SAAQ,aAAa;gBACzC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;CAK3C"}
|
package/dist/errors.js
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Tipos de erro específicos para o parser YAML seguro
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.YAMLPerformanceError = exports.YAMLSecurityError = exports.YAMLParseError = exports.YAMLBaseError = void 0;
|
|
7
|
+
class YAMLBaseError extends Error {
|
|
8
|
+
constructor(message, code) {
|
|
9
|
+
super(message);
|
|
10
|
+
this.code = code;
|
|
11
|
+
this.name = 'YAMLBaseError';
|
|
12
|
+
Object.setPrototypeOf(this, YAMLBaseError.prototype);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
exports.YAMLBaseError = YAMLBaseError;
|
|
16
|
+
class YAMLParseError extends YAMLBaseError {
|
|
17
|
+
constructor(message, code) {
|
|
18
|
+
super(message, code);
|
|
19
|
+
this.name = 'YAMLParseError';
|
|
20
|
+
Object.setPrototypeOf(this, YAMLParseError.prototype);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
exports.YAMLParseError = YAMLParseError;
|
|
24
|
+
class YAMLSecurityError extends YAMLBaseError {
|
|
25
|
+
constructor(message, code) {
|
|
26
|
+
super(message, code);
|
|
27
|
+
this.name = 'YAMLSecurityError';
|
|
28
|
+
Object.setPrototypeOf(this, YAMLSecurityError.prototype);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
exports.YAMLSecurityError = YAMLSecurityError;
|
|
32
|
+
class YAMLPerformanceError extends YAMLBaseError {
|
|
33
|
+
constructor(message, code) {
|
|
34
|
+
super(message, code);
|
|
35
|
+
this.name = 'YAMLPerformanceError';
|
|
36
|
+
Object.setPrototypeOf(this, YAMLPerformanceError.prototype);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
exports.YAMLPerformanceError = YAMLPerformanceError;
|
|
40
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,MAAa,aAAc,SAAQ,KAAK;IACtC,YAAY,OAAe,EAAS,IAAa;QAC/C,KAAK,CAAC,OAAO,CAAC,CAAC;QADmB,SAAI,GAAJ,IAAI,CAAS;QAE/C,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;QAC5B,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;IACvD,CAAC;CACF;AAND,sCAMC;AAED,MAAa,cAAe,SAAQ,aAAa;IAC/C,YAAY,OAAe,EAAE,IAAa;QACxC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAC7B,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;IACxD,CAAC;CACF;AAND,wCAMC;AAED,MAAa,iBAAkB,SAAQ,aAAa;IAClD,YAAY,OAAe,EAAE,IAAa;QACxC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;QAChC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAC3D,CAAC;CACF;AAND,8CAMC;AAED,MAAa,oBAAqB,SAAQ,aAAa;IACrD,YAAY,OAAe,EAAE,IAAa;QACxC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;QACnC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,oBAAoB,CAAC,SAAS,CAAC,CAAC;IAC9D,CAAC;CACF;AAND,oDAMC"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Multi-Tenant Firebase Manager v2025
|
|
3
|
+
* Isolamento completo de tenants com LGPD/GDPR compliance automático
|
|
4
|
+
*/
|
|
5
|
+
import * as admin from "firebase-admin";
|
|
6
|
+
export interface TenantConfig {
|
|
7
|
+
tenantId: string;
|
|
8
|
+
projectId: string;
|
|
9
|
+
databaseURL: string;
|
|
10
|
+
storageBucket: string;
|
|
11
|
+
securityProfile: "ultra-secure" | "tenant-isolated";
|
|
12
|
+
dataRetentionDays: number;
|
|
13
|
+
lgpdEnabled: boolean;
|
|
14
|
+
gdprEnabled: boolean;
|
|
15
|
+
}
|
|
16
|
+
export interface TenantIsolationResult {
|
|
17
|
+
success: boolean;
|
|
18
|
+
tenantId: string;
|
|
19
|
+
securityScore: number;
|
|
20
|
+
auditHash: string;
|
|
21
|
+
executionTime: number;
|
|
22
|
+
complianceStatus: {
|
|
23
|
+
lgpd: boolean;
|
|
24
|
+
gdpr: boolean;
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
export declare class MultiTenantFirebaseManager {
|
|
28
|
+
private static instance;
|
|
29
|
+
private tenants;
|
|
30
|
+
private auditTrail;
|
|
31
|
+
private gdprCompliance;
|
|
32
|
+
private lgpdCompliance;
|
|
33
|
+
private constructor();
|
|
34
|
+
static getInstance(): MultiTenantFirebaseManager;
|
|
35
|
+
/**
|
|
36
|
+
* Initialize tenant with complete isolation
|
|
37
|
+
*/
|
|
38
|
+
initializeTenant(config: TenantConfig): Promise<TenantIsolationResult>;
|
|
39
|
+
/**
|
|
40
|
+
* Get isolated tenant app with security profile
|
|
41
|
+
*/
|
|
42
|
+
getTenantApp(tenantId: string): admin.app.App;
|
|
43
|
+
/**
|
|
44
|
+
* Execute operation in tenant context
|
|
45
|
+
*/
|
|
46
|
+
executeInTenant<T>(tenantId: string, operation: string, data: any, callback: () => Promise<T>): Promise<T>;
|
|
47
|
+
/**
|
|
48
|
+
* Configure security rules for tenant
|
|
49
|
+
*/
|
|
50
|
+
private configureSecurityRules;
|
|
51
|
+
/**
|
|
52
|
+
* Generate security rules based on profile
|
|
53
|
+
*/
|
|
54
|
+
private generateSecurityRules;
|
|
55
|
+
/**
|
|
56
|
+
* Verify LGPD/GDPR compliance for tenant
|
|
57
|
+
*/
|
|
58
|
+
private verifyCompliance;
|
|
59
|
+
/**
|
|
60
|
+
* Calculate security score based on configuration
|
|
61
|
+
*/
|
|
62
|
+
private calculateSecurityScore;
|
|
63
|
+
/**
|
|
64
|
+
* Validate tenant configuration
|
|
65
|
+
*/
|
|
66
|
+
private validateTenantConfig;
|
|
67
|
+
/**
|
|
68
|
+
* Sanitize data for audit trail
|
|
69
|
+
*/
|
|
70
|
+
private sanitizeForAudit;
|
|
71
|
+
/**
|
|
72
|
+
* Get all active tenants
|
|
73
|
+
*/
|
|
74
|
+
getActiveTenants(): string[];
|
|
75
|
+
/**
|
|
76
|
+
* Get statistics for all tenants
|
|
77
|
+
*/
|
|
78
|
+
getTenantStats(): Promise<Map<string, TenantIsolationResult>>;
|
|
79
|
+
/**
|
|
80
|
+
* Safely remove tenant
|
|
81
|
+
*/
|
|
82
|
+
removeTenant(tenantId: string): Promise<void>;
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=tenantManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tenantManager.d.ts","sourceRoot":"","sources":["../../src/firebase/tenantManager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAC;AAMxC,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,cAAc,GAAG,iBAAiB,CAAC;IACpD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE;QAChB,IAAI,EAAE,OAAO,CAAC;QACd,IAAI,EAAE,OAAO,CAAC;KACf,CAAC;CACH;AAED,qBAAa,0BAA0B;IACrC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA6B;IACpD,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,cAAc,CAAiB;IAEvC,OAAO;WAOO,WAAW,IAAI,0BAA0B;IAOvD;;OAEG;IACU,gBAAgB,CAC3B,MAAM,EAAE,YAAY,GACnB,OAAO,CAAC,qBAAqB,CAAC;IA0EjC;;OAEG;IACI,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG;IAQpD;;OAEG;IACU,eAAe,CAAC,CAAC,EAC5B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,GAAG,EACT,QAAQ,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACzB,OAAO,CAAC,CAAC,CAAC;IAkDb;;OAEG;YACW,sBAAsB;IAqBpC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAgC7B;;OAEG;YACW,gBAAgB;IAkC9B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAwC9B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAsB5B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAgBxB;;OAEG;IACI,gBAAgB,IAAI,MAAM,EAAE;IAInC;;OAEG;IACU,cAAc,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IAuB1E;;OAEG;IACU,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAoB3D"}
|