@c8y/toolkit 1021.67.0 → 1021.71.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/dist/cli.js CHANGED
@@ -4,8 +4,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
4
4
  const commander_1 = require("commander");
5
5
  const deploy_1 = require("./commands/deploy");
6
6
  const package_json_1 = require("./../package.json");
7
+ const create_tenant_1 = require("./commands/create-tenant");
7
8
  const program = new commander_1.Command();
8
9
  program.name(package_json_1.name).description(package_json_1.description).version(package_json_1.version);
9
10
  (0, deploy_1.registerDeployCommand)(program);
11
+ (0, create_tenant_1.registerCreateTenantCommand)(program);
10
12
  program.parseAsync(process.argv);
11
13
  //# sourceMappingURL=cli.js.map
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;AAEA,yCAAoC;AACpC,8CAA0D;AAC1D,oDAA+D;AAE/D,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAC9B,OAAO,CAAC,IAAI,CAAC,mBAAI,CAAC,CAAC,WAAW,CAAC,0BAAW,CAAC,CAAC,OAAO,CAAC,sBAAO,CAAC,CAAC;AAC7D,IAAA,8BAAqB,EAAC,OAAO,CAAC,CAAC;AAE/B,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;AAEA,yCAAoC;AACpC,8CAA0D;AAC1D,oDAA+D;AAC/D,4DAAuE;AAEvE,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAC9B,OAAO,CAAC,IAAI,CAAC,mBAAI,CAAC,CAAC,WAAW,CAAC,0BAAW,CAAC,CAAC,OAAO,CAAC,sBAAO,CAAC,CAAC;AAC7D,IAAA,8BAAqB,EAAC,OAAO,CAAC,CAAC;AAC/B,IAAA,2CAA2B,EAAC,OAAO,CAAC,CAAC;AAErC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerCreateTenantCommand(program: Command): void;
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.registerCreateTenantCommand = registerCreateTenantCommand;
4
+ const constants_1 = require("../constants");
5
+ const helpers_1 = require("../utils/helpers");
6
+ const create_tenant_1 = require("../utils/create-tenant");
7
+ function registerCreateTenantCommand(program) {
8
+ program
9
+ .command('create-tenant')
10
+ .description('Creates a new subtenant.')
11
+ .requiredOption('-u, --url <URL>', constants_1.OPTIONS_CONSTANTS['TXT.URL'], (0, helpers_1.getFromEnvVar)('C8Y_URL'))
12
+ .requiredOption('-U, --user <user>', constants_1.OPTIONS_CONSTANTS['TXT.USERNAME'], (0, helpers_1.getFromEnvVar)('C8Y_USER'))
13
+ .requiredOption('-P, --password <password>', constants_1.OPTIONS_CONSTANTS['TXT.PASSWORD'], (0, helpers_1.getFromEnvVar)('C8Y_PASSWORD'))
14
+ .option('-t, --tenant <tenant>', constants_1.OPTIONS_CONSTANTS['TXT.TENANT'], (0, helpers_1.getFromEnvVar)('C8Y_TENANT'))
15
+ .option('--tenantsNumber <n>', 'The number of tenants to be created, default to 1.', parseInt)
16
+ .option('--tenantUser [value]', 'Username of the created tenant(s).')
17
+ .option('--tenantPassword [value]', 'Password of the created tenant(s).')
18
+ .option('--domainNamePrefix [value]', 'The tenant name value')
19
+ .option('--allowCreateTenants [value]', 'If the created tenant(s) should be allowed to create subtenants', true)
20
+ .option('--companyName [value]', 'A scope is added as the company name', 'e2eTesting tenant')
21
+ .option('--noTenantSuffix [value]', 'If set to true, there will be no number attached to the tenant name', false)
22
+ .option('--contactName [value]', 'The tenants contact name.', 'Mr. Smith')
23
+ .option('--contactPhone [value]', 'The tenants contact phone.', '+48123456789')
24
+ .option('--applicationsToBeSubscribed [value]', 'A comma separated list of applications names to be subscribed', '')
25
+ .action(async (options) => {
26
+ try {
27
+ await (0, create_tenant_1.createTenant)(options);
28
+ }
29
+ catch (e) {
30
+ console.error('Failed to create tenant');
31
+ console.error(e);
32
+ throw e;
33
+ }
34
+ });
35
+ }
36
+ //# sourceMappingURL=create-tenant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-tenant.js","sourceRoot":"","sources":["../../src/commands/create-tenant.ts"],"names":[],"mappings":";;AAKA,kEAgDC;AApDD,4CAAiD;AACjD,8CAAiD;AACjD,0DAAsD;AAEtD,SAAgB,2BAA2B,CAAC,OAAgB;IAC1D,OAAO;SACJ,OAAO,CAAC,eAAe,CAAC;SACxB,WAAW,CAAC,0BAA0B,CAAC;SACvC,cAAc,CAAC,iBAAiB,EAAE,6BAAiB,CAAC,SAAS,CAAC,EAAE,IAAA,uBAAa,EAAC,SAAS,CAAC,CAAC;SACzF,cAAc,CACb,mBAAmB,EACnB,6BAAiB,CAAC,cAAc,CAAC,EACjC,IAAA,uBAAa,EAAC,UAAU,CAAC,CAC1B;SACA,cAAc,CACb,2BAA2B,EAC3B,6BAAiB,CAAC,cAAc,CAAC,EACjC,IAAA,uBAAa,EAAC,cAAc,CAAC,CAC9B;SACA,MAAM,CAAC,uBAAuB,EAAE,6BAAiB,CAAC,YAAY,CAAC,EAAE,IAAA,uBAAa,EAAC,YAAY,CAAC,CAAC;SAC7F,MAAM,CAAC,qBAAqB,EAAE,oDAAoD,EAAE,QAAQ,CAAC;SAC7F,MAAM,CAAC,sBAAsB,EAAE,oCAAoC,CAAC;SACpE,MAAM,CAAC,0BAA0B,EAAE,oCAAoC,CAAC;SACxE,MAAM,CAAC,4BAA4B,EAAE,uBAAuB,CAAC;SAC7D,MAAM,CACL,8BAA8B,EAC9B,iEAAiE,EACjE,IAAI,CACL;SACA,MAAM,CAAC,uBAAuB,EAAE,sCAAsC,EAAE,mBAAmB,CAAC;SAC5F,MAAM,CACL,0BAA0B,EAC1B,qEAAqE,EACrE,KAAK,CACN;SACA,MAAM,CAAC,uBAAuB,EAAE,2BAA2B,EAAE,WAAW,CAAC;SACzE,MAAM,CAAC,wBAAwB,EAAE,4BAA4B,EAAE,cAAc,CAAC;SAC9E,MAAM,CACL,sCAAsC,EACtC,+DAA+D,EAC/D,EAAE,CACH;SAEA,MAAM,CAAC,KAAK,EAAC,OAAO,EAAC,EAAE;QACtB,IAAI,CAAC;YACH,MAAM,IAAA,4BAAY,EAAC,OAAO,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;YACzC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACjB,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -4,28 +4,16 @@ exports.registerDeployCommand = registerDeployCommand;
4
4
  const deploy_1 = require("../utils/deploy");
5
5
  const constants_1 = require("../constants");
6
6
  const client_1 = require("@c8y/client");
7
- const environmentVariables = {
8
- C8Y_URL: 'C8Y_URL',
9
- C8Y_PASSWORD: 'C8Y_PASSWORD',
10
- C8Y_USER: 'C8Y_USER',
11
- C8Y_TENANT: 'C8Y_TENANT'
12
- };
13
- function getFromEnvVar(envVar) {
14
- const envValue = process.env[envVar];
15
- if (envValue) {
16
- console.log(`Using value passed via environment variable ${envVar}.`);
17
- }
18
- return envValue;
19
- }
7
+ const helpers_1 = require("../utils/helpers");
20
8
  function registerDeployCommand(program) {
21
9
  program
22
10
  .command('deploy')
23
11
  .description('Deploy application to Cumulocity')
24
12
  .argument('<zipFile>', 'Path to zip file')
25
- .requiredOption('-u, --url <URL>', constants_1.OPTIONS_CONSTANTS['TXT.URL'], getFromEnvVar('C8Y_URL'))
26
- .requiredOption('-U, --user <user>', constants_1.OPTIONS_CONSTANTS['TXT.USERNAME'], getFromEnvVar('C8Y_USER'))
27
- .requiredOption('-P, --password <password>', constants_1.OPTIONS_CONSTANTS['TXT.PASSWORD'], getFromEnvVar('C8Y_PASSWORD'))
28
- .option('-t, --tenant <tenant>', constants_1.OPTIONS_CONSTANTS['TXT.TENANT'], getFromEnvVar('C8Y_TENANT'))
13
+ .requiredOption('-u, --url <URL>', constants_1.OPTIONS_CONSTANTS['TXT.URL'], (0, helpers_1.getFromEnvVar)('C8Y_URL'))
14
+ .requiredOption('-U, --user <user>', constants_1.OPTIONS_CONSTANTS['TXT.USERNAME'], (0, helpers_1.getFromEnvVar)('C8Y_USER'))
15
+ .requiredOption('-P, --password <password>', constants_1.OPTIONS_CONSTANTS['TXT.PASSWORD'], (0, helpers_1.getFromEnvVar)('C8Y_PASSWORD'))
16
+ .option('-t, --tenant <tenant>', constants_1.OPTIONS_CONSTANTS['TXT.TENANT'], (0, helpers_1.getFromEnvVar)('C8Y_TENANT'))
29
17
  .option('--tags <tags>', 'Comma separated list of tags to apply to the uploaded version')
30
18
  .option('--rolling-tags', 'Will remove tags that are already in use by previous version and adds them to the newly uploaded version')
31
19
  .option('--add-web-sdk-stable-tag', 'Add web SDK stable tag')
@@ -1 +1 @@
1
- {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":";;AAoBA,sDAqCC;AAxDD,4CAAgD;AAChD,4CAAiD;AACjD,wCAAsD;AAEtD,MAAM,oBAAoB,GAAG;IAC3B,OAAO,EAAE,SAAS;IAClB,YAAY,EAAE,cAAc;IAC5B,QAAQ,EAAE,UAAU;IACpB,UAAU,EAAE,YAAY;CACzB,CAAC;AAEF,SAAS,aAAa,CAAC,MAAyC;IAC9D,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACrC,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,+CAA+C,MAAM,GAAG,CAAC,CAAC;IACxE,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAgB,qBAAqB,CAAC,OAAgB;IACpD,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,kCAAkC,CAAC;SAC/C,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAC;SACzC,cAAc,CAAC,iBAAiB,EAAE,6BAAiB,CAAC,SAAS,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;SACzF,cAAc,CACb,mBAAmB,EACnB,6BAAiB,CAAC,cAAc,CAAC,EACjC,aAAa,CAAC,UAAU,CAAC,CAC1B;SACA,cAAc,CACb,2BAA2B,EAC3B,6BAAiB,CAAC,cAAc,CAAC,EACjC,aAAa,CAAC,cAAc,CAAC,CAC9B;SACA,MAAM,CAAC,uBAAuB,EAAE,6BAAiB,CAAC,YAAY,CAAC,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;SAC7F,MAAM,CAAC,eAAe,EAAE,+DAA+D,CAAC;SACxF,MAAM,CACL,gBAAgB,EAChB,0GAA0G,CAC3G;SACA,MAAM,CAAC,0BAA0B,EAAE,wBAAwB,CAAC;SAC5D,MAAM,CAAC,wBAAwB,EAAE,sBAAsB,CAAC;SACxD,MAAM,CACL,kCAAkC,EAClC,6CAA6C,gCAAuB,CAAC,OAAO,OAAO,gCAAuB,CAAC,MAAM,SAAS,gCAAuB,CAAC,MAAM,GAAG,CAC5J;SACA,MAAM,CAAC,KAAK,EAAE,OAAe,EAAE,OAAO,EAAE,EAAE;QACzC,IAAI,CAAC;YACH,MAAM,IAAA,sBAAa,EAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;YAC9C,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACjB,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":";;AAMA,sDAqCC;AA1CD,4CAAgD;AAChD,4CAAiD;AACjD,wCAAsD;AACtD,8CAAiD;AAEjD,SAAgB,qBAAqB,CAAC,OAAgB;IACpD,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,kCAAkC,CAAC;SAC/C,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAC;SACzC,cAAc,CAAC,iBAAiB,EAAE,6BAAiB,CAAC,SAAS,CAAC,EAAE,IAAA,uBAAa,EAAC,SAAS,CAAC,CAAC;SACzF,cAAc,CACb,mBAAmB,EACnB,6BAAiB,CAAC,cAAc,CAAC,EACjC,IAAA,uBAAa,EAAC,UAAU,CAAC,CAC1B;SACA,cAAc,CACb,2BAA2B,EAC3B,6BAAiB,CAAC,cAAc,CAAC,EACjC,IAAA,uBAAa,EAAC,cAAc,CAAC,CAC9B;SACA,MAAM,CAAC,uBAAuB,EAAE,6BAAiB,CAAC,YAAY,CAAC,EAAE,IAAA,uBAAa,EAAC,YAAY,CAAC,CAAC;SAC7F,MAAM,CAAC,eAAe,EAAE,+DAA+D,CAAC;SACxF,MAAM,CACL,gBAAgB,EAChB,0GAA0G,CAC3G;SACA,MAAM,CAAC,0BAA0B,EAAE,wBAAwB,CAAC;SAC5D,MAAM,CAAC,wBAAwB,EAAE,sBAAsB,CAAC;SACxD,MAAM,CACL,kCAAkC,EAClC,6CAA6C,gCAAuB,CAAC,OAAO,OAAO,gCAAuB,CAAC,MAAM,SAAS,gCAAuB,CAAC,MAAM,GAAG,CAC5J;SACA,MAAM,CAAC,KAAK,EAAE,OAAe,EAAE,OAAO,EAAE,EAAE;QACzC,IAAI,CAAC;YACH,MAAM,IAAA,sBAAa,EAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;YAC9C,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACjB,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -20,8 +20,8 @@ async function createClient({ user, password, url: baseUrl, tenant }) {
20
20
  return await client_1.Client.authenticate(basicAuth, baseUrl);
21
21
  }
22
22
  catch (ex) {
23
- console.debug(ex);
24
- throw new Error(constants_1.OPTIONS_CONSTANTS['TXT.INVALID_CREDENTIALS_BASEURL'](basicAuth.baseUrl));
23
+ console.log(ex);
24
+ throw new Error(constants_1.OPTIONS_CONSTANTS['TXT.INVALID_CREDENTIALS_BASEURL'](baseUrl));
25
25
  }
26
26
  }
27
27
  async function ensureUserHasRequiredPermissions(client) {
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/utils/client.ts"],"names":[],"mappings":";;AASA,oCAiBC;AAED,4EAKC;AAjCD,wCAAmD;AACnD,4CAAiD;AAEjD;;;;;GAKG;AACI,KAAK,UAAU,YAAY,CAAC,EACjC,IAAI,EACJ,QAAQ,EACR,GAAG,EAAE,OAAO,EACZ,MAAM,EACyB;IAC/B,MAAM,SAAS,GAAiB;QAC9B,IAAI;QACJ,QAAQ;QACR,MAAM;KACP,CAAC;IACF,IAAI,CAAC;QACH,OAAO,MAAM,eAAM,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;IAAC,OAAO,EAAE,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,6BAAiB,CAAC,iCAAiC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3F,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,gCAAgC,CAAC,MAAc;IACnE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;IAC1D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,mCAAmC,CAAC,EAAE,CAAC;QAC3E,MAAM,IAAI,KAAK,CAAC,6BAAiB,CAAC,sCAAsC,CAAC,CAAC,CAAC;IAC7E,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/utils/client.ts"],"names":[],"mappings":";;AASA,oCAiBC;AAED,4EAKC;AAjCD,wCAAmD;AACnD,4CAAiD;AAEjD;;;;;GAKG;AACI,KAAK,UAAU,YAAY,CAAC,EACjC,IAAI,EACJ,QAAQ,EACR,GAAG,EAAE,OAAO,EACZ,MAAM,EACyB;IAC/B,MAAM,SAAS,GAAiB;QAC9B,IAAI;QACJ,QAAQ;QACR,MAAM;KACP,CAAC;IACF,IAAI,CAAC;QACH,OAAO,MAAM,eAAM,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;IAAC,OAAO,EAAE,EAAE,CAAC;QACZ,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,6BAAiB,CAAC,iCAAiC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IACjF,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,gCAAgC,CAAC,MAAc;IACnE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;IAC1D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,mCAAmC,CAAC,EAAE,CAAC;QAC3E,MAAM,IAAI,KAAK,CAAC,6BAAiB,CAAC,sCAAsC,CAAC,CAAC,CAAC;IAC7E,CAAC;AACH,CAAC"}
@@ -0,0 +1,16 @@
1
+ export declare function createTenant(options: {
2
+ user: string;
3
+ password: string;
4
+ url: string;
5
+ tenant?: string;
6
+ domainNamePrefix?: string;
7
+ allowCreateTenants: boolean;
8
+ applicationsToBeSubscribed: string;
9
+ companyName: string;
10
+ contactName: string;
11
+ tenantsNumber?: number;
12
+ tenantUser?: string;
13
+ tenantPassword?: string;
14
+ noTenantSuffix?: boolean;
15
+ contactPhone: string;
16
+ }): Promise<void>;
@@ -0,0 +1,142 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.createTenant = createTenant;
7
+ const client_1 = require("@c8y/client");
8
+ const client_2 = require("./client");
9
+ const chalk_1 = __importDefault(require("chalk"));
10
+ const lodash_1 = require("lodash");
11
+ async function createTenant(options) {
12
+ const { user, password, url, tenant } = options;
13
+ const client = await (0, client_2.createClient)({ user, password, url, tenant });
14
+ console.log(chalk_1.default.green('Provided credentials are valid.'));
15
+ if (!options.domainNamePrefix) {
16
+ options.domainNamePrefix = crypto.randomUUID();
17
+ }
18
+ const matches = url.match(/\.([a-zA-Z0-9\.\-_]*)/);
19
+ if (!matches || matches.length < 1) {
20
+ throw new Error('Invalid URL format.');
21
+ }
22
+ const baseDomain = matches[1];
23
+ const adminName = options.tenantUser || user;
24
+ const adminPass = options.tenantPassword || password;
25
+ for (let i = 0; i < (options.tenantsNumber || 1); i++) {
26
+ const newDomain = `${options.domainNamePrefix}${options.noTenantSuffix === false ? i + 1 : ''}.${baseDomain}`;
27
+ let { data: tenant } = await client.tenant.create({
28
+ company: options.companyName,
29
+ contactName: options.contactName,
30
+ contactPhone: options.contactPhone,
31
+ adminName,
32
+ adminPass,
33
+ adminEmail: 'e2edocker@cumulocity.com',
34
+ domain: newDomain
35
+ });
36
+ console.log(chalk_1.default.green(`Tenant ${tenant.domain} (${tenant.id}) created successfully.`));
37
+ if (options.allowCreateTenants) {
38
+ tenant = await makeItAnEnterpriseTenant(client, tenant);
39
+ }
40
+ await subscribeMicroservices(client, tenant, options.applicationsToBeSubscribed.split(','));
41
+ const subtenantClientInstance = await client_1.Client.authenticate({
42
+ user: adminName,
43
+ password: adminPass,
44
+ tenant: tenant.id
45
+ }, url);
46
+ await addPermissionsToAdminRole(subtenantClientInstance);
47
+ }
48
+ }
49
+ function sleep(ms) {
50
+ return new Promise(resolve => setTimeout(resolve, ms));
51
+ }
52
+ async function makeItAnEnterpriseTenant(client, tenant) {
53
+ const { data: updatedTenant } = await client.tenant.update({
54
+ id: tenant.id,
55
+ allowCreateTenants: true,
56
+ customProperties: {
57
+ gainsightEnabled: true
58
+ }
59
+ });
60
+ console.log(`Tenant ${updatedTenant.domain} (${updatedTenant.id}) is now allowed to create subtenants.`);
61
+ return updatedTenant;
62
+ }
63
+ async function subscribeMicroservices(client, tenant, applicationsToBeSubscribed) {
64
+ const { data: applications } = await client.application.listByOwner('management', {
65
+ pageSize: 2000
66
+ });
67
+ applicationsToBeSubscribed = applicationsToBeSubscribed
68
+ .map(appName => appName.trim())
69
+ .filter(appName => appName.length > 0);
70
+ const applicationsToSubscribe = applications.filter(app => app.name && applicationsToBeSubscribed.includes(app.name));
71
+ if (applicationsToSubscribe.length < applicationsToBeSubscribed.length) {
72
+ const missingApps = applicationsToBeSubscribed.filter(appName => !applicationsToSubscribe.some(app => app.name === appName));
73
+ console.warn(chalk_1.default.yellow(`The following applications were not found: ${missingApps.join(', ')} and will not be subscribed.`));
74
+ }
75
+ if (applicationsToSubscribe.length === 0) {
76
+ console.log(chalk_1.default.green('No applications to subscribe.'));
77
+ return;
78
+ }
79
+ for (const app of applicationsToSubscribe) {
80
+ if (tenant.applications?.references.some(ref => ref.application.id === app.id)) {
81
+ console.log(`Tenant ${tenant.domain} is already subscribed to application ${app.name} (${app.id}).`);
82
+ continue;
83
+ }
84
+ await client.tenant.subscribeApplication(tenant, app);
85
+ console.log(chalk_1.default.green(`Subscribed tenant ${tenant.domain} to application ${app.name} (${app.id}).`));
86
+ }
87
+ }
88
+ async function getPermissionsOfTenant(client) {
89
+ const { data: permissions } = await client.userRole.list({ pageSize: 2000 });
90
+ const permissionIds = permissions.map(permission => permission.id);
91
+ return { permissions, permissionIds };
92
+ }
93
+ /**
94
+ * Ensures that all permissions of all applications are available in the tenant.
95
+ * This is necessary because the permissions are not available immediately after creating a tenant and subscribing applications.
96
+ * Permissions of applications might be created asynchronously.
97
+ */
98
+ async function ensureAllPermissionsOfAppsAreAvailable(client) {
99
+ const { data: apps } = await client.application.list({ pageSize: 2000 });
100
+ const permissionsOfApps = (0, lodash_1.uniq)(apps.map(app => app.roles || []).flat());
101
+ let permissions = [];
102
+ let permissionIds = [];
103
+ const maxIterations = 20;
104
+ let currentIteration = 1;
105
+ while (true) {
106
+ const { permissions: permissionsOfTenant, permissionIds: permissionIdsOfTenant } = await getPermissionsOfTenant(client);
107
+ const missingPermissions = permissionsOfApps.filter(permission => !permissionIdsOfTenant.includes(permission));
108
+ if (missingPermissions.length === 0) {
109
+ permissions = permissionsOfTenant;
110
+ permissionIds = permissionIdsOfTenant;
111
+ break;
112
+ }
113
+ console.log(chalk_1.default.yellow(`Not all permissions of all applications are yet available.`));
114
+ console.log(chalk_1.default.yellow(`The following permissions are missing: ${missingPermissions.join(', ')}`));
115
+ if (currentIteration >= maxIterations) {
116
+ throw new Error(`Permissions of applications are not yet available. The follwing permissions are missing: ${missingPermissions.join(', ')}`);
117
+ }
118
+ console.log(chalk_1.default.yellow(`Waiting for one second before retrying...`));
119
+ await sleep(1000);
120
+ currentIteration++;
121
+ }
122
+ return { permissions, permissionIds };
123
+ }
124
+ async function addPermissionsToAdminRole(client) {
125
+ const { permissions, permissionIds } = await ensureAllPermissionsOfAppsAreAvailable(client);
126
+ const { data: allUserGroups } = await client.userGroup.list({ pagePize: 2000 });
127
+ const adminUserGroup = allUserGroups.find(group => group.name === 'admins');
128
+ if (!adminUserGroup) {
129
+ throw new Error('Admin user group not found');
130
+ }
131
+ const alreadyAssignedPermissions = adminUserGroup.roles?.references.map(role => role.role.id) || [];
132
+ const permissionsToAdd = permissionIds.filter(permission => !alreadyAssignedPermissions.includes(permission));
133
+ if (permissionsToAdd.length === 0) {
134
+ console.log(chalk_1.default.green('No new permissions to add to admin user group.'));
135
+ return;
136
+ }
137
+ for (const permission of permissionsToAdd) {
138
+ await client.userGroup.addRoleToGroup(adminUserGroup, permissions.find(p => p.id === permission));
139
+ console.log(chalk_1.default.green(`Permission ${permission} added to admin user group.`));
140
+ }
141
+ }
142
+ //# sourceMappingURL=create-tenant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-tenant.js","sourceRoot":"","sources":["../../src/utils/create-tenant.ts"],"names":[],"mappings":"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"}
@@ -23,3 +23,11 @@ export declare function getName(appData: IManifest, fallbackStr?: string): strin
23
23
  */
24
24
  export declare function getKey(appData: IManifest, name: string): string;
25
25
  export declare function getContextPath(appData: IManifest, name: string): string;
26
+ declare const environmentVariables: {
27
+ C8Y_URL: string;
28
+ C8Y_PASSWORD: string;
29
+ C8Y_USER: string;
30
+ C8Y_TENANT: string;
31
+ };
32
+ export declare function getFromEnvVar(envVar: keyof typeof environmentVariables): string | undefined;
33
+ export {};
@@ -4,6 +4,7 @@ exports.dataToAppData = dataToAppData;
4
4
  exports.getName = getName;
5
5
  exports.getKey = getKey;
6
6
  exports.getContextPath = getContextPath;
7
+ exports.getFromEnvVar = getFromEnvVar;
7
8
  const lodash_1 = require("lodash");
8
9
  /**
9
10
  * Converts the provided file data to application data.
@@ -41,4 +42,17 @@ function getKey(appData, name) {
41
42
  function getContextPath(appData, name) {
42
43
  return (0, lodash_1.get)(appData, 'contextPath', name.toLowerCase());
43
44
  }
45
+ const environmentVariables = {
46
+ C8Y_URL: 'C8Y_URL',
47
+ C8Y_PASSWORD: 'C8Y_PASSWORD',
48
+ C8Y_USER: 'C8Y_USER',
49
+ C8Y_TENANT: 'C8Y_TENANT'
50
+ };
51
+ function getFromEnvVar(envVar) {
52
+ const envValue = process.env[envVar];
53
+ if (envValue) {
54
+ console.log(`Using value passed via environment variable ${envVar}.`);
55
+ }
56
+ return envValue;
57
+ }
44
58
  //# sourceMappingURL=helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/utils/helpers.ts"],"names":[],"mappings":";;AASA,sCAEC;AAQD,0BAEC;AAQD,wBAOC;AAED,wCAEC;AAvCD,mCAAwC;AAExC;;;;;GAKG;AACH,SAAgB,aAAa,CAAC,QAAa;IACzC,OAAO,QAAQ,CAAC,GAAG,IAAI,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC;AACxF,CAAC;AACD;;;;;;GAMG;AACH,SAAgB,OAAO,CAAC,OAAkB,EAAE,WAAW,GAAG,EAAE;IAC1D,OAAO,IAAA,YAAG,EAAC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;AAC3C,CAAC;AACD;;;;;;GAMG;AACH,SAAgB,MAAM,CAAC,OAAkB,EAAE,IAAY;IACrD,IAAI,GAAG,GAAG,IAAA,YAAG,EAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC9B,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,GAAG,GAAG,GAAG,IAAA,kBAAS,EAAC,IAAI,CAAC,MAAM,CAAC;IACjC,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAgB,cAAc,CAAC,OAAkB,EAAE,IAAY;IAC7D,OAAO,IAAA,YAAG,EAAC,OAAO,EAAE,aAAa,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;AACzD,CAAC"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/utils/helpers.ts"],"names":[],"mappings":";;AASA,sCAEC;AAQD,0BAEC;AAQD,wBAOC;AAED,wCAEC;AASD,sCAMC;AAtDD,mCAAwC;AAExC;;;;;GAKG;AACH,SAAgB,aAAa,CAAC,QAAa;IACzC,OAAO,QAAQ,CAAC,GAAG,IAAI,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC;AACxF,CAAC;AACD;;;;;;GAMG;AACH,SAAgB,OAAO,CAAC,OAAkB,EAAE,WAAW,GAAG,EAAE;IAC1D,OAAO,IAAA,YAAG,EAAC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;AAC3C,CAAC;AACD;;;;;;GAMG;AACH,SAAgB,MAAM,CAAC,OAAkB,EAAE,IAAY;IACrD,IAAI,GAAG,GAAG,IAAA,YAAG,EAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC9B,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,GAAG,GAAG,GAAG,IAAA,kBAAS,EAAC,IAAI,CAAC,MAAM,CAAC;IACjC,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAgB,cAAc,CAAC,OAAkB,EAAE,IAAY;IAC7D,OAAO,IAAA,YAAG,EAAC,OAAO,EAAE,aAAa,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,oBAAoB,GAAG;IAC3B,OAAO,EAAE,SAAS;IAClB,YAAY,EAAE,cAAc;IAC5B,QAAQ,EAAE,UAAU;IACpB,UAAU,EAAE,YAAY;CACzB,CAAC;AAEF,SAAgB,aAAa,CAAC,MAAyC;IACrE,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACrC,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,+CAA+C,MAAM,GAAG,CAAC,CAAC;IACxE,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@c8y/toolkit",
3
- "version": "1021.67.0",
3
+ "version": "1021.71.0",
4
4
  "license": "Apache-2.0",
5
5
  "author": "Cumulocity GmbH",
6
6
  "description": "Toolkit for Cumulocity applications, allows to e.g. deploy an application to an instance of Cumulocity.",
@@ -18,7 +18,7 @@
18
18
  "m2m"
19
19
  ],
20
20
  "dependencies": {
21
- "@c8y/client": "1021.67.0",
21
+ "@c8y/client": "1021.71.0",
22
22
  "chalk": "^4.1.2",
23
23
  "commander": "13.1.0",
24
24
  "lodash": "4.17.21",