@rockcarver/frodo-cli 0.23.1-7 → 0.24.1-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/CHANGELOG.md +75 -1
- package/esm/app.js.map +1 -1
- package/esm/cli/FrodoCommand.js.map +1 -1
- package/esm/cli/_template/something-delete.js.map +1 -1
- package/esm/cli/_template/something-describe.js.map +1 -1
- package/esm/cli/_template/something-else-delete.js.map +1 -1
- package/esm/cli/_template/something-else-describe.js.map +1 -1
- package/esm/cli/_template/something-else-export.js.map +1 -1
- package/esm/cli/_template/something-else-import.js.map +1 -1
- package/esm/cli/_template/something-else-list.js.map +1 -1
- package/esm/cli/_template/something-else.js.map +1 -1
- package/esm/cli/_template/something-export.js.map +1 -1
- package/esm/cli/_template/something-import.js.map +1 -1
- package/esm/cli/_template/something-list.js.map +1 -1
- package/esm/cli/_template/something-other-delete.js.map +1 -1
- package/esm/cli/_template/something-other-describe.js.map +1 -1
- package/esm/cli/_template/something-other-export.js.map +1 -1
- package/esm/cli/_template/something-other-import.js.map +1 -1
- package/esm/cli/_template/something-other-list.js.map +1 -1
- package/esm/cli/_template/something-other.js.map +1 -1
- package/esm/cli/_template/something.js.map +1 -1
- package/esm/cli/admin/admin-add-autoid-static-user-mapping.js.map +1 -1
- package/esm/cli/admin/admin-create-oauth2-client-with-admin-privileges.js.map +1 -1
- package/esm/cli/admin/admin-get-access-token.js.map +1 -1
- package/esm/cli/admin/admin-grant-oauth2-client-admin-privileges.js.map +1 -1
- package/esm/cli/admin/admin-hide-generic-extension-attributes.js.map +1 -1
- package/esm/cli/admin/admin-list-oauth2-clients-with-admin-privileges.js.map +1 -1
- package/esm/cli/admin/admin-list-oauth2-clients-with-custom-privileges.js.map +1 -1
- package/esm/cli/admin/admin-list-static-user-mappings.js.map +1 -1
- package/esm/cli/admin/admin-remove-static-user-mapping.js.map +1 -1
- package/esm/cli/admin/admin-repair-org-model.js.map +1 -1
- package/esm/cli/admin/admin-revoke-oauth2-client-admin-privileges.js.map +1 -1
- package/esm/cli/admin/admin-show-generic-extension-attributes.js.map +1 -1
- package/esm/cli/admin/admin.js.map +1 -1
- package/esm/cli/agent/agent-delete.js.map +1 -1
- package/esm/cli/agent/agent-describe.js.map +1 -1
- package/esm/cli/agent/agent-export.js.map +1 -1
- package/esm/cli/agent/agent-gateway-delete.js.map +1 -1
- package/esm/cli/agent/agent-gateway-describe.js.map +1 -1
- package/esm/cli/agent/agent-gateway-export.js.map +1 -1
- package/esm/cli/agent/agent-gateway-import.js.map +1 -1
- package/esm/cli/agent/agent-gateway-list.js.map +1 -1
- package/esm/cli/agent/agent-gateway.js.map +1 -1
- package/esm/cli/agent/agent-import.js.map +1 -1
- package/esm/cli/agent/agent-java-delete.js.map +1 -1
- package/esm/cli/agent/agent-java-describe.js.map +1 -1
- package/esm/cli/agent/agent-java-export.js.map +1 -1
- package/esm/cli/agent/agent-java-import.js.map +1 -1
- package/esm/cli/agent/agent-java-list.js.map +1 -1
- package/esm/cli/agent/agent-java.js.map +1 -1
- package/esm/cli/agent/agent-list.js.map +1 -1
- package/esm/cli/agent/agent-web-delete.js.map +1 -1
- package/esm/cli/agent/agent-web-describe.js.map +1 -1
- package/esm/cli/agent/agent-web-export.js.map +1 -1
- package/esm/cli/agent/agent-web-import.js.map +1 -1
- package/esm/cli/agent/agent-web-list.js.map +1 -1
- package/esm/cli/agent/agent-web.js.map +1 -1
- package/esm/cli/agent/agent.js.map +1 -1
- package/esm/cli/app/app-delete.js.map +1 -1
- package/esm/cli/app/app-describe.js.map +1 -1
- package/esm/cli/app/app-export.js.map +1 -1
- package/esm/cli/app/app-import.js.map +1 -1
- package/esm/cli/app/app-list.js.map +1 -1
- package/esm/cli/app/app.js.map +1 -1
- package/esm/cli/authz/authz-policy-delete.js.map +1 -1
- package/esm/cli/authz/authz-policy-describe.js.map +1 -1
- package/esm/cli/authz/authz-policy-export.js +16 -11
- package/esm/cli/authz/authz-policy-export.js.map +1 -1
- package/esm/cli/authz/authz-policy-import.js +44 -5
- package/esm/cli/authz/authz-policy-import.js.map +1 -1
- package/esm/cli/authz/authz-policy-list.js.map +1 -1
- package/esm/cli/authz/authz-policy.js.map +1 -1
- package/esm/cli/authz/authz-set-delete.js.map +1 -1
- package/esm/cli/authz/authz-set-describe.js.map +1 -1
- package/esm/cli/authz/authz-set-export.js +7 -4
- package/esm/cli/authz/authz-set-export.js.map +1 -1
- package/esm/cli/authz/authz-set-import.js +10 -6
- package/esm/cli/authz/authz-set-import.js.map +1 -1
- package/esm/cli/authz/authz-set-list.js.map +1 -1
- package/esm/cli/authz/authz-set.js.map +1 -1
- package/esm/cli/authz/authz-type-delete.js +18 -13
- package/esm/cli/authz/authz-type-delete.js.map +1 -1
- package/esm/cli/authz/authz-type-describe.js +7 -3
- package/esm/cli/authz/authz-type-describe.js.map +1 -1
- package/esm/cli/authz/authz-type-export.js +32 -5
- package/esm/cli/authz/authz-type-export.js.map +1 -1
- package/esm/cli/authz/authz-type-import.js +38 -5
- package/esm/cli/authz/authz-type-import.js.map +1 -1
- package/esm/cli/authz/authz-type-list.js +4 -10
- package/esm/cli/authz/authz-type-list.js.map +1 -1
- package/esm/cli/authz/authz-type.js.map +1 -1
- package/esm/cli/authz/authz.js.map +1 -1
- package/esm/cli/conn/conn-delete.js.map +1 -1
- package/esm/cli/conn/conn-describe.js.map +1 -1
- package/esm/cli/conn/conn-list.js.map +1 -1
- package/esm/cli/conn/conn-save.js.map +1 -1
- package/esm/cli/conn/conn.js.map +1 -1
- package/esm/cli/email/email-template-export.js.map +1 -1
- package/esm/cli/email/email-template-import.js.map +1 -1
- package/esm/cli/email/email-template-list.js.map +1 -1
- package/esm/cli/email/email-template.js.map +1 -1
- package/esm/cli/email/email.js.map +1 -1
- package/esm/cli/esv/esv-apply.js.map +1 -1
- package/esm/cli/esv/esv-secret-create.js.map +1 -1
- package/esm/cli/esv/esv-secret-delete.js.map +1 -1
- package/esm/cli/esv/esv-secret-describe.js.map +1 -1
- package/esm/cli/esv/esv-secret-export.js.map +1 -1
- package/esm/cli/esv/esv-secret-import.js.map +1 -1
- package/esm/cli/esv/esv-secret-list.js.map +1 -1
- package/esm/cli/esv/esv-secret-set.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-activate.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-create.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-deactivate.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-delete.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-list.js.map +1 -1
- package/esm/cli/esv/esv-secret-version.js.map +1 -1
- package/esm/cli/esv/esv-secret.js.map +1 -1
- package/esm/cli/esv/esv-variable-create.js.map +1 -1
- package/esm/cli/esv/esv-variable-delete.js.map +1 -1
- package/esm/cli/esv/esv-variable-describe.js.map +1 -1
- package/esm/cli/esv/esv-variable-export.js.map +1 -1
- package/esm/cli/esv/esv-variable-import.js.map +1 -1
- package/esm/cli/esv/esv-variable-list.js.map +1 -1
- package/esm/cli/esv/esv-variable-set.js.map +1 -1
- package/esm/cli/esv/esv-variable.js.map +1 -1
- package/esm/cli/esv/esv.js.map +1 -1
- package/esm/cli/idm/idm-count.js.map +1 -1
- package/esm/cli/idm/idm-export.js.map +1 -1
- package/esm/cli/idm/idm-import.js.map +1 -1
- package/esm/cli/idm/idm-list.js.map +1 -1
- package/esm/cli/idm/idm.js.map +1 -1
- package/esm/cli/idp/idp-export.js.map +1 -1
- package/esm/cli/idp/idp-import.js.map +1 -1
- package/esm/cli/idp/idp-list.js.map +1 -1
- package/esm/cli/idp/idp.js.map +1 -1
- package/esm/cli/info/info.js.map +1 -1
- package/esm/cli/journey/journey-delete.js.map +1 -1
- package/esm/cli/journey/journey-describe.js.map +1 -1
- package/esm/cli/journey/journey-disable.js.map +1 -1
- package/esm/cli/journey/journey-enable.js.map +1 -1
- package/esm/cli/journey/journey-export.js.map +1 -1
- package/esm/cli/journey/journey-import.js.map +1 -1
- package/esm/cli/journey/journey-list.js.map +1 -1
- package/esm/cli/journey/journey-prune.js.map +1 -1
- package/esm/cli/journey/journey.js.map +1 -1
- package/esm/cli/logging/logs-fetch.js.map +1 -1
- package/esm/cli/logging/logs-list.js.map +1 -1
- package/esm/cli/logging/logs-tail.js.map +1 -1
- package/esm/cli/logging/logs.js.map +1 -1
- package/esm/cli/realm/realm-add-custom-domain.js.map +1 -1
- package/esm/cli/realm/realm-describe.js.map +1 -1
- package/esm/cli/realm/realm-list.js.map +1 -1
- package/esm/cli/realm/realm-remove-custom-domain.js.map +1 -1
- package/esm/cli/realm/realm.js.map +1 -1
- package/esm/cli/saml/saml-cot-export.js.map +1 -1
- package/esm/cli/saml/saml-cot-import.js.map +1 -1
- package/esm/cli/saml/saml-cot-list.js.map +1 -1
- package/esm/cli/saml/saml-cot.js.map +1 -1
- package/esm/cli/saml/saml-delete.js.map +1 -1
- package/esm/cli/saml/saml-describe.js.map +1 -1
- package/esm/cli/saml/saml-export.js.map +1 -1
- package/esm/cli/saml/saml-import.js.map +1 -1
- package/esm/cli/saml/saml-list.js.map +1 -1
- package/esm/cli/saml/saml-metadata-export.js.map +1 -1
- package/esm/cli/saml/saml-metadata.js.map +1 -1
- package/esm/cli/saml/saml.js.map +1 -1
- package/esm/cli/script/script-delete.js.map +1 -1
- package/esm/cli/script/script-describe.js.map +1 -1
- package/esm/cli/script/script-export.js.map +1 -1
- package/esm/cli/script/script-import.js.map +1 -1
- package/esm/cli/script/script-list.js.map +1 -1
- package/esm/cli/script/script.js.map +1 -1
- package/esm/cli/service/service-delete.js.map +1 -1
- package/esm/cli/service/service-export.js.map +1 -1
- package/esm/cli/service/service-import.js.map +1 -1
- package/esm/cli/service/service-list.js.map +1 -1
- package/esm/cli/service/service.js.map +1 -1
- package/esm/cli/theme/theme-delete.e2e.test_.js.map +1 -1
- package/esm/cli/theme/theme-delete.js.map +1 -1
- package/esm/cli/theme/theme-export.js.map +1 -1
- package/esm/cli/theme/theme-import.js.map +1 -1
- package/esm/cli/theme/theme-list.e2e.test_.js.map +1 -1
- package/esm/cli/theme/theme-list.js.map +1 -1
- package/esm/cli/theme/theme.js.map +1 -1
- package/esm/loader.js.map +1 -1
- package/esm/ops/AgentOps.js.map +1 -1
- package/esm/ops/CirclesOfTrustOps.js.map +1 -1
- package/esm/ops/ConnectionProfileOps.js.map +1 -1
- package/esm/ops/EmailTemplateOps.js.map +1 -1
- package/esm/ops/IdmOps.js.map +1 -1
- package/esm/ops/IdpOps.js.map +1 -1
- package/esm/ops/JourneyOps.js.map +1 -1
- package/esm/ops/NodeOps.js.map +1 -1
- package/esm/ops/OAuth2ClientOps.js.map +1 -1
- package/esm/ops/PolicyOps.js +117 -15
- package/esm/ops/PolicyOps.js.map +1 -1
- package/esm/ops/PolicySetOps.js +17 -10
- package/esm/ops/PolicySetOps.js.map +1 -1
- package/esm/ops/ResourceTypeOps.js +156 -25
- package/esm/ops/ResourceTypeOps.js.map +1 -1
- package/esm/ops/Saml2Ops.js.map +1 -1
- package/esm/ops/Saml2Ops.test_.js.map +1 -1
- package/esm/ops/ScriptOps.js.map +1 -1
- package/esm/ops/ServiceOps.js.map +1 -1
- package/esm/ops/ThemeOps.js.map +1 -1
- package/esm/ops/utils/OpsUtils.js.map +1 -1
- package/esm/ops/utils/Wordwrap.js.map +1 -1
- package/esm/utils/Config.js.map +1 -1
- package/esm/utils/Console.js.map +1 -1
- package/esm/utils/ExportImportUtils.js.map +1 -1
- package/esm/utils/Version.js.map +1 -1
- package/package.json +2 -2
package/esm/ops/PolicyOps.js
CHANGED
|
@@ -10,7 +10,9 @@ const {
|
|
|
10
10
|
exportPolicy,
|
|
11
11
|
exportPolicies,
|
|
12
12
|
exportPoliciesByPolicySet,
|
|
13
|
-
importPolicy
|
|
13
|
+
importPolicy,
|
|
14
|
+
importFirstPolicy,
|
|
15
|
+
importPolicies
|
|
14
16
|
} = Policy;
|
|
15
17
|
const {
|
|
16
18
|
getRealmName
|
|
@@ -214,8 +216,9 @@ export async function deletePoliciesByPolicySet(policySetId) {
|
|
|
214
216
|
* @returns {Promise<boolean>} true if successful, false otherwise
|
|
215
217
|
*/
|
|
216
218
|
export async function exportPolicyToFile(policyId, file, options = {
|
|
217
|
-
|
|
218
|
-
|
|
219
|
+
deps: true,
|
|
220
|
+
prereqs: false,
|
|
221
|
+
useStringArrays: true
|
|
219
222
|
}) {
|
|
220
223
|
let outcome = false;
|
|
221
224
|
debugMessage(`cli.PolicyOps.exportPolicyToFile: begin`);
|
|
@@ -243,8 +246,9 @@ export async function exportPolicyToFile(policyId, file, options = {
|
|
|
243
246
|
* @returns {Promise<boolean>} true if successful, false otherwise
|
|
244
247
|
*/
|
|
245
248
|
export async function exportPoliciesToFile(file, options = {
|
|
246
|
-
|
|
247
|
-
|
|
249
|
+
deps: true,
|
|
250
|
+
prereqs: false,
|
|
251
|
+
useStringArrays: true
|
|
248
252
|
}) {
|
|
249
253
|
let outcome = false;
|
|
250
254
|
debugMessage(`cli.PolicyOps.exportPoliciesToFile: begin`);
|
|
@@ -273,14 +277,15 @@ export async function exportPoliciesToFile(file, options = {
|
|
|
273
277
|
* @returns {Promise<boolean>} true if successful, false otherwise
|
|
274
278
|
*/
|
|
275
279
|
export async function exportPoliciesByPolicySetToFile(policySetId, file, options = {
|
|
276
|
-
|
|
277
|
-
|
|
280
|
+
deps: true,
|
|
281
|
+
prereqs: false,
|
|
282
|
+
useStringArrays: true
|
|
278
283
|
}) {
|
|
279
284
|
let outcome = false;
|
|
280
285
|
debugMessage(`cli.PolicyOps.exportPoliciesToFile: begin`);
|
|
281
286
|
showSpinner(`Exporting all policy sets...`);
|
|
282
287
|
try {
|
|
283
|
-
let fileName = getTypedFilename(`all${titleCase(getRealmName(state.getRealm()))}Policies`, 'policy.authz');
|
|
288
|
+
let fileName = getTypedFilename(`all${titleCase(getRealmName(state.getRealm())) + titleCase(policySetId)}Policies`, 'policy.authz');
|
|
284
289
|
if (file) {
|
|
285
290
|
fileName = file;
|
|
286
291
|
}
|
|
@@ -301,8 +306,9 @@ export async function exportPoliciesByPolicySetToFile(policySetId, file, options
|
|
|
301
306
|
* @returns {Promise<boolean>} true if successful, false otherwise
|
|
302
307
|
*/
|
|
303
308
|
export async function exportPoliciesToFiles(options = {
|
|
304
|
-
|
|
305
|
-
|
|
309
|
+
deps: true,
|
|
310
|
+
prereqs: false,
|
|
311
|
+
useStringArrays: true
|
|
306
312
|
}) {
|
|
307
313
|
debugMessage(`cli.PolicyOps.exportPoliciesToFiles: begin`);
|
|
308
314
|
const errors = [];
|
|
@@ -335,8 +341,9 @@ export async function exportPoliciesToFiles(options = {
|
|
|
335
341
|
* @returns {Promise<boolean>} true if successful, false otherwise
|
|
336
342
|
*/
|
|
337
343
|
export async function exportPoliciesByPolicySetToFiles(policySetId, options = {
|
|
338
|
-
|
|
339
|
-
|
|
344
|
+
deps: true,
|
|
345
|
+
prereqs: false,
|
|
346
|
+
useStringArrays: true
|
|
340
347
|
}) {
|
|
341
348
|
debugMessage(`cli.PolicyOps.exportPoliciesToFiles: begin`);
|
|
342
349
|
const errors = [];
|
|
@@ -364,14 +371,15 @@ export async function exportPoliciesByPolicySetToFiles(policySetId, options = {
|
|
|
364
371
|
}
|
|
365
372
|
|
|
366
373
|
/**
|
|
367
|
-
* Import policy
|
|
368
|
-
* @param {string} policyId policy
|
|
374
|
+
* Import policy from file
|
|
375
|
+
* @param {string} policyId policy id/name
|
|
369
376
|
* @param {string} file file name
|
|
370
377
|
* @param {PolicyImportOptions} options import options
|
|
371
378
|
* @returns {Promise<boolean>} true if successful, false otherwise
|
|
372
379
|
*/
|
|
373
380
|
export async function importPolicyFromFile(policyId, file, options = {
|
|
374
|
-
deps: true
|
|
381
|
+
deps: true,
|
|
382
|
+
prereqs: false
|
|
375
383
|
}) {
|
|
376
384
|
let outcome = false;
|
|
377
385
|
debugMessage(`cli.PolicyOps.importPolicyFromFile: begin`);
|
|
@@ -389,4 +397,98 @@ export async function importPolicyFromFile(policyId, file, options = {
|
|
|
389
397
|
debugMessage(`cli.PolicyOps.importPolicyFromFile: end`);
|
|
390
398
|
return outcome;
|
|
391
399
|
}
|
|
400
|
+
|
|
401
|
+
/**
|
|
402
|
+
* Import first policy from file
|
|
403
|
+
* @param {string} file file name
|
|
404
|
+
* @param {PolicyImportOptions} options import options
|
|
405
|
+
* @returns {Promise<boolean>} true if successful, false otherwise
|
|
406
|
+
*/
|
|
407
|
+
export async function importFirstPolicyFromFile(file, options = {
|
|
408
|
+
deps: true,
|
|
409
|
+
prereqs: false
|
|
410
|
+
}) {
|
|
411
|
+
let outcome = false;
|
|
412
|
+
debugMessage(`cli.PolicySetOps.importFirstPolicyFromFile: begin`);
|
|
413
|
+
showSpinner(`Importing ${file}...`);
|
|
414
|
+
try {
|
|
415
|
+
const data = fs.readFileSync(file, 'utf8');
|
|
416
|
+
const fileData = JSON.parse(data);
|
|
417
|
+
await importFirstPolicy(fileData, options);
|
|
418
|
+
outcome = true;
|
|
419
|
+
succeedSpinner(`Imported ${file}.`);
|
|
420
|
+
} catch (error) {
|
|
421
|
+
failSpinner(`Error importing ${file}.`);
|
|
422
|
+
printMessage(error, 'error');
|
|
423
|
+
}
|
|
424
|
+
debugMessage(`cli.PolicySetOps.importFirstPolicyFromFile: end`);
|
|
425
|
+
return outcome;
|
|
426
|
+
}
|
|
427
|
+
|
|
428
|
+
/**
|
|
429
|
+
* Import policies from file
|
|
430
|
+
* @param {string} file file name
|
|
431
|
+
* @param {PolicyImportOptions} options import options
|
|
432
|
+
* @returns {Promise<boolean>} true if successful, false otherwise
|
|
433
|
+
*/
|
|
434
|
+
export async function importPoliciesFromFile(file, options = {
|
|
435
|
+
deps: true,
|
|
436
|
+
prereqs: false
|
|
437
|
+
}) {
|
|
438
|
+
let outcome = false;
|
|
439
|
+
debugMessage(`cli.PolicyOps.importPoliciesFromFile: begin`);
|
|
440
|
+
showSpinner(`Importing ${file}...`);
|
|
441
|
+
try {
|
|
442
|
+
const data = fs.readFileSync(file, 'utf8');
|
|
443
|
+
const fileData = JSON.parse(data);
|
|
444
|
+
await importPolicies(fileData, options);
|
|
445
|
+
outcome = true;
|
|
446
|
+
succeedSpinner(`Imported ${file}${options.policySetName ? ' into policy set ' + options.policySetName : '.'}`);
|
|
447
|
+
} catch (error) {
|
|
448
|
+
failSpinner(`Error importing ${file}${options.policySetName ? ' into policy set ' + options.policySetName : '.'}`);
|
|
449
|
+
printMessage(error, 'error');
|
|
450
|
+
}
|
|
451
|
+
debugMessage(`cli.PolicyOps.importPoliciesFromFile: end`);
|
|
452
|
+
return outcome;
|
|
453
|
+
}
|
|
454
|
+
|
|
455
|
+
/**
|
|
456
|
+
* Import policies from files
|
|
457
|
+
* @param {PolicyImportOptions} options import options
|
|
458
|
+
* @returns {Promise<boolean>} true if successful, false otherwise
|
|
459
|
+
*/
|
|
460
|
+
export async function importPoliciesFromFiles(options = {
|
|
461
|
+
deps: true,
|
|
462
|
+
prereqs: false
|
|
463
|
+
}) {
|
|
464
|
+
const errors = [];
|
|
465
|
+
try {
|
|
466
|
+
debugMessage(`cli.PolicyOps.importPoliciesFromFiles: begin`);
|
|
467
|
+
const names = fs.readdirSync('.');
|
|
468
|
+
const files = names.filter(name => name.toLowerCase().endsWith('.policy.authz.json'));
|
|
469
|
+
createProgressBar(files.length, 'Importing policies...');
|
|
470
|
+
let total = 0;
|
|
471
|
+
for (const file of files) {
|
|
472
|
+
try {
|
|
473
|
+
const data = fs.readFileSync(file, 'utf8');
|
|
474
|
+
const fileData = JSON.parse(data);
|
|
475
|
+
const count = Object.keys(fileData.policyset).length;
|
|
476
|
+
total += count;
|
|
477
|
+
await importPolicies(fileData, options);
|
|
478
|
+
updateProgressBar(`Imported ${count} policies from ${file}`);
|
|
479
|
+
} catch (error) {
|
|
480
|
+
errors.push(error);
|
|
481
|
+
updateProgressBar(`Error importing policies from ${file}`);
|
|
482
|
+
printMessage(error, 'error');
|
|
483
|
+
}
|
|
484
|
+
}
|
|
485
|
+
stopProgressBar(`Finished importing ${total} policies from ${files.length} files.`);
|
|
486
|
+
} catch (error) {
|
|
487
|
+
errors.push(error);
|
|
488
|
+
stopProgressBar(`Error importing policies from files.`);
|
|
489
|
+
printMessage(error, 'error');
|
|
490
|
+
}
|
|
491
|
+
debugMessage(`cli.PolicyOps.importPoliciesFromFiles: end`);
|
|
492
|
+
return 0 === errors.length;
|
|
493
|
+
}
|
|
392
494
|
//# sourceMappingURL=PolicyOps.js.map
|
package/esm/ops/PolicyOps.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PolicyOps.js","names":["fs","Policy","Utils","state","createObjectTable","createProgressBar","debugMessage","failSpinner","printMessage","showSpinner","stopProgressBar","succeedSpinner","updateProgressBar","getTypedFilename","saveJsonToFile","titleCase","deletePolicy","_deletePolicy","getPolicy","getPolicies","getPoliciesByPolicySet","exportPolicy","exportPolicies","exportPoliciesByPolicySet","importPolicy","getRealmName","listPolicies","long","outcome","policies","sort","a","b","_id","localeCompare","policy","err","message","listPoliciesByPolicySet","policySetId","describePolicy","policyId","json","policySet","table","toString","errors","error","length","errorMessages","map","join","deletePolicies","push","deletePoliciesByPolicySet","exportPolicyToFile","file","options","useStringArrays","deps","fileName","exportData","exportPoliciesToFile","getRealm","exportPoliciesByPolicySetToFile","exportPoliciesToFiles","exportPoliciesByPolicySetToFiles","importPolicyFromFile","data","readFileSync","fileData","JSON","parse"],"sources":["ops/PolicyOps.ts"],"sourcesContent":["import fs from 'fs';\nimport { PolicySkeleton } from '@rockcarver/frodo-lib/types/api/ApiTypes';\nimport { Policy, Utils, state } from '@rockcarver/frodo-lib';\nimport {\n createObjectTable,\n createProgressBar,\n debugMessage,\n failSpinner,\n printMessage,\n showSpinner,\n stopProgressBar,\n succeedSpinner,\n updateProgressBar,\n} from '../utils/Console';\nimport {\n getTypedFilename,\n saveJsonToFile,\n titleCase,\n} from '../utils/ExportImportUtils';\nimport {\n PolicyExportOptions,\n PolicyImportOptions,\n PolicyExportInterface,\n} from '@rockcarver/frodo-lib/types/ops/PolicyOps';\n\nconst {\n deletePolicy: _deletePolicy,\n getPolicy,\n getPolicies,\n getPoliciesByPolicySet,\n exportPolicy,\n exportPolicies,\n exportPoliciesByPolicySet,\n importPolicy,\n} = Policy;\nconst { getRealmName } = Utils;\n\n/**\n * List policies\n * @param {boolean} long list with details\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function listPolicies(long = false): Promise<boolean> {\n let outcome = false;\n try {\n const policies = await getPolicies();\n policies.sort((a, b) => a._id.localeCompare(b._id));\n for (const policy of policies) {\n if (!long) {\n printMessage(`${policy._id}`, 'data');\n }\n }\n outcome = true;\n } catch (err) {\n printMessage(`listPolicies ERROR: ${err.message}`, 'error');\n printMessage(err, 'error');\n }\n return outcome;\n}\n\n/**\n * List policies by policy set\n * @param {string} policySetId policy set id/name\n * @param {boolean} long list with details\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function listPoliciesByPolicySet(\n policySetId: string,\n long = false\n): Promise<boolean> {\n let outcome = false;\n try {\n const policies = await getPoliciesByPolicySet(policySetId);\n policies.sort((a, b) => a._id.localeCompare(b._id));\n for (const policy of policies) {\n if (!long) {\n printMessage(`${policy._id}`, 'data');\n }\n }\n outcome = true;\n } catch (err) {\n printMessage(`listPolicies ERROR: ${err.message}`, 'error');\n printMessage(err, 'error');\n }\n return outcome;\n}\n\n/**\n * Describe policy\n * @param {string} policyId policy id/name\n * @param {Object} json JSON output\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function describePolicy(\n policyId: string,\n json = false\n): Promise<boolean> {\n let outcome = false;\n const policySet = await getPolicy(policyId);\n outcome = true;\n if (json) {\n printMessage(policySet, 'data');\n } else {\n const table = createObjectTable(policySet);\n printMessage(table.toString(), 'data');\n }\n return outcome;\n}\n\n/**\n * Delete policy\n * @param {string} policyId policy id/name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function deletePolicy(policyId: string): Promise<boolean> {\n debugMessage(`cli.PolicyOps.deletePolicy: begin`);\n showSpinner(`Deleting ${policyId}...`);\n let outcome = false;\n const errors = [];\n try {\n debugMessage(`Deleting policy ${policyId}`);\n await _deletePolicy(policyId);\n } catch (error) {\n printMessage(`Error deleting policy ${policyId}: ${error}`, 'error');\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n failSpinner(`Error deleting ${policyId}: ${errorMessages}`);\n } else {\n succeedSpinner(`Deleted ${policyId}.`);\n outcome = true;\n }\n debugMessage(`cli.PolicyOps.deletePolicy: end [outcome=${outcome}]`);\n return outcome;\n}\n\n/**\n * Delete all policies\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function deletePolicies(): Promise<boolean> {\n debugMessage(`cli.PolicyOps.deletePolicies: begin`);\n let outcome = false;\n const errors = [];\n let policies: PolicySkeleton[] = [];\n try {\n showSpinner(`Retrieving all policies...`);\n try {\n policies = await getPolicies();\n succeedSpinner(`Found ${policies.length} policies.`);\n } catch (error) {\n error.message = `Error retrieving all policies: ${error.message}`;\n failSpinner(error.message);\n throw error;\n }\n if (policies.length)\n createProgressBar(\n policies.length,\n `Deleting ${policies.length} policies...`\n );\n for (const policy of policies) {\n const policyId = policy._id;\n try {\n debugMessage(`Deleting policy ${policyId}`);\n await _deletePolicy(policyId);\n updateProgressBar(`Deleted ${policyId}`);\n } catch (error) {\n error.message = `Error deleting policy ${policyId}: ${error}`;\n updateProgressBar(error.message);\n errors.push(error);\n }\n }\n } catch (error) {\n error.message = `Error deleting policies: ${error}`;\n errors.push(error);\n } finally {\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n if (policies.length)\n stopProgressBar(`Error deleting all policies: ${errorMessages}`);\n } else {\n if (policies.length)\n stopProgressBar(`Deleted ${policies.length} policies.`);\n outcome = true;\n }\n }\n debugMessage(`cli.PolicyOps.deletePolicies: end [outcome=${outcome}]`);\n return outcome;\n}\n\n/**\n * Delete all policies in policy set\n * @param {string} policySetId policy set id/name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function deletePoliciesByPolicySet(\n policySetId: string\n): Promise<boolean> {\n debugMessage(`cli.PolicyOps.deletePoliciesByPolicySet: begin`);\n let outcome = false;\n const errors = [];\n let policies: PolicySkeleton[] = [];\n try {\n showSpinner(`Retrieving all policies from policy set ${policySetId}...`);\n try {\n policies = await getPoliciesByPolicySet(policySetId);\n succeedSpinner(\n `Found ${policies.length} policies in policy set ${policySetId}.`\n );\n } catch (error) {\n error.message = `Error retrieving all policies from policy set ${policySetId}: ${error.message}`;\n failSpinner(error.message);\n throw error;\n }\n if (policies.length)\n createProgressBar(\n policies.length,\n `Deleting ${policies.length} policies from policy set ${policySetId}...`\n );\n for (const policy of policies) {\n const policyId = policy._id;\n try {\n debugMessage(`Deleting policy ${policyId}`);\n await _deletePolicy(policyId);\n updateProgressBar(`Deleted ${policyId}`);\n } catch (error) {\n error.message = `Error deleting policy ${policyId} from policy set ${policySetId}: ${error}`;\n updateProgressBar(error.message);\n errors.push(error);\n }\n }\n } catch (error) {\n error.message = `Error deleting policies from policy set ${policySetId}: ${error}`;\n errors.push(error);\n } finally {\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n if (policies.length)\n stopProgressBar(\n `Error deleting all policies from policy set ${policySetId}: ${errorMessages}`\n );\n } else {\n if (policies.length)\n stopProgressBar(`Deleted ${policies.length} policies.`);\n outcome = true;\n }\n }\n debugMessage(\n `cli.PolicyOps.deletePoliciesByPolicySet: end [outcome=${outcome}]`\n );\n return outcome;\n}\n\n/**\n * Export policy to file\n * @param {string} policyId policy id/name\n * @param {string} file file name\n * @param {ApplicationExportOptions} options export options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportPolicyToFile(\n policyId: string,\n file: string,\n options: PolicyExportOptions = { useStringArrays: true, deps: true }\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.PolicyOps.exportPolicyToFile: begin`);\n showSpinner(`Exporting ${policyId}...`);\n try {\n let fileName = getTypedFilename(policyId, 'policy.authz');\n if (file) {\n fileName = file;\n }\n const exportData = await exportPolicy(policyId, options);\n saveJsonToFile(exportData, fileName);\n succeedSpinner(`Exported ${policyId} to ${fileName}.`);\n outcome = true;\n } catch (error) {\n failSpinner(`Error exporting ${policyId}: ${error.message}`);\n }\n debugMessage(`cli.PolicyOps.exportPolicyToFile: end`);\n return outcome;\n}\n\n/**\n * Export policies to file\n * @param {string} file file name\n * @param {PolicyExportOptions} options export options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportPoliciesToFile(\n file: string,\n options: PolicyExportOptions = { useStringArrays: true, deps: true }\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.PolicyOps.exportPoliciesToFile: begin`);\n showSpinner(`Exporting all policy sets...`);\n try {\n let fileName = getTypedFilename(\n `all${titleCase(getRealmName(state.getRealm()))}Policies`,\n 'policy.authz'\n );\n if (file) {\n fileName = file;\n }\n const exportData = await exportPolicies(options);\n saveJsonToFile(exportData, fileName);\n succeedSpinner(`Exported all policy sets to ${fileName}.`);\n outcome = true;\n } catch (error) {\n failSpinner(`Error exporting policy sets: ${error.message}`);\n }\n debugMessage(`cli.PolicyOps.exportPoliciesToFile: end`);\n return outcome;\n}\n\n/**\n * Export policies to file\n * @param {string} policySetId policy set id/name\n * @param {string} file file name\n * @param {PolicyExportOptions} options export options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportPoliciesByPolicySetToFile(\n policySetId: string,\n file: string,\n options: PolicyExportOptions = { useStringArrays: true, deps: true }\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.PolicyOps.exportPoliciesToFile: begin`);\n showSpinner(`Exporting all policy sets...`);\n try {\n let fileName = getTypedFilename(\n `all${titleCase(getRealmName(state.getRealm()))}Policies`,\n 'policy.authz'\n );\n if (file) {\n fileName = file;\n }\n const exportData = await exportPoliciesByPolicySet(policySetId, options);\n saveJsonToFile(exportData, fileName);\n succeedSpinner(`Exported all policy sets to ${fileName}.`);\n outcome = true;\n } catch (error) {\n failSpinner(`Error exporting policy sets: ${error.message}`);\n }\n debugMessage(`cli.PolicyOps.exportPoliciesToFile: end`);\n return outcome;\n}\n\n/**\n * Export all policies to separate files\n * @param {PolicyExportOptions} options export options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportPoliciesToFiles(\n options: PolicyExportOptions = { useStringArrays: true, deps: true }\n): Promise<boolean> {\n debugMessage(`cli.PolicyOps.exportPoliciesToFiles: begin`);\n const errors = [];\n try {\n const policies: PolicySkeleton[] = await getPolicies();\n createProgressBar(policies.length, 'Exporting policy sets...');\n for (const policy of policies) {\n const file = getTypedFilename(policy._id, 'policy.authz');\n try {\n const exportData: PolicyExportInterface = await exportPolicy(\n policy._id,\n options\n );\n saveJsonToFile(exportData, file);\n updateProgressBar(`Exported ${policy._id}.`);\n } catch (error) {\n errors.push(error);\n updateProgressBar(`Error exporting ${policy._id}.`);\n }\n }\n stopProgressBar(`Export complete.`);\n } catch (error) {\n errors.push(error);\n stopProgressBar(`Error exporting policy sets to files`);\n }\n debugMessage(`cli.PolicyOps.exportPoliciesToFiles: end`);\n return 0 === errors.length;\n}\n\n/**\n * Export all policies to separate files\n * @param {PolicyExportOptions} options export options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportPoliciesByPolicySetToFiles(\n policySetId: string,\n options: PolicyExportOptions = { useStringArrays: true, deps: true }\n): Promise<boolean> {\n debugMessage(`cli.PolicyOps.exportPoliciesToFiles: begin`);\n const errors = [];\n try {\n const policies: PolicySkeleton[] = await getPoliciesByPolicySet(\n policySetId\n );\n createProgressBar(\n policies.length,\n `Exporting policies in policy set ${policySetId}...`\n );\n for (const policy of policies) {\n const file = getTypedFilename(policy._id, 'policy.authz');\n try {\n const exportData: PolicyExportInterface = await exportPolicy(\n policy._id,\n options\n );\n saveJsonToFile(exportData, file);\n updateProgressBar(`Exported ${policy._id}.`);\n } catch (error) {\n errors.push(error);\n updateProgressBar(`Error exporting ${policy._id}.`);\n }\n }\n stopProgressBar(`Export complete.`);\n } catch (error) {\n errors.push(error);\n stopProgressBar(`Error exporting policy sets to files`);\n }\n debugMessage(`cli.PolicyOps.exportPoliciesToFiles: end`);\n return 0 === errors.length;\n}\n\n/**\n * Import policy set from file\n * @param {string} policyId policy set name\n * @param {string} file file name\n * @param {PolicyImportOptions} options import options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importPolicyFromFile(\n policyId: string,\n file: string,\n options: PolicyImportOptions = { deps: true }\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.PolicyOps.importPolicyFromFile: begin`);\n showSpinner(`Importing ${policyId}...`);\n try {\n const data = fs.readFileSync(file, 'utf8');\n const fileData = JSON.parse(data);\n await importPolicy(policyId, fileData, options);\n outcome = true;\n succeedSpinner(`Imported ${policyId}.`);\n } catch (error) {\n failSpinner(`Error importing ${policyId}.`);\n printMessage(error, 'error');\n }\n debugMessage(`cli.PolicyOps.importPolicyFromFile: end`);\n return outcome;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PolicyOps.js","names":["fs","Policy","Utils","state","createObjectTable","createProgressBar","debugMessage","failSpinner","printMessage","showSpinner","stopProgressBar","succeedSpinner","updateProgressBar","getTypedFilename","saveJsonToFile","titleCase","deletePolicy","_deletePolicy","getPolicy","getPolicies","getPoliciesByPolicySet","exportPolicy","exportPolicies","exportPoliciesByPolicySet","importPolicy","importFirstPolicy","importPolicies","getRealmName","listPolicies","long","outcome","policies","sort","a","b","_id","localeCompare","policy","err","message","listPoliciesByPolicySet","policySetId","describePolicy","policyId","json","policySet","table","toString","errors","error","length","errorMessages","map","join","deletePolicies","push","deletePoliciesByPolicySet","exportPolicyToFile","file","options","deps","prereqs","useStringArrays","fileName","exportData","exportPoliciesToFile","getRealm","exportPoliciesByPolicySetToFile","exportPoliciesToFiles","exportPoliciesByPolicySetToFiles","importPolicyFromFile","data","readFileSync","fileData","JSON","parse","importFirstPolicyFromFile","importPoliciesFromFile","policySetName","importPoliciesFromFiles","names","readdirSync","files","filter","name","toLowerCase","endsWith","total","count","Object","keys","policyset"],"sources":["ops/PolicyOps.ts"],"sourcesContent":["import fs from 'fs';\nimport { PolicySkeleton } from '@rockcarver/frodo-lib/types/api/ApiTypes';\nimport { Policy, Utils, state } from '@rockcarver/frodo-lib';\nimport {\n createObjectTable,\n createProgressBar,\n debugMessage,\n failSpinner,\n printMessage,\n showSpinner,\n stopProgressBar,\n succeedSpinner,\n updateProgressBar,\n} from '../utils/Console';\nimport {\n getTypedFilename,\n saveJsonToFile,\n titleCase,\n} from '../utils/ExportImportUtils';\nimport {\n PolicyExportOptions,\n PolicyImportOptions,\n PolicyExportInterface,\n} from '@rockcarver/frodo-lib/types/ops/PolicyOps';\n\nconst {\n deletePolicy: _deletePolicy,\n getPolicy,\n getPolicies,\n getPoliciesByPolicySet,\n exportPolicy,\n exportPolicies,\n exportPoliciesByPolicySet,\n importPolicy,\n importFirstPolicy,\n importPolicies,\n} = Policy;\nconst { getRealmName } = Utils;\n\n/**\n * List policies\n * @param {boolean} long list with details\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function listPolicies(long = false): Promise<boolean> {\n let outcome = false;\n try {\n const policies = await getPolicies();\n policies.sort((a, b) => a._id.localeCompare(b._id));\n for (const policy of policies) {\n if (!long) {\n printMessage(`${policy._id}`, 'data');\n }\n }\n outcome = true;\n } catch (err) {\n printMessage(`listPolicies ERROR: ${err.message}`, 'error');\n printMessage(err, 'error');\n }\n return outcome;\n}\n\n/**\n * List policies by policy set\n * @param {string} policySetId policy set id/name\n * @param {boolean} long list with details\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function listPoliciesByPolicySet(\n policySetId: string,\n long = false\n): Promise<boolean> {\n let outcome = false;\n try {\n const policies = await getPoliciesByPolicySet(policySetId);\n policies.sort((a, b) => a._id.localeCompare(b._id));\n for (const policy of policies) {\n if (!long) {\n printMessage(`${policy._id}`, 'data');\n }\n }\n outcome = true;\n } catch (err) {\n printMessage(`listPolicies ERROR: ${err.message}`, 'error');\n printMessage(err, 'error');\n }\n return outcome;\n}\n\n/**\n * Describe policy\n * @param {string} policyId policy id/name\n * @param {Object} json JSON output\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function describePolicy(\n policyId: string,\n json = false\n): Promise<boolean> {\n let outcome = false;\n const policySet = await getPolicy(policyId);\n outcome = true;\n if (json) {\n printMessage(policySet, 'data');\n } else {\n const table = createObjectTable(policySet);\n printMessage(table.toString(), 'data');\n }\n return outcome;\n}\n\n/**\n * Delete policy\n * @param {string} policyId policy id/name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function deletePolicy(policyId: string): Promise<boolean> {\n debugMessage(`cli.PolicyOps.deletePolicy: begin`);\n showSpinner(`Deleting ${policyId}...`);\n let outcome = false;\n const errors = [];\n try {\n debugMessage(`Deleting policy ${policyId}`);\n await _deletePolicy(policyId);\n } catch (error) {\n printMessage(`Error deleting policy ${policyId}: ${error}`, 'error');\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n failSpinner(`Error deleting ${policyId}: ${errorMessages}`);\n } else {\n succeedSpinner(`Deleted ${policyId}.`);\n outcome = true;\n }\n debugMessage(`cli.PolicyOps.deletePolicy: end [outcome=${outcome}]`);\n return outcome;\n}\n\n/**\n * Delete all policies\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function deletePolicies(): Promise<boolean> {\n debugMessage(`cli.PolicyOps.deletePolicies: begin`);\n let outcome = false;\n const errors = [];\n let policies: PolicySkeleton[] = [];\n try {\n showSpinner(`Retrieving all policies...`);\n try {\n policies = await getPolicies();\n succeedSpinner(`Found ${policies.length} policies.`);\n } catch (error) {\n error.message = `Error retrieving all policies: ${error.message}`;\n failSpinner(error.message);\n throw error;\n }\n if (policies.length)\n createProgressBar(\n policies.length,\n `Deleting ${policies.length} policies...`\n );\n for (const policy of policies) {\n const policyId = policy._id;\n try {\n debugMessage(`Deleting policy ${policyId}`);\n await _deletePolicy(policyId);\n updateProgressBar(`Deleted ${policyId}`);\n } catch (error) {\n error.message = `Error deleting policy ${policyId}: ${error}`;\n updateProgressBar(error.message);\n errors.push(error);\n }\n }\n } catch (error) {\n error.message = `Error deleting policies: ${error}`;\n errors.push(error);\n } finally {\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n if (policies.length)\n stopProgressBar(`Error deleting all policies: ${errorMessages}`);\n } else {\n if (policies.length)\n stopProgressBar(`Deleted ${policies.length} policies.`);\n outcome = true;\n }\n }\n debugMessage(`cli.PolicyOps.deletePolicies: end [outcome=${outcome}]`);\n return outcome;\n}\n\n/**\n * Delete all policies in policy set\n * @param {string} policySetId policy set id/name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function deletePoliciesByPolicySet(\n policySetId: string\n): Promise<boolean> {\n debugMessage(`cli.PolicyOps.deletePoliciesByPolicySet: begin`);\n let outcome = false;\n const errors = [];\n let policies: PolicySkeleton[] = [];\n try {\n showSpinner(`Retrieving all policies from policy set ${policySetId}...`);\n try {\n policies = await getPoliciesByPolicySet(policySetId);\n succeedSpinner(\n `Found ${policies.length} policies in policy set ${policySetId}.`\n );\n } catch (error) {\n error.message = `Error retrieving all policies from policy set ${policySetId}: ${error.message}`;\n failSpinner(error.message);\n throw error;\n }\n if (policies.length)\n createProgressBar(\n policies.length,\n `Deleting ${policies.length} policies from policy set ${policySetId}...`\n );\n for (const policy of policies) {\n const policyId = policy._id;\n try {\n debugMessage(`Deleting policy ${policyId}`);\n await _deletePolicy(policyId);\n updateProgressBar(`Deleted ${policyId}`);\n } catch (error) {\n error.message = `Error deleting policy ${policyId} from policy set ${policySetId}: ${error}`;\n updateProgressBar(error.message);\n errors.push(error);\n }\n }\n } catch (error) {\n error.message = `Error deleting policies from policy set ${policySetId}: ${error}`;\n errors.push(error);\n } finally {\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n if (policies.length)\n stopProgressBar(\n `Error deleting all policies from policy set ${policySetId}: ${errorMessages}`\n );\n } else {\n if (policies.length)\n stopProgressBar(`Deleted ${policies.length} policies.`);\n outcome = true;\n }\n }\n debugMessage(\n `cli.PolicyOps.deletePoliciesByPolicySet: end [outcome=${outcome}]`\n );\n return outcome;\n}\n\n/**\n * Export policy to file\n * @param {string} policyId policy id/name\n * @param {string} file file name\n * @param {ApplicationExportOptions} options export options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportPolicyToFile(\n policyId: string,\n file: string,\n options: PolicyExportOptions = {\n deps: true,\n prereqs: false,\n useStringArrays: true,\n }\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.PolicyOps.exportPolicyToFile: begin`);\n showSpinner(`Exporting ${policyId}...`);\n try {\n let fileName = getTypedFilename(policyId, 'policy.authz');\n if (file) {\n fileName = file;\n }\n const exportData = await exportPolicy(policyId, options);\n saveJsonToFile(exportData, fileName);\n succeedSpinner(`Exported ${policyId} to ${fileName}.`);\n outcome = true;\n } catch (error) {\n failSpinner(`Error exporting ${policyId}: ${error.message}`);\n }\n debugMessage(`cli.PolicyOps.exportPolicyToFile: end`);\n return outcome;\n}\n\n/**\n * Export policies to file\n * @param {string} file file name\n * @param {PolicyExportOptions} options export options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportPoliciesToFile(\n file: string,\n options: PolicyExportOptions = {\n deps: true,\n prereqs: false,\n useStringArrays: true,\n }\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.PolicyOps.exportPoliciesToFile: begin`);\n showSpinner(`Exporting all policy sets...`);\n try {\n let fileName = getTypedFilename(\n `all${titleCase(getRealmName(state.getRealm()))}Policies`,\n 'policy.authz'\n );\n if (file) {\n fileName = file;\n }\n const exportData = await exportPolicies(options);\n saveJsonToFile(exportData, fileName);\n succeedSpinner(`Exported all policy sets to ${fileName}.`);\n outcome = true;\n } catch (error) {\n failSpinner(`Error exporting policy sets: ${error.message}`);\n }\n debugMessage(`cli.PolicyOps.exportPoliciesToFile: end`);\n return outcome;\n}\n\n/**\n * Export policies to file\n * @param {string} policySetId policy set id/name\n * @param {string} file file name\n * @param {PolicyExportOptions} options export options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportPoliciesByPolicySetToFile(\n policySetId: string,\n file: string,\n options: PolicyExportOptions = {\n deps: true,\n prereqs: false,\n useStringArrays: true,\n }\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.PolicyOps.exportPoliciesToFile: begin`);\n showSpinner(`Exporting all policy sets...`);\n try {\n let fileName = getTypedFilename(\n `all${\n titleCase(getRealmName(state.getRealm())) + titleCase(policySetId)\n }Policies`,\n 'policy.authz'\n );\n if (file) {\n fileName = file;\n }\n const exportData = await exportPoliciesByPolicySet(policySetId, options);\n saveJsonToFile(exportData, fileName);\n succeedSpinner(`Exported all policy sets to ${fileName}.`);\n outcome = true;\n } catch (error) {\n failSpinner(`Error exporting policy sets: ${error.message}`);\n }\n debugMessage(`cli.PolicyOps.exportPoliciesToFile: end`);\n return outcome;\n}\n\n/**\n * Export all policies to separate files\n * @param {PolicyExportOptions} options export options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportPoliciesToFiles(\n options: PolicyExportOptions = {\n deps: true,\n prereqs: false,\n useStringArrays: true,\n }\n): Promise<boolean> {\n debugMessage(`cli.PolicyOps.exportPoliciesToFiles: begin`);\n const errors = [];\n try {\n const policies: PolicySkeleton[] = await getPolicies();\n createProgressBar(policies.length, 'Exporting policy sets...');\n for (const policy of policies) {\n const file = getTypedFilename(policy._id, 'policy.authz');\n try {\n const exportData: PolicyExportInterface = await exportPolicy(\n policy._id,\n options\n );\n saveJsonToFile(exportData, file);\n updateProgressBar(`Exported ${policy._id}.`);\n } catch (error) {\n errors.push(error);\n updateProgressBar(`Error exporting ${policy._id}.`);\n }\n }\n stopProgressBar(`Export complete.`);\n } catch (error) {\n errors.push(error);\n stopProgressBar(`Error exporting policy sets to files`);\n }\n debugMessage(`cli.PolicyOps.exportPoliciesToFiles: end`);\n return 0 === errors.length;\n}\n\n/**\n * Export all policies to separate files\n * @param {PolicyExportOptions} options export options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportPoliciesByPolicySetToFiles(\n policySetId: string,\n options: PolicyExportOptions = {\n deps: true,\n prereqs: false,\n useStringArrays: true,\n }\n): Promise<boolean> {\n debugMessage(`cli.PolicyOps.exportPoliciesToFiles: begin`);\n const errors = [];\n try {\n const policies: PolicySkeleton[] = await getPoliciesByPolicySet(\n policySetId\n );\n createProgressBar(\n policies.length,\n `Exporting policies in policy set ${policySetId}...`\n );\n for (const policy of policies) {\n const file = getTypedFilename(policy._id, 'policy.authz');\n try {\n const exportData: PolicyExportInterface = await exportPolicy(\n policy._id,\n options\n );\n saveJsonToFile(exportData, file);\n updateProgressBar(`Exported ${policy._id}.`);\n } catch (error) {\n errors.push(error);\n updateProgressBar(`Error exporting ${policy._id}.`);\n }\n }\n stopProgressBar(`Export complete.`);\n } catch (error) {\n errors.push(error);\n stopProgressBar(`Error exporting policy sets to files`);\n }\n debugMessage(`cli.PolicyOps.exportPoliciesToFiles: end`);\n return 0 === errors.length;\n}\n\n/**\n * Import policy from file\n * @param {string} policyId policy id/name\n * @param {string} file file name\n * @param {PolicyImportOptions} options import options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importPolicyFromFile(\n policyId: string,\n file: string,\n options: PolicyImportOptions = { deps: true, prereqs: false }\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.PolicyOps.importPolicyFromFile: begin`);\n showSpinner(`Importing ${policyId}...`);\n try {\n const data = fs.readFileSync(file, 'utf8');\n const fileData = JSON.parse(data);\n await importPolicy(policyId, fileData, options);\n outcome = true;\n succeedSpinner(`Imported ${policyId}.`);\n } catch (error) {\n failSpinner(`Error importing ${policyId}.`);\n printMessage(error, 'error');\n }\n debugMessage(`cli.PolicyOps.importPolicyFromFile: end`);\n return outcome;\n}\n\n/**\n * Import first policy from file\n * @param {string} file file name\n * @param {PolicyImportOptions} options import options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importFirstPolicyFromFile(\n file: string,\n options: PolicyImportOptions = { deps: true, prereqs: false }\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.PolicySetOps.importFirstPolicyFromFile: begin`);\n showSpinner(`Importing ${file}...`);\n try {\n const data = fs.readFileSync(file, 'utf8');\n const fileData = JSON.parse(data);\n await importFirstPolicy(fileData, options);\n outcome = true;\n succeedSpinner(`Imported ${file}.`);\n } catch (error) {\n failSpinner(`Error importing ${file}.`);\n printMessage(error, 'error');\n }\n debugMessage(`cli.PolicySetOps.importFirstPolicyFromFile: end`);\n return outcome;\n}\n\n/**\n * Import policies from file\n * @param {string} file file name\n * @param {PolicyImportOptions} options import options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importPoliciesFromFile(\n file: string,\n options: PolicyImportOptions = { deps: true, prereqs: false }\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.PolicyOps.importPoliciesFromFile: begin`);\n showSpinner(`Importing ${file}...`);\n try {\n const data = fs.readFileSync(file, 'utf8');\n const fileData = JSON.parse(data);\n await importPolicies(fileData, options);\n outcome = true;\n succeedSpinner(\n `Imported ${file}${\n options.policySetName\n ? ' into policy set ' + options.policySetName\n : '.'\n }`\n );\n } catch (error) {\n failSpinner(\n `Error importing ${file}${\n options.policySetName\n ? ' into policy set ' + options.policySetName\n : '.'\n }`\n );\n printMessage(error, 'error');\n }\n debugMessage(`cli.PolicyOps.importPoliciesFromFile: end`);\n return outcome;\n}\n\n/**\n * Import policies from files\n * @param {PolicyImportOptions} options import options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importPoliciesFromFiles(\n options: PolicyImportOptions = { deps: true, prereqs: false }\n): Promise<boolean> {\n const errors = [];\n try {\n debugMessage(`cli.PolicyOps.importPoliciesFromFiles: begin`);\n const names = fs.readdirSync('.');\n const files = names.filter((name) =>\n name.toLowerCase().endsWith('.policy.authz.json')\n );\n createProgressBar(files.length, 'Importing policies...');\n let total = 0;\n for (const file of files) {\n try {\n const data = fs.readFileSync(file, 'utf8');\n const fileData: PolicyExportInterface = JSON.parse(data);\n const count = Object.keys(fileData.policyset).length;\n total += count;\n await importPolicies(fileData, options);\n updateProgressBar(`Imported ${count} policies from ${file}`);\n } catch (error) {\n errors.push(error);\n updateProgressBar(`Error importing policies from ${file}`);\n printMessage(error, 'error');\n }\n }\n stopProgressBar(\n `Finished importing ${total} policies from ${files.length} files.`\n );\n } catch (error) {\n errors.push(error);\n stopProgressBar(`Error importing policies from files.`);\n printMessage(error, 'error');\n }\n debugMessage(`cli.PolicyOps.importPoliciesFromFiles: end`);\n return 0 === errors.length;\n}\n"],"mappings":"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"}
|
package/esm/ops/PolicySetOps.js
CHANGED
|
@@ -168,8 +168,9 @@ export async function deletePolicySets() {
|
|
|
168
168
|
* @returns {Promise<boolean>} true if successful, false otherwise
|
|
169
169
|
*/
|
|
170
170
|
export async function exportPolicySetToFile(policySetId, file, options = {
|
|
171
|
-
|
|
172
|
-
|
|
171
|
+
deps: true,
|
|
172
|
+
prereqs: false,
|
|
173
|
+
useStringArrays: true
|
|
173
174
|
}) {
|
|
174
175
|
let outcome = false;
|
|
175
176
|
debugMessage(`cli.PolicySetOps.exportPolicySetToFile: begin`);
|
|
@@ -197,8 +198,9 @@ export async function exportPolicySetToFile(policySetId, file, options = {
|
|
|
197
198
|
* @returns {Promise<boolean>} true if successful, false otherwise
|
|
198
199
|
*/
|
|
199
200
|
export async function exportPolicySetsToFile(file, options = {
|
|
200
|
-
|
|
201
|
-
|
|
201
|
+
deps: true,
|
|
202
|
+
prereqs: false,
|
|
203
|
+
useStringArrays: true
|
|
202
204
|
}) {
|
|
203
205
|
let outcome = false;
|
|
204
206
|
debugMessage(`cli.PolicySetOps.exportPolicySetsToFile: begin`);
|
|
@@ -225,8 +227,9 @@ export async function exportPolicySetsToFile(file, options = {
|
|
|
225
227
|
* @returns {Promise<boolean>} true if successful, false otherwise
|
|
226
228
|
*/
|
|
227
229
|
export async function exportPolicySetsToFiles(options = {
|
|
228
|
-
|
|
229
|
-
|
|
230
|
+
deps: true,
|
|
231
|
+
prereqs: false,
|
|
232
|
+
useStringArrays: true
|
|
230
233
|
}) {
|
|
231
234
|
debugMessage(`cli.PolicySetOps.exportPolicySetsToFiles: begin`);
|
|
232
235
|
const errors = [];
|
|
@@ -261,7 +264,8 @@ export async function exportPolicySetsToFiles(options = {
|
|
|
261
264
|
* @returns {Promise<boolean>} true if successful, false otherwise
|
|
262
265
|
*/
|
|
263
266
|
export async function importPolicySetFromFile(policySetId, file, options = {
|
|
264
|
-
deps: true
|
|
267
|
+
deps: true,
|
|
268
|
+
prereqs: false
|
|
265
269
|
}) {
|
|
266
270
|
let outcome = false;
|
|
267
271
|
debugMessage(`cli.PolicySetOps.importPolicySetFromFile: begin`);
|
|
@@ -287,7 +291,8 @@ export async function importPolicySetFromFile(policySetId, file, options = {
|
|
|
287
291
|
* @returns {Promise<boolean>} true if successful, false otherwise
|
|
288
292
|
*/
|
|
289
293
|
export async function importFirstPolicySetFromFile(file, options = {
|
|
290
|
-
deps: true
|
|
294
|
+
deps: true,
|
|
295
|
+
prereqs: false
|
|
291
296
|
}) {
|
|
292
297
|
let outcome = false;
|
|
293
298
|
debugMessage(`cli.PolicySetOps.importFirstPolicySetFromFile: begin`);
|
|
@@ -313,7 +318,8 @@ export async function importFirstPolicySetFromFile(file, options = {
|
|
|
313
318
|
* @returns {Promise<boolean>} true if successful, false otherwise
|
|
314
319
|
*/
|
|
315
320
|
export async function importPolicySetsFromFile(file, options = {
|
|
316
|
-
deps: true
|
|
321
|
+
deps: true,
|
|
322
|
+
prereqs: false
|
|
317
323
|
}) {
|
|
318
324
|
let outcome = false;
|
|
319
325
|
debugMessage(`cli.PolicySetOps.importPolicySetsFromFile: begin`);
|
|
@@ -338,7 +344,8 @@ export async function importPolicySetsFromFile(file, options = {
|
|
|
338
344
|
* @returns {Promise<boolean>} true if successful, false otherwise
|
|
339
345
|
*/
|
|
340
346
|
export async function importPolicySetsFromFiles(options = {
|
|
341
|
-
deps: true
|
|
347
|
+
deps: true,
|
|
348
|
+
prereqs: false
|
|
342
349
|
}) {
|
|
343
350
|
const errors = [];
|
|
344
351
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PolicySetOps.js","names":["fs","Policy","PolicySet","Utils","state","createObjectTable","createProgressBar","debugMessage","failSpinner","printMessage","showSpinner","stopProgressBar","succeedSpinner","updateProgressBar","getTypedFilename","saveJsonToFile","titleCase","deletePolicySet","_deletePolicySet","getPolicySets","getPolicySet","exportPolicySet","exportPolicySets","importPolicySet","importFirstPolicySet","importPolicySets","getPoliciesByPolicySet","deletePolicy","getRealmName","listPolicySets","outcome","policySets","sort","a","b","name","localeCompare","policySet","err","message","describePolicySet","policySetId","json","table","toString","errors","policies","policy","_id","error","push","length","errorMessages","map","join","deletePolicySets","exportPolicySetToFile","file","options","useStringArrays","deps","fileName","exportData","exportPolicySetsToFile","getRealm","exportPolicySetsToFiles","importPolicySetFromFile","data","readFileSync","fileData","JSON","parse","importFirstPolicySetFromFile","importPolicySetsFromFile","importPolicySetsFromFiles","names","readdirSync","files","filter","toLowerCase","endsWith","total","count","Object","keys","policyset"],"sources":["ops/PolicySetOps.ts"],"sourcesContent":["import fs from 'fs';\nimport {\n PolicySetSkeleton,\n PolicySkeleton,\n} from '@rockcarver/frodo-lib/types/api/ApiTypes';\nimport { Policy, PolicySet, Utils, state } from '@rockcarver/frodo-lib';\nimport {\n createObjectTable,\n createProgressBar,\n debugMessage,\n failSpinner,\n printMessage,\n showSpinner,\n stopProgressBar,\n succeedSpinner,\n updateProgressBar,\n} from '../utils/Console';\nimport {\n getTypedFilename,\n saveJsonToFile,\n titleCase,\n} from '../utils/ExportImportUtils';\nimport {\n PolicySetExportInterface,\n PolicySetExportOptions,\n PolicySetImportOptions,\n} from '@rockcarver/frodo-lib/types/ops/PolicySetOps';\n\nconst {\n deletePolicySet: _deletePolicySet,\n getPolicySets,\n getPolicySet,\n exportPolicySet,\n exportPolicySets,\n importPolicySet,\n importFirstPolicySet,\n importPolicySets,\n} = PolicySet;\nconst { getPoliciesByPolicySet, deletePolicy } = Policy;\nconst { getRealmName } = Utils;\n\n/**\n * List policy sets\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function listPolicySets(): Promise<boolean> {\n let outcome = false;\n try {\n const policySets = await getPolicySets();\n policySets.sort((a, b) => a.name.localeCompare(b.name));\n for (const policySet of policySets) {\n printMessage(`${policySet.name}`, 'data');\n }\n outcome = true;\n } catch (err) {\n printMessage(`listPolicySets ERROR: ${err.message}`, 'error');\n printMessage(err, 'error');\n }\n return outcome;\n}\n\n/**\n * Describe policy set\n * @param {string} policySetId policy set id/name\n * @param {Object} json JSON output\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function describePolicySet(\n policySetId: string,\n json = false\n): Promise<boolean> {\n let outcome = false;\n const policySet = await getPolicySet(policySetId);\n outcome = true;\n if (json) {\n printMessage(policySet, 'data');\n } else {\n const table = createObjectTable(policySet);\n printMessage(table.toString(), 'data');\n }\n return outcome;\n}\n\n/**\n * Delete policy set\n * @param {string} policySetId policy set id/name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function deletePolicySet(policySetId: string): Promise<boolean> {\n debugMessage(`cli.PolicySetOps.deletePolicySet: begin`);\n showSpinner(`Deleting ${policySetId}...`);\n let outcome = false;\n const errors = [];\n const policies: PolicySkeleton[] = await getPoliciesByPolicySet(policySetId);\n for (const policy of policies) {\n try {\n debugMessage(`Deleting policy ${policy._id}`);\n await deletePolicy(policy._id);\n } catch (error) {\n error.message = `Error deleting policy ${policy._id} in policy set ${policySetId}: ${error}`;\n printMessage(error.message, 'error');\n errors.push(error);\n }\n }\n try {\n debugMessage(`Deleting policy set ${policySetId}`);\n await _deletePolicySet(policySetId);\n } catch (error) {\n printMessage(`Error deleting policy set ${policySetId}: ${error}`, 'error');\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n failSpinner(`Error deleting ${policySetId}: ${errorMessages}`);\n } else {\n succeedSpinner(`Deleted ${policySetId}.`);\n outcome = true;\n }\n debugMessage(`cli.PolicySetOps.deletePolicySet: end [outcome=${outcome}]`);\n return outcome;\n}\n\n/**\n * Delete all policy sets\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function deletePolicySets(): Promise<boolean> {\n debugMessage(`cli.PolicySetOps.deletePolicySets: begin`);\n let outcome = false;\n const errors = [];\n let policySets: PolicySetSkeleton[] = [];\n try {\n showSpinner(`Retrieving all policy sets...`);\n try {\n policySets = await getPolicySets();\n succeedSpinner(`Found ${policySets.length} policy sets.`);\n } catch (error) {\n error.message = `Error retrieving all policy sets: ${error.message}`;\n failSpinner(error.message);\n throw error;\n }\n if (policySets.length)\n createProgressBar(\n policySets.length,\n `Deleting ${policySets.length} policy sets...`\n );\n for (const policySet of policySets) {\n const policySetId = policySet.name;\n try {\n const policies: PolicySkeleton[] = await getPoliciesByPolicySet(\n policySetId\n );\n for (const policy of policies) {\n try {\n debugMessage(`Deleting policy ${policy._id}`);\n await deletePolicy(policy._id);\n } catch (error) {\n error.message = `Error deleting policy ${policy._id} in policy set ${policySetId}: ${error}`;\n printMessage(error.message, 'error');\n errors.push(error);\n }\n }\n } catch (error) {\n errors.push(error);\n }\n try {\n debugMessage(`Deleting policy set ${policySetId}`);\n await _deletePolicySet(policySetId);\n updateProgressBar(`Deleted ${policySetId}`);\n } catch (error) {\n error.message = `Error deleting policy set ${policySetId}: ${error}`;\n updateProgressBar(error.message);\n errors.push(error);\n }\n }\n } catch (error) {\n error.message = `Error deleting policy sets: ${error}`;\n errors.push(error);\n } finally {\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n if (policySets.length)\n stopProgressBar(`Error deleting all policy sets: ${errorMessages}`);\n } else {\n if (policySets.length)\n stopProgressBar(`Deleted ${policySets.length} policy sets.`);\n outcome = true;\n }\n }\n debugMessage(`cli.PolicySetOps.deletePolicySets: end [outcome=${outcome}]`);\n return outcome;\n}\n\n/**\n * Export policy set to file\n * @param {string} policySetId policy set id/name\n * @param {string} file file name\n * @param {PolicySetExportOptions} options export options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportPolicySetToFile(\n policySetId: string,\n file: string,\n options: PolicySetExportOptions = { useStringArrays: true, deps: true }\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.PolicySetOps.exportPolicySetToFile: begin`);\n showSpinner(`Exporting ${policySetId}...`);\n try {\n let fileName = getTypedFilename(policySetId, 'policyset.authz');\n if (file) {\n fileName = file;\n }\n const exportData = await exportPolicySet(policySetId, options);\n saveJsonToFile(exportData, fileName);\n succeedSpinner(`Exported ${policySetId} to ${fileName}.`);\n outcome = true;\n } catch (error) {\n failSpinner(`Error exporting ${policySetId}: ${error.message}`);\n }\n debugMessage(`cli.PolicySetOps.exportPolicySetToFile: end`);\n return outcome;\n}\n\n/**\n * Export policy sets to file\n * @param {string} file file name\n * @param {PolicySetExportOptions} options export options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportPolicySetsToFile(\n file: string,\n options: PolicySetExportOptions = { useStringArrays: true, deps: true }\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.PolicySetOps.exportPolicySetsToFile: begin`);\n showSpinner(`Exporting all policy sets...`);\n try {\n let fileName = getTypedFilename(\n `all${titleCase(getRealmName(state.getRealm()))}PolicySets`,\n 'policyset.authz'\n );\n if (file) {\n fileName = file;\n }\n const exportData = await exportPolicySets(options);\n saveJsonToFile(exportData, fileName);\n succeedSpinner(`Exported all policy sets to ${fileName}.`);\n outcome = true;\n } catch (error) {\n failSpinner(`Error exporting policy sets: ${error.message}`);\n }\n debugMessage(`cli.PolicySetOps.exportPolicySetsToFile: end`);\n return outcome;\n}\n\n/**\n * Export all policy sets to separate files\n * @param {PolicySetExportOptions} options export options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportPolicySetsToFiles(\n options: PolicySetExportOptions = { useStringArrays: true, deps: true }\n): Promise<boolean> {\n debugMessage(`cli.PolicySetOps.exportPolicySetsToFiles: begin`);\n const errors = [];\n try {\n const policySets: PolicySetSkeleton[] = await getPolicySets();\n createProgressBar(policySets.length, 'Exporting policy sets...');\n for (const policySet of policySets) {\n const file = getTypedFilename(policySet.name, 'policyset.authz');\n try {\n const exportData: PolicySetExportInterface = await exportPolicySet(\n policySet.name,\n options\n );\n saveJsonToFile(exportData, file);\n updateProgressBar(`Exported ${policySet.name}.`);\n } catch (error) {\n errors.push(error);\n updateProgressBar(`Error exporting ${policySet.name}.`);\n }\n }\n stopProgressBar(`Export complete.`);\n } catch (error) {\n errors.push(error);\n stopProgressBar(`Error exporting policy sets to files`);\n }\n debugMessage(`cli.PolicySetOps.exportPolicySetsToFiles: end`);\n return 0 === errors.length;\n}\n\n/**\n * Import policy set from file\n * @param {string} policySetId policy set id/name\n * @param {string} file file name\n * @param {PolicySetImportOptions} options import options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importPolicySetFromFile(\n policySetId: string,\n file: string,\n options: PolicySetImportOptions = { deps: true }\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.PolicySetOps.importPolicySetFromFile: begin`);\n showSpinner(`Importing ${policySetId}...`);\n try {\n const data = fs.readFileSync(file, 'utf8');\n const fileData = JSON.parse(data);\n await importPolicySet(policySetId, fileData, options);\n outcome = true;\n succeedSpinner(`Imported ${policySetId}.`);\n } catch (error) {\n failSpinner(`Error importing ${policySetId}.`);\n printMessage(error, 'error');\n }\n debugMessage(`cli.PolicySetOps.importPolicySetFromFile: end`);\n return outcome;\n}\n\n/**\n * Import first policy set from file\n * @param {string} file file name\n * @param {PolicySetImportOptions} options import options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importFirstPolicySetFromFile(\n file: string,\n options: PolicySetImportOptions = { deps: true }\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.PolicySetOps.importFirstPolicySetFromFile: begin`);\n showSpinner(`Importing ${file}...`);\n try {\n const data = fs.readFileSync(file, 'utf8');\n const fileData = JSON.parse(data);\n await importFirstPolicySet(fileData, options);\n outcome = true;\n succeedSpinner(`Imported ${file}.`);\n } catch (error) {\n failSpinner(`Error importing ${file}.`);\n printMessage(error, 'error');\n }\n debugMessage(`cli.PolicySetOps.importFirstPolicySetFromFile: end`);\n return outcome;\n}\n\n/**\n * Import policy sets from file\n * @param {string} file file name\n * @param {PolicySetImportOptions} options import options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importPolicySetsFromFile(\n file: string,\n options: PolicySetImportOptions = { deps: true }\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.PolicySetOps.importPolicySetsFromFile: begin`);\n showSpinner(`Importing ${file}...`);\n try {\n const data = fs.readFileSync(file, 'utf8');\n const fileData = JSON.parse(data);\n await importPolicySets(fileData, options);\n outcome = true;\n succeedSpinner(`Imported ${file}.`);\n } catch (error) {\n failSpinner(`Error importing ${file}.`);\n printMessage(error, 'error');\n }\n debugMessage(`cli.PolicySetOps.importPolicySetsFromFile: end`);\n return outcome;\n}\n\n/**\n * Import policy sets from files\n * @param {OAuth2ClientImportOptions} options import options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importPolicySetsFromFiles(\n options: PolicySetImportOptions = { deps: true }\n): Promise<boolean> {\n const errors = [];\n try {\n debugMessage(`cli.PolicySetOps.importPolicySetsFromFiles: begin`);\n const names = fs.readdirSync('.');\n const files = names.filter((name) =>\n name.toLowerCase().endsWith('.policyset.authz.json')\n );\n createProgressBar(files.length, 'Importing policy sets...');\n let total = 0;\n for (const file of files) {\n try {\n const data = fs.readFileSync(file, 'utf8');\n const fileData: PolicySetExportInterface = JSON.parse(data);\n const count = Object.keys(fileData.policyset).length;\n total += count;\n await importPolicySets(fileData, options);\n updateProgressBar(`Imported ${count} policy sets from ${file}`);\n } catch (error) {\n errors.push(error);\n updateProgressBar(`Error importing policy sets from ${file}`);\n printMessage(error, 'error');\n }\n }\n stopProgressBar(\n `Finished importing ${total} policy sets from ${files.length} files.`\n );\n } catch (error) {\n errors.push(error);\n stopProgressBar(`Error importing policy sets from files.`);\n printMessage(error, 'error');\n }\n debugMessage(`cli.PolicySetOps.importPolicySetsFromFiles: end`);\n return 0 === errors.length;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PolicySetOps.js","names":["fs","Policy","PolicySet","Utils","state","createObjectTable","createProgressBar","debugMessage","failSpinner","printMessage","showSpinner","stopProgressBar","succeedSpinner","updateProgressBar","getTypedFilename","saveJsonToFile","titleCase","deletePolicySet","_deletePolicySet","getPolicySets","getPolicySet","exportPolicySet","exportPolicySets","importPolicySet","importFirstPolicySet","importPolicySets","getPoliciesByPolicySet","deletePolicy","getRealmName","listPolicySets","outcome","policySets","sort","a","b","name","localeCompare","policySet","err","message","describePolicySet","policySetId","json","table","toString","errors","policies","policy","_id","error","push","length","errorMessages","map","join","deletePolicySets","exportPolicySetToFile","file","options","deps","prereqs","useStringArrays","fileName","exportData","exportPolicySetsToFile","getRealm","exportPolicySetsToFiles","importPolicySetFromFile","data","readFileSync","fileData","JSON","parse","importFirstPolicySetFromFile","importPolicySetsFromFile","importPolicySetsFromFiles","names","readdirSync","files","filter","toLowerCase","endsWith","total","count","Object","keys","policyset"],"sources":["ops/PolicySetOps.ts"],"sourcesContent":["import fs from 'fs';\nimport {\n PolicySetSkeleton,\n PolicySkeleton,\n} from '@rockcarver/frodo-lib/types/api/ApiTypes';\nimport { Policy, PolicySet, Utils, state } from '@rockcarver/frodo-lib';\nimport {\n createObjectTable,\n createProgressBar,\n debugMessage,\n failSpinner,\n printMessage,\n showSpinner,\n stopProgressBar,\n succeedSpinner,\n updateProgressBar,\n} from '../utils/Console';\nimport {\n getTypedFilename,\n saveJsonToFile,\n titleCase,\n} from '../utils/ExportImportUtils';\nimport {\n PolicySetExportInterface,\n PolicySetExportOptions,\n PolicySetImportOptions,\n} from '@rockcarver/frodo-lib/types/ops/PolicySetOps';\n\nconst {\n deletePolicySet: _deletePolicySet,\n getPolicySets,\n getPolicySet,\n exportPolicySet,\n exportPolicySets,\n importPolicySet,\n importFirstPolicySet,\n importPolicySets,\n} = PolicySet;\nconst { getPoliciesByPolicySet, deletePolicy } = Policy;\nconst { getRealmName } = Utils;\n\n/**\n * List policy sets\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function listPolicySets(): Promise<boolean> {\n let outcome = false;\n try {\n const policySets = await getPolicySets();\n policySets.sort((a, b) => a.name.localeCompare(b.name));\n for (const policySet of policySets) {\n printMessage(`${policySet.name}`, 'data');\n }\n outcome = true;\n } catch (err) {\n printMessage(`listPolicySets ERROR: ${err.message}`, 'error');\n printMessage(err, 'error');\n }\n return outcome;\n}\n\n/**\n * Describe policy set\n * @param {string} policySetId policy set id/name\n * @param {Object} json JSON output\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function describePolicySet(\n policySetId: string,\n json = false\n): Promise<boolean> {\n let outcome = false;\n const policySet = await getPolicySet(policySetId);\n outcome = true;\n if (json) {\n printMessage(policySet, 'data');\n } else {\n const table = createObjectTable(policySet);\n printMessage(table.toString(), 'data');\n }\n return outcome;\n}\n\n/**\n * Delete policy set\n * @param {string} policySetId policy set id/name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function deletePolicySet(policySetId: string): Promise<boolean> {\n debugMessage(`cli.PolicySetOps.deletePolicySet: begin`);\n showSpinner(`Deleting ${policySetId}...`);\n let outcome = false;\n const errors = [];\n const policies: PolicySkeleton[] = await getPoliciesByPolicySet(policySetId);\n for (const policy of policies) {\n try {\n debugMessage(`Deleting policy ${policy._id}`);\n await deletePolicy(policy._id);\n } catch (error) {\n error.message = `Error deleting policy ${policy._id} in policy set ${policySetId}: ${error}`;\n printMessage(error.message, 'error');\n errors.push(error);\n }\n }\n try {\n debugMessage(`Deleting policy set ${policySetId}`);\n await _deletePolicySet(policySetId);\n } catch (error) {\n printMessage(`Error deleting policy set ${policySetId}: ${error}`, 'error');\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n failSpinner(`Error deleting ${policySetId}: ${errorMessages}`);\n } else {\n succeedSpinner(`Deleted ${policySetId}.`);\n outcome = true;\n }\n debugMessage(`cli.PolicySetOps.deletePolicySet: end [outcome=${outcome}]`);\n return outcome;\n}\n\n/**\n * Delete all policy sets\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function deletePolicySets(): Promise<boolean> {\n debugMessage(`cli.PolicySetOps.deletePolicySets: begin`);\n let outcome = false;\n const errors = [];\n let policySets: PolicySetSkeleton[] = [];\n try {\n showSpinner(`Retrieving all policy sets...`);\n try {\n policySets = await getPolicySets();\n succeedSpinner(`Found ${policySets.length} policy sets.`);\n } catch (error) {\n error.message = `Error retrieving all policy sets: ${error.message}`;\n failSpinner(error.message);\n throw error;\n }\n if (policySets.length)\n createProgressBar(\n policySets.length,\n `Deleting ${policySets.length} policy sets...`\n );\n for (const policySet of policySets) {\n const policySetId = policySet.name;\n try {\n const policies: PolicySkeleton[] = await getPoliciesByPolicySet(\n policySetId\n );\n for (const policy of policies) {\n try {\n debugMessage(`Deleting policy ${policy._id}`);\n await deletePolicy(policy._id);\n } catch (error) {\n error.message = `Error deleting policy ${policy._id} in policy set ${policySetId}: ${error}`;\n printMessage(error.message, 'error');\n errors.push(error);\n }\n }\n } catch (error) {\n errors.push(error);\n }\n try {\n debugMessage(`Deleting policy set ${policySetId}`);\n await _deletePolicySet(policySetId);\n updateProgressBar(`Deleted ${policySetId}`);\n } catch (error) {\n error.message = `Error deleting policy set ${policySetId}: ${error}`;\n updateProgressBar(error.message);\n errors.push(error);\n }\n }\n } catch (error) {\n error.message = `Error deleting policy sets: ${error}`;\n errors.push(error);\n } finally {\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n if (policySets.length)\n stopProgressBar(`Error deleting all policy sets: ${errorMessages}`);\n } else {\n if (policySets.length)\n stopProgressBar(`Deleted ${policySets.length} policy sets.`);\n outcome = true;\n }\n }\n debugMessage(`cli.PolicySetOps.deletePolicySets: end [outcome=${outcome}]`);\n return outcome;\n}\n\n/**\n * Export policy set to file\n * @param {string} policySetId policy set id/name\n * @param {string} file file name\n * @param {PolicySetExportOptions} options export options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportPolicySetToFile(\n policySetId: string,\n file: string,\n options: PolicySetExportOptions = {\n deps: true,\n prereqs: false,\n useStringArrays: true,\n }\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.PolicySetOps.exportPolicySetToFile: begin`);\n showSpinner(`Exporting ${policySetId}...`);\n try {\n let fileName = getTypedFilename(policySetId, 'policyset.authz');\n if (file) {\n fileName = file;\n }\n const exportData = await exportPolicySet(policySetId, options);\n saveJsonToFile(exportData, fileName);\n succeedSpinner(`Exported ${policySetId} to ${fileName}.`);\n outcome = true;\n } catch (error) {\n failSpinner(`Error exporting ${policySetId}: ${error.message}`);\n }\n debugMessage(`cli.PolicySetOps.exportPolicySetToFile: end`);\n return outcome;\n}\n\n/**\n * Export policy sets to file\n * @param {string} file file name\n * @param {PolicySetExportOptions} options export options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportPolicySetsToFile(\n file: string,\n options: PolicySetExportOptions = {\n deps: true,\n prereqs: false,\n useStringArrays: true,\n }\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.PolicySetOps.exportPolicySetsToFile: begin`);\n showSpinner(`Exporting all policy sets...`);\n try {\n let fileName = getTypedFilename(\n `all${titleCase(getRealmName(state.getRealm()))}PolicySets`,\n 'policyset.authz'\n );\n if (file) {\n fileName = file;\n }\n const exportData = await exportPolicySets(options);\n saveJsonToFile(exportData, fileName);\n succeedSpinner(`Exported all policy sets to ${fileName}.`);\n outcome = true;\n } catch (error) {\n failSpinner(`Error exporting policy sets: ${error.message}`);\n }\n debugMessage(`cli.PolicySetOps.exportPolicySetsToFile: end`);\n return outcome;\n}\n\n/**\n * Export all policy sets to separate files\n * @param {PolicySetExportOptions} options export options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportPolicySetsToFiles(\n options: PolicySetExportOptions = {\n deps: true,\n prereqs: false,\n useStringArrays: true,\n }\n): Promise<boolean> {\n debugMessage(`cli.PolicySetOps.exportPolicySetsToFiles: begin`);\n const errors = [];\n try {\n const policySets: PolicySetSkeleton[] = await getPolicySets();\n createProgressBar(policySets.length, 'Exporting policy sets...');\n for (const policySet of policySets) {\n const file = getTypedFilename(policySet.name, 'policyset.authz');\n try {\n const exportData: PolicySetExportInterface = await exportPolicySet(\n policySet.name,\n options\n );\n saveJsonToFile(exportData, file);\n updateProgressBar(`Exported ${policySet.name}.`);\n } catch (error) {\n errors.push(error);\n updateProgressBar(`Error exporting ${policySet.name}.`);\n }\n }\n stopProgressBar(`Export complete.`);\n } catch (error) {\n errors.push(error);\n stopProgressBar(`Error exporting policy sets to files`);\n }\n debugMessage(`cli.PolicySetOps.exportPolicySetsToFiles: end`);\n return 0 === errors.length;\n}\n\n/**\n * Import policy set from file\n * @param {string} policySetId policy set id/name\n * @param {string} file file name\n * @param {PolicySetImportOptions} options import options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importPolicySetFromFile(\n policySetId: string,\n file: string,\n options: PolicySetImportOptions = { deps: true, prereqs: false }\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.PolicySetOps.importPolicySetFromFile: begin`);\n showSpinner(`Importing ${policySetId}...`);\n try {\n const data = fs.readFileSync(file, 'utf8');\n const fileData = JSON.parse(data);\n await importPolicySet(policySetId, fileData, options);\n outcome = true;\n succeedSpinner(`Imported ${policySetId}.`);\n } catch (error) {\n failSpinner(`Error importing ${policySetId}.`);\n printMessage(error, 'error');\n }\n debugMessage(`cli.PolicySetOps.importPolicySetFromFile: end`);\n return outcome;\n}\n\n/**\n * Import first policy set from file\n * @param {string} file file name\n * @param {PolicySetImportOptions} options import options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importFirstPolicySetFromFile(\n file: string,\n options: PolicySetImportOptions = { deps: true, prereqs: false }\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.PolicySetOps.importFirstPolicySetFromFile: begin`);\n showSpinner(`Importing ${file}...`);\n try {\n const data = fs.readFileSync(file, 'utf8');\n const fileData = JSON.parse(data);\n await importFirstPolicySet(fileData, options);\n outcome = true;\n succeedSpinner(`Imported ${file}.`);\n } catch (error) {\n failSpinner(`Error importing ${file}.`);\n printMessage(error, 'error');\n }\n debugMessage(`cli.PolicySetOps.importFirstPolicySetFromFile: end`);\n return outcome;\n}\n\n/**\n * Import policy sets from file\n * @param {string} file file name\n * @param {PolicySetImportOptions} options import options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importPolicySetsFromFile(\n file: string,\n options: PolicySetImportOptions = { deps: true, prereqs: false }\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.PolicySetOps.importPolicySetsFromFile: begin`);\n showSpinner(`Importing ${file}...`);\n try {\n const data = fs.readFileSync(file, 'utf8');\n const fileData = JSON.parse(data);\n await importPolicySets(fileData, options);\n outcome = true;\n succeedSpinner(`Imported ${file}.`);\n } catch (error) {\n failSpinner(`Error importing ${file}.`);\n printMessage(error, 'error');\n }\n debugMessage(`cli.PolicySetOps.importPolicySetsFromFile: end`);\n return outcome;\n}\n\n/**\n * Import policy sets from files\n * @param {OAuth2ClientImportOptions} options import options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importPolicySetsFromFiles(\n options: PolicySetImportOptions = { deps: true, prereqs: false }\n): Promise<boolean> {\n const errors = [];\n try {\n debugMessage(`cli.PolicySetOps.importPolicySetsFromFiles: begin`);\n const names = fs.readdirSync('.');\n const files = names.filter((name) =>\n name.toLowerCase().endsWith('.policyset.authz.json')\n );\n createProgressBar(files.length, 'Importing policy sets...');\n let total = 0;\n for (const file of files) {\n try {\n const data = fs.readFileSync(file, 'utf8');\n const fileData: PolicySetExportInterface = JSON.parse(data);\n const count = Object.keys(fileData.policyset).length;\n total += count;\n await importPolicySets(fileData, options);\n updateProgressBar(`Imported ${count} policy sets from ${file}`);\n } catch (error) {\n errors.push(error);\n updateProgressBar(`Error importing policy sets from ${file}`);\n printMessage(error, 'error');\n }\n }\n stopProgressBar(\n `Finished importing ${total} policy sets from ${files.length} files.`\n );\n } catch (error) {\n errors.push(error);\n stopProgressBar(`Error importing policy sets from files.`);\n printMessage(error, 'error');\n }\n debugMessage(`cli.PolicySetOps.importPolicySetsFromFiles: end`);\n return 0 === errors.length;\n}\n"],"mappings":"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"}
|