@devilsdev/rag-pipeline-utils 2.4.5 → 2.6.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/.ragrc.schema.json +83 -192
- package/CHANGELOG.md +431 -0
- package/README.md +418 -117
- package/SECURITY.md +5 -5
- package/dist/experimental.cjs +2 -0
- package/dist/experimental.d.ts +1 -0
- package/dist/experimental.mjs +5 -0
- package/dist/index.cjs +6442 -1355
- package/dist/index.d.ts +129 -2
- package/dist/index.mjs +1 -1
- package/dist/testing.cjs +2 -0
- package/dist/testing.d.ts +1 -0
- package/dist/testing.mjs +5 -0
- package/dist/types/adapters/ai-sdk.d.ts +53 -0
- package/dist/types/agentic/agentic-pipeline.d.ts +103 -0
- package/dist/types/agentic/iterative-retriever.d.ts +85 -0
- package/dist/types/agentic/query-planner.d.ts +145 -0
- package/dist/types/agentic/self-critique.d.ts +45 -0
- package/dist/types/ai/adaptive-retrieval.d.ts +44 -0
- package/dist/types/ai/federation/federated-learning-coordinator.d.ts +62 -0
- package/dist/types/ai/multimodal-processing.d.ts +32 -0
- package/dist/types/ai/multimodal.d.ts +39 -0
- package/dist/types/ai/retrieval-engine.d.ts +37 -0
- package/dist/types/ai/training/model-training-orchestrator.d.ts +31 -0
- package/dist/types/cache/component-keys.d.ts +7 -0
- package/dist/types/cache/memory-cache.d.ts +54 -0
- package/dist/types/cache/pipeline-cache.d.ts +66 -0
- package/dist/types/cache/redis-cache.d.ts +46 -0
- package/dist/types/chunking/chunking-engine.d.ts +70 -0
- package/dist/types/chunking/strategies/fixed-size.d.ts +17 -0
- package/dist/types/chunking/strategies/recursive.d.ts +20 -0
- package/dist/types/chunking/strategies/semantic.d.ts +19 -0
- package/dist/types/chunking/strategies/sentence.d.ts +13 -0
- package/dist/types/chunking/strategies/structure-aware.d.ts +19 -0
- package/dist/types/citation/citation-tracker.d.ts +64 -0
- package/dist/types/citation/hallucination-detector.d.ts +40 -0
- package/dist/types/citation/source-mapper.d.ts +37 -0
- package/dist/types/connectors/anthropic-connector.d.ts +97 -0
- package/dist/types/connectors/base-connector.d.ts +87 -0
- package/dist/types/connectors/cohere-connector.d.ts +94 -0
- package/dist/types/connectors/connector-utils.d.ts +110 -0
- package/dist/types/connectors/local-embedder.d.ts +95 -0
- package/dist/types/connectors/memory-retriever.d.ts +99 -0
- package/dist/types/connectors/ollama-connector.d.ts +115 -0
- package/dist/types/connectors/openai-connector.d.ts +129 -0
- package/dist/types/connectors/rag-prompt.d.ts +40 -0
- package/dist/types/core/create-pipeline.d.ts +8 -0
- package/dist/types/core/plugin-registry.d.ts +136 -0
- package/dist/types/core/stage-contracts.d.ts +36 -0
- package/dist/types/core/validate-plugin.d.ts +45 -0
- package/dist/types/cost/cost-calculator.d.ts +152 -0
- package/dist/types/cost/cost-tracker.d.ts +126 -0
- package/dist/types/cost/token-budget.d.ts +110 -0
- package/dist/types/dag/core/error-context.d.ts +239 -0
- package/dist/types/dag/core/execution-scheduler.d.ts +191 -0
- package/dist/types/dag/core/topology-validation.d.ts +226 -0
- package/dist/types/dag/dag-engine.d.ts +156 -0
- package/dist/types/dag/dag-node.d.ts +37 -0
- package/dist/types/dashboard/dashboard-generator.d.ts +127 -0
- package/dist/types/dashboard/metrics-aggregator.d.ts +218 -0
- package/dist/types/debug/execution-tracer.d.ts +57 -0
- package/dist/types/debug/trace-inspector.d.ts +31 -0
- package/dist/types/ecosystem/plugin-certification.d.ts +169 -0
- package/dist/types/enterprise/data-governance.d.ts +203 -0
- package/dist/types/enterprise/multi-tenancy.d.ts +137 -0
- package/dist/types/enterprise/sso-integration.d.ts +420 -0
- package/dist/types/evaluate/context-metrics.d.ts +55 -0
- package/dist/types/evaluate/faithfulness.d.ts +41 -0
- package/dist/types/evaluate/groundedness.d.ts +60 -0
- package/dist/types/evaluate/pipeline-evaluator.d.ts +88 -0
- package/dist/types/evaluate/relevance.d.ts +21 -0
- package/dist/types/evaluate/scoring.d.ts +123 -0
- package/dist/types/evaluate/semantic-similarity.d.ts +14 -0
- package/dist/types/experimental.d.ts +15 -0
- package/dist/types/graph/entity-extractor.d.ts +84 -0
- package/dist/types/graph/graph-index.d.ts +49 -0
- package/dist/types/graph/graph-retriever.d.ts +81 -0
- package/dist/types/graph/knowledge-graph.d.ts +129 -0
- package/dist/types/grounding/check-answer.d.ts +101 -0
- package/dist/types/guardrails/guardrails-pipeline.d.ts +63 -0
- package/dist/types/guardrails/injection-detector.d.ts +47 -0
- package/dist/types/guardrails/post-generation-guard.d.ts +61 -0
- package/dist/types/guardrails/pre-retrieval-guard.d.ts +64 -0
- package/dist/types/guardrails/retrieval-guard.d.ts +57 -0
- package/dist/types/mcp/mcp-server.d.ts +85 -0
- package/dist/types/mcp/mcp-tool-builder.d.ts +55 -0
- package/dist/types/reranker/cascade-reranker.d.ts +40 -0
- package/dist/types/reranker/embedding-reranker.d.ts +77 -0
- package/dist/types/reranker/scoring-reranker.d.ts +41 -0
- package/dist/types/retrieval/bm25-search.d.ts +43 -0
- package/dist/types/retrieval/file-vector-store.d.ts +99 -0
- package/dist/types/retrieval/hybrid-retriever.d.ts +35 -0
- package/dist/types/retrieval/rank-fusion.d.ts +10 -0
- package/dist/types/security/jwt-config.d.ts +80 -0
- package/dist/types/security/jwt-validator.d.ts +195 -0
- package/dist/types/security/plugin-sandbox.d.ts +158 -0
- package/dist/types/security/plugin-signature-verifier.d.ts +139 -0
- package/dist/types/security/validator.d.ts +5 -0
- package/dist/types/streaming/embedding-stream.d.ts +65 -0
- package/dist/types/streaming/sse-adapter.d.ts +59 -0
- package/dist/types/streaming/stream-router.d.ts +88 -0
- package/dist/types/streaming/streaming-embedder.d.ts +99 -0
- package/dist/types/streaming/websocket-adapter.d.ts +71 -0
- package/dist/types/templates/scaffold.d.ts +55 -0
- package/dist/types/templates/template-registry.d.ts +63 -0
- package/dist/types/testing.d.ts +168 -0
- package/dist/types/utils/embed-query.d.ts +20 -0
- package/dist/types/utils/logger.d.ts +50 -0
- package/dist/types/utils/rate-limiter.d.ts +66 -0
- package/dist/types/utils/retry.d.ts +27 -0
- package/dist/types/utils/run-abort.d.ts +34 -0
- package/dist/types/utils/secure-logging.d.ts +51 -0
- package/dist/types/utils/structured-logger.d.ts +126 -0
- package/package.json +72 -33
- package/src/adapters/ai-sdk.js +215 -0
- package/src/agentic/agentic-pipeline.js +75 -7
- package/src/agentic/iterative-retriever.js +47 -10
- package/src/agentic/query-planner.js +329 -78
- package/src/cache/component-keys.js +38 -0
- package/src/cache/memory-cache.js +87 -0
- package/src/cache/pipeline-cache.js +260 -0
- package/src/cache/redis-cache.js +83 -0
- package/src/citation/citation-tracker.js +6 -4
- package/src/citation/hallucination-detector.js +2 -2
- package/src/citation/source-mapper.js +15 -28
- package/src/cli/commands/ai.js +106 -0
- package/src/cli/commands/plugin-hub/event-handlers.js +6 -0
- package/src/cli/commands/plugin-hub/hub-commands.js +0 -74
- package/src/cli/commands/plugin-hub/local-commands.js +143 -0
- package/src/cli/commands/plugin-hub.js +114 -49
- package/src/cli/diagnostics/config-checker.js +76 -63
- package/src/cli/diagnostics/environment-checker.js +62 -31
- package/src/cli/diagnostics/plugin-checker.js +36 -89
- package/src/cli/doctor-command.js +39 -5
- package/src/cli/enhanced-cli-commands.js +104 -233
- package/src/cli/handlers/ai-handler.js +364 -0
- package/src/cli/handlers/diagnostics-handler.js +78 -31
- package/src/cli/handlers/ingest-handler.js +28 -22
- package/src/cli/handlers/init-handler.js +148 -25
- package/src/cli/handlers/query-handler.js +203 -25
- package/src/cli/handlers/run-handler.js +16 -167
- package/src/cli/handlers/serve-handler.js +60 -0
- package/src/cli/services/bench-stats.js +54 -0
- package/src/cli/services/benchmark.js +161 -0
- package/src/cli/services/feedback.js +155 -0
- package/src/cli/services/instrument.js +83 -0
- package/src/cli/services/rag-service.js +361 -0
- package/src/cli/shared/cli-utils.js +24 -7
- package/src/cli/shared/config-context.js +21 -0
- package/src/cli/wizard/config-builder.js +81 -0
- package/src/cli/wizard/init-wizard.js +602 -0
- package/src/config/component-factory.js +125 -0
- package/src/config/enhanced-ragrc-schema.js +0 -2
- package/src/config/load-config.js +29 -10
- package/src/config/load-plugin-config.js +46 -2
- package/src/config/validate-schema.js +4 -1
- package/src/connectors/anthropic-connector.js +115 -57
- package/src/connectors/base-connector.js +74 -19
- package/src/connectors/cohere-connector.js +108 -34
- package/src/connectors/connector-utils.js +302 -0
- package/src/connectors/local-embedder.js +63 -5
- package/src/connectors/memory-retriever.js +125 -14
- package/src/connectors/ollama-connector.js +112 -51
- package/src/connectors/openai-connector.js +153 -44
- package/src/connectors/rag-prompt.js +88 -0
- package/src/core/create-pipeline.js +307 -61
- package/src/core/performance/parallel-processor.js +62 -1
- package/src/core/plugin-registry.js +125 -26
- package/src/core/stage-contracts.js +36 -0
- package/src/core/validate-plugin.js +85 -0
- package/src/cost/cost-calculator.js +205 -32
- package/src/debug/execution-tracer.js +14 -4
- package/src/dev/dev-server.js +173 -11
- package/src/dev/hot-reload.js +44 -4
- package/src/ecosystem/plugin-checks.js +181 -0
- package/src/ecosystem/plugin-hub.js +50 -125
- package/src/ecosystem/plugin-installer.js +298 -0
- package/src/ecosystem/plugin-probe.js +127 -0
- package/src/ecosystem/plugin-scanner.js +185 -0
- package/src/ecosystem/tar-extract.js +114 -0
- package/src/enterprise/audit-logging.js +158 -29
- package/src/enterprise/sso-integration.js +716 -228
- package/src/evaluate/context-metrics.js +28 -16
- package/src/evaluate/evaluator.js +3 -3
- package/src/evaluate/faithfulness.js +18 -14
- package/src/evaluate/groundedness.js +43 -12
- package/src/evaluate/pipeline-evaluator.js +35 -8
- package/src/evaluate/scoring.js +251 -3
- package/src/evaluate/semantic-similarity.js +79 -0
- package/src/experimental.js +71 -0
- package/src/grounding/check-answer.js +173 -0
- package/src/guardrails/guardrails-pipeline.js +69 -7
- package/src/guardrails/injection-detector.js +283 -0
- package/src/guardrails/post-generation-guard.js +19 -0
- package/src/guardrails/pre-retrieval-guard.js +36 -36
- package/src/guardrails/retrieval-guard.js +58 -8
- package/src/index.js +58 -1
- package/src/loader/csv-loader.js +3 -2
- package/src/loader/document-reader.js +91 -0
- package/src/loader/html-loader.js +3 -1
- package/src/loader/markdown-loader.js +3 -2
- package/src/reranker/cascade-reranker.js +3 -0
- package/src/reranker/embedding-reranker.js +136 -21
- package/src/reranker/llm-reranker.js +79 -12
- package/src/reranker/scoring-reranker.js +3 -0
- package/src/retrieval/bm25-search.js +12 -6
- package/src/retrieval/file-vector-store.js +241 -0
- package/src/retrieval/hybrid-retriever.js +22 -19
- package/src/security/jwt-config.js +13 -2
- package/src/security/jwt-validator.js +139 -34
- package/src/security/plugin-sandbox.js +18 -1
- package/src/security/plugin-signature-verifier.js +245 -70
- package/src/testing.js +254 -0
- package/src/utils/deprecate.js +69 -0
- package/src/utils/embed-query.js +33 -0
- package/src/utils/input-sanitizer.js +19 -4
- package/src/utils/logger.js +34 -4
- package/src/utils/run-abort.js +102 -0
- package/src/ai/federated-learning.js +0 -211
- package/src/ai/federation.js +0 -71
- package/src/ai/index.js +0 -22
- package/src/ai/model-trainer.js +0 -217
- package/src/ai/model-training.js +0 -202
- package/src/ai/multimodal/multi-modal-processor.js +0 -345
- package/src/ai/orchestrator.js +0 -65
- package/src/ai/retrieval/adaptive-retrieval-engine.js +0 -398
- package/src/cli/commands/ai-ml/adaptive-commands.js +0 -178
- package/src/cli/commands/ai-ml/federated-commands.js +0 -207
- package/src/cli/commands/ai-ml/index.js +0 -17
- package/src/cli/commands/ai-ml/multimodal-commands.js +0 -187
- package/src/cli/commands/ai-ml/shared.js +0 -51
- package/src/cli/commands/ai-ml/training-commands.js +0 -228
- package/src/cli/commands/ai-ml.js +0 -386
- package/src/cli/commands/docs.js +0 -228
- package/src/cli/commands/dx.js +0 -538
- package/src/cli/commands/wizard.js +0 -627
- package/src/cli/input-sanitization-middleware.js +0 -356
- package/src/cli/interactive-wizard.js +0 -373
- package/src/cli/templates/development.template.json +0 -64
- package/src/cli/templates/minimal.template.json +0 -33
- package/src/cli/templates/production.template.json +0 -104
- package/src/cli/templates/testing.template.json +0 -45
- package/src/cli/wizard/configuration.js +0 -148
- package/src/cli/wizard/observability.js +0 -79
- package/src/cli/wizard/performance.js +0 -76
- package/src/cli/wizard/plugin-selection.js +0 -297
- package/src/cli/wizard/preview-save.js +0 -172
- package/src/cli/wizard/project-setup.js +0 -66
- package/src/core/pipeline-factory.js +0 -59
- package/src/dag/enhanced-dag-engine.js +0 -894
- package/src/dx/index.js +0 -40
- package/src/dx/integration-templates.js +0 -662
- package/src/dx/performance-profiler.js +0 -968
- package/src/dx/realtime-debugger.js +0 -755
- package/src/dx/visual-pipeline-builder.js +0 -578
- package/src/ingest.js +0 -59
- package/src/pipeline/pipeline.js +0 -18
- package/src/query.js +0 -117
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
export class DataGovernanceManager extends EventEmitter<[never]> {
|
|
2
|
+
constructor(_options?: {});
|
|
3
|
+
_config: {
|
|
4
|
+
policies: {
|
|
5
|
+
dataRetention: {
|
|
6
|
+
defaultRetentionDays: number;
|
|
7
|
+
piiRetentionDays: number;
|
|
8
|
+
logRetentionDays: number;
|
|
9
|
+
backupRetentionDays: number;
|
|
10
|
+
};
|
|
11
|
+
dataClassification: {
|
|
12
|
+
levels: string[];
|
|
13
|
+
autoClassify: boolean;
|
|
14
|
+
requireManualReview: boolean;
|
|
15
|
+
};
|
|
16
|
+
privacy: {
|
|
17
|
+
piiDetection: boolean;
|
|
18
|
+
dataMinimization: boolean;
|
|
19
|
+
consentTracking: boolean;
|
|
20
|
+
rightToErasure: boolean;
|
|
21
|
+
dataPortability: boolean;
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
compliance: {
|
|
25
|
+
standards: string[];
|
|
26
|
+
autoReporting: boolean;
|
|
27
|
+
breachNotification: boolean;
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
classificationEngine: DataClassificationEngine;
|
|
31
|
+
piiDetector: PIIDetector;
|
|
32
|
+
lineageTracker: DataLineageTracker;
|
|
33
|
+
retentionManager: DataRetentionManager;
|
|
34
|
+
privacyManager: PrivacyManager;
|
|
35
|
+
/**
|
|
36
|
+
* Classify and govern data
|
|
37
|
+
*/
|
|
38
|
+
governData(_tenantId: any, _data: any, _context?: {}): Promise<{
|
|
39
|
+
dataId: `${string}-${string}-${string}-${string}-${string}`;
|
|
40
|
+
_tenantId: any;
|
|
41
|
+
timestamp: string;
|
|
42
|
+
classification: any;
|
|
43
|
+
piiDetected: boolean;
|
|
44
|
+
lineage: any;
|
|
45
|
+
retentionPolicy: any;
|
|
46
|
+
privacyControls: any[];
|
|
47
|
+
complianceStatus: string;
|
|
48
|
+
}>;
|
|
49
|
+
/**
|
|
50
|
+
* Handle privacy requests (GDPR Article 17, CCPA)
|
|
51
|
+
*/
|
|
52
|
+
handlePrivacyRequest(_tenantId: any, _request: any): Promise<{
|
|
53
|
+
id: `${string}-${string}-${string}-${string}-${string}`;
|
|
54
|
+
_tenantId: any;
|
|
55
|
+
type: any;
|
|
56
|
+
subjectId: any;
|
|
57
|
+
subjectEmail: any;
|
|
58
|
+
status: string;
|
|
59
|
+
requestedAt: string;
|
|
60
|
+
deadline: string;
|
|
61
|
+
metadata: any;
|
|
62
|
+
}>;
|
|
63
|
+
/**
|
|
64
|
+
* Generate data governance report
|
|
65
|
+
*/
|
|
66
|
+
generateGovernanceReport(_tenantId: any, _options?: {}): Promise<{
|
|
67
|
+
_tenantId: any;
|
|
68
|
+
period: {
|
|
69
|
+
startDate: any;
|
|
70
|
+
endDate: any;
|
|
71
|
+
};
|
|
72
|
+
generatedAt: string;
|
|
73
|
+
summary: {
|
|
74
|
+
totalDataAssets: number;
|
|
75
|
+
classifiedAssets: number;
|
|
76
|
+
piiAssets: number;
|
|
77
|
+
retentionPoliciesApplied: number;
|
|
78
|
+
privacyRequests: number;
|
|
79
|
+
complianceViolations: number;
|
|
80
|
+
};
|
|
81
|
+
classification: {
|
|
82
|
+
PUBLIC: number;
|
|
83
|
+
INTERNAL: number;
|
|
84
|
+
CONFIDENTIAL: number;
|
|
85
|
+
RESTRICTED: number;
|
|
86
|
+
};
|
|
87
|
+
piiTypes: {};
|
|
88
|
+
retentionStatus: {};
|
|
89
|
+
complianceStatus: {
|
|
90
|
+
GDPR: string;
|
|
91
|
+
CCPA: string;
|
|
92
|
+
HIPAA: string;
|
|
93
|
+
};
|
|
94
|
+
}>;
|
|
95
|
+
_checkCompliance(governanceResult: any): Promise<"compliant" | "non_compliant">;
|
|
96
|
+
_handleDataAccess(_tenantId: any, _request: any): Promise<{
|
|
97
|
+
dataFound: boolean;
|
|
98
|
+
records: ({
|
|
99
|
+
_type: string;
|
|
100
|
+
_data: {
|
|
101
|
+
email: any;
|
|
102
|
+
name: string;
|
|
103
|
+
lastLogin?: undefined;
|
|
104
|
+
};
|
|
105
|
+
} | {
|
|
106
|
+
_type: string;
|
|
107
|
+
_data: {
|
|
108
|
+
lastLogin: string;
|
|
109
|
+
email?: undefined;
|
|
110
|
+
name?: undefined;
|
|
111
|
+
};
|
|
112
|
+
})[];
|
|
113
|
+
}>;
|
|
114
|
+
_handleDataErasure(_tenantId: any, _request: any): Promise<{
|
|
115
|
+
recordsDeleted: number;
|
|
116
|
+
backupsScheduledForDeletion: number;
|
|
117
|
+
retentionOverrides: any[];
|
|
118
|
+
}>;
|
|
119
|
+
_handleDataPortability(_tenantId: any, _request: any): Promise<{
|
|
120
|
+
exportFormat: string;
|
|
121
|
+
exportSize: string;
|
|
122
|
+
downloadUrl: string;
|
|
123
|
+
expiresAt: string;
|
|
124
|
+
}>;
|
|
125
|
+
_handleDataRectification(_tenantId: any, _request: any): Promise<{
|
|
126
|
+
recordsUpdated: number;
|
|
127
|
+
fieldsModified: any;
|
|
128
|
+
}>;
|
|
129
|
+
}
|
|
130
|
+
export class DataClassificationEngine {
|
|
131
|
+
constructor(_config: any);
|
|
132
|
+
_config: any;
|
|
133
|
+
classify(_data: any, _context: any): Promise<{
|
|
134
|
+
level: string;
|
|
135
|
+
confidence: number;
|
|
136
|
+
reasoning: string;
|
|
137
|
+
reviewRequired: boolean;
|
|
138
|
+
}>;
|
|
139
|
+
}
|
|
140
|
+
export class PIIDetector {
|
|
141
|
+
constructor(_config: any);
|
|
142
|
+
_config: any;
|
|
143
|
+
patterns: {
|
|
144
|
+
email: RegExp;
|
|
145
|
+
ssn: RegExp;
|
|
146
|
+
phone: RegExp;
|
|
147
|
+
creditCard: RegExp;
|
|
148
|
+
};
|
|
149
|
+
scan(_data: any): Promise<{
|
|
150
|
+
detected: boolean;
|
|
151
|
+
types: {
|
|
152
|
+
_type: string;
|
|
153
|
+
count: number;
|
|
154
|
+
samples: string[];
|
|
155
|
+
}[];
|
|
156
|
+
confidence: number;
|
|
157
|
+
}>;
|
|
158
|
+
}
|
|
159
|
+
export class DataLineageTracker {
|
|
160
|
+
constructor(_config: any);
|
|
161
|
+
_config: any;
|
|
162
|
+
track(_data: any, _context: any): Promise<{
|
|
163
|
+
source: any;
|
|
164
|
+
transformations: any;
|
|
165
|
+
destinations: any;
|
|
166
|
+
timestamp: string;
|
|
167
|
+
version: string;
|
|
168
|
+
}>;
|
|
169
|
+
}
|
|
170
|
+
export class DataRetentionManager {
|
|
171
|
+
constructor(_config: any);
|
|
172
|
+
_config: any;
|
|
173
|
+
applyPolicy(classificationLevel: any, hasPII: any): Promise<{
|
|
174
|
+
retentionDays: any;
|
|
175
|
+
deleteAfter: string;
|
|
176
|
+
policy: string;
|
|
177
|
+
autoDelete: boolean;
|
|
178
|
+
}>;
|
|
179
|
+
}
|
|
180
|
+
export class PrivacyManager {
|
|
181
|
+
constructor(_config: any);
|
|
182
|
+
_config: any;
|
|
183
|
+
applyControls(_data: any, piiResults: any, _context: any): Promise<({
|
|
184
|
+
_type: string;
|
|
185
|
+
applied: boolean;
|
|
186
|
+
algorithm: string;
|
|
187
|
+
permissions?: undefined;
|
|
188
|
+
level?: undefined;
|
|
189
|
+
} | {
|
|
190
|
+
_type: string;
|
|
191
|
+
applied: boolean;
|
|
192
|
+
permissions: string[];
|
|
193
|
+
algorithm?: undefined;
|
|
194
|
+
level?: undefined;
|
|
195
|
+
} | {
|
|
196
|
+
_type: string;
|
|
197
|
+
applied: boolean;
|
|
198
|
+
level: string;
|
|
199
|
+
algorithm?: undefined;
|
|
200
|
+
permissions?: undefined;
|
|
201
|
+
})[]>;
|
|
202
|
+
}
|
|
203
|
+
import { EventEmitter } from "events";
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
export class TenantManager extends EventEmitter<[never]> {
|
|
2
|
+
constructor(_options?: {});
|
|
3
|
+
_config: {
|
|
4
|
+
dataDir: any;
|
|
5
|
+
defaultQuotas: {
|
|
6
|
+
maxUsers: number;
|
|
7
|
+
maxWorkspaces: number;
|
|
8
|
+
maxStorageGB: number;
|
|
9
|
+
maxAPICallsPerMonth: number;
|
|
10
|
+
maxConcurrentPipelines: number;
|
|
11
|
+
maxPlugins: number;
|
|
12
|
+
};
|
|
13
|
+
isolation: {
|
|
14
|
+
networkIsolation: boolean;
|
|
15
|
+
storageIsolation: boolean;
|
|
16
|
+
resourceIsolation: boolean;
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
tenants: Map<any, any>;
|
|
20
|
+
workspaces: Map<any, any>;
|
|
21
|
+
resourceMonitor: ResourceMonitor;
|
|
22
|
+
/**
|
|
23
|
+
* Create a new tenant with isolated resources
|
|
24
|
+
*/
|
|
25
|
+
createTenant(tenantData: any): Promise<{
|
|
26
|
+
id: `${string}-${string}-${string}-${string}-${string}`;
|
|
27
|
+
name: any;
|
|
28
|
+
domain: any;
|
|
29
|
+
plan: any;
|
|
30
|
+
quotas: any;
|
|
31
|
+
settings: any;
|
|
32
|
+
metadata: {
|
|
33
|
+
createdAt: string;
|
|
34
|
+
createdBy: any;
|
|
35
|
+
status: string;
|
|
36
|
+
lastActivity: string;
|
|
37
|
+
};
|
|
38
|
+
isolation: {
|
|
39
|
+
dataPath: string;
|
|
40
|
+
networkNamespace: string;
|
|
41
|
+
resourceLimits: any;
|
|
42
|
+
};
|
|
43
|
+
}>;
|
|
44
|
+
/**
|
|
45
|
+
* Create isolated workspace within a tenant
|
|
46
|
+
*/
|
|
47
|
+
createWorkspace(_tenantId: any, workspaceData: any): Promise<{
|
|
48
|
+
id: `${string}-${string}-${string}-${string}-${string}`;
|
|
49
|
+
_tenantId: any;
|
|
50
|
+
name: any;
|
|
51
|
+
description: any;
|
|
52
|
+
settings: any;
|
|
53
|
+
resources: {
|
|
54
|
+
storageUsedMB: number;
|
|
55
|
+
apiCallsThisMonth: number;
|
|
56
|
+
activePipelines: number;
|
|
57
|
+
installedPlugins: number;
|
|
58
|
+
};
|
|
59
|
+
isolation: {
|
|
60
|
+
dataPath: string;
|
|
61
|
+
configPath: string;
|
|
62
|
+
pluginsPath: string;
|
|
63
|
+
};
|
|
64
|
+
metadata: {
|
|
65
|
+
createdAt: string;
|
|
66
|
+
createdBy: any;
|
|
67
|
+
lastActivity: string;
|
|
68
|
+
version: string;
|
|
69
|
+
};
|
|
70
|
+
}>;
|
|
71
|
+
/**
|
|
72
|
+
* Get tenant with resource usage
|
|
73
|
+
*/
|
|
74
|
+
getTenant(_tenantId: any): Promise<any>;
|
|
75
|
+
/**
|
|
76
|
+
* List workspaces for a tenant
|
|
77
|
+
*/
|
|
78
|
+
getWorkspaces(_tenantId: any, _options?: {}): Promise<any[]>;
|
|
79
|
+
/**
|
|
80
|
+
* Update tenant quotas
|
|
81
|
+
*/
|
|
82
|
+
updateTenantQuotas(_tenantId: any, newQuotas: any): Promise<any>;
|
|
83
|
+
/**
|
|
84
|
+
* Enforce resource quotas
|
|
85
|
+
*/
|
|
86
|
+
enforceQuotas(_tenantId: any, operation: any, resourceType: any, amount: any): Promise<boolean>;
|
|
87
|
+
/**
|
|
88
|
+
* Delete tenant and all associated data
|
|
89
|
+
*/
|
|
90
|
+
deleteTenant(_tenantId: any, _options?: {}): Promise<{
|
|
91
|
+
deleted: boolean;
|
|
92
|
+
hardDelete: boolean;
|
|
93
|
+
}>;
|
|
94
|
+
/**
|
|
95
|
+
* Delete workspace
|
|
96
|
+
*/
|
|
97
|
+
deleteWorkspace(_workspaceId: any, _options?: {}): Promise<{
|
|
98
|
+
deleted: boolean;
|
|
99
|
+
hardDelete: boolean;
|
|
100
|
+
}>;
|
|
101
|
+
_createTenantInfrastructure(tenant: any): Promise<void>;
|
|
102
|
+
_createWorkspaceInfrastructure(workspace: any): Promise<void>;
|
|
103
|
+
_initializeTenantServices(tenant: any): Promise<void>;
|
|
104
|
+
_calculateResourceLimits(plan: any): any;
|
|
105
|
+
_calculateQuotaUtilization(quotas: any, usage: any): {
|
|
106
|
+
users: number;
|
|
107
|
+
workspaces: number;
|
|
108
|
+
storage: number;
|
|
109
|
+
apiCalls: number;
|
|
110
|
+
pipelines: number;
|
|
111
|
+
plugins: number;
|
|
112
|
+
};
|
|
113
|
+
_persistTenant(tenant: any): Promise<void>;
|
|
114
|
+
_persistWorkspace(workspace: any): Promise<void>;
|
|
115
|
+
}
|
|
116
|
+
export class ResourceMonitor {
|
|
117
|
+
constructor(_config: any);
|
|
118
|
+
_config: any;
|
|
119
|
+
metrics: Map<any, any>;
|
|
120
|
+
getTenantUsage(_tenantId: any): Promise<{
|
|
121
|
+
activeUsers: number;
|
|
122
|
+
workspaces: number;
|
|
123
|
+
storageUsedGB: number;
|
|
124
|
+
apiCallsThisMonth: number;
|
|
125
|
+
activePipelines: number;
|
|
126
|
+
installedPlugins: number;
|
|
127
|
+
lastUpdated: string;
|
|
128
|
+
}>;
|
|
129
|
+
getWorkspaceUsage(_workspaceId: any): Promise<{
|
|
130
|
+
storageUsedMB: number;
|
|
131
|
+
apiCallsThisMonth: number;
|
|
132
|
+
activePipelines: number;
|
|
133
|
+
installedPlugins: number;
|
|
134
|
+
lastActivity: string;
|
|
135
|
+
}>;
|
|
136
|
+
}
|
|
137
|
+
import { EventEmitter } from "events";
|