@wildo-ai/platform-config-lib 1.0.1
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/dist/esm/bootstrap/application-backend-env.contracts.d.ts +2 -0
- package/dist/esm/bootstrap/application-backend-env.contracts.d.ts.map +1 -0
- package/dist/esm/bootstrap/application-backend-env.contracts.js +2 -0
- package/dist/esm/bootstrap/application-backend-env.contracts.js.map +1 -0
- package/dist/esm/bootstrap/bootstrap-planner.d.ts +20 -0
- package/dist/esm/bootstrap/bootstrap-planner.d.ts.map +1 -0
- package/dist/esm/bootstrap/bootstrap-planner.js +26 -0
- package/dist/esm/bootstrap/bootstrap-planner.js.map +1 -0
- package/dist/esm/bootstrap/bootstrap.contracts.d.ts +120 -0
- package/dist/esm/bootstrap/bootstrap.contracts.d.ts.map +1 -0
- package/dist/esm/bootstrap/bootstrap.contracts.js +117 -0
- package/dist/esm/bootstrap/bootstrap.contracts.js.map +1 -0
- package/dist/esm/bootstrap/bootstrap.schemas.d.ts +485 -0
- package/dist/esm/bootstrap/bootstrap.schemas.d.ts.map +1 -0
- package/dist/esm/bootstrap/bootstrap.schemas.js +130 -0
- package/dist/esm/bootstrap/bootstrap.schemas.js.map +1 -0
- package/dist/esm/bootstrap/platform-runtime-env.contracts.d.ts +78 -0
- package/dist/esm/bootstrap/platform-runtime-env.contracts.d.ts.map +1 -0
- package/dist/esm/bootstrap/platform-runtime-env.contracts.js +98 -0
- package/dist/esm/bootstrap/platform-runtime-env.contracts.js.map +1 -0
- package/dist/esm/bootstrap/runtime-topology.contracts.d.ts +17 -0
- package/dist/esm/bootstrap/runtime-topology.contracts.d.ts.map +1 -0
- package/dist/esm/bootstrap/runtime-topology.contracts.js +60 -0
- package/dist/esm/bootstrap/runtime-topology.contracts.js.map +1 -0
- package/dist/esm/credentials/credential-generator.service.d.ts +11 -0
- package/dist/esm/credentials/credential-generator.service.d.ts.map +1 -0
- package/dist/esm/credentials/credential-generator.service.js +31 -0
- package/dist/esm/credentials/credential-generator.service.js.map +1 -0
- package/dist/esm/credentials/credentials-provisioner.service.d.ts +190 -0
- package/dist/esm/credentials/credentials-provisioner.service.d.ts.map +1 -0
- package/dist/esm/credentials/credentials-provisioner.service.js +278 -0
- package/dist/esm/credentials/credentials-provisioner.service.js.map +1 -0
- package/dist/esm/index.d.ts +16 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +16 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/infra-managers/infra-manager.models.d.ts +146 -0
- package/dist/esm/infra-managers/infra-manager.models.d.ts.map +1 -0
- package/dist/esm/infra-managers/infra-manager.models.js +2 -0
- package/dist/esm/infra-managers/infra-manager.models.js.map +1 -0
- package/dist/esm/infra-managers/mongo-atlas-manager.service.d.ts +64 -0
- package/dist/esm/infra-managers/mongo-atlas-manager.service.d.ts.map +1 -0
- package/dist/esm/infra-managers/mongo-atlas-manager.service.js +307 -0
- package/dist/esm/infra-managers/mongo-atlas-manager.service.js.map +1 -0
- package/dist/esm/infra-managers/postgresql-manager.service.d.ts +115 -0
- package/dist/esm/infra-managers/postgresql-manager.service.d.ts.map +1 -0
- package/dist/esm/infra-managers/postgresql-manager.service.js +403 -0
- package/dist/esm/infra-managers/postgresql-manager.service.js.map +1 -0
- package/dist/esm/infra-managers/rabbitmq-manager.service.d.ts +64 -0
- package/dist/esm/infra-managers/rabbitmq-manager.service.d.ts.map +1 -0
- package/dist/esm/infra-managers/rabbitmq-manager.service.js +288 -0
- package/dist/esm/infra-managers/rabbitmq-manager.service.js.map +1 -0
- package/dist/esm/infra-managers/redis-manager.service.d.ts +78 -0
- package/dist/esm/infra-managers/redis-manager.service.d.ts.map +1 -0
- package/dist/esm/infra-managers/redis-manager.service.js +326 -0
- package/dist/esm/infra-managers/redis-manager.service.js.map +1 -0
- package/dist/esm/project-config/define-framework-config.d.ts +36 -0
- package/dist/esm/project-config/define-framework-config.d.ts.map +1 -0
- package/dist/esm/project-config/define-framework-config.js +30 -0
- package/dist/esm/project-config/define-framework-config.js.map +1 -0
- package/dist/esm/project-config/define-infra-config.d.ts +128 -0
- package/dist/esm/project-config/define-infra-config.d.ts.map +1 -0
- package/dist/esm/project-config/define-infra-config.js +87 -0
- package/dist/esm/project-config/define-infra-config.js.map +1 -0
- package/dist/esm/project-config/define-minion-config.d.ts +41 -0
- package/dist/esm/project-config/define-minion-config.d.ts.map +1 -0
- package/dist/esm/project-config/define-minion-config.js +24 -0
- package/dist/esm/project-config/define-minion-config.js.map +1 -0
- package/dist/esm/project-config/define-platform-config.d.ts +65 -0
- package/dist/esm/project-config/define-platform-config.d.ts.map +1 -0
- package/dist/esm/project-config/define-platform-config.js +22 -0
- package/dist/esm/project-config/define-platform-config.js.map +1 -0
- package/dist/esm/project-config/define-platform-env-config.d.ts +41 -0
- package/dist/esm/project-config/define-platform-env-config.d.ts.map +1 -0
- package/dist/esm/project-config/define-platform-env-config.js +45 -0
- package/dist/esm/project-config/define-platform-env-config.js.map +1 -0
- package/dist/esm/project-config/define-project-config.d.ts +38 -0
- package/dist/esm/project-config/define-project-config.d.ts.map +1 -0
- package/dist/esm/project-config/define-project-config.js +57 -0
- package/dist/esm/project-config/define-project-config.js.map +1 -0
- package/dist/esm/project-config/define-saas-config.d.ts +252 -0
- package/dist/esm/project-config/define-saas-config.d.ts.map +1 -0
- package/dist/esm/project-config/define-saas-config.js +137 -0
- package/dist/esm/project-config/define-saas-config.js.map +1 -0
- package/dist/esm/project-config/define-sharing-policy.d.ts +35 -0
- package/dist/esm/project-config/define-sharing-policy.d.ts.map +1 -0
- package/dist/esm/project-config/define-sharing-policy.js +30 -0
- package/dist/esm/project-config/define-sharing-policy.js.map +1 -0
- package/dist/esm/project-config/define-worker-config.d.ts +42 -0
- package/dist/esm/project-config/define-worker-config.d.ts.map +1 -0
- package/dist/esm/project-config/define-worker-config.js +24 -0
- package/dist/esm/project-config/define-worker-config.js.map +1 -0
- package/dist/esm/project-config/index.d.ts +22 -0
- package/dist/esm/project-config/index.d.ts.map +1 -0
- package/dist/esm/project-config/index.js +22 -0
- package/dist/esm/project-config/index.js.map +1 -0
- package/dist/esm/project-config/loader.d.ts +42 -0
- package/dist/esm/project-config/loader.d.ts.map +1 -0
- package/dist/esm/project-config/loader.js +164 -0
- package/dist/esm/project-config/loader.js.map +1 -0
- package/dist/esm/project-config/shared/application-modules.schemas.d.ts +10 -0
- package/dist/esm/project-config/shared/application-modules.schemas.d.ts.map +1 -0
- package/dist/esm/project-config/shared/application-modules.schemas.js +6 -0
- package/dist/esm/project-config/shared/application-modules.schemas.js.map +1 -0
- package/dist/esm/project-config/shared/application-modules.utils.d.ts +6 -0
- package/dist/esm/project-config/shared/application-modules.utils.d.ts.map +1 -0
- package/dist/esm/project-config/shared/application-modules.utils.js +26 -0
- package/dist/esm/project-config/shared/application-modules.utils.js.map +1 -0
- package/dist/esm/project-config/shared/backing-services.schemas.d.ts +68 -0
- package/dist/esm/project-config/shared/backing-services.schemas.d.ts.map +1 -0
- package/dist/esm/project-config/shared/backing-services.schemas.js +49 -0
- package/dist/esm/project-config/shared/backing-services.schemas.js.map +1 -0
- package/dist/esm/project-config/shared/data-services.schemas.d.ts +33 -0
- package/dist/esm/project-config/shared/data-services.schemas.d.ts.map +1 -0
- package/dist/esm/project-config/shared/data-services.schemas.js +47 -0
- package/dist/esm/project-config/shared/data-services.schemas.js.map +1 -0
- package/dist/esm/project-config/shared/env-example-defaults.d.ts +27 -0
- package/dist/esm/project-config/shared/env-example-defaults.d.ts.map +1 -0
- package/dist/esm/project-config/shared/env-example-defaults.js +30 -0
- package/dist/esm/project-config/shared/env-example-defaults.js.map +1 -0
- package/dist/esm/project-config/shared/environment.schemas.d.ts +106 -0
- package/dist/esm/project-config/shared/environment.schemas.d.ts.map +1 -0
- package/dist/esm/project-config/shared/environment.schemas.js +111 -0
- package/dist/esm/project-config/shared/environment.schemas.js.map +1 -0
- package/dist/esm/project-config/shared/infrastructure-defaults.schemas.d.ts +42 -0
- package/dist/esm/project-config/shared/infrastructure-defaults.schemas.d.ts.map +1 -0
- package/dist/esm/project-config/shared/infrastructure-defaults.schemas.js +42 -0
- package/dist/esm/project-config/shared/infrastructure-defaults.schemas.js.map +1 -0
- package/dist/esm/project-config/shared/k8s-utils.d.ts +36 -0
- package/dist/esm/project-config/shared/k8s-utils.d.ts.map +1 -0
- package/dist/esm/project-config/shared/k8s-utils.js +50 -0
- package/dist/esm/project-config/shared/k8s-utils.js.map +1 -0
- package/dist/esm/project-config/shared/platform-services.schemas.d.ts +30 -0
- package/dist/esm/project-config/shared/platform-services.schemas.d.ts.map +1 -0
- package/dist/esm/project-config/shared/platform-services.schemas.js +27 -0
- package/dist/esm/project-config/shared/platform-services.schemas.js.map +1 -0
- package/dist/esm/project-config/shared/service-definitions.schemas.d.ts +42 -0
- package/dist/esm/project-config/shared/service-definitions.schemas.d.ts.map +1 -0
- package/dist/esm/project-config/shared/service-definitions.schemas.js +29 -0
- package/dist/esm/project-config/shared/service-definitions.schemas.js.map +1 -0
- package/dist/esm/project-config/sharing-policy-validation.d.ts +40 -0
- package/dist/esm/project-config/sharing-policy-validation.d.ts.map +1 -0
- package/dist/esm/project-config/sharing-policy-validation.js +143 -0
- package/dist/esm/project-config/sharing-policy-validation.js.map +1 -0
- package/dist/esm/release/framework-release.constants.d.ts +3 -0
- package/dist/esm/release/framework-release.constants.d.ts.map +1 -0
- package/dist/esm/release/framework-release.constants.js +3 -0
- package/dist/esm/release/framework-release.constants.js.map +1 -0
- package/dist/esm/runtime-bridge/platform-runtime-bridge.contracts.d.ts +23 -0
- package/dist/esm/runtime-bridge/platform-runtime-bridge.contracts.d.ts.map +1 -0
- package/dist/esm/runtime-bridge/platform-runtime-bridge.contracts.js +13 -0
- package/dist/esm/runtime-bridge/platform-runtime-bridge.contracts.js.map +1 -0
- package/dist/esm/schemas/framework-info.schemas.d.ts +8 -0
- package/dist/esm/schemas/framework-info.schemas.d.ts.map +1 -0
- package/dist/esm/schemas/framework-info.schemas.js +8 -0
- package/dist/esm/schemas/framework-info.schemas.js.map +1 -0
- package/dist/esm/schemas/framework-secrets.schemas.d.ts +22 -0
- package/dist/esm/schemas/framework-secrets.schemas.d.ts.map +1 -0
- package/dist/esm/schemas/framework-secrets.schemas.js +14 -0
- package/dist/esm/schemas/framework-secrets.schemas.js.map +1 -0
- package/dist/esm/schemas/platform-application-config.schemas.d.ts +20 -0
- package/dist/esm/schemas/platform-application-config.schemas.d.ts.map +1 -0
- package/dist/esm/schemas/platform-application-config.schemas.js +19 -0
- package/dist/esm/schemas/platform-application-config.schemas.js.map +1 -0
- package/dist/esm/schemas/platform-application-secrets.schemas.d.ts +54 -0
- package/dist/esm/schemas/platform-application-secrets.schemas.d.ts.map +1 -0
- package/dist/esm/schemas/platform-application-secrets.schemas.js +67 -0
- package/dist/esm/schemas/platform-application-secrets.schemas.js.map +1 -0
- package/dist/esm/schemas/platform-config.schemas.d.ts +66 -0
- package/dist/esm/schemas/platform-config.schemas.d.ts.map +1 -0
- package/dist/esm/schemas/platform-config.schemas.js +28 -0
- package/dist/esm/schemas/platform-config.schemas.js.map +1 -0
- package/dist/esm/workspace-scope/index.d.ts +3 -0
- package/dist/esm/workspace-scope/index.d.ts.map +1 -0
- package/dist/esm/workspace-scope/index.js +3 -0
- package/dist/esm/workspace-scope/index.js.map +1 -0
- package/dist/esm/workspace-scope/workspace-scope-detector.d.ts +15 -0
- package/dist/esm/workspace-scope/workspace-scope-detector.d.ts.map +1 -0
- package/dist/esm/workspace-scope/workspace-scope-detector.js +87 -0
- package/dist/esm/workspace-scope/workspace-scope-detector.js.map +1 -0
- package/dist/esm/workspace-scope/workspace-scope.schemas.d.ts +118 -0
- package/dist/esm/workspace-scope/workspace-scope.schemas.d.ts.map +1 -0
- package/dist/esm/workspace-scope/workspace-scope.schemas.js +157 -0
- package/dist/esm/workspace-scope/workspace-scope.schemas.js.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -0
- package/package.json +52 -0
- package/src/bootstrap/application-backend-env.contracts.ts +17 -0
- package/src/bootstrap/bootstrap-planner.ts +46 -0
- package/src/bootstrap/bootstrap.contracts.ts +251 -0
- package/src/bootstrap/bootstrap.schemas.ts +164 -0
- package/src/bootstrap/platform-runtime-env.contracts.ts +99 -0
- package/src/bootstrap/runtime-topology.contracts.ts +102 -0
- package/src/credentials/credential-generator.service.ts +39 -0
- package/src/index.ts +16 -0
- package/src/project-config/__tests__/application-modules.utils.test.ts +53 -0
- package/src/project-config/__tests__/define-framework-config.test.ts +43 -0
- package/src/project-config/__tests__/define-saas-config.test.ts +210 -0
- package/src/project-config/__tests__/loader.test.ts +100 -0
- package/src/project-config/define-framework-config.ts +44 -0
- package/src/project-config/define-infra-config.ts +168 -0
- package/src/project-config/define-minion-config.ts +27 -0
- package/src/project-config/define-platform-config.ts +28 -0
- package/src/project-config/define-platform-env-config.ts +59 -0
- package/src/project-config/define-project-config.ts +63 -0
- package/src/project-config/define-saas-config.ts +171 -0
- package/src/project-config/define-sharing-policy.ts +36 -0
- package/src/project-config/define-worker-config.ts +27 -0
- package/src/project-config/index.ts +23 -0
- package/src/project-config/loader.ts +220 -0
- package/src/project-config/shared/application-modules.schemas.ts +12 -0
- package/src/project-config/shared/application-modules.utils.ts +65 -0
- package/src/project-config/shared/backing-services.schemas.ts +59 -0
- package/src/project-config/shared/data-services.schemas.ts +58 -0
- package/src/project-config/shared/env-example-defaults.ts +50 -0
- package/src/project-config/shared/environment.schemas.ts +136 -0
- package/src/project-config/shared/infrastructure-defaults.schemas.ts +47 -0
- package/src/project-config/shared/k8s-utils.ts +56 -0
- package/src/project-config/shared/platform-services.schemas.ts +33 -0
- package/src/project-config/shared/service-definitions.schemas.ts +38 -0
- package/src/project-config/sharing-policy-validation.ts +159 -0
- package/src/release/framework-release.constants.ts +2 -0
- package/src/schemas/__tests__/platform-config.schemas.test.ts +90 -0
- package/src/schemas/framework-info.schemas.ts +13 -0
- package/src/schemas/framework-secrets.schemas.ts +19 -0
- package/src/schemas/platform-application-config.schemas.ts +25 -0
- package/src/schemas/platform-application-secrets.schemas.ts +78 -0
- package/src/schemas/platform-config.schemas.ts +45 -0
- package/src/workspace-scope/index.ts +2 -0
- package/src/workspace-scope/workspace-scope-detector.ts +98 -0
- package/src/workspace-scope/workspace-scope.schemas.ts +224 -0
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Credentials Provisioner Service
|
|
3
|
+
*
|
|
4
|
+
* Consolidates Redis ACL and RabbitMQ user management into a single service.
|
|
5
|
+
* Used by apps-manager to provision credentials for platform services.
|
|
6
|
+
*
|
|
7
|
+
* This service provides idempotent operations:
|
|
8
|
+
* - Creating/updating Redis ACL users
|
|
9
|
+
* - Creating/updating RabbitMQ users with permissions
|
|
10
|
+
* - Generating secure passwords
|
|
11
|
+
* - Generating EC key pairs for JWT signing
|
|
12
|
+
*/
|
|
13
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
14
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
15
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
16
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
17
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
18
|
+
};
|
|
19
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
20
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
21
|
+
};
|
|
22
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
23
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
24
|
+
};
|
|
25
|
+
import { injectable, inject } from 'inversify';
|
|
26
|
+
import * as crypto from 'crypto';
|
|
27
|
+
import { PLATFORM_RUNTIME_BRIDGE_TYPES, } from '../runtime-bridge/platform-runtime-bridge.contracts.js';
|
|
28
|
+
/**
|
|
29
|
+
* Service to provision Redis ACL and RabbitMQ users
|
|
30
|
+
*/
|
|
31
|
+
let CredentialsProvisionerService = class CredentialsProvisionerService {
|
|
32
|
+
logger;
|
|
33
|
+
logDebug;
|
|
34
|
+
redisClient;
|
|
35
|
+
rabbitMQClient;
|
|
36
|
+
constructor(logger) {
|
|
37
|
+
this.logger = logger;
|
|
38
|
+
this.logDebug = this.logger.debugByType('CredentialsProvisionerService');
|
|
39
|
+
}
|
|
40
|
+
// =====================================================
|
|
41
|
+
// CLIENT INITIALIZATION
|
|
42
|
+
// =====================================================
|
|
43
|
+
/**
|
|
44
|
+
* Set the Redis admin client
|
|
45
|
+
* Must be called before any Redis operations
|
|
46
|
+
*/
|
|
47
|
+
setRedisClient(client) {
|
|
48
|
+
this.redisClient = client;
|
|
49
|
+
this.logDebug('Redis admin client set');
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Set the RabbitMQ management client
|
|
53
|
+
* Must be called before any RabbitMQ operations
|
|
54
|
+
*/
|
|
55
|
+
setRabbitMQClient(client) {
|
|
56
|
+
this.rabbitMQClient = client;
|
|
57
|
+
this.logDebug('RabbitMQ management client set');
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Check if both clients are configured
|
|
61
|
+
*/
|
|
62
|
+
isConfigured() {
|
|
63
|
+
return !!this.redisClient && !!this.rabbitMQClient;
|
|
64
|
+
}
|
|
65
|
+
// =====================================================
|
|
66
|
+
// REDIS ACL OPERATIONS
|
|
67
|
+
// =====================================================
|
|
68
|
+
/**
|
|
69
|
+
* Provision a Redis ACL user (create or update)
|
|
70
|
+
* This is an idempotent operation.
|
|
71
|
+
*/
|
|
72
|
+
async provisionRedisUser(config) {
|
|
73
|
+
if (!this.redisClient) {
|
|
74
|
+
return { success: false, created: false, updated: false, error: 'Redis client not configured' };
|
|
75
|
+
}
|
|
76
|
+
try {
|
|
77
|
+
this.logDebug('Provisioning Redis user', { username: config.username, keyPattern: config.keyPattern });
|
|
78
|
+
// Build ACL rules
|
|
79
|
+
const commands = config.commands || ['GET', 'SET', 'DEL', 'KEYS', 'EXISTS', 'EXPIRE', 'TTL', 'HSET', 'HGET', 'HDEL', 'HGETALL', 'HMSET', 'HMGET', 'SCAN', 'HSCAN'];
|
|
80
|
+
const rules = [
|
|
81
|
+
'on', // Enable user
|
|
82
|
+
`>${config.password}`, // Set password
|
|
83
|
+
`~${config.keyPattern}`, // Key pattern
|
|
84
|
+
'&*', // Pub/sub channels (allow all for now)
|
|
85
|
+
...commands.map(cmd => `+${cmd.toLowerCase()}`),
|
|
86
|
+
];
|
|
87
|
+
await this.redisClient.aclSetUser(config.username, rules);
|
|
88
|
+
this.logger.info(`✅ Redis ACL user provisioned: ${config.username}`);
|
|
89
|
+
return { success: true, created: true, updated: false };
|
|
90
|
+
}
|
|
91
|
+
catch (error) {
|
|
92
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
93
|
+
this.logger.error(`Failed to provision Redis user: ${config.username}`, { error: errorMessage });
|
|
94
|
+
return { success: false, created: false, updated: false, error: errorMessage };
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Delete a Redis ACL user
|
|
99
|
+
*/
|
|
100
|
+
async deleteRedisUser(username) {
|
|
101
|
+
if (!this.redisClient) {
|
|
102
|
+
return { success: false, created: false, updated: false, error: 'Redis client not configured' };
|
|
103
|
+
}
|
|
104
|
+
try {
|
|
105
|
+
this.logDebug('Deleting Redis user', { username });
|
|
106
|
+
await this.redisClient.aclDelUser(username);
|
|
107
|
+
this.logger.info(`✅ Redis ACL user deleted: ${username}`);
|
|
108
|
+
return { success: true, created: false, updated: false };
|
|
109
|
+
}
|
|
110
|
+
catch (error) {
|
|
111
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
112
|
+
this.logger.error(`Failed to delete Redis user: ${username}`, { error: errorMessage });
|
|
113
|
+
return { success: false, created: false, updated: false, error: errorMessage };
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
// =====================================================
|
|
117
|
+
// RABBITMQ OPERATIONS
|
|
118
|
+
// =====================================================
|
|
119
|
+
/**
|
|
120
|
+
* Provision a RabbitMQ user (create or update)
|
|
121
|
+
* This is an idempotent operation.
|
|
122
|
+
*/
|
|
123
|
+
async provisionRabbitMQUser(config) {
|
|
124
|
+
if (!this.rabbitMQClient) {
|
|
125
|
+
return { success: false, created: false, updated: false, error: 'RabbitMQ client not configured' };
|
|
126
|
+
}
|
|
127
|
+
try {
|
|
128
|
+
this.logDebug('Provisioning RabbitMQ user', { username: config.username, vhost: config.vhost });
|
|
129
|
+
// Create/update user
|
|
130
|
+
const tags = config.tags || [];
|
|
131
|
+
await this.rabbitMQClient.putUser(config.username, config.password, tags);
|
|
132
|
+
// Set permissions on vhost
|
|
133
|
+
await this.rabbitMQClient.setPermissions(config.username, config.vhost, config.permissions.configure, config.permissions.write, config.permissions.read);
|
|
134
|
+
this.logger.info(`✅ RabbitMQ user provisioned: ${config.username}`);
|
|
135
|
+
return { success: true, created: true, updated: false };
|
|
136
|
+
}
|
|
137
|
+
catch (error) {
|
|
138
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
139
|
+
this.logger.error(`Failed to provision RabbitMQ user: ${config.username}`, { error: errorMessage });
|
|
140
|
+
return { success: false, created: false, updated: false, error: errorMessage };
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Set topic permissions for a RabbitMQ user
|
|
145
|
+
*/
|
|
146
|
+
async setRabbitMQTopicPermissions(username, vhost, permissions) {
|
|
147
|
+
if (!this.rabbitMQClient) {
|
|
148
|
+
return { success: false, created: false, updated: false, error: 'RabbitMQ client not configured' };
|
|
149
|
+
}
|
|
150
|
+
try {
|
|
151
|
+
this.logDebug('Setting RabbitMQ topic permissions', { username, vhost, exchange: permissions.exchange });
|
|
152
|
+
await this.rabbitMQClient.setTopicPermissions(username, vhost, permissions.exchange, permissions.write, permissions.read);
|
|
153
|
+
this.logger.info(`✅ RabbitMQ topic permissions set for: ${username}`);
|
|
154
|
+
return { success: true, created: false, updated: true };
|
|
155
|
+
}
|
|
156
|
+
catch (error) {
|
|
157
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
158
|
+
this.logger.error(`Failed to set RabbitMQ topic permissions for: ${username}`, { error: errorMessage });
|
|
159
|
+
return { success: false, created: false, updated: false, error: errorMessage };
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Delete a RabbitMQ user
|
|
164
|
+
*/
|
|
165
|
+
async deleteRabbitMQUser(username) {
|
|
166
|
+
if (!this.rabbitMQClient) {
|
|
167
|
+
return { success: false, created: false, updated: false, error: 'RabbitMQ client not configured' };
|
|
168
|
+
}
|
|
169
|
+
try {
|
|
170
|
+
this.logDebug('Deleting RabbitMQ user', { username });
|
|
171
|
+
await this.rabbitMQClient.deleteUser(username);
|
|
172
|
+
this.logger.info(`✅ RabbitMQ user deleted: ${username}`);
|
|
173
|
+
return { success: true, created: false, updated: false };
|
|
174
|
+
}
|
|
175
|
+
catch (error) {
|
|
176
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
177
|
+
this.logger.error(`Failed to delete RabbitMQ user: ${username}`, { error: errorMessage });
|
|
178
|
+
return { success: false, created: false, updated: false, error: errorMessage };
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
// =====================================================
|
|
182
|
+
// COMBINED OPERATIONS
|
|
183
|
+
// =====================================================
|
|
184
|
+
/**
|
|
185
|
+
* Provision a platform service with both Redis and RabbitMQ credentials
|
|
186
|
+
*/
|
|
187
|
+
async provisionServiceCredentials(serviceName, redisConfig, rabbitMQConfig, topicPermissions) {
|
|
188
|
+
this.logDebug('Provisioning service credentials', { serviceName });
|
|
189
|
+
const redisResult = await this.provisionRedisUser(redisConfig);
|
|
190
|
+
const rabbitResult = await this.provisionRabbitMQUser(rabbitMQConfig);
|
|
191
|
+
let topicsResult;
|
|
192
|
+
if (topicPermissions && rabbitResult.success) {
|
|
193
|
+
topicsResult = await this.setRabbitMQTopicPermissions(rabbitMQConfig.username, rabbitMQConfig.vhost, topicPermissions);
|
|
194
|
+
}
|
|
195
|
+
const allSuccess = redisResult.success && rabbitResult.success && (!topicsResult || topicsResult.success);
|
|
196
|
+
if (allSuccess) {
|
|
197
|
+
this.logger.info(`✅ All credentials provisioned for: ${serviceName}`);
|
|
198
|
+
}
|
|
199
|
+
else {
|
|
200
|
+
this.logger.warn(`⚠️ Some credentials failed for: ${serviceName}`, {
|
|
201
|
+
redis: redisResult.success,
|
|
202
|
+
rabbitmq: rabbitResult.success,
|
|
203
|
+
topics: topicsResult?.success,
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
return { redis: redisResult, rabbitmq: rabbitResult, topics: topicsResult };
|
|
207
|
+
}
|
|
208
|
+
// =====================================================
|
|
209
|
+
// CREDENTIAL GENERATION
|
|
210
|
+
// =====================================================
|
|
211
|
+
/**
|
|
212
|
+
* Generate a cryptographically secure random password
|
|
213
|
+
*/
|
|
214
|
+
generateSecurePassword(length = 32) {
|
|
215
|
+
return crypto.randomBytes(length)
|
|
216
|
+
.toString('base64')
|
|
217
|
+
.replace(/[+/=]/g, '')
|
|
218
|
+
.slice(0, length);
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* Generate an EC key pair for JWT signing (P-256 curve)
|
|
222
|
+
*/
|
|
223
|
+
generateECKeyPair() {
|
|
224
|
+
const { privateKey, publicKey } = crypto.generateKeyPairSync('ec', {
|
|
225
|
+
namedCurve: 'P-256',
|
|
226
|
+
publicKeyEncoding: {
|
|
227
|
+
type: 'spki',
|
|
228
|
+
format: 'pem',
|
|
229
|
+
},
|
|
230
|
+
privateKeyEncoding: {
|
|
231
|
+
type: 'sec1',
|
|
232
|
+
format: 'pem',
|
|
233
|
+
},
|
|
234
|
+
});
|
|
235
|
+
return { privateKey, publicKey };
|
|
236
|
+
}
|
|
237
|
+
// =====================================================
|
|
238
|
+
// DEFAULT PERMISSION HELPERS
|
|
239
|
+
// =====================================================
|
|
240
|
+
/**
|
|
241
|
+
* Get default RabbitMQ permissions for a platform service
|
|
242
|
+
*/
|
|
243
|
+
getDefaultRabbitMQPermissions(serviceName) {
|
|
244
|
+
const serviceSlug = serviceName.replace('platform_', '');
|
|
245
|
+
return {
|
|
246
|
+
// Can declare queues/exchanges with their service prefix
|
|
247
|
+
configure: `^wildo\\.platform\\.${serviceSlug}\\..*`,
|
|
248
|
+
// Can publish to their own queues/exchanges
|
|
249
|
+
write: `^wildo\\.platform\\.${serviceSlug}\\..*`,
|
|
250
|
+
// Can consume from their own queues and broadcast
|
|
251
|
+
read: `^(wildo\\.platform\\.${serviceSlug}\\..*|wildo\\.platform\\.broadcast\\..*)`,
|
|
252
|
+
};
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* Get default RabbitMQ topic permissions for a platform service
|
|
256
|
+
*/
|
|
257
|
+
getDefaultTopicPermissions(serviceName) {
|
|
258
|
+
const serviceSlug = serviceName.replace('platform_', '');
|
|
259
|
+
return {
|
|
260
|
+
exchange: 'amq.topic',
|
|
261
|
+
write: `wildo.platform.${serviceSlug}.*`,
|
|
262
|
+
read: `wildo.platform.${serviceSlug}.*`,
|
|
263
|
+
};
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
266
|
+
* Get default Redis key pattern for a platform service
|
|
267
|
+
*/
|
|
268
|
+
getDefaultRedisKeyPattern(serviceName) {
|
|
269
|
+
return `${serviceName}:*`;
|
|
270
|
+
}
|
|
271
|
+
};
|
|
272
|
+
CredentialsProvisionerService = __decorate([
|
|
273
|
+
injectable(),
|
|
274
|
+
__param(0, inject(PLATFORM_RUNTIME_BRIDGE_TYPES.Logger)),
|
|
275
|
+
__metadata("design:paramtypes", [Object])
|
|
276
|
+
], CredentialsProvisionerService);
|
|
277
|
+
export { CredentialsProvisionerService };
|
|
278
|
+
//# sourceMappingURL=credentials-provisioner.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"credentials-provisioner.service.js","sourceRoot":"","sources":["../../../src/credentials/credentials-provisioner.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export * from './project-config/index.js';
|
|
2
|
+
export * from './workspace-scope/index.js';
|
|
3
|
+
export * from './credentials/credential-generator.service.js';
|
|
4
|
+
export * from './schemas/platform-application-config.schemas.js';
|
|
5
|
+
export * from './schemas/platform-application-secrets.schemas.js';
|
|
6
|
+
export * from './schemas/platform-config.schemas.js';
|
|
7
|
+
export * from './schemas/framework-info.schemas.js';
|
|
8
|
+
export * from './schemas/framework-secrets.schemas.js';
|
|
9
|
+
export * from './release/framework-release.constants.js';
|
|
10
|
+
export * from './bootstrap/bootstrap.schemas.js';
|
|
11
|
+
export * from './bootstrap/bootstrap.contracts.js';
|
|
12
|
+
export * from './bootstrap/bootstrap-planner.js';
|
|
13
|
+
export * from './bootstrap/application-backend-env.contracts.js';
|
|
14
|
+
export * from './bootstrap/platform-runtime-env.contracts.js';
|
|
15
|
+
export * from './bootstrap/runtime-topology.contracts.js';
|
|
16
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,4CAA4C,CAAC;AAE3D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,mCAAmC,CAAC;AAClD,cAAc,kCAAkC,CAAC;AACjD,cAAc,qCAAqC,CAAC;AACpD,cAAc,uCAAuC,CAAC;AACtD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+CAA+C,CAAC;AAC9D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,wCAAwC,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export * from './project-config/index.js';
|
|
2
|
+
export * from './workspace-scope/index.js';
|
|
3
|
+
export * from './credentials/credential-generator.service.js';
|
|
4
|
+
export * from './schemas/platform-application-config.schemas.js';
|
|
5
|
+
export * from './schemas/platform-application-secrets.schemas.js';
|
|
6
|
+
export * from './schemas/platform-config.schemas.js';
|
|
7
|
+
export * from './schemas/framework-info.schemas.js';
|
|
8
|
+
export * from './schemas/framework-secrets.schemas.js';
|
|
9
|
+
export * from './release/framework-release.constants.js';
|
|
10
|
+
export * from './bootstrap/bootstrap.schemas.js';
|
|
11
|
+
export * from './bootstrap/bootstrap.contracts.js';
|
|
12
|
+
export * from './bootstrap/bootstrap-planner.js';
|
|
13
|
+
export * from './bootstrap/application-backend-env.contracts.js';
|
|
14
|
+
export * from './bootstrap/platform-runtime-env.contracts.js';
|
|
15
|
+
export * from './bootstrap/runtime-topology.contracts.js';
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,4CAA4C,CAAC;AAE3D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,mCAAmC,CAAC;AAClD,cAAc,kCAAkC,CAAC;AACjD,cAAc,qCAAqC,CAAC;AACpD,cAAc,uCAAuC,CAAC;AACtD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+CAA+C,CAAC;AAC9D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,wCAAwC,CAAC"}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
export interface AtlasApiConfig {
|
|
2
|
+
baseUrl: string;
|
|
3
|
+
publicKey: string;
|
|
4
|
+
privateKey: string;
|
|
5
|
+
projectId: string;
|
|
6
|
+
}
|
|
7
|
+
export interface CreateDatabaseUserInput {
|
|
8
|
+
clusterName: string;
|
|
9
|
+
databaseName: string;
|
|
10
|
+
username: string;
|
|
11
|
+
password: string;
|
|
12
|
+
}
|
|
13
|
+
export interface CreateDatabaseUserResponse {
|
|
14
|
+
username: string;
|
|
15
|
+
groupId: string;
|
|
16
|
+
roles: Array<{
|
|
17
|
+
roleName: string;
|
|
18
|
+
databaseName: string;
|
|
19
|
+
}>;
|
|
20
|
+
scopes?: Array<{
|
|
21
|
+
name: string;
|
|
22
|
+
type: 'CLUSTER';
|
|
23
|
+
}>;
|
|
24
|
+
}
|
|
25
|
+
export interface ClusterConnectionStringInput {
|
|
26
|
+
clusterName: string;
|
|
27
|
+
type?: 'srv' | 'standard';
|
|
28
|
+
}
|
|
29
|
+
export interface ClusterConnectionString {
|
|
30
|
+
connectionString: string;
|
|
31
|
+
}
|
|
32
|
+
export interface ClusterStatusResult {
|
|
33
|
+
state: string;
|
|
34
|
+
healthy: boolean;
|
|
35
|
+
}
|
|
36
|
+
export interface CreateApplicationDatabaseInput {
|
|
37
|
+
clusterName: string;
|
|
38
|
+
databaseName: string;
|
|
39
|
+
username: string;
|
|
40
|
+
password: string;
|
|
41
|
+
}
|
|
42
|
+
export interface CreateApplicationDatabaseResult {
|
|
43
|
+
databaseName: string;
|
|
44
|
+
username: string;
|
|
45
|
+
connectionString: string;
|
|
46
|
+
}
|
|
47
|
+
export interface AtlasClusterInfo {
|
|
48
|
+
name: string;
|
|
49
|
+
stateName: string;
|
|
50
|
+
srvAddress?: string;
|
|
51
|
+
mongoURI?: string;
|
|
52
|
+
mongoURIWithOptions?: string;
|
|
53
|
+
}
|
|
54
|
+
export interface RedisAclAdminConfig {
|
|
55
|
+
adminUrl: string;
|
|
56
|
+
}
|
|
57
|
+
export interface RedisAclUserConfigInput {
|
|
58
|
+
username: string;
|
|
59
|
+
password: string;
|
|
60
|
+
keyPattern: string;
|
|
61
|
+
channelPattern?: string;
|
|
62
|
+
allowCategories?: string[];
|
|
63
|
+
denyCategories?: string[];
|
|
64
|
+
denyCommands?: string[];
|
|
65
|
+
}
|
|
66
|
+
export interface RedisAclUserConfigResult {
|
|
67
|
+
username: string;
|
|
68
|
+
configured: boolean;
|
|
69
|
+
}
|
|
70
|
+
export interface RedisAclDeleteUserResult {
|
|
71
|
+
username: string;
|
|
72
|
+
deleted: boolean;
|
|
73
|
+
}
|
|
74
|
+
export interface RabbitMQAdminConfig {
|
|
75
|
+
managementUrl: string;
|
|
76
|
+
adminUsername: string;
|
|
77
|
+
adminPassword: string;
|
|
78
|
+
}
|
|
79
|
+
export interface RabbitMQUserPermissionsInput {
|
|
80
|
+
vhost: string;
|
|
81
|
+
username: string;
|
|
82
|
+
password: string;
|
|
83
|
+
resourceNameRegex: string;
|
|
84
|
+
topicExchange: string;
|
|
85
|
+
routingKeyRegex: string;
|
|
86
|
+
tags?: string[];
|
|
87
|
+
}
|
|
88
|
+
export interface RabbitMQUserPermissionsResult {
|
|
89
|
+
username: string;
|
|
90
|
+
vhost: string;
|
|
91
|
+
created: boolean;
|
|
92
|
+
permissionsApplied: boolean;
|
|
93
|
+
topicPermissionsApplied: boolean;
|
|
94
|
+
}
|
|
95
|
+
export interface RabbitMQDeleteUserResult {
|
|
96
|
+
username: string;
|
|
97
|
+
deleted: boolean;
|
|
98
|
+
}
|
|
99
|
+
import { PostgreSQLSSLMode } from '@wildo-ai/saas-models';
|
|
100
|
+
export interface PostgreSQLAdminConfig {
|
|
101
|
+
/** Admin connection URL (e.g., postgresql://admin:password@host:5432/postgres) */
|
|
102
|
+
adminUrl: string;
|
|
103
|
+
/** PostgreSQL host (extracted from URL for building app connection strings) */
|
|
104
|
+
host: string;
|
|
105
|
+
/** PostgreSQL port (default: 5432) */
|
|
106
|
+
port?: number;
|
|
107
|
+
/** SSL mode for connections */
|
|
108
|
+
sslMode?: PostgreSQLSSLMode;
|
|
109
|
+
}
|
|
110
|
+
export interface PostgreSQLCreateDatabaseInput {
|
|
111
|
+
/** Database name to create */
|
|
112
|
+
databaseName: string;
|
|
113
|
+
/** Username for the database owner */
|
|
114
|
+
username: string;
|
|
115
|
+
/** Password for the database user */
|
|
116
|
+
password: string;
|
|
117
|
+
/** SSL mode for the generated connection URL */
|
|
118
|
+
sslMode?: PostgreSQLSSLMode;
|
|
119
|
+
}
|
|
120
|
+
export interface PostgreSQLCreateDatabaseResult {
|
|
121
|
+
/** Database name that was created */
|
|
122
|
+
databaseName: string;
|
|
123
|
+
/** Username that was created/updated */
|
|
124
|
+
username: string;
|
|
125
|
+
/** Full PostgreSQL connection URL for the application */
|
|
126
|
+
connectionUrl: string;
|
|
127
|
+
/** Whether the database was newly created (false if it already existed) */
|
|
128
|
+
created: boolean;
|
|
129
|
+
}
|
|
130
|
+
export interface PostgreSQLDeleteDatabaseInput {
|
|
131
|
+
/** Database name to delete */
|
|
132
|
+
databaseName: string;
|
|
133
|
+
/** Username to delete */
|
|
134
|
+
username: string;
|
|
135
|
+
}
|
|
136
|
+
export interface PostgreSQLDeleteDatabaseResult {
|
|
137
|
+
/** Database name */
|
|
138
|
+
databaseName: string;
|
|
139
|
+
/** Username */
|
|
140
|
+
username: string;
|
|
141
|
+
/** Whether the database was deleted */
|
|
142
|
+
databaseDeleted: boolean;
|
|
143
|
+
/** Whether the user was deleted */
|
|
144
|
+
userDeleted: boolean;
|
|
145
|
+
}
|
|
146
|
+
//# sourceMappingURL=infra-manager.models.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"infra-manager.models.d.ts","sourceRoot":"","sources":["../../../src/infra-managers/infra-manager.models.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"infra-manager.models.js","sourceRoot":"","sources":["../../../src/infra-managers/infra-manager.models.ts"],"names":[],"mappings":"AAAA,oDAAoD"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { type PlatformRuntimeLogger } from '../runtime-bridge/platform-runtime-bridge.contracts.js';
|
|
2
|
+
import { AtlasApiConfig, AtlasClusterInfo, ClusterConnectionString, ClusterConnectionStringInput, ClusterStatusResult, CreateApplicationDatabaseInput, CreateApplicationDatabaseResult, CreateDatabaseUserInput, CreateDatabaseUserResponse } from './infra-manager.models.js';
|
|
3
|
+
/**
|
|
4
|
+
* MongoDB Atlas Manager Service
|
|
5
|
+
* Manages MongoDB Atlas clusters, databases, and users via Atlas API
|
|
6
|
+
*/
|
|
7
|
+
export declare class MongoAtlasManagerService {
|
|
8
|
+
private logger;
|
|
9
|
+
private apiClient;
|
|
10
|
+
private config;
|
|
11
|
+
protected logDebug: (message: string, context?: Record<string, unknown>) => void;
|
|
12
|
+
constructor(logger: PlatformRuntimeLogger);
|
|
13
|
+
/**
|
|
14
|
+
* Initialize Atlas API configuration
|
|
15
|
+
*/
|
|
16
|
+
initialize(config: AtlasApiConfig): void;
|
|
17
|
+
/**
|
|
18
|
+
* Check if Atlas API is configured and ready to use
|
|
19
|
+
* @returns true if initialize() has been called with valid config
|
|
20
|
+
*/
|
|
21
|
+
isConfigured(): boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Get cluster information
|
|
24
|
+
*/
|
|
25
|
+
getCluster(clusterName: string): Promise<AtlasClusterInfo>;
|
|
26
|
+
/**
|
|
27
|
+
* List clusters in the Atlas project
|
|
28
|
+
*/
|
|
29
|
+
listClusters(): Promise<AtlasClusterInfo[]>;
|
|
30
|
+
/**
|
|
31
|
+
* Create a database-scoped user with readWrite role on a specific database
|
|
32
|
+
*/
|
|
33
|
+
createDatabaseUser(input: CreateDatabaseUserInput): Promise<CreateDatabaseUserResponse>;
|
|
34
|
+
private ensureUserRoleOnDb;
|
|
35
|
+
/**
|
|
36
|
+
* Delete a database user
|
|
37
|
+
*/
|
|
38
|
+
deleteDatabaseUser(username: string): Promise<void>;
|
|
39
|
+
/**
|
|
40
|
+
* Get connection string for a cluster
|
|
41
|
+
*/
|
|
42
|
+
getConnectionString(input: ClusterConnectionStringInput): Promise<ClusterConnectionString>;
|
|
43
|
+
/**
|
|
44
|
+
* Check cluster status
|
|
45
|
+
*/
|
|
46
|
+
getClusterStatus(clusterName: string): Promise<ClusterStatusResult>;
|
|
47
|
+
/**
|
|
48
|
+
* High-level helper: create per-application database user and return connection string
|
|
49
|
+
* Atlas does not require an explicit DB create; creating a collection or inserting first document creates it.
|
|
50
|
+
* Here we only create the user scoped to the cluster and database.
|
|
51
|
+
*/
|
|
52
|
+
createApplicationDatabase(input: CreateApplicationDatabaseInput): Promise<CreateApplicationDatabaseResult>;
|
|
53
|
+
}
|
|
54
|
+
export interface DigestChallenge {
|
|
55
|
+
realm: string;
|
|
56
|
+
nonce: string;
|
|
57
|
+
qop?: string;
|
|
58
|
+
opaque?: string;
|
|
59
|
+
algorithm?: string;
|
|
60
|
+
}
|
|
61
|
+
export interface MongoAtlasManagerService {
|
|
62
|
+
digestRequest<T = any>(method: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH', path: string, body?: any): Promise<T>;
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=mongo-atlas-manager.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mongo-atlas-manager.service.d.ts","sourceRoot":"","sources":["../../../src/infra-managers/mongo-atlas-manager.service.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,qDAAqD,CAAC;AAC7D,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,uBAAuB,EACvB,4BAA4B,EAC5B,mBAAmB,EACnB,8BAA8B,EAC9B,+BAA+B,EAC/B,uBAAuB,EACvB,0BAA0B,EAC3B,MAAM,wBAAwB,CAAC;AAIhC;;;GAGG;AACH,qBACa,wBAAwB;IAOa,OAAO,CAAC,MAAM;IAN9D,OAAO,CAAC,SAAS,CAAgB;IACjC,OAAO,CAAC,MAAM,CAA+B;IAE7C,SAAS,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;gBAGzB,MAAM,EAAE,qBAAqB;IAerF;;OAEG;IACI,UAAU,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI;IAW/C;;;OAGG;IACI,YAAY,IAAI,OAAO;IAI9B;;OAEG;IACU,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAOvE;;OAEG;IACU,YAAY,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAOxD;;OAEG;IACU,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,0BAA0B,CAAC;YA0CtF,kBAAkB;IAehC;;OAEG;IACU,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMhE;;OAEG;IACU,mBAAmB,CAAC,KAAK,EAAE,4BAA4B,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAYvG;;OAEG;IACU,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAehF;;;;OAIG;IACU,yBAAyB,CAAC,KAAK,EAAE,8BAA8B,GAAG,OAAO,CAAC,+BAA+B,CAAC;CAgCxH;AAUD,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAuDD,MAAM,WAAW,wBAAwB;IACvC,aAAa,CAAC,CAAC,GAAG,GAAG,EAAE,MAAM,EAAE,KAAK,GAAC,MAAM,GAAC,KAAK,GAAC,QAAQ,GAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CAC3G"}
|