@axinom/mosaic-cli 0.20.0-rc.24 → 0.20.0-rc.26

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.
@@ -28,19 +28,9 @@ const piletRegister = {
28
28
  describe: 'Client Secret to authenticate',
29
29
  alias: 's',
30
30
  string: true,
31
- })
32
- .option('tenantId', {
33
- describe: 'Tenant ID',
34
- alias: 't',
35
- string: true,
36
- })
37
- .option('environmentId', {
38
- describe: 'Environment ID',
39
- alias: 'e',
40
- string: true,
41
31
  })
42
32
  .option('piletArtifactPath', {
43
- describe: 'Pilet Artifact Path',
33
+ describe: 'Path to the pilet artifact .tgz file or a directory containing the .tgz file',
44
34
  alias: 'p',
45
35
  string: true,
46
36
  })
@@ -63,8 +53,13 @@ const piletRegister = {
63
53
  },
64
54
  handler: (args) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
65
55
  // Validate arguments and read any arguments that are coming from environment variables.
66
- const validatedArgs = (0, register_pilet_1.validateArgs)(args);
67
- yield (0, register_pilet_1.registerPilet)(validatedArgs);
56
+ const [validatedArgs, errorMessages] = (0, register_pilet_1.validateArgs)(args);
57
+ if (errorMessages.length > 0) {
58
+ console.log(errorMessages);
59
+ }
60
+ else {
61
+ yield (0, register_pilet_1.registerPilet)(validatedArgs);
62
+ }
68
63
  }),
69
64
  };
70
65
  //# sourceMappingURL=pilet-commands.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pilet-commands.js","sourceRoot":"","sources":["../../../../src/commands/hosting/pilet/pilet-commands.ts"],"names":[],"mappings":";;;;AACA,qDAA+D;AAGlD,QAAA,aAAa,GAAoC;IAC5D,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CACjB,KAAK;SACF,OAAO,CACN,UAAU,EACV,oDAAoD,EACpD,aAAa,CACd;SACA,aAAa,EAAE;IACpB,OAAO,EAAE,GAAG,EAAE;QACZ,OAAO,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC;IACzE,CAAC;CACF,CAAC;AAEF,MAAM,aAAa,GAAoD;IACrE,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;QACjB,OAAO,KAAK;aACT,MAAM,CAAC,WAAW,EAAE;YACnB,QAAQ,EAAE,8CAA8C;YACxD,KAAK,EAAE,GAAG;YACV,MAAM,EAAE,IAAI;SACb,CAAC;aACD,MAAM,CAAC,uBAAuB,EAAE;YAC/B,QAAQ,EAAE,2BAA2B;YACrC,KAAK,EAAE,GAAG;YACV,MAAM,EAAE,IAAI;SACb,CAAC;aACD,MAAM,CAAC,2BAA2B,EAAE;YACnC,QAAQ,EAAE,+BAA+B;YACzC,KAAK,EAAE,GAAG;YACV,MAAM,EAAE,IAAI;SACb,CAAC;aACD,MAAM,CAAC,UAAU,EAAE;YAClB,QAAQ,EAAE,WAAW;YACrB,KAAK,EAAE,GAAG;YACV,MAAM,EAAE,IAAI;SACb,CAAC;aACD,MAAM,CAAC,eAAe,EAAE;YACvB,QAAQ,EAAE,gBAAgB;YAC1B,KAAK,EAAE,GAAG;YACV,MAAM,EAAE,IAAI;SACb,CAAC;aACD,MAAM,CAAC,mBAAmB,EAAE;YAC3B,QAAQ,EAAE,qBAAqB;YAC/B,KAAK,EAAE,GAAG;YACV,MAAM,EAAE,IAAI;SACb,CAAC;aACD,MAAM,CAAC,sBAAsB,EAAE;YAC9B,QAAQ,EAAE,6CAA6C;YACvD,KAAK,EAAE,GAAG;YACV,MAAM,EAAE,IAAI;SACb,CAAC;aACD,MAAM,CAAC,6BAA6B,EAAE;YACrC,QAAQ,EAAE,iCAAiC;YAC3C,KAAK,EAAE,GAAG;YACV,MAAM,EAAE,IAAI;SACb,CAAC;aACD,MAAM,CAAC,sBAAsB,EAAE;YAC9B,QAAQ,EAAE,uBAAuB;YACjC,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;IACP,CAAC;IACD,OAAO,EAAE,CAAO,IAAI,EAAE,EAAE;QACtB,wFAAwF;QACxF,MAAM,aAAa,GAAG,IAAA,6BAAY,EAAC,IAAI,CAAC,CAAC;QACzC,MAAM,IAAA,8BAAa,EAAC,aAAa,CAAC,CAAC;IACrC,CAAC,CAAA;CACF,CAAC"}
1
+ {"version":3,"file":"pilet-commands.js","sourceRoot":"","sources":["../../../../src/commands/hosting/pilet/pilet-commands.ts"],"names":[],"mappings":";;;;AACA,qDAA+D;AAGlD,QAAA,aAAa,GAAoC;IAC5D,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CACjB,KAAK;SACF,OAAO,CACN,UAAU,EACV,oDAAoD,EACpD,aAAa,CACd;SACA,aAAa,EAAE;IACpB,OAAO,EAAE,GAAG,EAAE;QACZ,OAAO,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC;IACzE,CAAC;CACF,CAAC;AAEF,MAAM,aAAa,GAAoD;IACrE,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;QACjB,OAAO,KAAK;aACT,MAAM,CAAC,WAAW,EAAE;YACnB,QAAQ,EAAE,8CAA8C;YACxD,KAAK,EAAE,GAAG;YACV,MAAM,EAAE,IAAI;SACb,CAAC;aACD,MAAM,CAAC,uBAAuB,EAAE;YAC/B,QAAQ,EAAE,2BAA2B;YACrC,KAAK,EAAE,GAAG;YACV,MAAM,EAAE,IAAI;SACb,CAAC;aACD,MAAM,CAAC,2BAA2B,EAAE;YACnC,QAAQ,EAAE,+BAA+B;YACzC,KAAK,EAAE,GAAG;YACV,MAAM,EAAE,IAAI;SACb,CAAC;aACD,MAAM,CAAC,mBAAmB,EAAE;YAC3B,QAAQ,EACN,8EAA8E;YAChF,KAAK,EAAE,GAAG;YACV,MAAM,EAAE,IAAI;SACb,CAAC;aACD,MAAM,CAAC,sBAAsB,EAAE;YAC9B,QAAQ,EAAE,6CAA6C;YACvD,KAAK,EAAE,GAAG;YACV,MAAM,EAAE,IAAI;SACb,CAAC;aACD,MAAM,CAAC,6BAA6B,EAAE;YACrC,QAAQ,EAAE,iCAAiC;YAC3C,KAAK,EAAE,GAAG;YACV,MAAM,EAAE,IAAI;SACb,CAAC;aACD,MAAM,CAAC,sBAAsB,EAAE;YAC9B,QAAQ,EAAE,uBAAuB;YACjC,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;IACP,CAAC;IACD,OAAO,EAAE,CAAO,IAAI,EAAE,EAAE;QACtB,wFAAwF;QACxF,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC,GAAG,IAAA,6BAAY,EAAC,IAAI,CAAC,CAAC;QAE1D,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;YAC5B,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;SAC5B;aAAM;YACL,MAAM,IAAA,8BAAa,EAAC,aAAa,CAAC,CAAC;SACpC;IACH,CAAC,CAAA;CACF,CAAC"}
@@ -5,8 +5,6 @@ export interface GetRegisterPiletOptions {
5
5
  serviceId?: string;
6
6
  mosaicHostingClientId?: string;
7
7
  mosaicHostingClientSecret?: string;
8
- tenantId?: string;
9
- environmentId?: string;
10
8
  piletArtifactPath?: string;
11
9
  idServiceAuthBaseURL?: string;
12
10
  microFrontendServiceBaseURL?: string;
@@ -7,4 +7,4 @@ export declare const registerPilet: (args: Required<GetRegisterPiletOptions>) =>
7
7
  * @param args
8
8
  * @returns
9
9
  */
10
- export declare const validateArgs: (args: GetRegisterPiletOptions) => Required<GetRegisterPiletOptions>;
10
+ export declare const validateArgs: (args: GetRegisterPiletOptions) => [Required<GetRegisterPiletOptions>, string[]];
@@ -10,7 +10,16 @@ const fs_1 = require("fs");
10
10
  const path = require("path");
11
11
  const registerPilet = (args) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
12
12
  var _a, _b;
13
- const serviceAccountToken = yield (0, mosaic_id_link_be_1.getServiceAccountToken)(args.idServiceAuthBaseURL, args.mosaicHostingClientId, args.mosaicHostingClientSecret);
13
+ let serviceAccountToken;
14
+ try {
15
+ serviceAccountToken = yield (0, mosaic_id_link_be_1.getServiceAccountToken)(args.idServiceAuthBaseURL, args.mosaicHostingClientId, args.mosaicHostingClientSecret);
16
+ }
17
+ catch (error) {
18
+ console.log(`\nFailed to get the service account token. ${error.message}\n`);
19
+ return;
20
+ }
21
+ // Extract the tenant/environment IDs from the access token
22
+ const { tenantId, environmentId } = JSON.parse(Buffer.from(serviceAccountToken.accessToken.split('.')[1], 'base64').toString());
14
23
  const data = new FormData();
15
24
  const config = {
16
25
  maxBodyLength: 52428890,
@@ -18,23 +27,25 @@ const registerPilet = (args) => tslib_1.__awaiter(void 0, void 0, void 0, functi
18
27
  };
19
28
  try {
20
29
  const artifactToPublish = findArtifactToPublish(args.piletArtifactPath);
21
- if (artifactToPublish) {
22
- data.append('', (0, fs_1.createReadStream)(artifactToPublish));
23
- }
24
- else {
25
- throw new Error(`No Pilet Artifact found at ${args.piletArtifactPath}.`);
26
- }
30
+ data.append('', (0, fs_1.createReadStream)(artifactToPublish));
27
31
  }
28
32
  catch (error) {
29
- throw new Error(`Error occurred while trying to read the Pilet Artifact at ${args.piletArtifactPath}.`);
33
+ console.log(`\n${error.message}`);
34
+ return;
30
35
  }
31
36
  try {
32
- const result = yield axios_1.default.post(`${args.microFrontendServiceBaseURL}/v1/pilets/${args.tenantId}/${args.environmentId}/${args.serviceId}/register?override=${args.overrideRegistration}`, data, config);
37
+ console.log(`\nRegistering pilet...`);
38
+ console.log(`path:\t\t${args.piletArtifactPath}`);
39
+ console.log(`tenantId:\t${tenantId}`);
40
+ console.log(`environmentId:\t${environmentId}`);
41
+ console.log(`serviceId:\t${args.serviceId}\n`);
42
+ const result = yield axios_1.default.post(`${args.microFrontendServiceBaseURL}/v1/pilets/${tenantId}/${environmentId}/${args.serviceId}/register?override=${args.overrideRegistration}`, data, config);
33
43
  console.log('Registration of Pilet complete.');
34
44
  console.log(result.data);
35
45
  }
36
46
  catch (error) {
37
47
  console.log('Registration of Pilet failed.', (_b = (_a = error.response) === null || _a === void 0 ? void 0 : _a.data) !== null && _b !== void 0 ? _b : error.message);
48
+ return;
38
49
  }
39
50
  });
40
51
  exports.registerPilet = registerPilet;
@@ -46,70 +57,70 @@ exports.registerPilet = registerPilet;
46
57
  * @returns
47
58
  */
48
59
  const validateArgs = (args) => {
49
- var _a, _b, _c, _d, _e, _f, _g, _h, _j;
50
- const idServiceAuthBaseURL = (_a = args.idServiceAuthBaseURL) !== null && _a !== void 0 ? _a : process.env.ID_SERVICE_AUTH_BASE_URL;
51
- const mosaicHostingClientId = (_b = args.mosaicHostingClientId) !== null && _b !== void 0 ? _b : process.env.MOSAIC_HOSTING_CLIENT_ID;
52
- const mosaicHostingClientSecret = (_c = args.mosaicHostingClientSecret) !== null && _c !== void 0 ? _c : process.env.MOSAIC_HOSTING_CLIENT_SECRET;
53
- const tenantId = (_d = args.tenantId) !== null && _d !== void 0 ? _d : process.env.TENANT_ID;
54
- const environmentId = (_e = args.environmentId) !== null && _e !== void 0 ? _e : process.env.ENVIRONMENT_ID;
55
- const serviceId = (_f = args.serviceId) !== null && _f !== void 0 ? _f : process.env.SERVICE_ID;
56
- const piletArtifactPath = (_g = args.piletArtifactPath) !== null && _g !== void 0 ? _g : process.env.PILET_PATH;
57
- const microFrontendServiceBaseURL = (_h = args.microFrontendServiceBaseURL) !== null && _h !== void 0 ? _h : process.env.MICRO_FRONTEND_SERVICE_BASE_URL;
60
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
61
+ const errorMessages = [];
62
+ const idServiceAuthBaseURL = (_b = (_a = args.idServiceAuthBaseURL) !== null && _a !== void 0 ? _a : process.env.ID_SERVICE_AUTH_BASE_URL) !== null && _b !== void 0 ? _b : '';
63
+ const mosaicHostingClientId = (_d = (_c = args.mosaicHostingClientId) !== null && _c !== void 0 ? _c : process.env.MOSAIC_HOSTING_CLIENT_ID) !== null && _d !== void 0 ? _d : '';
64
+ const mosaicHostingClientSecret = (_f = (_e = args.mosaicHostingClientSecret) !== null && _e !== void 0 ? _e : process.env.MOSAIC_HOSTING_CLIENT_SECRET) !== null && _f !== void 0 ? _f : '';
65
+ const serviceId = (_h = (_g = args.serviceId) !== null && _g !== void 0 ? _g : process.env.SERVICE_ID) !== null && _h !== void 0 ? _h : '';
66
+ const piletArtifactPath = (_k = (_j = args.piletArtifactPath) !== null && _j !== void 0 ? _j : process.env.PILET_PATH) !== null && _k !== void 0 ? _k : '';
67
+ const microFrontendServiceBaseURL = (_m = (_l = args.microFrontendServiceBaseURL) !== null && _l !== void 0 ? _l : process.env.MICRO_FRONTEND_SERVICE_BASE_URL) !== null && _m !== void 0 ? _m : '';
58
68
  if ((0, mosaic_service_common_1.isNullOrWhitespace)(idServiceAuthBaseURL)) {
59
- throw new Error('idServiceAuthBaseURL is required.');
69
+ errorMessages.push('[idServiceAuthBaseURL] is required.');
60
70
  }
61
71
  if ((0, mosaic_service_common_1.isNullOrWhitespace)(mosaicHostingClientId)) {
62
- throw new Error('clientId is required.');
72
+ errorMessages.push('[clientId] is required.');
63
73
  }
64
74
  if ((0, mosaic_service_common_1.isNullOrWhitespace)(mosaicHostingClientSecret)) {
65
- throw new Error('clientSecret is required.');
66
- }
67
- if ((0, mosaic_service_common_1.isNullOrWhitespace)(tenantId)) {
68
- throw new Error('tenantId is required.');
69
- }
70
- if ((0, mosaic_service_common_1.isNullOrWhitespace)(environmentId)) {
71
- throw new Error('environmentId is required,');
75
+ errorMessages.push('[clientSecret] is required.');
72
76
  }
73
77
  if ((0, mosaic_service_common_1.isNullOrWhitespace)(serviceId)) {
74
- throw new Error('serviceId is required.');
78
+ errorMessages.push('[serviceId] is required.');
75
79
  }
76
80
  if ((0, mosaic_service_common_1.isNullOrWhitespace)(piletArtifactPath)) {
77
- throw new Error('piletArtifactPath is required,');
81
+ errorMessages.push('[piletArtifactPath] is required,');
78
82
  }
79
83
  if ((0, mosaic_service_common_1.isNullOrWhitespace)(microFrontendServiceBaseURL)) {
80
- throw new Error('microFrontendServiceBaseURL is required.');
81
- }
82
- return {
83
- idServiceAuthBaseURL,
84
- mosaicHostingClientId,
85
- mosaicHostingClientSecret,
86
- tenantId,
87
- environmentId,
88
- serviceId,
89
- piletArtifactPath,
90
- microFrontendServiceBaseURL,
91
- overrideRegistration: (_j = args.overrideRegistration) !== null && _j !== void 0 ? _j : false,
92
- };
84
+ errorMessages.push('[microFrontendServiceBaseURL] is required.');
85
+ }
86
+ return [
87
+ {
88
+ idServiceAuthBaseURL,
89
+ mosaicHostingClientId,
90
+ mosaicHostingClientSecret,
91
+ serviceId,
92
+ piletArtifactPath,
93
+ microFrontendServiceBaseURL,
94
+ overrideRegistration: (_o = args.overrideRegistration) !== null && _o !== void 0 ? _o : false,
95
+ },
96
+ errorMessages,
97
+ ];
93
98
  };
94
99
  exports.validateArgs = validateArgs;
95
100
  const findArtifactToPublish = (piletPath) => {
96
101
  if (!(0, fs_1.existsSync)(piletPath)) {
97
- throw new Error(`No directory found at ${piletPath}`);
102
+ throw new Error(`The specified pilet artifact path [${piletPath}] does not exist.`);
98
103
  }
99
- const files = (0, fs_1.readdirSync)(piletPath);
100
104
  const tgzFiles = [];
101
- for (let i = 0; i < files.length; i++) {
102
- const filename = path.join(piletPath, files[i]);
103
- const stat = (0, fs_1.lstatSync)(filename);
104
- if (!stat.isDirectory() && filename.endsWith('.tgz')) {
105
- tgzFiles.push(filename);
105
+ // Is the path a directory?
106
+ if ((0, fs_1.lstatSync)(piletPath).isDirectory()) {
107
+ const files = (0, fs_1.readdirSync)(piletPath);
108
+ for (let i = 0; i < files.length; i++) {
109
+ const filename = path.join(piletPath, files[i]);
110
+ const stat = (0, fs_1.lstatSync)(filename);
111
+ if (!stat.isDirectory() && filename.endsWith('.tgz')) {
112
+ tgzFiles.push(filename);
113
+ }
106
114
  }
115
+ } // Path is a file
116
+ else {
117
+ tgzFiles.push(piletPath);
107
118
  }
108
119
  if (tgzFiles.length > 1) {
109
- throw new Error(`Found more than one .tgz files in the folder ${piletPath}. Please make sure only one .tgz file exists`);
120
+ throw new Error(`Found more than one .tgz files in the folder [${piletPath}]. Please make sure only one .tgz file exists or specify the path to the .tgz file.`);
110
121
  }
111
122
  if (tgzFiles.length === 0) {
112
- throw new Error(`'No .tgz files found at ${piletPath}.`);
123
+ throw new Error(`No .tgz files found at pilet artifact path [${piletPath}].`);
113
124
  }
114
125
  return tgzFiles[0];
115
126
  };
@@ -1 +1 @@
1
- {"version":3,"file":"register-pilet.js","sourceRoot":"","sources":["../../../../src/commands/hosting/pilet/register-pilet.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"register-pilet.js","sourceRoot":"","sources":["../../../../src/commands/hosting/pilet/register-pilet.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@axinom/mosaic-cli",
3
- "version": "0.20.0-rc.24",
3
+ "version": "0.20.0-rc.26",
4
4
  "description": "The Axinom Mosaic CLI",
5
5
  "author": "Axinom",
6
6
  "license": "PROPRIETARY",
@@ -33,8 +33,8 @@
33
33
  "@asyncapi/diff": "^0.4.1",
34
34
  "@asyncapi/modelina": "^1.8.4",
35
35
  "@asyncapi/parser": "^2.0.2",
36
- "@axinom/mosaic-id-link-be": "^0.13.4-rc.24",
37
- "@axinom/mosaic-service-common": "^0.35.0-rc.24",
36
+ "@axinom/mosaic-id-link-be": "^0.13.4-rc.26",
37
+ "@axinom/mosaic-service-common": "^0.35.0-rc.26",
38
38
  "@graphql-inspector/core": "^3.1.2",
39
39
  "@stoplight/spectral": "^5.9.1",
40
40
  "axios": "^0.19.2",
@@ -68,5 +68,5 @@
68
68
  "publishConfig": {
69
69
  "access": "public"
70
70
  },
71
- "gitHead": "7377e6943e03b5ce85d37866ad064fd060b69027"
71
+ "gitHead": "12417f30d234b83afb184c06cd92a3ef5fc0ea7f"
72
72
  }
@@ -34,18 +34,9 @@ const piletRegister: CommandModule<unknown, GetRegisterPiletOptions> = {
34
34
  alias: 's',
35
35
  string: true,
36
36
  })
37
- .option('tenantId', {
38
- describe: 'Tenant ID',
39
- alias: 't',
40
- string: true,
41
- })
42
- .option('environmentId', {
43
- describe: 'Environment ID',
44
- alias: 'e',
45
- string: true,
46
- })
47
37
  .option('piletArtifactPath', {
48
- describe: 'Pilet Artifact Path',
38
+ describe:
39
+ 'Path to the pilet artifact .tgz file or a directory containing the .tgz file',
49
40
  alias: 'p',
50
41
  string: true,
51
42
  })
@@ -68,7 +59,12 @@ const piletRegister: CommandModule<unknown, GetRegisterPiletOptions> = {
68
59
  },
69
60
  handler: async (args) => {
70
61
  // Validate arguments and read any arguments that are coming from environment variables.
71
- const validatedArgs = validateArgs(args);
72
- await registerPilet(validatedArgs);
62
+ const [validatedArgs, errorMessages] = validateArgs(args);
63
+
64
+ if (errorMessages.length > 0) {
65
+ console.log(errorMessages);
66
+ } else {
67
+ await registerPilet(validatedArgs);
68
+ }
73
69
  },
74
70
  };
@@ -5,8 +5,6 @@ export interface GetRegisterPiletOptions {
5
5
  serviceId?: string;
6
6
  mosaicHostingClientId?: string;
7
7
  mosaicHostingClientSecret?: string;
8
- tenantId?: string;
9
- environmentId?: string;
10
8
  piletArtifactPath?: string;
11
9
  idServiceAuthBaseURL?: string;
12
10
  microFrontendServiceBaseURL?: string;
@@ -1,4 +1,4 @@
1
- import { getServiceAccountToken } from '@axinom/mosaic-id-link-be';
1
+ import { TokenResult, getServiceAccountToken } from '@axinom/mosaic-id-link-be';
2
2
  import { isNullOrWhitespace } from '@axinom/mosaic-service-common';
3
3
  import axios, { AxiosError } from 'axios';
4
4
  import * as FormData from 'form-data';
@@ -9,11 +9,30 @@ import { GetRegisterPiletOptions } from './register-pilet-options';
9
9
  export const registerPilet = async (
10
10
  args: Required<GetRegisterPiletOptions>,
11
11
  ): Promise<void> => {
12
- const serviceAccountToken = await getServiceAccountToken(
13
- args.idServiceAuthBaseURL,
14
- args.mosaicHostingClientId,
15
- args.mosaicHostingClientSecret,
16
- );
12
+ let serviceAccountToken: TokenResult | undefined;
13
+
14
+ try {
15
+ serviceAccountToken = await getServiceAccountToken(
16
+ args.idServiceAuthBaseURL,
17
+ args.mosaicHostingClientId,
18
+ args.mosaicHostingClientSecret,
19
+ );
20
+ } catch (error) {
21
+ console.log(
22
+ `\nFailed to get the service account token. ${
23
+ (error as Error).message
24
+ }\n`,
25
+ );
26
+ return;
27
+ }
28
+
29
+ // Extract the tenant/environment IDs from the access token
30
+ const { tenantId, environmentId } = JSON.parse(
31
+ Buffer.from(
32
+ serviceAccountToken.accessToken.split('.')[1],
33
+ 'base64',
34
+ ).toString(),
35
+ ) as { tenantId: string; environmentId: string };
17
36
 
18
37
  const data = new FormData();
19
38
 
@@ -27,20 +46,21 @@ export const registerPilet = async (
27
46
 
28
47
  try {
29
48
  const artifactToPublish = findArtifactToPublish(args.piletArtifactPath);
30
- if (artifactToPublish) {
31
- data.append('', createReadStream(artifactToPublish));
32
- } else {
33
- throw new Error(`No Pilet Artifact found at ${args.piletArtifactPath}.`);
34
- }
49
+ data.append('', createReadStream(artifactToPublish));
35
50
  } catch (error) {
36
- throw new Error(
37
- `Error occurred while trying to read the Pilet Artifact at ${args.piletArtifactPath}.`,
38
- );
51
+ console.log(`\n${(error as Error).message}`);
52
+ return;
39
53
  }
40
54
 
41
55
  try {
56
+ console.log(`\nRegistering pilet...`);
57
+ console.log(`path:\t\t${args.piletArtifactPath}`);
58
+ console.log(`tenantId:\t${tenantId}`);
59
+ console.log(`environmentId:\t${environmentId}`);
60
+ console.log(`serviceId:\t${args.serviceId}\n`);
61
+
42
62
  const result = await axios.post(
43
- `${args.microFrontendServiceBaseURL}/v1/pilets/${args.tenantId}/${args.environmentId}/${args.serviceId}/register?override=${args.overrideRegistration}`,
63
+ `${args.microFrontendServiceBaseURL}/v1/pilets/${tenantId}/${environmentId}/${args.serviceId}/register?override=${args.overrideRegistration}`,
44
64
  data,
45
65
  config,
46
66
  );
@@ -52,6 +72,7 @@ export const registerPilet = async (
52
72
  'Registration of Pilet failed.',
53
73
  (error as AxiosError).response?.data ?? (error as Error).message,
54
74
  );
75
+ return;
55
76
  }
56
77
  };
57
78
 
@@ -64,82 +85,93 @@ export const registerPilet = async (
64
85
  */
65
86
  export const validateArgs = (
66
87
  args: GetRegisterPiletOptions,
67
- ): Required<GetRegisterPiletOptions> => {
88
+ ): [Required<GetRegisterPiletOptions>, string[]] => {
89
+ const errorMessages: string[] = [];
90
+
68
91
  const idServiceAuthBaseURL =
69
- args.idServiceAuthBaseURL ?? process.env.ID_SERVICE_AUTH_BASE_URL;
92
+ args.idServiceAuthBaseURL ?? process.env.ID_SERVICE_AUTH_BASE_URL ?? '';
70
93
  const mosaicHostingClientId =
71
- args.mosaicHostingClientId ?? process.env.MOSAIC_HOSTING_CLIENT_ID;
94
+ args.mosaicHostingClientId ?? process.env.MOSAIC_HOSTING_CLIENT_ID ?? '';
72
95
  const mosaicHostingClientSecret =
73
- args.mosaicHostingClientSecret ?? process.env.MOSAIC_HOSTING_CLIENT_SECRET;
74
- const tenantId = args.tenantId ?? process.env.TENANT_ID;
75
- const environmentId = args.environmentId ?? process.env.ENVIRONMENT_ID;
76
- const serviceId = args.serviceId ?? process.env.SERVICE_ID;
77
- const piletArtifactPath = args.piletArtifactPath ?? process.env.PILET_PATH;
96
+ args.mosaicHostingClientSecret ??
97
+ process.env.MOSAIC_HOSTING_CLIENT_SECRET ??
98
+ '';
99
+ const serviceId = args.serviceId ?? process.env.SERVICE_ID ?? '';
100
+ const piletArtifactPath =
101
+ args.piletArtifactPath ?? process.env.PILET_PATH ?? '';
78
102
  const microFrontendServiceBaseURL =
79
103
  args.microFrontendServiceBaseURL ??
80
- process.env.MICRO_FRONTEND_SERVICE_BASE_URL;
104
+ process.env.MICRO_FRONTEND_SERVICE_BASE_URL ??
105
+ '';
81
106
 
82
107
  if (isNullOrWhitespace(idServiceAuthBaseURL)) {
83
- throw new Error('idServiceAuthBaseURL is required.');
108
+ errorMessages.push('[idServiceAuthBaseURL] is required.');
84
109
  }
85
110
  if (isNullOrWhitespace(mosaicHostingClientId)) {
86
- throw new Error('clientId is required.');
111
+ errorMessages.push('[clientId] is required.');
87
112
  }
88
113
  if (isNullOrWhitespace(mosaicHostingClientSecret)) {
89
- throw new Error('clientSecret is required.');
90
- }
91
- if (isNullOrWhitespace(tenantId)) {
92
- throw new Error('tenantId is required.');
93
- }
94
- if (isNullOrWhitespace(environmentId)) {
95
- throw new Error('environmentId is required,');
114
+ errorMessages.push('[clientSecret] is required.');
96
115
  }
97
116
  if (isNullOrWhitespace(serviceId)) {
98
- throw new Error('serviceId is required.');
117
+ errorMessages.push('[serviceId] is required.');
99
118
  }
100
119
  if (isNullOrWhitespace(piletArtifactPath)) {
101
- throw new Error('piletArtifactPath is required,');
120
+ errorMessages.push('[piletArtifactPath] is required,');
102
121
  }
103
122
  if (isNullOrWhitespace(microFrontendServiceBaseURL)) {
104
- throw new Error('microFrontendServiceBaseURL is required.');
123
+ errorMessages.push('[microFrontendServiceBaseURL] is required.');
105
124
  }
106
125
 
107
- return {
108
- idServiceAuthBaseURL,
109
- mosaicHostingClientId,
110
- mosaicHostingClientSecret,
111
- tenantId,
112
- environmentId,
113
- serviceId,
114
- piletArtifactPath,
115
- microFrontendServiceBaseURL,
116
- overrideRegistration: args.overrideRegistration ?? false,
117
- };
126
+ return [
127
+ {
128
+ idServiceAuthBaseURL,
129
+ mosaicHostingClientId,
130
+ mosaicHostingClientSecret,
131
+ serviceId,
132
+ piletArtifactPath,
133
+ microFrontendServiceBaseURL,
134
+ overrideRegistration: args.overrideRegistration ?? false,
135
+ },
136
+ errorMessages,
137
+ ];
118
138
  };
119
139
 
120
- const findArtifactToPublish = (piletPath: string): string | undefined => {
140
+ const findArtifactToPublish = (piletPath: string): string => {
121
141
  if (!existsSync(piletPath)) {
122
- throw new Error(`No directory found at ${piletPath}`);
142
+ throw new Error(
143
+ `The specified pilet artifact path [${piletPath}] does not exist.`,
144
+ );
123
145
  }
124
146
 
125
- const files = readdirSync(piletPath);
126
147
  const tgzFiles: string[] = [];
127
148
 
128
- for (let i = 0; i < files.length; i++) {
129
- const filename = path.join(piletPath, files[i]);
130
- const stat = lstatSync(filename);
131
- if (!stat.isDirectory() && filename.endsWith('.tgz')) {
132
- tgzFiles.push(filename);
149
+ // Is the path a directory?
150
+ if (lstatSync(piletPath).isDirectory()) {
151
+ const files = readdirSync(piletPath);
152
+
153
+ for (let i = 0; i < files.length; i++) {
154
+ const filename = path.join(piletPath, files[i]);
155
+ const stat = lstatSync(filename);
156
+ if (!stat.isDirectory() && filename.endsWith('.tgz')) {
157
+ tgzFiles.push(filename);
158
+ }
133
159
  }
160
+ } // Path is a file
161
+ else {
162
+ tgzFiles.push(piletPath);
134
163
  }
135
164
 
136
165
  if (tgzFiles.length > 1) {
137
166
  throw new Error(
138
- `Found more than one .tgz files in the folder ${piletPath}. Please make sure only one .tgz file exists`,
167
+ `Found more than one .tgz files in the folder [${piletPath}]. Please make sure only one .tgz file exists or specify the path to the .tgz file.`,
139
168
  );
140
169
  }
170
+
141
171
  if (tgzFiles.length === 0) {
142
- throw new Error(`'No .tgz files found at ${piletPath}.`);
172
+ throw new Error(
173
+ `No .tgz files found at pilet artifact path [${piletPath}].`,
174
+ );
143
175
  }
144
176
 
145
177
  return tgzFiles[0];