@axinom/mosaic-cli 0.31.0-rc.7 → 0.31.0-rc.9
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/commands/service/index.js +4 -47
- package/dist/commands/service/index.js.map +1 -1
- package/dist/commands/service/purge-permissions/purge-permissions-command.d.ts +3 -0
- package/dist/commands/service/purge-permissions/purge-permissions-command.js +45 -0
- package/dist/commands/service/purge-permissions/purge-permissions-command.js.map +1 -0
- package/dist/commands/service/purge-permissions/purge-permissions-options.d.ts +9 -0
- package/dist/commands/service/purge-permissions/purge-permissions-options.js +3 -0
- package/dist/commands/service/purge-permissions/purge-permissions-options.js.map +1 -0
- package/dist/commands/service/purge-permissions/purge-permissions.d.ts +3 -0
- package/dist/commands/service/purge-permissions/purge-permissions.js +55 -0
- package/dist/commands/service/purge-permissions/purge-permissions.js.map +1 -0
- package/dist/commands/service/sync-permissions/sync-permission-command.d.ts +3 -0
- package/dist/commands/service/sync-permissions/sync-permission-command.js +50 -0
- package/dist/commands/service/sync-permissions/sync-permission-command.js.map +1 -0
- package/dist/commands/service/sync-permissions/sync-permissions-options.js.map +1 -0
- package/dist/commands/service/sync-permissions/sync-permissions.js.map +1 -0
- package/package.json +4 -4
- package/src/commands/service/index.ts +8 -53
- package/src/commands/service/purge-permissions/purge-permissions-command.ts +52 -0
- package/src/commands/service/purge-permissions/purge-permissions-options.ts +9 -0
- package/src/commands/service/purge-permissions/purge-permissions.ts +75 -0
- package/src/commands/service/sync-permissions/sync-permission-command.ts +58 -0
- package/dist/commands/service/sync-permissions-options.js.map +0 -1
- package/dist/commands/service/sync-permissions.js.map +0 -1
- /package/dist/commands/service/{sync-permissions-options.d.ts → sync-permissions/sync-permissions-options.d.ts} +0 -0
- /package/dist/commands/service/{sync-permissions-options.js → sync-permissions/sync-permissions-options.js} +0 -0
- /package/dist/commands/service/{sync-permissions.d.ts → sync-permissions/sync-permissions.d.ts} +0 -0
- /package/dist/commands/service/{sync-permissions.js → sync-permissions/sync-permissions.js} +0 -0
- /package/src/commands/service/{sync-permissions-options.ts → sync-permissions/sync-permissions-options.ts} +0 -0
- /package/src/commands/service/{sync-permissions.ts → sync-permissions/sync-permissions.ts} +0 -0
|
@@ -1,60 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.service = void 0;
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const sync_permissions_1 = require("./sync-permissions");
|
|
4
|
+
const purge_permissions_command_1 = require("./purge-permissions/purge-permissions-command");
|
|
5
|
+
const sync_permission_command_1 = require("./sync-permissions/sync-permission-command");
|
|
7
6
|
exports.service = {
|
|
8
7
|
command: 'service',
|
|
9
8
|
describe: 'General commands related to Mosaic services.',
|
|
10
9
|
builder: (yargs) => yargs
|
|
11
|
-
.command('sync-permissions', 'Synchronize permissions for a given service with ID Service.',
|
|
10
|
+
.command('sync-permissions', 'Synchronize permissions for a given service with ID Service.', sync_permission_command_1.syncPermissionsCommand)
|
|
11
|
+
.command('purge-permissions', 'Purge permissions for a given service from ID Service.', purge_permissions_command_1.purgePermissionsCommand)
|
|
12
12
|
.demandCommand(),
|
|
13
13
|
handler: (_args) => {
|
|
14
14
|
console.log('Please pick a sub command related to Mosaic services.');
|
|
15
15
|
},
|
|
16
16
|
};
|
|
17
|
-
const syncPermissions = {
|
|
18
|
-
builder: (yargs) => {
|
|
19
|
-
return yargs
|
|
20
|
-
.option('serviceId', {
|
|
21
|
-
describe: 'Service ID the permissions should be synchronized to. If no value is explicity given, environment variable SERVICE_ID will be used.',
|
|
22
|
-
alias: 'i',
|
|
23
|
-
string: true,
|
|
24
|
-
})
|
|
25
|
-
.option('idServiceAuthBaseURL', {
|
|
26
|
-
describe: 'ID Service Authentication Endpoint Base URL. If no value is explicity given, environment variable ID_SERVICE_AUTH_BASE_URL will be used.',
|
|
27
|
-
alias: 'a',
|
|
28
|
-
string: true,
|
|
29
|
-
})
|
|
30
|
-
.option('permissionDefinitionJsonPath', {
|
|
31
|
-
describe: 'Path to permission-definition.json file. The default location is src/generated/security/permission-definition.json',
|
|
32
|
-
alias: 'p',
|
|
33
|
-
string: true,
|
|
34
|
-
})
|
|
35
|
-
.option('clientId', {
|
|
36
|
-
describe: 'Client ID of a Service Account which has Synchronize Permission permission assigned. If no value is explicity given, environment variable SERVICE_ACCOUNT_CLIENT_ID will be used.',
|
|
37
|
-
alias: 'c',
|
|
38
|
-
string: true,
|
|
39
|
-
})
|
|
40
|
-
.option('clientSecret', {
|
|
41
|
-
describe: 'Client Secret for the above Client ID. If no value is explicity given, environment variable SERVICE_ACCOUNT_CLIENT_SECRET will be used.',
|
|
42
|
-
alias: 's',
|
|
43
|
-
string: true,
|
|
44
|
-
});
|
|
45
|
-
},
|
|
46
|
-
handler: (args) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
47
|
-
const [validatedArgs, errorMessages] = (0, sync_permissions_1.validateArgs)(args);
|
|
48
|
-
if (errorMessages.length > 0) {
|
|
49
|
-
console.log((0, chalk_1.red)('Some required arguments are missing.'));
|
|
50
|
-
errorMessages.map((message) => {
|
|
51
|
-
console.log((0, chalk_1.yellow)(`${message}`));
|
|
52
|
-
});
|
|
53
|
-
console.log();
|
|
54
|
-
}
|
|
55
|
-
else {
|
|
56
|
-
yield (0, sync_permissions_1.synchronizePermissions)(validatedArgs);
|
|
57
|
-
}
|
|
58
|
-
}),
|
|
59
|
-
};
|
|
60
17
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/service/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/service/index.ts"],"names":[],"mappings":";;;AACA,6FAAwF;AACxF,wFAAoF;AAEvE,QAAA,OAAO,GAAoC;IACtD,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,8CAA8C;IACxD,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CACjB,KAAK;SACF,OAAO,CACN,kBAAkB,EAClB,8DAA8D,EAC9D,gDAAsB,CACvB;SACA,OAAO,CACN,mBAAmB,EACnB,wDAAwD,EACxD,mDAAuB,CACxB;SACA,aAAa,EAAE;IACpB,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;QACjB,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;IACvE,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.purgePermissionsCommand = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const chalk_1 = require("chalk");
|
|
6
|
+
const purge_permissions_1 = require("./purge-permissions");
|
|
7
|
+
exports.purgePermissionsCommand = {
|
|
8
|
+
builder: (yargs) => {
|
|
9
|
+
return yargs
|
|
10
|
+
.option('serviceId', {
|
|
11
|
+
describe: 'Service ID the permissions should be purged from. If no value is explicity given, environment variable SERVICE_ID will be used.',
|
|
12
|
+
alias: 'i',
|
|
13
|
+
string: true,
|
|
14
|
+
})
|
|
15
|
+
.option('idServiceAuthBaseURL', {
|
|
16
|
+
describe: 'ID Service Authentication Endpoint Base URL. If no value is explicity given, environment variable ID_SERVICE_AUTH_BASE_URL will be used.',
|
|
17
|
+
alias: 'a',
|
|
18
|
+
string: true,
|
|
19
|
+
})
|
|
20
|
+
.option('clientId', {
|
|
21
|
+
describe: 'Client ID of a Service Account which has Synchronize Permission permission assigned. If no value is explicity given, environment variable SERVICE_ACCOUNT_CLIENT_ID will be used.',
|
|
22
|
+
alias: 'c',
|
|
23
|
+
string: true,
|
|
24
|
+
})
|
|
25
|
+
.option('clientSecret', {
|
|
26
|
+
describe: 'Client Secret for the above Client ID. If no value is explicity given, environment variable SERVICE_ACCOUNT_CLIENT_SECRET will be used.',
|
|
27
|
+
alias: 's',
|
|
28
|
+
string: true,
|
|
29
|
+
});
|
|
30
|
+
},
|
|
31
|
+
handler: (args) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
32
|
+
const [validatedArgs, errorMessages] = (0, purge_permissions_1.validateArgs)(args);
|
|
33
|
+
if (errorMessages.length > 0) {
|
|
34
|
+
console.log((0, chalk_1.red)('Some required arguments are missing and/or are erroneous.'));
|
|
35
|
+
errorMessages.map((message) => {
|
|
36
|
+
console.log((0, chalk_1.yellow)(`${message}`));
|
|
37
|
+
});
|
|
38
|
+
console.log();
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
yield (0, purge_permissions_1.purgePermissions)(validatedArgs);
|
|
42
|
+
}
|
|
43
|
+
}),
|
|
44
|
+
};
|
|
45
|
+
//# sourceMappingURL=purge-permissions-command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"purge-permissions-command.js","sourceRoot":"","sources":["../../../../src/commands/service/purge-permissions/purge-permissions-command.ts"],"names":[],"mappings":";;;;AAAA,iCAAoC;AAEpC,2DAAqE;AAGxD,QAAA,uBAAuB,GAGhC;IACF,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;QACjB,OAAO,KAAK;aACT,MAAM,CAAC,WAAW,EAAE;YACnB,QAAQ,EACN,iIAAiI;YACnI,KAAK,EAAE,GAAG;YACV,MAAM,EAAE,IAAI;SACb,CAAC;aACD,MAAM,CAAC,sBAAsB,EAAE;YAC9B,QAAQ,EACN,0IAA0I;YAC5I,KAAK,EAAE,GAAG;YACV,MAAM,EAAE,IAAI;SACb,CAAC;aACD,MAAM,CAAC,UAAU,EAAE;YAClB,QAAQ,EACN,mLAAmL;YACrL,KAAK,EAAE,GAAG;YACV,MAAM,EAAE,IAAI;SACb,CAAC;aACD,MAAM,CAAC,cAAc,EAAE;YACtB,QAAQ,EACN,yIAAyI;YAC3I,KAAK,EAAE,GAAG;YACV,MAAM,EAAE,IAAI;SACb,CAAC,CAAC;IACP,CAAC;IACD,OAAO,EAAE,CAAO,IAAI,EAAE,EAAE;QACtB,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC,GAAG,IAAA,gCAAY,EAAC,IAAI,CAAC,CAAC;QAC1D,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;YAC5B,OAAO,CAAC,GAAG,CACT,IAAA,WAAG,EAAC,2DAA2D,CAAC,CACjE,CAAC;YACF,aAAa,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC5B,OAAO,CAAC,GAAG,CAAC,IAAA,cAAM,EAAC,GAAG,OAAO,EAAE,CAAC,CAAC,CAAC;YACpC,CAAC,CAAC,CAAC;YAEH,OAAO,CAAC,GAAG,EAAE,CAAC;SACf;aAAM;YACL,MAAM,IAAA,oCAAgB,EAAC,aAAa,CAAC,CAAC;SACvC;IACH,CAAC,CAAA;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"purge-permissions-options.js","sourceRoot":"","sources":["../../../../src/commands/service/purge-permissions/purge-permissions-options.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { GetPurgePermissionsOptions } from './purge-permissions-options';
|
|
2
|
+
export declare const validateArgs: (args: GetPurgePermissionsOptions) => [Required<GetPurgePermissionsOptions>, string[]];
|
|
3
|
+
export declare const purgePermissions: (args: Required<GetPurgePermissionsOptions>) => Promise<void>;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.purgePermissions = exports.validateArgs = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const mosaic_id_link_be_1 = require("@axinom/mosaic-id-link-be");
|
|
6
|
+
const mosaic_service_common_1 = require("@axinom/mosaic-service-common");
|
|
7
|
+
const chalk_1 = require("chalk");
|
|
8
|
+
const validateArgs = (args) => {
|
|
9
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
10
|
+
const errorMessages = [];
|
|
11
|
+
const serviceId = (_b = (_a = args.serviceId) !== null && _a !== void 0 ? _a : process.env.SERVICE_ID) !== null && _b !== void 0 ? _b : '';
|
|
12
|
+
const idServiceAuthBaseURL = (_d = (_c = args.idServiceAuthBaseURL) !== null && _c !== void 0 ? _c : process.env.ID_SERVICE_AUTH_BASE_URL) !== null && _d !== void 0 ? _d : '';
|
|
13
|
+
const clientId = (_f = (_e = args.clientId) !== null && _e !== void 0 ? _e : process.env.SERVICE_ACCOUNT_CLIENT_ID) !== null && _f !== void 0 ? _f : '';
|
|
14
|
+
const clientSecret = (_h = (_g = args.clientSecret) !== null && _g !== void 0 ? _g : process.env.SERVICE_ACCOUNT_CLIENT_SECRET) !== null && _h !== void 0 ? _h : '';
|
|
15
|
+
if ((0, mosaic_service_common_1.isNullOrWhitespace)(serviceId)) {
|
|
16
|
+
errorMessages.push('[serviceId] is required.');
|
|
17
|
+
}
|
|
18
|
+
else if (serviceId.startsWith('ax-')) {
|
|
19
|
+
errorMessages.push(`[serviceId] cannot start with ax-`);
|
|
20
|
+
}
|
|
21
|
+
if ((0, mosaic_service_common_1.isNullOrWhitespace)(idServiceAuthBaseURL)) {
|
|
22
|
+
errorMessages.push('[idServiceBaseURL] is required.');
|
|
23
|
+
}
|
|
24
|
+
if ((0, mosaic_service_common_1.isNullOrWhitespace)(clientId)) {
|
|
25
|
+
errorMessages.push('[clientId] is required.');
|
|
26
|
+
}
|
|
27
|
+
if ((0, mosaic_service_common_1.isNullOrWhitespace)(clientSecret)) {
|
|
28
|
+
errorMessages.push('[clientSecret] is required.');
|
|
29
|
+
}
|
|
30
|
+
return [
|
|
31
|
+
{
|
|
32
|
+
serviceId,
|
|
33
|
+
idServiceAuthBaseURL,
|
|
34
|
+
clientId,
|
|
35
|
+
clientSecret,
|
|
36
|
+
},
|
|
37
|
+
errorMessages,
|
|
38
|
+
];
|
|
39
|
+
};
|
|
40
|
+
exports.validateArgs = validateArgs;
|
|
41
|
+
const purgePermissions = (args) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
42
|
+
try {
|
|
43
|
+
const serviceAccountToken = yield (0, mosaic_id_link_be_1.getServiceAccountToken)(args.idServiceAuthBaseURL, args.clientId, args.clientSecret);
|
|
44
|
+
const purgePermissionResults = yield (0, mosaic_id_link_be_1.purgePermissions)(args.idServiceAuthBaseURL, serviceAccountToken.accessToken, args.serviceId);
|
|
45
|
+
console.log((0, chalk_1.green)(`Permissions purged successfully for Service [${args.serviceId}].`));
|
|
46
|
+
console.log((0, chalk_1.green)(JSON.stringify(purgePermissionResults, null, 2)));
|
|
47
|
+
}
|
|
48
|
+
catch (e) {
|
|
49
|
+
const error = (0, mosaic_service_common_1.ensureError)(e);
|
|
50
|
+
console.log((0, chalk_1.red)(`Error while purging permission for Service ID [${args.serviceId}].`));
|
|
51
|
+
console.log((0, chalk_1.red)(JSON.stringify(error.message)));
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
exports.purgePermissions = purgePermissions;
|
|
55
|
+
//# sourceMappingURL=purge-permissions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"purge-permissions.js","sourceRoot":"","sources":["../../../../src/commands/service/purge-permissions/purge-permissions.ts"],"names":[],"mappings":";;;;AAAA,iEAGmC;AACnC,yEAAgF;AAChF,iCAAmC;AAG5B,MAAM,YAAY,GAAG,CAC1B,IAAgC,EACkB,EAAE;;IACpD,MAAM,aAAa,GAAa,EAAE,CAAC;IAEnC,MAAM,SAAS,GAAG,MAAA,MAAA,IAAI,CAAC,SAAS,mCAAI,OAAO,CAAC,GAAG,CAAC,UAAU,mCAAI,EAAE,CAAC;IAEjE,MAAM,oBAAoB,GACxB,MAAA,MAAA,IAAI,CAAC,oBAAoB,mCAAI,OAAO,CAAC,GAAG,CAAC,wBAAwB,mCAAI,EAAE,CAAC;IAC1E,MAAM,QAAQ,GAAG,MAAA,MAAA,IAAI,CAAC,QAAQ,mCAAI,OAAO,CAAC,GAAG,CAAC,yBAAyB,mCAAI,EAAE,CAAC;IAC9E,MAAM,YAAY,GAChB,MAAA,MAAA,IAAI,CAAC,YAAY,mCAAI,OAAO,CAAC,GAAG,CAAC,6BAA6B,mCAAI,EAAE,CAAC;IAEvE,IAAI,IAAA,0CAAkB,EAAC,SAAS,CAAC,EAAE;QACjC,aAAa,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;KAChD;SAAM,IAAI,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;QACtC,aAAa,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;KACzD;IACD,IAAI,IAAA,0CAAkB,EAAC,oBAAoB,CAAC,EAAE;QAC5C,aAAa,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;KACvD;IACD,IAAI,IAAA,0CAAkB,EAAC,QAAQ,CAAC,EAAE;QAChC,aAAa,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;KAC/C;IACD,IAAI,IAAA,0CAAkB,EAAC,YAAY,CAAC,EAAE;QACpC,aAAa,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;KACnD;IAED,OAAO;QACL;YACE,SAAS;YACT,oBAAoB;YACpB,QAAQ;YACR,YAAY;SACb;QACD,aAAa;KACd,CAAC;AACJ,CAAC,CAAC;AArCW,QAAA,YAAY,gBAqCvB;AAEK,MAAM,gBAAgB,GAAG,CAC9B,IAA0C,EAC3B,EAAE;IACjB,IAAI;QACF,MAAM,mBAAmB,GAAG,MAAM,IAAA,0CAAsB,EACtD,IAAI,CAAC,oBAAoB,EACzB,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,YAAY,CAClB,CAAC;QAEF,MAAM,sBAAsB,GAAG,MAAM,IAAA,oCAAkB,EACrD,IAAI,CAAC,oBAAoB,EACzB,mBAAmB,CAAC,WAAW,EAC/B,IAAI,CAAC,SAAS,CACf,CAAC;QAEF,OAAO,CAAC,GAAG,CACT,IAAA,aAAK,EAAC,gDAAgD,IAAI,CAAC,SAAS,IAAI,CAAC,CAC1E,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,IAAA,aAAK,EAAC,IAAI,CAAC,SAAS,CAAC,sBAAsB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;KACrE;IAAC,OAAO,CAAC,EAAE;QACV,MAAM,KAAK,GAAG,IAAA,mCAAW,EAAC,CAAC,CAAC,CAAC;QAC7B,OAAO,CAAC,GAAG,CACT,IAAA,WAAG,EAAC,kDAAkD,IAAI,CAAC,SAAS,IAAI,CAAC,CAC1E,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,IAAA,WAAG,EAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;KACjD;AACH,CAAC,CAAA,CAAC;AA3BW,QAAA,gBAAgB,oBA2B3B"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.syncPermissionsCommand = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const chalk_1 = require("chalk");
|
|
6
|
+
const sync_permissions_1 = require("./sync-permissions");
|
|
7
|
+
exports.syncPermissionsCommand = {
|
|
8
|
+
builder: (yargs) => {
|
|
9
|
+
return yargs
|
|
10
|
+
.option('serviceId', {
|
|
11
|
+
describe: 'Service ID the permissions should be synchronized to. If no value is explicity given, environment variable SERVICE_ID will be used.',
|
|
12
|
+
alias: 'i',
|
|
13
|
+
string: true,
|
|
14
|
+
})
|
|
15
|
+
.option('idServiceAuthBaseURL', {
|
|
16
|
+
describe: 'ID Service Authentication Endpoint Base URL. If no value is explicity given, environment variable ID_SERVICE_AUTH_BASE_URL will be used.',
|
|
17
|
+
alias: 'a',
|
|
18
|
+
string: true,
|
|
19
|
+
})
|
|
20
|
+
.option('permissionDefinitionJsonPath', {
|
|
21
|
+
describe: 'Path to permission-definition.json file. The default location is src/generated/security/permission-definition.json',
|
|
22
|
+
alias: 'p',
|
|
23
|
+
string: true,
|
|
24
|
+
})
|
|
25
|
+
.option('clientId', {
|
|
26
|
+
describe: 'Client ID of a Service Account which has Synchronize Permission permission assigned. If no value is explicity given, environment variable SERVICE_ACCOUNT_CLIENT_ID will be used.',
|
|
27
|
+
alias: 'c',
|
|
28
|
+
string: true,
|
|
29
|
+
})
|
|
30
|
+
.option('clientSecret', {
|
|
31
|
+
describe: 'Client Secret for the above Client ID. If no value is explicity given, environment variable SERVICE_ACCOUNT_CLIENT_SECRET will be used.',
|
|
32
|
+
alias: 's',
|
|
33
|
+
string: true,
|
|
34
|
+
});
|
|
35
|
+
},
|
|
36
|
+
handler: (args) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
37
|
+
const [validatedArgs, errorMessages] = (0, sync_permissions_1.validateArgs)(args);
|
|
38
|
+
if (errorMessages.length > 0) {
|
|
39
|
+
console.log((0, chalk_1.red)('Some required arguments are missing and/or are erroneous.'));
|
|
40
|
+
errorMessages.map((message) => {
|
|
41
|
+
console.log((0, chalk_1.yellow)(`${message}`));
|
|
42
|
+
});
|
|
43
|
+
console.log();
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
yield (0, sync_permissions_1.synchronizePermissions)(validatedArgs);
|
|
47
|
+
}
|
|
48
|
+
}),
|
|
49
|
+
};
|
|
50
|
+
//# sourceMappingURL=sync-permission-command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-permission-command.js","sourceRoot":"","sources":["../../../../src/commands/service/sync-permissions/sync-permission-command.ts"],"names":[],"mappings":";;;;AAAA,iCAAoC;AAEpC,yDAA0E;AAG7D,QAAA,sBAAsB,GAG/B;IACF,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;QACjB,OAAO,KAAK;aACT,MAAM,CAAC,WAAW,EAAE;YACnB,QAAQ,EACN,qIAAqI;YACvI,KAAK,EAAE,GAAG;YACV,MAAM,EAAE,IAAI;SACb,CAAC;aACD,MAAM,CAAC,sBAAsB,EAAE;YAC9B,QAAQ,EACN,0IAA0I;YAC5I,KAAK,EAAE,GAAG;YACV,MAAM,EAAE,IAAI;SACb,CAAC;aACD,MAAM,CAAC,8BAA8B,EAAE;YACtC,QAAQ,EACN,oHAAoH;YACtH,KAAK,EAAE,GAAG;YACV,MAAM,EAAE,IAAI;SACb,CAAC;aACD,MAAM,CAAC,UAAU,EAAE;YAClB,QAAQ,EACN,mLAAmL;YACrL,KAAK,EAAE,GAAG;YACV,MAAM,EAAE,IAAI;SACb,CAAC;aACD,MAAM,CAAC,cAAc,EAAE;YACtB,QAAQ,EACN,yIAAyI;YAC3I,KAAK,EAAE,GAAG;YACV,MAAM,EAAE,IAAI;SACb,CAAC,CAAC;IACP,CAAC;IACD,OAAO,EAAE,CAAO,IAAI,EAAE,EAAE;QACtB,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC,GAAG,IAAA,+BAAY,EAAC,IAAI,CAAC,CAAC;QAC1D,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;YAC5B,OAAO,CAAC,GAAG,CACT,IAAA,WAAG,EAAC,2DAA2D,CAAC,CACjE,CAAC;YACF,aAAa,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC5B,OAAO,CAAC,GAAG,CAAC,IAAA,cAAM,EAAC,GAAG,OAAO,EAAE,CAAC,CAAC,CAAC;YACpC,CAAC,CAAC,CAAC;YAEH,OAAO,CAAC,GAAG,EAAE,CAAC;SACf;aAAM;YACL,MAAM,IAAA,yCAAsB,EAAC,aAAa,CAAC,CAAC;SAC7C;IACH,CAAC,CAAA;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-permissions-options.js","sourceRoot":"","sources":["../../../../src/commands/service/sync-permissions/sync-permissions-options.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-permissions.js","sourceRoot":"","sources":["../../../../src/commands/service/sync-permissions/sync-permissions.ts"],"names":[],"mappings":";;;;AAAA,iEAGmC;AAEnC,yEAAgF;AAChF,iCAA2C;AAC3C,yBAAyB;AAGlB,MAAM,YAAY,GAAG,CAC1B,IAA+B,EACkB,EAAE;;IACnD,MAAM,aAAa,GAAa,EAAE,CAAC;IAEnC,MAAM,SAAS,GAAG,MAAA,MAAA,IAAI,CAAC,SAAS,mCAAI,OAAO,CAAC,GAAG,CAAC,UAAU,mCAAI,EAAE,CAAC;IAEjE,MAAM,oBAAoB,GACxB,MAAA,MAAA,IAAI,CAAC,oBAAoB,mCAAI,OAAO,CAAC,GAAG,CAAC,wBAAwB,mCAAI,EAAE,CAAC;IAC1E,MAAM,4BAA4B,GAChC,MAAA,IAAI,CAAC,4BAA4B,mCACjC,qDAAqD,CAAC;IACxD,MAAM,QAAQ,GAAG,MAAA,MAAA,IAAI,CAAC,QAAQ,mCAAI,OAAO,CAAC,GAAG,CAAC,yBAAyB,mCAAI,EAAE,CAAC;IAC9E,MAAM,YAAY,GAChB,MAAA,MAAA,IAAI,CAAC,YAAY,mCAAI,OAAO,CAAC,GAAG,CAAC,6BAA6B,mCAAI,EAAE,CAAC;IAEvE,IAAI,IAAA,0CAAkB,EAAC,SAAS,CAAC,EAAE;QACjC,aAAa,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;KAChD;SAAM,IAAI,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;QACtC,aAAa,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;KACzD;IACD,IAAI,IAAA,0CAAkB,EAAC,oBAAoB,CAAC,EAAE;QAC5C,aAAa,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;KACvD;IACD,IAAI,IAAA,0CAAkB,EAAC,QAAQ,CAAC,EAAE;QAChC,aAAa,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;KAC/C;IACD,IAAI,IAAA,0CAAkB,EAAC,YAAY,CAAC,EAAE;QACpC,aAAa,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;KACnD;IAED,OAAO;QACL;YACE,SAAS;YACT,oBAAoB;YACpB,4BAA4B;YAC5B,QAAQ;YACR,YAAY;SACb;QACD,aAAa;KACd,CAAC;AACJ,CAAC,CAAC;AAzCW,QAAA,YAAY,gBAyCvB;AAEK,MAAM,sBAAsB,GAAG,CACpC,IAAyC,EAC1B,EAAE;IACjB,IAAI;QACF,MAAM,mBAAmB,GAAG,MAAM,IAAA,0CAAsB,EACtD,IAAI,CAAC,oBAAoB,EACzB,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,YAAY,CAClB,CAAC;QAEF,OAAO,CAAC,GAAG,CACT,IAAA,cAAM,EAAC,4BAA4B,IAAI,CAAC,4BAA4B,EAAE,CAAC,CACxE,CAAC;QAEF,MAAM,oBAAoB,GAAyB,IAAI,CAAC,KAAK,CAC3D,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,4BAA4B,EAAE,OAAO,CAAC,CAC5D,CAAC;QAEF,IACE,oBAAoB,KAAK,SAAS;YAClC,oBAAoB,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAC7C;YACA,OAAO,CAAC,GAAG,CACT,IAAA,cAAM,EACJ,qCAAqC,IAAI,CAAC,4BAA4B,mDAAmD,CAC1H,CACF,CAAC;YACF,OAAO;SACR;QAED,MAAM,qBAAqB,GAAG,MAAM,IAAA,0CAAwB,EAC1D,IAAI,CAAC,oBAAoB,EACzB,mBAAmB,CAAC,WAAW,EAC/B,IAAI,CAAC,SAAS,EACd,oBAAoB,CACrB,CAAC;QAEF,OAAO,CAAC,GAAG,CACT,IAAA,aAAK,EACH,sDAAsD,IAAI,CAAC,SAAS,IAAI,CACzE,CACF,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,IAAA,aAAK,EAAC,IAAI,CAAC,SAAS,CAAC,qBAAqB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;KACpE;IAAC,OAAO,CAAC,EAAE;QACV,MAAM,KAAK,GAAG,IAAA,mCAAW,EAAC,CAAC,CAAC,CAAC;QAC7B,OAAO,CAAC,GAAG,CACT,IAAA,WAAG,EACD,qEAAqE,IAAI,CAAC,SAAS,IAAI,CACxF,CACF,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,IAAA,WAAG,EAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;KACjD;AACH,CAAC,CAAA,CAAC;AApDW,QAAA,sBAAsB,0BAoDjC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@axinom/mosaic-cli",
|
|
3
|
-
"version": "0.31.0-rc.
|
|
3
|
+
"version": "0.31.0-rc.9",
|
|
4
4
|
"description": "The Axinom Mosaic CLI",
|
|
5
5
|
"author": "Axinom",
|
|
6
6
|
"license": "PROPRIETARY",
|
|
@@ -34,8 +34,8 @@
|
|
|
34
34
|
"@asyncapi/diff": "^0.4.1",
|
|
35
35
|
"@asyncapi/modelina": "^1.8.4",
|
|
36
36
|
"@asyncapi/parser": "^2.0.2",
|
|
37
|
-
"@axinom/mosaic-id-link-be": "^0.19.0-rc.
|
|
38
|
-
"@axinom/mosaic-service-common": "^0.47.0-rc.
|
|
37
|
+
"@axinom/mosaic-id-link-be": "^0.19.0-rc.9",
|
|
38
|
+
"@axinom/mosaic-service-common": "^0.47.0-rc.9",
|
|
39
39
|
"@graphql-inspector/core": "^3.1.2",
|
|
40
40
|
"@stoplight/spectral-core": "^1.18.3",
|
|
41
41
|
"@stoplight/spectral-parsers": "^1.0.3",
|
|
@@ -72,5 +72,5 @@
|
|
|
72
72
|
"publishConfig": {
|
|
73
73
|
"access": "public"
|
|
74
74
|
},
|
|
75
|
-
"gitHead": "
|
|
75
|
+
"gitHead": "f4c4a0b3a69aca4e15ec878adc9c3dd046b8447b"
|
|
76
76
|
}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { red, yellow } from 'chalk';
|
|
2
1
|
import { CommandModule } from 'yargs';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
2
|
+
import { purgePermissionsCommand } from './purge-permissions/purge-permissions-command';
|
|
3
|
+
import { syncPermissionsCommand } from './sync-permissions/sync-permission-command';
|
|
5
4
|
|
|
6
5
|
export const service: CommandModule<unknown, unknown> = {
|
|
7
6
|
command: 'service',
|
|
@@ -11,59 +10,15 @@ export const service: CommandModule<unknown, unknown> = {
|
|
|
11
10
|
.command(
|
|
12
11
|
'sync-permissions',
|
|
13
12
|
'Synchronize permissions for a given service with ID Service.',
|
|
14
|
-
|
|
13
|
+
syncPermissionsCommand,
|
|
14
|
+
)
|
|
15
|
+
.command(
|
|
16
|
+
'purge-permissions',
|
|
17
|
+
'Purge permissions for a given service from ID Service.',
|
|
18
|
+
purgePermissionsCommand,
|
|
15
19
|
)
|
|
16
20
|
.demandCommand(),
|
|
17
21
|
handler: (_args) => {
|
|
18
22
|
console.log('Please pick a sub command related to Mosaic services.');
|
|
19
23
|
},
|
|
20
24
|
};
|
|
21
|
-
|
|
22
|
-
const syncPermissions: CommandModule<unknown, GetSyncPermissionsOptions> = {
|
|
23
|
-
builder: (yargs) => {
|
|
24
|
-
return yargs
|
|
25
|
-
.option('serviceId', {
|
|
26
|
-
describe:
|
|
27
|
-
'Service ID the permissions should be synchronized to. If no value is explicity given, environment variable SERVICE_ID will be used.',
|
|
28
|
-
alias: 'i',
|
|
29
|
-
string: true,
|
|
30
|
-
})
|
|
31
|
-
.option('idServiceAuthBaseURL', {
|
|
32
|
-
describe:
|
|
33
|
-
'ID Service Authentication Endpoint Base URL. If no value is explicity given, environment variable ID_SERVICE_AUTH_BASE_URL will be used.',
|
|
34
|
-
alias: 'a',
|
|
35
|
-
string: true,
|
|
36
|
-
})
|
|
37
|
-
.option('permissionDefinitionJsonPath', {
|
|
38
|
-
describe:
|
|
39
|
-
'Path to permission-definition.json file. The default location is src/generated/security/permission-definition.json',
|
|
40
|
-
alias: 'p',
|
|
41
|
-
string: true,
|
|
42
|
-
})
|
|
43
|
-
.option('clientId', {
|
|
44
|
-
describe:
|
|
45
|
-
'Client ID of a Service Account which has Synchronize Permission permission assigned. If no value is explicity given, environment variable SERVICE_ACCOUNT_CLIENT_ID will be used.',
|
|
46
|
-
alias: 'c',
|
|
47
|
-
string: true,
|
|
48
|
-
})
|
|
49
|
-
.option('clientSecret', {
|
|
50
|
-
describe:
|
|
51
|
-
'Client Secret for the above Client ID. If no value is explicity given, environment variable SERVICE_ACCOUNT_CLIENT_SECRET will be used.',
|
|
52
|
-
alias: 's',
|
|
53
|
-
string: true,
|
|
54
|
-
});
|
|
55
|
-
},
|
|
56
|
-
handler: async (args) => {
|
|
57
|
-
const [validatedArgs, errorMessages] = validateArgs(args);
|
|
58
|
-
if (errorMessages.length > 0) {
|
|
59
|
-
console.log(red('Some required arguments are missing.'));
|
|
60
|
-
errorMessages.map((message) => {
|
|
61
|
-
console.log(yellow(`${message}`));
|
|
62
|
-
});
|
|
63
|
-
|
|
64
|
-
console.log();
|
|
65
|
-
} else {
|
|
66
|
-
await synchronizePermissions(validatedArgs);
|
|
67
|
-
}
|
|
68
|
-
},
|
|
69
|
-
};
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { red, yellow } from 'chalk';
|
|
2
|
+
import { CommandModule } from 'yargs';
|
|
3
|
+
import { purgePermissions, validateArgs } from './purge-permissions';
|
|
4
|
+
import { GetPurgePermissionsOptions } from './purge-permissions-options';
|
|
5
|
+
|
|
6
|
+
export const purgePermissionsCommand: CommandModule<
|
|
7
|
+
unknown,
|
|
8
|
+
GetPurgePermissionsOptions
|
|
9
|
+
> = {
|
|
10
|
+
builder: (yargs) => {
|
|
11
|
+
return yargs
|
|
12
|
+
.option('serviceId', {
|
|
13
|
+
describe:
|
|
14
|
+
'Service ID the permissions should be purged from. If no value is explicity given, environment variable SERVICE_ID will be used.',
|
|
15
|
+
alias: 'i',
|
|
16
|
+
string: true,
|
|
17
|
+
})
|
|
18
|
+
.option('idServiceAuthBaseURL', {
|
|
19
|
+
describe:
|
|
20
|
+
'ID Service Authentication Endpoint Base URL. If no value is explicity given, environment variable ID_SERVICE_AUTH_BASE_URL will be used.',
|
|
21
|
+
alias: 'a',
|
|
22
|
+
string: true,
|
|
23
|
+
})
|
|
24
|
+
.option('clientId', {
|
|
25
|
+
describe:
|
|
26
|
+
'Client ID of a Service Account which has Synchronize Permission permission assigned. If no value is explicity given, environment variable SERVICE_ACCOUNT_CLIENT_ID will be used.',
|
|
27
|
+
alias: 'c',
|
|
28
|
+
string: true,
|
|
29
|
+
})
|
|
30
|
+
.option('clientSecret', {
|
|
31
|
+
describe:
|
|
32
|
+
'Client Secret for the above Client ID. If no value is explicity given, environment variable SERVICE_ACCOUNT_CLIENT_SECRET will be used.',
|
|
33
|
+
alias: 's',
|
|
34
|
+
string: true,
|
|
35
|
+
});
|
|
36
|
+
},
|
|
37
|
+
handler: async (args) => {
|
|
38
|
+
const [validatedArgs, errorMessages] = validateArgs(args);
|
|
39
|
+
if (errorMessages.length > 0) {
|
|
40
|
+
console.log(
|
|
41
|
+
red('Some required arguments are missing and/or are erroneous.'),
|
|
42
|
+
);
|
|
43
|
+
errorMessages.map((message) => {
|
|
44
|
+
console.log(yellow(`${message}`));
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
console.log();
|
|
48
|
+
} else {
|
|
49
|
+
await purgePermissions(validatedArgs);
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
};
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import {
|
|
2
|
+
getServiceAccountToken,
|
|
3
|
+
purgePermissions as purgePermissionsBe,
|
|
4
|
+
} from '@axinom/mosaic-id-link-be';
|
|
5
|
+
import { ensureError, isNullOrWhitespace } from '@axinom/mosaic-service-common';
|
|
6
|
+
import { green, red } from 'chalk';
|
|
7
|
+
import { GetPurgePermissionsOptions } from './purge-permissions-options';
|
|
8
|
+
|
|
9
|
+
export const validateArgs = (
|
|
10
|
+
args: GetPurgePermissionsOptions,
|
|
11
|
+
): [Required<GetPurgePermissionsOptions>, string[]] => {
|
|
12
|
+
const errorMessages: string[] = [];
|
|
13
|
+
|
|
14
|
+
const serviceId = args.serviceId ?? process.env.SERVICE_ID ?? '';
|
|
15
|
+
|
|
16
|
+
const idServiceAuthBaseURL =
|
|
17
|
+
args.idServiceAuthBaseURL ?? process.env.ID_SERVICE_AUTH_BASE_URL ?? '';
|
|
18
|
+
const clientId = args.clientId ?? process.env.SERVICE_ACCOUNT_CLIENT_ID ?? '';
|
|
19
|
+
const clientSecret =
|
|
20
|
+
args.clientSecret ?? process.env.SERVICE_ACCOUNT_CLIENT_SECRET ?? '';
|
|
21
|
+
|
|
22
|
+
if (isNullOrWhitespace(serviceId)) {
|
|
23
|
+
errorMessages.push('[serviceId] is required.');
|
|
24
|
+
} else if (serviceId.startsWith('ax-')) {
|
|
25
|
+
errorMessages.push(`[serviceId] cannot start with ax-`);
|
|
26
|
+
}
|
|
27
|
+
if (isNullOrWhitespace(idServiceAuthBaseURL)) {
|
|
28
|
+
errorMessages.push('[idServiceBaseURL] is required.');
|
|
29
|
+
}
|
|
30
|
+
if (isNullOrWhitespace(clientId)) {
|
|
31
|
+
errorMessages.push('[clientId] is required.');
|
|
32
|
+
}
|
|
33
|
+
if (isNullOrWhitespace(clientSecret)) {
|
|
34
|
+
errorMessages.push('[clientSecret] is required.');
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
return [
|
|
38
|
+
{
|
|
39
|
+
serviceId,
|
|
40
|
+
idServiceAuthBaseURL,
|
|
41
|
+
clientId,
|
|
42
|
+
clientSecret,
|
|
43
|
+
},
|
|
44
|
+
errorMessages,
|
|
45
|
+
];
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
export const purgePermissions = async (
|
|
49
|
+
args: Required<GetPurgePermissionsOptions>,
|
|
50
|
+
): Promise<void> => {
|
|
51
|
+
try {
|
|
52
|
+
const serviceAccountToken = await getServiceAccountToken(
|
|
53
|
+
args.idServiceAuthBaseURL,
|
|
54
|
+
args.clientId,
|
|
55
|
+
args.clientSecret,
|
|
56
|
+
);
|
|
57
|
+
|
|
58
|
+
const purgePermissionResults = await purgePermissionsBe(
|
|
59
|
+
args.idServiceAuthBaseURL,
|
|
60
|
+
serviceAccountToken.accessToken,
|
|
61
|
+
args.serviceId,
|
|
62
|
+
);
|
|
63
|
+
|
|
64
|
+
console.log(
|
|
65
|
+
green(`Permissions purged successfully for Service [${args.serviceId}].`),
|
|
66
|
+
);
|
|
67
|
+
console.log(green(JSON.stringify(purgePermissionResults, null, 2)));
|
|
68
|
+
} catch (e) {
|
|
69
|
+
const error = ensureError(e);
|
|
70
|
+
console.log(
|
|
71
|
+
red(`Error while purging permission for Service ID [${args.serviceId}].`),
|
|
72
|
+
);
|
|
73
|
+
console.log(red(JSON.stringify(error.message)));
|
|
74
|
+
}
|
|
75
|
+
};
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { red, yellow } from 'chalk';
|
|
2
|
+
import { CommandModule } from 'yargs';
|
|
3
|
+
import { synchronizePermissions, validateArgs } from './sync-permissions';
|
|
4
|
+
import { GetSyncPermissionsOptions } from './sync-permissions-options';
|
|
5
|
+
|
|
6
|
+
export const syncPermissionsCommand: CommandModule<
|
|
7
|
+
unknown,
|
|
8
|
+
GetSyncPermissionsOptions
|
|
9
|
+
> = {
|
|
10
|
+
builder: (yargs) => {
|
|
11
|
+
return yargs
|
|
12
|
+
.option('serviceId', {
|
|
13
|
+
describe:
|
|
14
|
+
'Service ID the permissions should be synchronized to. If no value is explicity given, environment variable SERVICE_ID will be used.',
|
|
15
|
+
alias: 'i',
|
|
16
|
+
string: true,
|
|
17
|
+
})
|
|
18
|
+
.option('idServiceAuthBaseURL', {
|
|
19
|
+
describe:
|
|
20
|
+
'ID Service Authentication Endpoint Base URL. If no value is explicity given, environment variable ID_SERVICE_AUTH_BASE_URL will be used.',
|
|
21
|
+
alias: 'a',
|
|
22
|
+
string: true,
|
|
23
|
+
})
|
|
24
|
+
.option('permissionDefinitionJsonPath', {
|
|
25
|
+
describe:
|
|
26
|
+
'Path to permission-definition.json file. The default location is src/generated/security/permission-definition.json',
|
|
27
|
+
alias: 'p',
|
|
28
|
+
string: true,
|
|
29
|
+
})
|
|
30
|
+
.option('clientId', {
|
|
31
|
+
describe:
|
|
32
|
+
'Client ID of a Service Account which has Synchronize Permission permission assigned. If no value is explicity given, environment variable SERVICE_ACCOUNT_CLIENT_ID will be used.',
|
|
33
|
+
alias: 'c',
|
|
34
|
+
string: true,
|
|
35
|
+
})
|
|
36
|
+
.option('clientSecret', {
|
|
37
|
+
describe:
|
|
38
|
+
'Client Secret for the above Client ID. If no value is explicity given, environment variable SERVICE_ACCOUNT_CLIENT_SECRET will be used.',
|
|
39
|
+
alias: 's',
|
|
40
|
+
string: true,
|
|
41
|
+
});
|
|
42
|
+
},
|
|
43
|
+
handler: async (args) => {
|
|
44
|
+
const [validatedArgs, errorMessages] = validateArgs(args);
|
|
45
|
+
if (errorMessages.length > 0) {
|
|
46
|
+
console.log(
|
|
47
|
+
red('Some required arguments are missing and/or are erroneous.'),
|
|
48
|
+
);
|
|
49
|
+
errorMessages.map((message) => {
|
|
50
|
+
console.log(yellow(`${message}`));
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
console.log();
|
|
54
|
+
} else {
|
|
55
|
+
await synchronizePermissions(validatedArgs);
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sync-permissions-options.js","sourceRoot":"","sources":["../../../src/commands/service/sync-permissions-options.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sync-permissions.js","sourceRoot":"","sources":["../../../src/commands/service/sync-permissions.ts"],"names":[],"mappings":"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"}
|
|
File without changes
|
|
File without changes
|
/package/dist/commands/service/{sync-permissions.d.ts → sync-permissions/sync-permissions.d.ts}
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|