@ductape/sdk 0.1.16 → 0.1.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/dist/api/urls.js +10 -0
  2. package/dist/api/urls.js.map +1 -1
  3. package/dist/clients/products.client.js +2 -1
  4. package/dist/clients/products.client.js.map +1 -1
  5. package/dist/cloud/cloud-broker-link.util.js +9 -3
  6. package/dist/cloud/cloud-broker-link.util.js.map +1 -1
  7. package/dist/cloud/cloud-database-link.util.js +12 -5
  8. package/dist/cloud/cloud-database-link.util.js.map +1 -1
  9. package/dist/cloud/cloud-graph-link.util.js +10 -4
  10. package/dist/cloud/cloud-graph-link.util.js.map +1 -1
  11. package/dist/cloud/cloud-service-map.util.js +17 -1
  12. package/dist/cloud/cloud-service-map.util.js.map +1 -1
  13. package/dist/cloud/cloud-vector-link.util.js +9 -3
  14. package/dist/cloud/cloud-vector-link.util.js.map +1 -1
  15. package/dist/cloud/types/cloud.types.d.ts +17 -4
  16. package/dist/cloud/types/cloud.types.js +1 -1
  17. package/dist/products/services/products.service.js +65 -54
  18. package/dist/products/services/products.service.js.map +1 -1
  19. package/dist/products/validators/joi-validators/create.productDatabase.validator.js +5 -0
  20. package/dist/products/validators/joi-validators/create.productDatabase.validator.js.map +1 -1
  21. package/dist/products/validators/joi-validators/create.productGraph.validator.js +27 -16
  22. package/dist/products/validators/joi-validators/create.productGraph.validator.js.map +1 -1
  23. package/dist/products/validators/joi-validators/create.productMessageBrokers.validator.js +10 -1
  24. package/dist/products/validators/joi-validators/create.productMessageBrokers.validator.js.map +1 -1
  25. package/dist/products/validators/joi-validators/create.productVector.validator.js +6 -2
  26. package/dist/products/validators/joi-validators/create.productVector.validator.js.map +1 -1
  27. package/dist/types/processor.types.d.ts +7 -1
  28. package/dist/types/processor.types.js.map +1 -1
  29. package/dist/types/productsBuilder.types.d.ts +22 -0
  30. package/dist/types/productsBuilder.types.js.map +1 -1
  31. package/package.json +1 -1
@@ -1353,15 +1353,12 @@ class ProductsBuilderService {
1353
1353
  const auth = this.getUserAccess();
1354
1354
  const cloudApi = new cloudApi_service_1.CloudApiService(this.env_type);
1355
1355
  const productTag = this.product.tag;
1356
- const materializedEnvs = [];
1357
- for (const env of data.envs || []) {
1358
- materializedEnvs.push(await (0, cloud_broker_link_util_1.materializeCloudLinkedBrokerEnv)(env, {
1359
- cloudApi,
1360
- auth,
1361
- productTag,
1362
- brokerTag: data.tag,
1363
- }));
1364
- }
1356
+ const materializedEnvs = await Promise.all((data.envs || []).map((env) => (0, cloud_broker_link_util_1.materializeCloudLinkedBrokerEnv)(env, {
1357
+ cloudApi,
1358
+ auth,
1359
+ productTag,
1360
+ brokerTag: data.tag,
1361
+ })));
1365
1362
  data.envs = materializedEnvs;
1366
1363
  console.log(`${logPrefix} Validating schema...`);
1367
1364
  await validators_1.CreateMessageBrokerSchema.validateAsync(data);
@@ -1375,10 +1372,12 @@ class ProductsBuilderService {
1375
1372
  throw new Error(`Env ${env.slug} does not exist`);
1376
1373
  }
1377
1374
  console.log(`${logPrefix} Env ${env.slug} exists, verified`);
1378
- // Store sensitive credentials as secrets
1379
- console.log(`${logPrefix} Processing secrets for env: ${env.slug}...`);
1380
- env.config = await this.processMessageBrokerConfigSecrets(env.config, env.type, data.tag, env.slug);
1381
- console.log(`${logPrefix} Secrets processed for env: ${env.slug}`);
1375
+ const isProvisioning = env.provisionStatus === 'provisioning';
1376
+ if (!isProvisioning) {
1377
+ console.log(`${logPrefix} Processing secrets for env: ${env.slug}...`);
1378
+ env.config = await this.processMessageBrokerConfigSecrets(env.config, env.type, data.tag, env.slug);
1379
+ console.log(`${logPrefix} Secrets processed for env: ${env.slug}`);
1380
+ }
1382
1381
  console.log(`${logPrefix} Encrypting config for env: ${env.slug}...`);
1383
1382
  env.config = (0, processor_utils_1.encrypt)(JSON.stringify(env.config), this.product.private_key);
1384
1383
  console.log(`${logPrefix} Config encrypted for env: ${env.slug}`);
@@ -1386,6 +1385,10 @@ class ProductsBuilderService {
1386
1385
  }
1387
1386
  data.envs = processedEnvs;
1388
1387
  console.log(`${logPrefix} All environments processed: ${processedEnvs.length}`);
1388
+ const hasProvisioningEnv = data.envs.some((env) => env.provisionStatus === 'provisioning');
1389
+ if (hasProvisioningEnv) {
1390
+ data.provisionStatus = 'provisioning';
1391
+ }
1389
1392
  const envs = await this.fetchEnvs();
1390
1393
  console.log(`${logPrefix} Product has ${envs.length} environments defined`);
1391
1394
  for (const env of envs) {
@@ -1779,15 +1782,12 @@ class ProductsBuilderService {
1779
1782
  const auth = this.getUserAccess();
1780
1783
  const cloudApi = new cloudApi_service_1.CloudApiService(this.env_type);
1781
1784
  const productTag = this.product.tag;
1782
- const materializedEnvs = [];
1783
- for (const env of data.envs || []) {
1784
- materializedEnvs.push(await (0, cloud_vector_link_util_1.materializeCloudLinkedVectorEnv)(env, {
1785
- cloudApi,
1786
- auth,
1787
- productTag,
1788
- vectorTag: data.tag,
1789
- }));
1790
- }
1785
+ const materializedEnvs = await Promise.all((data.envs || []).map((env) => (0, cloud_vector_link_util_1.materializeCloudLinkedVectorEnv)(env, {
1786
+ cloudApi,
1787
+ auth,
1788
+ productTag,
1789
+ vectorTag: data.tag,
1790
+ })));
1791
1791
  data.envs = materializedEnvs;
1792
1792
  await validators_1.CreateProductVectorSchema.validateAsync(data);
1793
1793
  const processedEnvs = [];
@@ -1796,12 +1796,12 @@ class ProductsBuilderService {
1796
1796
  slug: env.slug,
1797
1797
  hasApiKey: !!env.apiKey,
1798
1798
  hasEndpoint: !!env.endpoint,
1799
+ provisionStatus: env.provisionStatus,
1799
1800
  });
1800
1801
  const exists = await this.fetchEnv(env.slug);
1801
1802
  if (!exists) {
1802
1803
  throw new Error(`Env ${env.slug} does not exist`);
1803
1804
  }
1804
- // Store API key as secret and encrypt
1805
1805
  if (env.apiKey) {
1806
1806
  console.log('[ProductsService.createVector] Converting API key to secret for env:', env.slug);
1807
1807
  const originalApiKey = env.apiKey;
@@ -1830,6 +1830,10 @@ class ProductsBuilderService {
1830
1830
  }
1831
1831
  data.envs = processedEnvs;
1832
1832
  console.log('[ProductsService.createVector] All envs processed, total:', processedEnvs.length);
1833
+ const hasProvisioningEnv = data.envs.some((env) => env.provisionStatus === 'provisioning');
1834
+ if (hasProvisioningEnv) {
1835
+ data.provisionStatus = 'provisioning';
1836
+ }
1833
1837
  const envs = await this.fetchEnvs();
1834
1838
  for (const env of envs) {
1835
1839
  const exists = data.envs.findIndex((vecEnv) => vecEnv.slug === env.slug);
@@ -4239,16 +4243,15 @@ class ProductsBuilderService {
4239
4243
  const auth = this.getUserAccess();
4240
4244
  const cloudApi = new cloudApi_service_1.CloudApiService(this.env_type);
4241
4245
  const productTag = this.product.tag;
4242
- const materializedEnvs = [];
4243
- for (const env of data.envs || []) {
4244
- materializedEnvs.push(await (0, cloud_database_link_util_1.materializeCloudLinkedDatabaseEnv)(env, {
4245
- cloudApi,
4246
- auth,
4247
- productTag,
4248
- databaseTag: data.tag,
4249
- }));
4250
- }
4251
- data.envs = materializedEnvs;
4246
+ data.envs = (await Promise.all((data.envs || []).map(async (env) => (0, cloud_database_link_util_1.materializeCloudLinkedDatabaseEnv)(env, {
4247
+ cloudApi,
4248
+ auth,
4249
+ productTag,
4250
+ databaseTag: data.tag,
4251
+ })))).map((env) => {
4252
+ const _a = env, { masterPassword: _mp, importExisting: _ie } = _a, rest = __rest(_a, ["masterPassword", "importExisting"]);
4253
+ return rest;
4254
+ });
4252
4255
  await validators_1.CreateProductDatabaseSchema.validateAsync(data);
4253
4256
  const processedEnvs = [];
4254
4257
  for (const env of data.envs) {
@@ -4256,10 +4259,16 @@ class ProductsBuilderService {
4256
4259
  if (!exists) {
4257
4260
  throw new Error(`Env ${env.slug} does not exist`);
4258
4261
  }
4259
- env.connection_url = (0, processor_utils_1.encrypt)(env.connection_url, this.product.private_key);
4262
+ if (env.connection_url) {
4263
+ env.connection_url = (0, processor_utils_1.encrypt)(env.connection_url, this.product.private_key);
4264
+ }
4260
4265
  processedEnvs.push(env);
4261
4266
  }
4262
4267
  data.envs = processedEnvs;
4268
+ const hasProvisioningEnv = data.envs.some((env) => env.provisionStatus === 'provisioning');
4269
+ if (hasProvisioningEnv) {
4270
+ data.provisionStatus = 'provisioning';
4271
+ }
4263
4272
  const envs = await this.fetchEnvs();
4264
4273
  for (const env of envs) {
4265
4274
  const exists = data.envs.findIndex((dbEnv) => dbEnv.slug === env.slug);
@@ -4400,15 +4409,12 @@ class ProductsBuilderService {
4400
4409
  const auth = this.getUserAccess();
4401
4410
  const cloudApi = new cloudApi_service_1.CloudApiService(this.env_type);
4402
4411
  const productTag = this.product.tag;
4403
- const materializedEnvs = [];
4404
- for (const env of data.envs || []) {
4405
- materializedEnvs.push(await (0, cloud_graph_link_util_1.materializeCloudLinkedGraphEnv)(env, {
4406
- cloudApi,
4407
- auth,
4408
- productTag,
4409
- graphTag: data.tag,
4410
- }));
4411
- }
4412
+ const materializedEnvs = await Promise.all((data.envs || []).map((env) => (0, cloud_graph_link_util_1.materializeCloudLinkedGraphEnv)(env, {
4413
+ cloudApi,
4414
+ auth,
4415
+ productTag,
4416
+ graphTag: data.tag,
4417
+ })));
4412
4418
  data.envs = materializedEnvs;
4413
4419
  await validators_1.CreateProductGraphSchema.validateAsync(data);
4414
4420
  const processedEnvs = [];
@@ -4418,22 +4424,23 @@ class ProductsBuilderService {
4418
4424
  hasConnectionUrl: !!env.connection_url,
4419
4425
  hasUsername: !!env.username,
4420
4426
  hasPassword: !!env.password,
4427
+ provisionStatus: env.provisionStatus,
4421
4428
  });
4422
4429
  const exists = await this.fetchEnv(env.slug);
4423
4430
  if (!exists) {
4424
4431
  throw new Error(`Env ${env.slug} does not exist`);
4425
4432
  }
4426
- // Store connection URL as secret
4427
- console.log('[ProductsService.createGraph] Converting connection URL to secret for env:', env.slug);
4428
- const originalUrl = env.connection_url;
4429
- env.connection_url = await this.storeGraphConnectionUrlAsSecret(env.connection_url, data.tag, env.slug);
4430
- console.log('[ProductsService.createGraph] Connection URL after secret conversion:', {
4431
- wasConverted: originalUrl !== env.connection_url,
4432
- isSecretRef: (_c = env.connection_url) === null || _c === void 0 ? void 0 : _c.startsWith('$Secret{'),
4433
- });
4434
- env.connection_url = (0, processor_utils_1.encrypt)(env.connection_url, this.product.private_key);
4435
- console.log('[ProductsService.createGraph] Connection URL encrypted');
4436
- // Encrypt username and password if provided
4433
+ if (env.connection_url) {
4434
+ console.log('[ProductsService.createGraph] Converting connection URL to secret for env:', env.slug);
4435
+ const originalUrl = env.connection_url;
4436
+ env.connection_url = await this.storeGraphConnectionUrlAsSecret(env.connection_url, data.tag, env.slug);
4437
+ console.log('[ProductsService.createGraph] Connection URL after secret conversion:', {
4438
+ wasConverted: originalUrl !== env.connection_url,
4439
+ isSecretRef: (_c = env.connection_url) === null || _c === void 0 ? void 0 : _c.startsWith('$Secret{'),
4440
+ });
4441
+ env.connection_url = (0, processor_utils_1.encrypt)(env.connection_url, this.product.private_key);
4442
+ console.log('[ProductsService.createGraph] Connection URL encrypted');
4443
+ }
4437
4444
  if (env.username) {
4438
4445
  console.log('[ProductsService.createGraph] Encrypting username for env:', env.slug);
4439
4446
  env.username = (0, processor_utils_1.encrypt)(env.username, this.product.private_key);
@@ -4447,6 +4454,10 @@ class ProductsBuilderService {
4447
4454
  }
4448
4455
  data.envs = processedEnvs;
4449
4456
  console.log('[ProductsService.createGraph] All envs processed, total:', processedEnvs.length);
4457
+ const hasProvisioningEnv = data.envs.some((env) => env.provisionStatus === 'provisioning');
4458
+ if (hasProvisioningEnv) {
4459
+ data.provisionStatus = 'provisioning';
4460
+ }
4450
4461
  const envs = await this.fetchEnvs();
4451
4462
  for (const env of envs) {
4452
4463
  const exists = data.envs.findIndex((graphEnv) => graphEnv.slug === env.slug);