@rockcarver/frodo-cli 2.0.0-4 → 2.0.0-41
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 +312 -5
- package/esm/app.js +22 -5
- package/esm/app.js.map +1 -1
- package/esm/cli/FrodoCommand.js +33 -7
- package/esm/cli/FrodoCommand.js.map +1 -1
- package/esm/cli/_template/something-delete.js +7 -5
- package/esm/cli/_template/something-delete.js.map +1 -1
- package/esm/cli/_template/something-describe.js +7 -5
- package/esm/cli/_template/something-describe.js.map +1 -1
- package/esm/cli/_template/something-else-delete.js +7 -5
- package/esm/cli/_template/something-else-delete.js.map +1 -1
- package/esm/cli/_template/something-else-describe.js +7 -5
- package/esm/cli/_template/something-else-describe.js.map +1 -1
- package/esm/cli/_template/something-else-export.js +8 -6
- package/esm/cli/_template/something-else-export.js.map +1 -1
- package/esm/cli/_template/something-else-import.js +7 -5
- package/esm/cli/_template/something-else-import.js.map +1 -1
- package/esm/cli/_template/something-else-list.js +7 -5
- package/esm/cli/_template/something-else-list.js.map +1 -1
- package/esm/cli/_template/something-else.js +1 -1
- package/esm/cli/_template/something-else.js.map +1 -1
- package/esm/cli/_template/something-export.js +8 -6
- package/esm/cli/_template/something-export.js.map +1 -1
- package/esm/cli/_template/something-import.js +7 -5
- package/esm/cli/_template/something-import.js.map +1 -1
- package/esm/cli/_template/something-list.js +7 -5
- package/esm/cli/_template/something-list.js.map +1 -1
- package/esm/cli/_template/something-other-delete.js +7 -5
- package/esm/cli/_template/something-other-delete.js.map +1 -1
- package/esm/cli/_template/something-other-describe.js +7 -5
- package/esm/cli/_template/something-other-describe.js.map +1 -1
- package/esm/cli/_template/something-other-export.js +8 -6
- package/esm/cli/_template/something-other-export.js.map +1 -1
- package/esm/cli/_template/something-other-import.js +7 -5
- package/esm/cli/_template/something-other-import.js.map +1 -1
- package/esm/cli/_template/something-other-list.js +7 -5
- package/esm/cli/_template/something-other-list.js.map +1 -1
- package/esm/cli/_template/something-other.js +1 -1
- package/esm/cli/_template/something-other.js.map +1 -1
- package/esm/cli/_template/something.js +2 -2
- package/esm/cli/_template/something.js.map +1 -1
- package/esm/cli/admin/admin-add-autoid-static-user-mapping.js +10 -5
- 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 +14 -8
- package/esm/cli/admin/admin-create-oauth2-client-with-admin-privileges.js.map +1 -1
- package/esm/cli/admin/admin-execute-rfc7523-authz-grant-flow.js +41 -0
- package/esm/cli/admin/admin-execute-rfc7523-authz-grant-flow.js.map +1 -0
- package/esm/cli/admin/admin-federation-export.js +44 -0
- package/esm/cli/admin/admin-federation-export.js.map +1 -0
- package/esm/cli/admin/admin-federation-import.js +48 -0
- package/esm/cli/admin/admin-federation-import.js.map +1 -0
- package/esm/cli/admin/admin-federation-list.js +28 -0
- package/esm/cli/admin/admin-federation-list.js.map +1 -0
- package/esm/cli/admin/admin-federation.js +13 -0
- package/esm/cli/admin/admin-federation.js.map +1 -0
- package/esm/cli/admin/admin-generate-rfc7523-authz-grant-artefacts.js +43 -0
- package/esm/cli/admin/admin-generate-rfc7523-authz-grant-artefacts.js.map +1 -0
- package/esm/cli/admin/admin-get-access-token.js +12 -7
- package/esm/cli/admin/admin-get-access-token.js.map +1 -1
- package/esm/cli/admin/admin-grant-oauth2-client-admin-privileges.js +13 -8
- package/esm/cli/admin/admin-grant-oauth2-client-admin-privileges.js.map +1 -1
- package/esm/cli/admin/admin-hide-generic-extension-attributes.js +11 -6
- 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 +11 -6
- 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 +11 -6
- 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 +12 -7
- package/esm/cli/admin/admin-list-static-user-mappings.js.map +1 -1
- package/esm/cli/admin/admin-remove-static-user-mapping.js +12 -6
- package/esm/cli/admin/admin-remove-static-user-mapping.js.map +1 -1
- package/esm/cli/admin/admin-repair-org-model.js +11 -6
- package/esm/cli/admin/admin-repair-org-model.js.map +1 -1
- package/esm/cli/admin/admin-revoke-oauth2-client-admin-privileges.js +12 -7
- package/esm/cli/admin/admin-revoke-oauth2-client-admin-privileges.js.map +1 -1
- package/esm/cli/admin/admin-show-generic-extension-attributes.js +11 -6
- package/esm/cli/admin/admin-show-generic-extension-attributes.js.map +1 -1
- package/esm/cli/admin/admin-train-auto-access-model.js +32 -0
- package/esm/cli/admin/admin-train-auto-access-model.js.map +1 -0
- package/esm/cli/admin/admin.js +8 -2
- package/esm/cli/admin/admin.js.map +1 -1
- package/esm/cli/agent/agent-delete.js +13 -7
- package/esm/cli/agent/agent-delete.js.map +1 -1
- package/esm/cli/agent/agent-describe.js +7 -5
- package/esm/cli/agent/agent-describe.js.map +1 -1
- package/esm/cli/agent/agent-export.js +12 -10
- package/esm/cli/agent/agent-export.js.map +1 -1
- package/esm/cli/agent/agent-gateway-delete.js +13 -7
- package/esm/cli/agent/agent-gateway-delete.js.map +1 -1
- package/esm/cli/agent/agent-gateway-describe.js +7 -5
- package/esm/cli/agent/agent-gateway-describe.js.map +1 -1
- package/esm/cli/agent/agent-gateway-export.js +12 -10
- package/esm/cli/agent/agent-gateway-export.js.map +1 -1
- package/esm/cli/agent/agent-gateway-import.js +8 -6
- package/esm/cli/agent/agent-gateway-import.js.map +1 -1
- package/esm/cli/agent/agent-gateway-list.js +7 -5
- package/esm/cli/agent/agent-gateway-list.js.map +1 -1
- package/esm/cli/agent/agent-gateway.js +1 -1
- package/esm/cli/agent/agent-gateway.js.map +1 -1
- package/esm/cli/agent/agent-import.js +8 -6
- package/esm/cli/agent/agent-import.js.map +1 -1
- package/esm/cli/agent/agent-java-delete.js +13 -7
- package/esm/cli/agent/agent-java-delete.js.map +1 -1
- package/esm/cli/agent/agent-java-describe.js +7 -5
- package/esm/cli/agent/agent-java-describe.js.map +1 -1
- package/esm/cli/agent/agent-java-export.js +12 -10
- package/esm/cli/agent/agent-java-export.js.map +1 -1
- package/esm/cli/agent/agent-java-import.js +8 -6
- package/esm/cli/agent/agent-java-import.js.map +1 -1
- package/esm/cli/agent/agent-java-list.js +7 -5
- package/esm/cli/agent/agent-java-list.js.map +1 -1
- package/esm/cli/agent/agent-java.js +1 -1
- package/esm/cli/agent/agent-java.js.map +1 -1
- package/esm/cli/agent/agent-list.js +7 -5
- package/esm/cli/agent/agent-list.js.map +1 -1
- package/esm/cli/agent/agent-web-delete.js +13 -7
- package/esm/cli/agent/agent-web-delete.js.map +1 -1
- package/esm/cli/agent/agent-web-describe.js +7 -5
- package/esm/cli/agent/agent-web-describe.js.map +1 -1
- package/esm/cli/agent/agent-web-export.js +12 -10
- package/esm/cli/agent/agent-web-export.js.map +1 -1
- package/esm/cli/agent/agent-web-import.js +8 -6
- package/esm/cli/agent/agent-web-import.js.map +1 -1
- package/esm/cli/agent/agent-web-list.js +7 -5
- package/esm/cli/agent/agent-web-list.js.map +1 -1
- package/esm/cli/agent/agent-web.js +3 -3
- package/esm/cli/agent/agent-web.js.map +1 -1
- package/esm/cli/agent/agent.js +2 -2
- package/esm/cli/agent/agent.js.map +1 -1
- package/esm/cli/app/app-delete.js +27 -9
- package/esm/cli/app/app-delete.js.map +1 -1
- package/esm/cli/app/app-describe.js +9 -6
- package/esm/cli/app/app-describe.js.map +1 -1
- package/esm/cli/app/app-export.js +17 -14
- package/esm/cli/app/app-export.js.map +1 -1
- package/esm/cli/app/app-import.js +21 -18
- package/esm/cli/app/app-import.js.map +1 -1
- package/esm/cli/app/app-list.js +12 -9
- package/esm/cli/app/app-list.js.map +1 -1
- package/esm/cli/app/app.js +8 -12
- package/esm/cli/app/app.js.map +1 -1
- package/esm/cli/authn/authn-describe.js +29 -0
- package/esm/cli/authn/authn-describe.js.map +1 -0
- package/esm/cli/authn/authn-export.js +25 -0
- package/esm/cli/authn/authn-export.js.map +1 -0
- package/esm/cli/authn/authn-import.js +25 -0
- package/esm/cli/authn/authn-import.js.map +1 -0
- package/esm/cli/authn/authn.js +12 -0
- package/esm/cli/authn/authn.js.map +1 -0
- package/esm/cli/authz/authz-policy-delete.js +11 -9
- package/esm/cli/authz/authz-policy-delete.js.map +1 -1
- package/esm/cli/authz/authz-policy-describe.js +8 -6
- package/esm/cli/authz/authz-policy-describe.js.map +1 -1
- package/esm/cli/authz/authz-policy-export.js +18 -16
- package/esm/cli/authz/authz-policy-export.js.map +1 -1
- package/esm/cli/authz/authz-policy-import.js +11 -9
- package/esm/cli/authz/authz-policy-import.js.map +1 -1
- package/esm/cli/authz/authz-policy-list.js +11 -9
- package/esm/cli/authz/authz-policy-list.js.map +1 -1
- package/esm/cli/authz/authz-policy.js +1 -1
- package/esm/cli/authz/authz-policy.js.map +1 -1
- package/esm/cli/authz/authz-set-delete.js +11 -9
- package/esm/cli/authz/authz-set-delete.js.map +1 -1
- package/esm/cli/authz/authz-set-describe.js +8 -6
- package/esm/cli/authz/authz-set-describe.js.map +1 -1
- package/esm/cli/authz/authz-set-export.js +14 -12
- package/esm/cli/authz/authz-set-export.js.map +1 -1
- package/esm/cli/authz/authz-set-import.js +11 -9
- package/esm/cli/authz/authz-set-import.js.map +1 -1
- package/esm/cli/authz/authz-set-list.js +8 -6
- package/esm/cli/authz/authz-set-list.js.map +1 -1
- package/esm/cli/authz/authz-set.js +1 -1
- package/esm/cli/authz/authz-set.js.map +1 -1
- package/esm/cli/authz/authz-type-delete.js +13 -11
- package/esm/cli/authz/authz-type-delete.js.map +1 -1
- package/esm/cli/authz/authz-type-describe.js +9 -7
- package/esm/cli/authz/authz-type-describe.js.map +1 -1
- package/esm/cli/authz/authz-type-export.js +16 -14
- package/esm/cli/authz/authz-type-export.js.map +1 -1
- package/esm/cli/authz/authz-type-import.js +14 -12
- package/esm/cli/authz/authz-type-import.js.map +1 -1
- package/esm/cli/authz/authz-type-list.js +9 -7
- package/esm/cli/authz/authz-type-list.js.map +1 -1
- package/esm/cli/authz/authz-type.js +1 -1
- package/esm/cli/authz/authz-type.js.map +1 -1
- package/esm/cli/authz/authz.js +2 -2
- package/esm/cli/authz/authz.js.map +1 -1
- package/esm/cli/config/config-delete.js +21 -0
- package/esm/cli/config/config-delete.js.map +1 -0
- package/esm/cli/config/config-describe.js +21 -0
- package/esm/cli/config/config-describe.js.map +1 -0
- package/esm/cli/config/config-export.js +43 -0
- package/esm/cli/config/config-export.js.map +1 -0
- package/esm/cli/config/config-import.js +54 -0
- package/esm/cli/config/config-import.js.map +1 -0
- package/esm/cli/config/config-list.js +21 -0
- package/esm/cli/config/config-list.js.map +1 -0
- package/esm/cli/config/config.js +19 -0
- package/esm/cli/config/config.js.map +1 -0
- package/esm/cli/conn/conn-delete.js +2 -3
- package/esm/cli/conn/conn-delete.js.map +1 -1
- package/esm/cli/conn/conn-describe.js +2 -3
- package/esm/cli/conn/conn-describe.js.map +1 -1
- package/esm/cli/conn/conn-list.js +2 -3
- package/esm/cli/conn/conn-list.js.map +1 -1
- package/esm/cli/conn/conn-save.js +31 -16
- package/esm/cli/conn/conn-save.js.map +1 -1
- package/esm/cli/conn/conn.js +2 -2
- package/esm/cli/conn/conn.js.map +1 -1
- package/esm/cli/email/email-template-export.js +14 -12
- package/esm/cli/email/email-template-export.js.map +1 -1
- package/esm/cli/email/email-template-import.js +15 -13
- package/esm/cli/email/email-template-import.js.map +1 -1
- package/esm/cli/email/email-template-list.js +9 -7
- package/esm/cli/email/email-template-list.js.map +1 -1
- package/esm/cli/email/email-template.js +1 -1
- package/esm/cli/email/email-template.js.map +1 -1
- package/esm/cli/email/email.js +2 -2
- package/esm/cli/email/email.js.map +1 -1
- package/esm/cli/esv/esv-apply.js +18 -9
- package/esm/cli/esv/esv-apply.js.map +1 -1
- package/esm/cli/esv/esv-secret-create.js +10 -7
- package/esm/cli/esv/esv-secret-create.js.map +1 -1
- package/esm/cli/esv/esv-secret-delete.js +13 -10
- package/esm/cli/esv/esv-secret-delete.js.map +1 -1
- package/esm/cli/esv/esv-secret-describe.js +10 -7
- package/esm/cli/esv/esv-secret-describe.js.map +1 -1
- package/esm/cli/esv/esv-secret-export.js +22 -7
- package/esm/cli/esv/esv-secret-export.js.map +1 -1
- package/esm/cli/esv/esv-secret-import.js +7 -5
- package/esm/cli/esv/esv-secret-import.js.map +1 -1
- package/esm/cli/esv/esv-secret-list.js +11 -8
- package/esm/cli/esv/esv-secret-list.js.map +1 -1
- package/esm/cli/esv/esv-secret-set.js +10 -7
- package/esm/cli/esv/esv-secret-set.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-activate.js +10 -8
- package/esm/cli/esv/esv-secret-version-activate.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-create.js +10 -7
- package/esm/cli/esv/esv-secret-version-create.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-deactivate.js +10 -8
- package/esm/cli/esv/esv-secret-version-deactivate.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-delete.js +13 -10
- package/esm/cli/esv/esv-secret-version-delete.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-list.js +10 -7
- package/esm/cli/esv/esv-secret-version-list.js.map +1 -1
- package/esm/cli/esv/esv-secret-version.js +1 -1
- package/esm/cli/esv/esv-secret-version.js.map +1 -1
- package/esm/cli/esv/esv-secret.js +2 -3
- package/esm/cli/esv/esv-secret.js.map +1 -1
- package/esm/cli/esv/esv-variable-create.js +11 -7
- package/esm/cli/esv/esv-variable-create.js.map +1 -1
- package/esm/cli/esv/esv-variable-delete.js +13 -9
- package/esm/cli/esv/esv-variable-delete.js.map +1 -1
- package/esm/cli/esv/esv-variable-describe.js +11 -8
- package/esm/cli/esv/esv-variable-describe.js.map +1 -1
- package/esm/cli/esv/esv-variable-export.js +23 -7
- package/esm/cli/esv/esv-variable-export.js.map +1 -1
- package/esm/cli/esv/esv-variable-import.js +7 -5
- package/esm/cli/esv/esv-variable-import.js.map +1 -1
- package/esm/cli/esv/esv-variable-list.js +11 -8
- package/esm/cli/esv/esv-variable-list.js.map +1 -1
- package/esm/cli/esv/esv-variable-set.js +12 -8
- package/esm/cli/esv/esv-variable-set.js.map +1 -1
- package/esm/cli/esv/esv-variable.js +2 -3
- package/esm/cli/esv/esv-variable.js.map +1 -1
- package/esm/cli/esv/esv.js +2 -2
- package/esm/cli/esv/esv.js.map +1 -1
- package/esm/cli/idm/idm-count.js +10 -8
- package/esm/cli/idm/idm-count.js.map +1 -1
- package/esm/cli/idm/idm-export.js +24 -16
- package/esm/cli/idm/idm-export.js.map +1 -1
- package/esm/cli/idm/idm-import.js +22 -14
- package/esm/cli/idm/idm-import.js.map +1 -1
- package/esm/cli/idm/idm-list.js +9 -7
- package/esm/cli/idm/idm-list.js.map +1 -1
- package/esm/cli/idm/idm.js +2 -2
- package/esm/cli/idm/idm.js.map +1 -1
- package/esm/cli/idp/idp-export.js +12 -10
- package/esm/cli/idp/idp-export.js.map +1 -1
- package/esm/cli/idp/idp-import.js +24 -14
- package/esm/cli/idp/idp-import.js.map +1 -1
- package/esm/cli/idp/idp-list.js +8 -6
- package/esm/cli/idp/idp-list.js.map +1 -1
- package/esm/cli/idp/idp.js +2 -2
- package/esm/cli/idp/idp.js.map +1 -1
- package/esm/cli/info/info.js +13 -8
- package/esm/cli/info/info.js.map +1 -1
- package/esm/cli/journey/journey-delete.js +14 -8
- package/esm/cli/journey/journey-delete.js.map +1 -1
- package/esm/cli/journey/journey-describe.js +22 -12
- package/esm/cli/journey/journey-describe.js.map +1 -1
- package/esm/cli/journey/journey-disable.js +11 -12
- package/esm/cli/journey/journey-disable.js.map +1 -1
- package/esm/cli/journey/journey-enable.js +11 -12
- package/esm/cli/journey/journey-enable.js.map +1 -1
- package/esm/cli/journey/journey-export.js +24 -13
- package/esm/cli/journey/journey-export.js.map +1 -1
- package/esm/cli/journey/journey-import.js +15 -13
- package/esm/cli/journey/journey-import.js.map +1 -1
- package/esm/cli/journey/journey-list.js +7 -5
- package/esm/cli/journey/journey-list.js.map +1 -1
- package/esm/cli/journey/journey-prune.js +23 -13
- package/esm/cli/journey/journey-prune.js.map +1 -1
- package/esm/cli/journey/journey.js +2 -2
- package/esm/cli/journey/journey.js.map +1 -1
- package/esm/cli/{logging/logs-fetch.js → log/log-fetch.js} +68 -36
- package/esm/cli/log/log-fetch.js.map +1 -0
- package/esm/cli/log/log-key-delete.js +34 -0
- package/esm/cli/log/log-key-delete.js.map +1 -0
- package/esm/cli/log/log-key-describe.js +21 -0
- package/esm/cli/log/log-key-describe.js.map +1 -0
- package/esm/cli/log/log-key-list.js +25 -0
- package/esm/cli/log/log-key-list.js.map +1 -0
- package/esm/cli/log/log-key.js +8 -0
- package/esm/cli/log/log-key.js.map +1 -0
- package/esm/cli/log/log-list.js +80 -0
- package/esm/cli/log/log-list.js.map +1 -0
- package/esm/cli/log/log-tail.js +77 -0
- package/esm/cli/log/log-tail.js.map +1 -0
- package/esm/cli/{logging/logs.js → log/log.js} +6 -3
- package/esm/cli/log/log.js.map +1 -0
- package/esm/cli/oauth/oauth-client-delete.js +21 -0
- package/esm/cli/oauth/oauth-client-delete.js.map +1 -0
- package/esm/cli/oauth/oauth-client-describe.js +21 -0
- package/esm/cli/oauth/oauth-client-describe.js.map +1 -0
- package/esm/cli/oauth/oauth-client-export.js +51 -0
- package/esm/cli/oauth/oauth-client-export.js.map +1 -0
- package/esm/cli/oauth/oauth-client-import.js +56 -0
- package/esm/cli/oauth/oauth-client-import.js.map +1 -0
- package/esm/cli/oauth/oauth-client-list.js +24 -0
- package/esm/cli/oauth/oauth-client-list.js.map +1 -0
- package/esm/cli/oauth/oauth-client.js +14 -0
- package/esm/cli/oauth/oauth-client.js.map +1 -0
- package/esm/cli/oauth/oauth.js +13 -0
- package/esm/cli/oauth/oauth.js.map +1 -0
- package/esm/cli/realm/realm-add-custom-domain.js +8 -6
- package/esm/cli/realm/realm-add-custom-domain.js.map +1 -1
- package/esm/cli/realm/realm-describe.js +8 -6
- package/esm/cli/realm/realm-describe.js.map +1 -1
- package/esm/cli/realm/realm-list.js +8 -6
- package/esm/cli/realm/realm-list.js.map +1 -1
- package/esm/cli/realm/realm-remove-custom-domain.js +11 -6
- package/esm/cli/realm/realm-remove-custom-domain.js.map +1 -1
- package/esm/cli/realm/realm.js +2 -2
- package/esm/cli/realm/realm.js.map +1 -1
- package/esm/cli/saml/saml-cot-export.js +14 -12
- package/esm/cli/saml/saml-cot-export.js.map +1 -1
- package/esm/cli/saml/saml-cot-import.js +15 -13
- package/esm/cli/saml/saml-cot-import.js.map +1 -1
- package/esm/cli/saml/saml-cot-list.js +9 -7
- package/esm/cli/saml/saml-cot-list.js.map +1 -1
- package/esm/cli/saml/saml-cot.js +1 -1
- package/esm/cli/saml/saml-cot.js.map +1 -1
- package/esm/cli/saml/saml-delete.js +14 -8
- package/esm/cli/saml/saml-delete.js.map +1 -1
- package/esm/cli/saml/saml-describe.js +9 -7
- package/esm/cli/saml/saml-describe.js.map +1 -1
- package/esm/cli/saml/saml-export.js +14 -12
- package/esm/cli/saml/saml-export.js.map +1 -1
- package/esm/cli/saml/saml-import.js +24 -14
- package/esm/cli/saml/saml-import.js.map +1 -1
- package/esm/cli/saml/saml-list.js +9 -7
- package/esm/cli/saml/saml-list.js.map +1 -1
- package/esm/cli/saml/saml-metadata-export.js +10 -8
- package/esm/cli/saml/saml-metadata-export.js.map +1 -1
- package/esm/cli/saml/saml-metadata.js +1 -1
- package/esm/cli/saml/saml-metadata.js.map +1 -1
- package/esm/cli/saml/saml.js +2 -2
- package/esm/cli/saml/saml.js.map +1 -1
- package/esm/cli/script/script-delete.js +21 -8
- package/esm/cli/script/script-delete.js.map +1 -1
- package/esm/cli/script/script-describe.js +7 -5
- package/esm/cli/script/script-describe.js.map +1 -1
- package/esm/cli/script/script-export.js +12 -14
- package/esm/cli/script/script-export.js.map +1 -1
- package/esm/cli/script/script-import.js +9 -7
- package/esm/cli/script/script-import.js.map +1 -1
- package/esm/cli/script/script-list.js +10 -8
- package/esm/cli/script/script-list.js.map +1 -1
- package/esm/cli/script/script.js +3 -5
- package/esm/cli/script/script.js.map +1 -1
- package/esm/cli/service/service-delete.js +8 -5
- package/esm/cli/service/service-delete.js.map +1 -1
- package/esm/cli/service/service-export.js +13 -11
- package/esm/cli/service/service-export.js.map +1 -1
- package/esm/cli/service/service-import.js +32 -14
- package/esm/cli/service/service-import.js.map +1 -1
- package/esm/cli/service/service-list.js +7 -4
- package/esm/cli/service/service-list.js.map +1 -1
- package/esm/cli/service/service.js +2 -2
- package/esm/cli/service/service.js.map +1 -1
- package/esm/cli/shell/shell.js +57 -0
- package/esm/cli/shell/shell.js.map +1 -0
- package/esm/cli/theme/theme-delete.js +13 -11
- package/esm/cli/theme/theme-delete.js.map +1 -1
- package/esm/cli/theme/theme-export.js +16 -14
- package/esm/cli/theme/theme-export.js.map +1 -1
- package/esm/cli/theme/theme-import.js +16 -14
- package/esm/cli/theme/theme-import.js.map +1 -1
- package/esm/cli/theme/theme-list.js +8 -6
- package/esm/cli/theme/theme-list.js.map +1 -1
- package/esm/cli/theme/theme.js +2 -2
- package/esm/cli/theme/theme.js.map +1 -1
- package/esm/help/SampleData.js +7 -0
- package/esm/help/SampleData.js.map +1 -0
- package/esm/launch.js +1 -1
- package/esm/launch.js.map +1 -1
- package/esm/loader.js +2 -2
- package/esm/loader.js.map +1 -1
- package/esm/ops/AdminFederationOps.js +231 -0
- package/esm/ops/AdminFederationOps.js.map +1 -0
- package/esm/ops/AdminOps.js +151 -0
- package/esm/ops/AdminOps.js.map +1 -0
- package/esm/ops/AgentOps.js +213 -150
- package/esm/ops/AgentOps.js.map +1 -1
- package/esm/ops/ApplicationOps.js +324 -0
- package/esm/ops/ApplicationOps.js.map +1 -0
- package/esm/ops/AuthenticationSettingsOps.js +90 -0
- package/esm/ops/AuthenticationSettingsOps.js.map +1 -0
- package/esm/ops/CirclesOfTrustOps.js +98 -78
- package/esm/ops/CirclesOfTrustOps.js.map +1 -1
- package/esm/ops/ConfigOps.js +162 -0
- package/esm/ops/ConfigOps.js.map +1 -0
- package/esm/ops/ConnectionProfileOps.js +12 -6
- package/esm/ops/ConnectionProfileOps.js.map +1 -1
- package/esm/ops/EmailTemplateOps.js +122 -127
- package/esm/ops/EmailTemplateOps.js.map +1 -1
- package/esm/ops/IdmOps.js +101 -182
- package/esm/ops/IdmOps.js.map +1 -1
- package/esm/ops/IdpOps.js +118 -73
- package/esm/ops/IdpOps.js.map +1 -1
- package/esm/ops/JourneyOps.js +176 -114
- package/esm/ops/JourneyOps.js.map +1 -1
- package/esm/ops/LogOps.js +92 -30
- package/esm/ops/LogOps.js.map +1 -1
- package/esm/ops/NodeOps.js +6 -3
- package/esm/ops/NodeOps.js.map +1 -1
- package/esm/ops/OAuth2ClientOps.js +71 -49
- package/esm/ops/OAuth2ClientOps.js.map +1 -1
- package/esm/ops/OrganizationOps.js +14 -22
- package/esm/ops/OrganizationOps.js.map +1 -1
- package/esm/ops/PolicyOps.js +127 -86
- package/esm/ops/PolicyOps.js.map +1 -1
- package/esm/ops/PolicySetOps.js +108 -76
- package/esm/ops/PolicySetOps.js.map +1 -1
- package/esm/ops/RealmOps.js +18 -11
- package/esm/ops/RealmOps.js.map +1 -1
- package/esm/ops/ResourceTypeOps.js +105 -87
- package/esm/ops/ResourceTypeOps.js.map +1 -1
- package/esm/ops/Saml2Ops.js +132 -91
- package/esm/ops/Saml2Ops.js.map +1 -1
- package/esm/ops/Saml2Ops.test_.js.map +1 -1
- package/esm/ops/ScriptOps.js +205 -82
- package/esm/ops/ScriptOps.js.map +1 -1
- package/esm/ops/SecretsOps.js +289 -79
- package/esm/ops/SecretsOps.js.map +1 -1
- package/esm/ops/ServiceOps.js +97 -54
- package/esm/ops/ServiceOps.js.map +1 -1
- package/esm/ops/ThemeOps.js +164 -158
- package/esm/ops/ThemeOps.js.map +1 -1
- package/esm/ops/VariablesOps.js +252 -65
- package/esm/ops/VariablesOps.js.map +1 -1
- package/esm/ops/utils/OpsUtils.js +1 -1
- package/esm/ops/utils/OpsUtils.js.map +1 -1
- package/esm/ops/utils/Wordwrap.js +1 -1
- package/esm/ops/utils/Wordwrap.js.map +1 -1
- package/esm/storage/StaticStorage.js +1 -1
- package/esm/storage/StaticStorage.js.map +1 -1
- package/esm/utils/Config.js +162 -4
- package/esm/utils/Config.js.map +1 -1
- package/esm/utils/Console.js +78 -35
- package/esm/utils/Console.js.map +1 -1
- package/esm/utils/Version.js +19 -16
- package/esm/utils/Version.js.map +1 -1
- package/global-jest-setup.js +4 -0
- package/package.json +55 -37
- package/esm/cli/logging/logs-fetch.js.map +0 -1
- package/esm/cli/logging/logs-list.js +0 -49
- package/esm/cli/logging/logs-list.js.map +0 -1
- package/esm/cli/logging/logs-tail.js +0 -46
- package/esm/cli/logging/logs-tail.js.map +0 -1
- package/esm/cli/logging/logs.js.map +0 -1
- package/esm/cli/theme/theme-delete.e2e.test_.js.map +0 -1
- package/esm/cli/theme/theme-list.e2e.test_.js.map +0 -1
- package/esm/utils/ExportImportUtils.js +0 -90
- package/esm/utils/ExportImportUtils.js.map +0 -1
package/esm/ops/PolicyOps.js
CHANGED
|
@@ -1,7 +1,27 @@
|
|
|
1
1
|
import { frodo, state } from '@rockcarver/frodo-lib';
|
|
2
2
|
import fs from 'fs';
|
|
3
|
-
import { createObjectTable,
|
|
4
|
-
|
|
3
|
+
import { createObjectTable, createProgressIndicator, createTable, debugMessage, failSpinner, printMessage, showSpinner, stopProgressIndicator, succeedSpinner, updateProgressIndicator } from '../utils/Console';
|
|
4
|
+
const {
|
|
5
|
+
getRealmName,
|
|
6
|
+
getTypedFilename,
|
|
7
|
+
saveJsonToFile,
|
|
8
|
+
titleCase,
|
|
9
|
+
getFilePath,
|
|
10
|
+
getWorkingDirectory
|
|
11
|
+
} = frodo.utils;
|
|
12
|
+
const {
|
|
13
|
+
readPolicies,
|
|
14
|
+
readPoliciesByPolicySet,
|
|
15
|
+
readPolicy,
|
|
16
|
+
exportPolicy,
|
|
17
|
+
exportPolicies,
|
|
18
|
+
exportPoliciesByPolicySet,
|
|
19
|
+
importPolicy,
|
|
20
|
+
importFirstPolicy,
|
|
21
|
+
importPolicies,
|
|
22
|
+
deletePolicy
|
|
23
|
+
} = frodo.authz.policy;
|
|
24
|
+
|
|
5
25
|
/**
|
|
6
26
|
* List policies
|
|
7
27
|
* @param {boolean} long list with details
|
|
@@ -10,10 +30,16 @@ import { getTypedFilename, saveJsonToFile, titleCase } from '../utils/ExportImpo
|
|
|
10
30
|
export async function listPolicies(long = false) {
|
|
11
31
|
let outcome = false;
|
|
12
32
|
try {
|
|
13
|
-
const policies = await
|
|
33
|
+
const policies = await readPolicies();
|
|
14
34
|
policies.sort((a, b) => a._id.localeCompare(b._id));
|
|
15
|
-
|
|
16
|
-
|
|
35
|
+
if (long) {
|
|
36
|
+
const table = createTable(['Id', 'Description', 'Status']);
|
|
37
|
+
for (const policy of policies) {
|
|
38
|
+
table.push([`${policy._id}`, `${policy.description}`, policy.active ? 'active'['brightGreen'] : 'inactive'['brightRed']]);
|
|
39
|
+
}
|
|
40
|
+
printMessage(table.toString(), 'data');
|
|
41
|
+
} else {
|
|
42
|
+
for (const policy of policies) {
|
|
17
43
|
printMessage(`${policy._id}`, 'data');
|
|
18
44
|
}
|
|
19
45
|
}
|
|
@@ -34,10 +60,16 @@ export async function listPolicies(long = false) {
|
|
|
34
60
|
export async function listPoliciesByPolicySet(policySetId, long = false) {
|
|
35
61
|
let outcome = false;
|
|
36
62
|
try {
|
|
37
|
-
const policies = await
|
|
63
|
+
const policies = await readPoliciesByPolicySet(policySetId);
|
|
38
64
|
policies.sort((a, b) => a._id.localeCompare(b._id));
|
|
39
|
-
|
|
40
|
-
|
|
65
|
+
if (long) {
|
|
66
|
+
const table = createTable(['Id', 'Description', 'Status']);
|
|
67
|
+
for (const policy of policies) {
|
|
68
|
+
table.push([`${policy._id}`, `${policy.description}`, policy.active ? 'active'['brightGreen'] : 'inactive'['brightRed']]);
|
|
69
|
+
}
|
|
70
|
+
printMessage(table.toString(), 'data');
|
|
71
|
+
} else {
|
|
72
|
+
for (const policy of policies) {
|
|
41
73
|
printMessage(`${policy._id}`, 'data');
|
|
42
74
|
}
|
|
43
75
|
}
|
|
@@ -57,7 +89,7 @@ export async function listPoliciesByPolicySet(policySetId, long = false) {
|
|
|
57
89
|
*/
|
|
58
90
|
export async function describePolicy(policyId, json = false) {
|
|
59
91
|
let outcome = false;
|
|
60
|
-
const policySet = await
|
|
92
|
+
const policySet = await readPolicy(policyId);
|
|
61
93
|
outcome = true;
|
|
62
94
|
if (json) {
|
|
63
95
|
printMessage(policySet, 'data');
|
|
@@ -73,23 +105,17 @@ export async function describePolicy(policyId, json = false) {
|
|
|
73
105
|
* @param {string} policyId policy id/name
|
|
74
106
|
* @returns {Promise<boolean>} true if successful, false otherwise
|
|
75
107
|
*/
|
|
76
|
-
export async function
|
|
108
|
+
export async function deletePolicyById(policyId) {
|
|
77
109
|
debugMessage(`cli.PolicyOps.deletePolicy: begin`);
|
|
78
110
|
showSpinner(`Deleting ${policyId}...`);
|
|
79
111
|
let outcome = false;
|
|
80
|
-
const errors = [];
|
|
81
112
|
try {
|
|
82
113
|
debugMessage(`Deleting policy ${policyId}`);
|
|
83
|
-
await
|
|
84
|
-
} catch (error) {
|
|
85
|
-
printMessage(`Error deleting policy ${policyId}: ${error}`, 'error');
|
|
86
|
-
}
|
|
87
|
-
if (errors.length) {
|
|
88
|
-
const errorMessages = errors.map(error => error.message).join('\n');
|
|
89
|
-
failSpinner(`Error deleting ${policyId}: ${errorMessages}`);
|
|
90
|
-
} else {
|
|
114
|
+
await deletePolicy(policyId);
|
|
91
115
|
succeedSpinner(`Deleted ${policyId}.`);
|
|
92
116
|
outcome = true;
|
|
117
|
+
} catch (error) {
|
|
118
|
+
failSpinner(`Error deleting policy ${policyId}: ${error}`);
|
|
93
119
|
}
|
|
94
120
|
debugMessage(`cli.PolicyOps.deletePolicy: end [outcome=${outcome}]`);
|
|
95
121
|
return outcome;
|
|
@@ -104,26 +130,27 @@ export async function deletePolicies() {
|
|
|
104
130
|
let outcome = false;
|
|
105
131
|
const errors = [];
|
|
106
132
|
let policies = [];
|
|
133
|
+
let indicatorId;
|
|
107
134
|
try {
|
|
108
135
|
showSpinner(`Retrieving all policies...`);
|
|
109
136
|
try {
|
|
110
|
-
policies = await
|
|
137
|
+
policies = await readPolicies();
|
|
111
138
|
succeedSpinner(`Found ${policies.length} policies.`);
|
|
112
139
|
} catch (error) {
|
|
113
140
|
error.message = `Error retrieving all policies: ${error.message}`;
|
|
114
141
|
failSpinner(error.message);
|
|
115
142
|
throw error;
|
|
116
143
|
}
|
|
117
|
-
if (policies.length)
|
|
144
|
+
if (policies.length) indicatorId = createProgressIndicator('determinate', policies.length, `Deleting ${policies.length} policies...`);
|
|
118
145
|
for (const policy of policies) {
|
|
119
146
|
const policyId = policy._id;
|
|
120
147
|
try {
|
|
121
148
|
debugMessage(`Deleting policy ${policyId}`);
|
|
122
|
-
await
|
|
123
|
-
|
|
149
|
+
await deletePolicy(policyId);
|
|
150
|
+
updateProgressIndicator(indicatorId, `Deleted ${policyId}`);
|
|
124
151
|
} catch (error) {
|
|
125
152
|
error.message = `Error deleting policy ${policyId}: ${error}`;
|
|
126
|
-
|
|
153
|
+
updateProgressIndicator(indicatorId, error.message);
|
|
127
154
|
errors.push(error);
|
|
128
155
|
}
|
|
129
156
|
}
|
|
@@ -133,9 +160,9 @@ export async function deletePolicies() {
|
|
|
133
160
|
} finally {
|
|
134
161
|
if (errors.length) {
|
|
135
162
|
const errorMessages = errors.map(error => error.message).join('\n');
|
|
136
|
-
if (policies.length)
|
|
163
|
+
if (policies.length) stopProgressIndicator(indicatorId, `Error deleting all policies: ${errorMessages}`);
|
|
137
164
|
} else {
|
|
138
|
-
if (policies.length)
|
|
165
|
+
if (policies.length) stopProgressIndicator(indicatorId, `Deleted ${policies.length} policies.`);
|
|
139
166
|
outcome = true;
|
|
140
167
|
}
|
|
141
168
|
}
|
|
@@ -153,26 +180,27 @@ export async function deletePoliciesByPolicySet(policySetId) {
|
|
|
153
180
|
let outcome = false;
|
|
154
181
|
const errors = [];
|
|
155
182
|
let policies = [];
|
|
183
|
+
let indicatorId;
|
|
156
184
|
try {
|
|
157
185
|
showSpinner(`Retrieving all policies from policy set ${policySetId}...`);
|
|
158
186
|
try {
|
|
159
|
-
policies = await
|
|
187
|
+
policies = await readPoliciesByPolicySet(policySetId);
|
|
160
188
|
succeedSpinner(`Found ${policies.length} policies in policy set ${policySetId}.`);
|
|
161
189
|
} catch (error) {
|
|
162
190
|
error.message = `Error retrieving all policies from policy set ${policySetId}: ${error.message}`;
|
|
163
191
|
failSpinner(error.message);
|
|
164
192
|
throw error;
|
|
165
193
|
}
|
|
166
|
-
if (policies.length)
|
|
194
|
+
if (policies.length) indicatorId = createProgressIndicator('determinate', policies.length, `Deleting ${policies.length} policies from policy set ${policySetId}...`);
|
|
167
195
|
for (const policy of policies) {
|
|
168
196
|
const policyId = policy._id;
|
|
169
197
|
try {
|
|
170
198
|
debugMessage(`Deleting policy ${policyId}`);
|
|
171
|
-
await
|
|
172
|
-
|
|
199
|
+
await deletePolicy(policyId);
|
|
200
|
+
updateProgressIndicator(indicatorId, `Deleted ${policyId}`);
|
|
173
201
|
} catch (error) {
|
|
174
202
|
error.message = `Error deleting policy ${policyId} from policy set ${policySetId}: ${error}`;
|
|
175
|
-
|
|
203
|
+
updateProgressIndicator(indicatorId, error.message);
|
|
176
204
|
errors.push(error);
|
|
177
205
|
}
|
|
178
206
|
}
|
|
@@ -182,9 +210,9 @@ export async function deletePoliciesByPolicySet(policySetId) {
|
|
|
182
210
|
} finally {
|
|
183
211
|
if (errors.length) {
|
|
184
212
|
const errorMessages = errors.map(error => error.message).join('\n');
|
|
185
|
-
if (policies.length)
|
|
213
|
+
if (policies.length) stopProgressIndicator(indicatorId, `Error deleting all policies from policy set ${policySetId}: ${errorMessages}`);
|
|
186
214
|
} else {
|
|
187
|
-
if (policies.length)
|
|
215
|
+
if (policies.length) stopProgressIndicator(indicatorId, `Deleted ${policies.length} policies.`);
|
|
188
216
|
outcome = true;
|
|
189
217
|
}
|
|
190
218
|
}
|
|
@@ -196,10 +224,11 @@ export async function deletePoliciesByPolicySet(policySetId) {
|
|
|
196
224
|
* Export policy to file
|
|
197
225
|
* @param {string} policyId policy id/name
|
|
198
226
|
* @param {string} file file name
|
|
227
|
+
* @param {boolean} includeMeta true to include metadata, false otherwise. Default: true
|
|
199
228
|
* @param {ApplicationExportOptions} options export options
|
|
200
229
|
* @returns {Promise<boolean>} true if successful, false otherwise
|
|
201
230
|
*/
|
|
202
|
-
export async function exportPolicyToFile(policyId, file, options = {
|
|
231
|
+
export async function exportPolicyToFile(policyId, file, includeMeta = true, options = {
|
|
203
232
|
deps: true,
|
|
204
233
|
prereqs: false,
|
|
205
234
|
useStringArrays: true
|
|
@@ -212,9 +241,10 @@ export async function exportPolicyToFile(policyId, file, options = {
|
|
|
212
241
|
if (file) {
|
|
213
242
|
fileName = file;
|
|
214
243
|
}
|
|
215
|
-
const
|
|
216
|
-
|
|
217
|
-
|
|
244
|
+
const filePath = getFilePath(fileName, true);
|
|
245
|
+
const exportData = await exportPolicy(policyId, options);
|
|
246
|
+
saveJsonToFile(exportData, filePath, includeMeta);
|
|
247
|
+
succeedSpinner(`Exported ${policyId} to ${filePath}.`);
|
|
218
248
|
outcome = true;
|
|
219
249
|
} catch (error) {
|
|
220
250
|
failSpinner(`Error exporting ${policyId}: ${error.message}`);
|
|
@@ -226,10 +256,11 @@ export async function exportPolicyToFile(policyId, file, options = {
|
|
|
226
256
|
/**
|
|
227
257
|
* Export policies to file
|
|
228
258
|
* @param {string} file file name
|
|
259
|
+
* @param {boolean} includeMeta true to include metadata, false otherwise. Default: true
|
|
229
260
|
* @param {PolicyExportOptions} options export options
|
|
230
261
|
* @returns {Promise<boolean>} true if successful, false otherwise
|
|
231
262
|
*/
|
|
232
|
-
export async function exportPoliciesToFile(file, options = {
|
|
263
|
+
export async function exportPoliciesToFile(file, includeMeta = true, options = {
|
|
233
264
|
deps: true,
|
|
234
265
|
prereqs: false,
|
|
235
266
|
useStringArrays: true
|
|
@@ -238,13 +269,14 @@ export async function exportPoliciesToFile(file, options = {
|
|
|
238
269
|
debugMessage(`cli.PolicyOps.exportPoliciesToFile: begin`);
|
|
239
270
|
showSpinner(`Exporting all policy sets...`);
|
|
240
271
|
try {
|
|
241
|
-
let fileName = getTypedFilename(`all${titleCase(
|
|
272
|
+
let fileName = getTypedFilename(`all${titleCase(getRealmName(state.getRealm()))}Policies`, 'policy.authz');
|
|
242
273
|
if (file) {
|
|
243
274
|
fileName = file;
|
|
244
275
|
}
|
|
245
|
-
const
|
|
246
|
-
|
|
247
|
-
|
|
276
|
+
const filePath = getFilePath(fileName, true);
|
|
277
|
+
const exportData = await exportPolicies(options);
|
|
278
|
+
saveJsonToFile(exportData, filePath, includeMeta);
|
|
279
|
+
succeedSpinner(`Exported all policy sets to ${filePath}.`);
|
|
248
280
|
outcome = true;
|
|
249
281
|
} catch (error) {
|
|
250
282
|
failSpinner(`Error exporting policy sets: ${error.message}`);
|
|
@@ -257,10 +289,11 @@ export async function exportPoliciesToFile(file, options = {
|
|
|
257
289
|
* Export policies to file
|
|
258
290
|
* @param {string} policySetId policy set id/name
|
|
259
291
|
* @param {string} file file name
|
|
292
|
+
* @param {boolean} includeMeta true to include metadata, false otherwise. Default: true
|
|
260
293
|
* @param {PolicyExportOptions} options export options
|
|
261
294
|
* @returns {Promise<boolean>} true if successful, false otherwise
|
|
262
295
|
*/
|
|
263
|
-
export async function exportPoliciesByPolicySetToFile(policySetId, file, options = {
|
|
296
|
+
export async function exportPoliciesByPolicySetToFile(policySetId, file, includeMeta = true, options = {
|
|
264
297
|
deps: true,
|
|
265
298
|
prereqs: false,
|
|
266
299
|
useStringArrays: true
|
|
@@ -269,13 +302,14 @@ export async function exportPoliciesByPolicySetToFile(policySetId, file, options
|
|
|
269
302
|
debugMessage(`cli.PolicyOps.exportPoliciesToFile: begin`);
|
|
270
303
|
showSpinner(`Exporting all policy sets...`);
|
|
271
304
|
try {
|
|
272
|
-
let fileName = getTypedFilename(`all${titleCase(
|
|
305
|
+
let fileName = getTypedFilename(`all${titleCase(getRealmName(state.getRealm())) + titleCase(policySetId)}Policies`, 'policy.authz');
|
|
273
306
|
if (file) {
|
|
274
307
|
fileName = file;
|
|
275
308
|
}
|
|
276
|
-
const
|
|
277
|
-
|
|
278
|
-
|
|
309
|
+
const filePath = getFilePath(fileName, true);
|
|
310
|
+
const exportData = await exportPoliciesByPolicySet(policySetId, options);
|
|
311
|
+
saveJsonToFile(exportData, filePath, includeMeta);
|
|
312
|
+
succeedSpinner(`Exported all policy sets to ${filePath}.`);
|
|
279
313
|
outcome = true;
|
|
280
314
|
} catch (error) {
|
|
281
315
|
failSpinner(`Error exporting policy sets: ${error.message}`);
|
|
@@ -286,34 +320,36 @@ export async function exportPoliciesByPolicySetToFile(policySetId, file, options
|
|
|
286
320
|
|
|
287
321
|
/**
|
|
288
322
|
* Export all policies to separate files
|
|
323
|
+
* @param {boolean} includeMeta true to include metadata, false otherwise. Default: true
|
|
289
324
|
* @param {PolicyExportOptions} options export options
|
|
290
325
|
* @returns {Promise<boolean>} true if successful, false otherwise
|
|
291
326
|
*/
|
|
292
|
-
export async function exportPoliciesToFiles(options = {
|
|
327
|
+
export async function exportPoliciesToFiles(includeMeta = true, options = {
|
|
293
328
|
deps: true,
|
|
294
329
|
prereqs: false,
|
|
295
330
|
useStringArrays: true
|
|
296
331
|
}) {
|
|
297
332
|
debugMessage(`cli.PolicyOps.exportPoliciesToFiles: begin`);
|
|
298
333
|
const errors = [];
|
|
334
|
+
let indicatorId;
|
|
299
335
|
try {
|
|
300
|
-
const policies = await
|
|
301
|
-
|
|
336
|
+
const policies = await readPolicies();
|
|
337
|
+
indicatorId = createProgressIndicator('determinate', policies.length, 'Exporting policy sets...');
|
|
302
338
|
for (const policy of policies) {
|
|
303
339
|
const file = getTypedFilename(policy._id, 'policy.authz');
|
|
304
340
|
try {
|
|
305
|
-
const exportData = await
|
|
306
|
-
saveJsonToFile(exportData, file);
|
|
307
|
-
|
|
341
|
+
const exportData = await exportPolicy(policy._id, options);
|
|
342
|
+
saveJsonToFile(exportData, getFilePath(file, true), includeMeta);
|
|
343
|
+
updateProgressIndicator(indicatorId, `Exported ${policy._id}.`);
|
|
308
344
|
} catch (error) {
|
|
309
345
|
errors.push(error);
|
|
310
|
-
|
|
346
|
+
updateProgressIndicator(indicatorId, `Error exporting ${policy._id}.`);
|
|
311
347
|
}
|
|
312
348
|
}
|
|
313
|
-
|
|
349
|
+
stopProgressIndicator(indicatorId, `Export complete.`);
|
|
314
350
|
} catch (error) {
|
|
315
351
|
errors.push(error);
|
|
316
|
-
|
|
352
|
+
stopProgressIndicator(indicatorId, `Error exporting policy sets to files`);
|
|
317
353
|
}
|
|
318
354
|
debugMessage(`cli.PolicyOps.exportPoliciesToFiles: end`);
|
|
319
355
|
return 0 === errors.length;
|
|
@@ -321,34 +357,36 @@ export async function exportPoliciesToFiles(options = {
|
|
|
321
357
|
|
|
322
358
|
/**
|
|
323
359
|
* Export all policies to separate files
|
|
360
|
+
* @param {boolean} includeMeta true to include metadata, false otherwise. Default: true
|
|
324
361
|
* @param {PolicyExportOptions} options export options
|
|
325
362
|
* @returns {Promise<boolean>} true if successful, false otherwise
|
|
326
363
|
*/
|
|
327
|
-
export async function exportPoliciesByPolicySetToFiles(policySetId, options = {
|
|
364
|
+
export async function exportPoliciesByPolicySetToFiles(policySetId, includeMeta = true, options = {
|
|
328
365
|
deps: true,
|
|
329
366
|
prereqs: false,
|
|
330
367
|
useStringArrays: true
|
|
331
368
|
}) {
|
|
332
369
|
debugMessage(`cli.PolicyOps.exportPoliciesToFiles: begin`);
|
|
333
370
|
const errors = [];
|
|
371
|
+
let indicatorId;
|
|
334
372
|
try {
|
|
335
|
-
const policies = await
|
|
336
|
-
|
|
373
|
+
const policies = await readPoliciesByPolicySet(policySetId);
|
|
374
|
+
indicatorId = createProgressIndicator('determinate', policies.length, `Exporting policies in policy set ${policySetId}...`);
|
|
337
375
|
for (const policy of policies) {
|
|
338
376
|
const file = getTypedFilename(policy._id, 'policy.authz');
|
|
339
377
|
try {
|
|
340
|
-
const exportData = await
|
|
341
|
-
saveJsonToFile(exportData, file);
|
|
342
|
-
|
|
378
|
+
const exportData = await exportPolicy(policy._id, options);
|
|
379
|
+
saveJsonToFile(exportData, getFilePath(file, true), includeMeta);
|
|
380
|
+
updateProgressIndicator(indicatorId, `Exported ${policy._id}.`);
|
|
343
381
|
} catch (error) {
|
|
344
382
|
errors.push(error);
|
|
345
|
-
|
|
383
|
+
updateProgressIndicator(indicatorId, `Error exporting ${policy._id}.`);
|
|
346
384
|
}
|
|
347
385
|
}
|
|
348
|
-
|
|
386
|
+
stopProgressIndicator(indicatorId, `Export complete.`);
|
|
349
387
|
} catch (error) {
|
|
350
388
|
errors.push(error);
|
|
351
|
-
|
|
389
|
+
stopProgressIndicator(indicatorId, `Error exporting policy sets to files`);
|
|
352
390
|
}
|
|
353
391
|
debugMessage(`cli.PolicyOps.exportPoliciesToFiles: end`);
|
|
354
392
|
return 0 === errors.length;
|
|
@@ -369,9 +407,9 @@ export async function importPolicyFromFile(policyId, file, options = {
|
|
|
369
407
|
debugMessage(`cli.PolicyOps.importPolicyFromFile: begin`);
|
|
370
408
|
showSpinner(`Importing ${policyId}...`);
|
|
371
409
|
try {
|
|
372
|
-
const data = fs.readFileSync(file, 'utf8');
|
|
410
|
+
const data = fs.readFileSync(getFilePath(file), 'utf8');
|
|
373
411
|
const fileData = JSON.parse(data);
|
|
374
|
-
await
|
|
412
|
+
await importPolicy(policyId, fileData, options);
|
|
375
413
|
outcome = true;
|
|
376
414
|
succeedSpinner(`Imported ${policyId}.`);
|
|
377
415
|
} catch (error) {
|
|
@@ -394,15 +432,16 @@ export async function importFirstPolicyFromFile(file, options = {
|
|
|
394
432
|
}) {
|
|
395
433
|
let outcome = false;
|
|
396
434
|
debugMessage(`cli.PolicySetOps.importFirstPolicyFromFile: begin`);
|
|
397
|
-
|
|
435
|
+
const filePath = getFilePath(file);
|
|
436
|
+
showSpinner(`Importing first policy from ${filePath}...`);
|
|
398
437
|
try {
|
|
399
|
-
const data = fs.readFileSync(
|
|
438
|
+
const data = fs.readFileSync(filePath, 'utf8');
|
|
400
439
|
const fileData = JSON.parse(data);
|
|
401
|
-
await
|
|
440
|
+
const policy = await importFirstPolicy(fileData, options);
|
|
402
441
|
outcome = true;
|
|
403
|
-
succeedSpinner(`Imported ${
|
|
442
|
+
succeedSpinner(`Imported first policy with id '${policy._id}' from ${filePath}.`);
|
|
404
443
|
} catch (error) {
|
|
405
|
-
failSpinner(`Error importing ${
|
|
444
|
+
failSpinner(`Error importing first policy from ${filePath}.`);
|
|
406
445
|
printMessage(error, 'error');
|
|
407
446
|
}
|
|
408
447
|
debugMessage(`cli.PolicySetOps.importFirstPolicyFromFile: end`);
|
|
@@ -421,15 +460,16 @@ export async function importPoliciesFromFile(file, options = {
|
|
|
421
460
|
}) {
|
|
422
461
|
let outcome = false;
|
|
423
462
|
debugMessage(`cli.PolicyOps.importPoliciesFromFile: begin`);
|
|
424
|
-
|
|
463
|
+
const filePath = getFilePath(file);
|
|
464
|
+
showSpinner(`Importing ${filePath}...`);
|
|
425
465
|
try {
|
|
426
|
-
const data = fs.readFileSync(
|
|
466
|
+
const data = fs.readFileSync(filePath, 'utf8');
|
|
427
467
|
const fileData = JSON.parse(data);
|
|
428
|
-
await
|
|
468
|
+
await importPolicies(fileData, options);
|
|
429
469
|
outcome = true;
|
|
430
|
-
succeedSpinner(`Imported ${
|
|
470
|
+
succeedSpinner(`Imported ${filePath}${options.policySetName ? ' into policy set ' + options.policySetName : '.'}`);
|
|
431
471
|
} catch (error) {
|
|
432
|
-
failSpinner(`Error importing ${
|
|
472
|
+
failSpinner(`Error importing ${filePath}${options.policySetName ? ' into policy set ' + options.policySetName : '.'}`);
|
|
433
473
|
printMessage(error, 'error');
|
|
434
474
|
}
|
|
435
475
|
debugMessage(`cli.PolicyOps.importPoliciesFromFile: end`);
|
|
@@ -446,11 +486,12 @@ export async function importPoliciesFromFiles(options = {
|
|
|
446
486
|
prereqs: false
|
|
447
487
|
}) {
|
|
448
488
|
const errors = [];
|
|
489
|
+
let indicatorId;
|
|
449
490
|
try {
|
|
450
491
|
debugMessage(`cli.PolicyOps.importPoliciesFromFiles: begin`);
|
|
451
|
-
const names = fs.readdirSync(
|
|
452
|
-
const files = names.filter(name => name.toLowerCase().endsWith('.policy.authz.json'));
|
|
453
|
-
|
|
492
|
+
const names = fs.readdirSync(getWorkingDirectory());
|
|
493
|
+
const files = names.filter(name => name.toLowerCase().endsWith('.policy.authz.json')).map(name => getFilePath(name));
|
|
494
|
+
indicatorId = createProgressIndicator('determinate', files.length, 'Importing policies...');
|
|
454
495
|
let total = 0;
|
|
455
496
|
for (const file of files) {
|
|
456
497
|
try {
|
|
@@ -458,21 +499,21 @@ export async function importPoliciesFromFiles(options = {
|
|
|
458
499
|
const fileData = JSON.parse(data);
|
|
459
500
|
const count = Object.keys(fileData.policyset).length;
|
|
460
501
|
total += count;
|
|
461
|
-
await
|
|
462
|
-
|
|
502
|
+
await importPolicies(fileData, options);
|
|
503
|
+
updateProgressIndicator(indicatorId, `Imported ${count} policies from ${file}`);
|
|
463
504
|
} catch (error) {
|
|
464
505
|
errors.push(error);
|
|
465
|
-
|
|
506
|
+
updateProgressIndicator(indicatorId, `Error importing policies from ${file}`);
|
|
466
507
|
printMessage(error, 'error');
|
|
467
508
|
}
|
|
468
509
|
}
|
|
469
|
-
|
|
510
|
+
stopProgressIndicator(indicatorId, `Finished importing ${total} policies from ${files.length} files.`);
|
|
470
511
|
} catch (error) {
|
|
471
512
|
errors.push(error);
|
|
472
|
-
|
|
513
|
+
stopProgressIndicator(indicatorId, `Error importing policies from files.`);
|
|
473
514
|
printMessage(error, 'error');
|
|
474
515
|
}
|
|
475
516
|
debugMessage(`cli.PolicyOps.importPoliciesFromFiles: end`);
|
|
476
517
|
return 0 === errors.length;
|
|
477
518
|
}
|
|
478
|
-
//# sourceMappingURL=PolicyOps.js.map
|
|
519
|
+
//# sourceMappingURL=PolicyOps.js.map
|