@rockcarver/frodo-cli 2.0.0-3 → 2.0.0-31
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 +275 -4
- package/esm/app.js +20 -5
- package/esm/app.js.map +1 -1
- package/esm/cli/FrodoCommand.js +28 -6
- package/esm/cli/FrodoCommand.js.map +1 -1
- package/esm/cli/_template/something-delete.js +7 -4
- package/esm/cli/_template/something-delete.js.map +1 -1
- package/esm/cli/_template/something-describe.js +7 -4
- package/esm/cli/_template/something-describe.js.map +1 -1
- package/esm/cli/_template/something-else-delete.js +7 -4
- package/esm/cli/_template/something-else-delete.js.map +1 -1
- package/esm/cli/_template/something-else-describe.js +7 -4
- package/esm/cli/_template/something-else-describe.js.map +1 -1
- package/esm/cli/_template/something-else-export.js +7 -4
- package/esm/cli/_template/something-else-export.js.map +1 -1
- package/esm/cli/_template/something-else-import.js +7 -4
- package/esm/cli/_template/something-else-import.js.map +1 -1
- package/esm/cli/_template/something-else-list.js +7 -4
- 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 +7 -4
- package/esm/cli/_template/something-export.js.map +1 -1
- package/esm/cli/_template/something-import.js +7 -4
- package/esm/cli/_template/something-import.js.map +1 -1
- package/esm/cli/_template/something-list.js +7 -4
- package/esm/cli/_template/something-list.js.map +1 -1
- package/esm/cli/_template/something-other-delete.js +7 -4
- package/esm/cli/_template/something-other-delete.js.map +1 -1
- package/esm/cli/_template/something-other-describe.js +7 -4
- package/esm/cli/_template/something-other-describe.js.map +1 -1
- package/esm/cli/_template/something-other-export.js +7 -4
- package/esm/cli/_template/something-other-export.js.map +1 -1
- package/esm/cli/_template/something-other-import.js +7 -4
- package/esm/cli/_template/something-other-import.js.map +1 -1
- package/esm/cli/_template/something-other-list.js +7 -4
- 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 -4
- 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 -7
- package/esm/cli/admin/admin-create-oauth2-client-with-admin-privileges.js.map +1 -1
- package/esm/cli/admin/admin-federation-export.js +45 -0
- package/esm/cli/admin/admin-federation-export.js.map +1 -0
- package/esm/cli/admin/admin-federation-import.js +49 -0
- package/esm/cli/admin/admin-federation-import.js.map +1 -0
- package/esm/cli/admin/admin-federation-list.js +29 -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-get-access-token.js +12 -6
- package/esm/cli/admin/admin-get-access-token.js.map +1 -1
- package/esm/cli/admin/admin-grant-oauth2-client-admin-privileges.js +13 -7
- 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 -5
- 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 -5
- 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 -5
- 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 -6
- package/esm/cli/admin/admin-list-static-user-mappings.js.map +1 -1
- package/esm/cli/admin/admin-remove-static-user-mapping.js +12 -5
- package/esm/cli/admin/admin-remove-static-user-mapping.js.map +1 -1
- package/esm/cli/admin/admin-repair-org-model.js +11 -5
- package/esm/cli/admin/admin-repair-org-model.js.map +1 -1
- package/esm/cli/admin/admin-revoke-oauth2-client-admin-privileges.js +12 -6
- 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 -5
- package/esm/cli/admin/admin-show-generic-extension-attributes.js.map +1 -1
- package/esm/cli/admin/admin-train-auto-access-model.js +33 -0
- package/esm/cli/admin/admin-train-auto-access-model.js.map +1 -0
- package/esm/cli/admin/admin.js +6 -2
- package/esm/cli/admin/admin.js.map +1 -1
- package/esm/cli/agent/agent-delete.js +13 -6
- package/esm/cli/agent/agent-delete.js.map +1 -1
- package/esm/cli/agent/agent-describe.js +7 -4
- package/esm/cli/agent/agent-describe.js.map +1 -1
- package/esm/cli/agent/agent-export.js +8 -5
- package/esm/cli/agent/agent-export.js.map +1 -1
- package/esm/cli/agent/agent-gateway-delete.js +13 -6
- package/esm/cli/agent/agent-gateway-delete.js.map +1 -1
- package/esm/cli/agent/agent-gateway-describe.js +7 -4
- package/esm/cli/agent/agent-gateway-describe.js.map +1 -1
- package/esm/cli/agent/agent-gateway-export.js +8 -5
- package/esm/cli/agent/agent-gateway-export.js.map +1 -1
- package/esm/cli/agent/agent-gateway-import.js +8 -5
- package/esm/cli/agent/agent-gateway-import.js.map +1 -1
- package/esm/cli/agent/agent-gateway-list.js +7 -4
- 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 -5
- package/esm/cli/agent/agent-import.js.map +1 -1
- package/esm/cli/agent/agent-java-delete.js +13 -6
- package/esm/cli/agent/agent-java-delete.js.map +1 -1
- package/esm/cli/agent/agent-java-describe.js +7 -4
- package/esm/cli/agent/agent-java-describe.js.map +1 -1
- package/esm/cli/agent/agent-java-export.js +8 -5
- package/esm/cli/agent/agent-java-export.js.map +1 -1
- package/esm/cli/agent/agent-java-import.js +8 -5
- package/esm/cli/agent/agent-java-import.js.map +1 -1
- package/esm/cli/agent/agent-java-list.js +7 -4
- 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 -4
- package/esm/cli/agent/agent-list.js.map +1 -1
- package/esm/cli/agent/agent-web-delete.js +13 -6
- package/esm/cli/agent/agent-web-delete.js.map +1 -1
- package/esm/cli/agent/agent-web-describe.js +7 -4
- package/esm/cli/agent/agent-web-describe.js.map +1 -1
- package/esm/cli/agent/agent-web-export.js +8 -5
- package/esm/cli/agent/agent-web-export.js.map +1 -1
- package/esm/cli/agent/agent-web-import.js +8 -5
- package/esm/cli/agent/agent-web-import.js.map +1 -1
- package/esm/cli/agent/agent-web-list.js +7 -4
- 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 -8
- package/esm/cli/app/app-delete.js.map +1 -1
- package/esm/cli/app/app-describe.js +9 -5
- package/esm/cli/app/app-describe.js.map +1 -1
- package/esm/cli/app/app-export.js +17 -13
- package/esm/cli/app/app-export.js.map +1 -1
- package/esm/cli/app/app-import.js +21 -17
- package/esm/cli/app/app-import.js.map +1 -1
- package/esm/cli/app/app-list.js +12 -8
- 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 +30 -0
- package/esm/cli/authn/authn-describe.js.map +1 -0
- package/esm/cli/authn/authn-export.js +26 -0
- package/esm/cli/authn/authn-export.js.map +1 -0
- package/esm/cli/authn/authn-import.js +26 -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 -8
- package/esm/cli/authz/authz-policy-delete.js.map +1 -1
- package/esm/cli/authz/authz-policy-describe.js +8 -5
- package/esm/cli/authz/authz-policy-describe.js.map +1 -1
- package/esm/cli/authz/authz-policy-export.js +12 -9
- package/esm/cli/authz/authz-policy-export.js.map +1 -1
- package/esm/cli/authz/authz-policy-import.js +10 -7
- package/esm/cli/authz/authz-policy-import.js.map +1 -1
- package/esm/cli/authz/authz-policy-list.js +9 -6
- 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 +10 -7
- package/esm/cli/authz/authz-set-delete.js.map +1 -1
- package/esm/cli/authz/authz-set-describe.js +8 -5
- package/esm/cli/authz/authz-set-describe.js.map +1 -1
- package/esm/cli/authz/authz-set-export.js +10 -7
- package/esm/cli/authz/authz-set-export.js.map +1 -1
- package/esm/cli/authz/authz-set-import.js +10 -7
- package/esm/cli/authz/authz-set-import.js.map +1 -1
- package/esm/cli/authz/authz-set-list.js +7 -4
- 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 +12 -9
- package/esm/cli/authz/authz-type-delete.js.map +1 -1
- package/esm/cli/authz/authz-type-describe.js +9 -6
- package/esm/cli/authz/authz-type-describe.js.map +1 -1
- package/esm/cli/authz/authz-type-export.js +11 -8
- package/esm/cli/authz/authz-type-export.js.map +1 -1
- package/esm/cli/authz/authz-type-import.js +12 -9
- package/esm/cli/authz/authz-type-import.js.map +1 -1
- package/esm/cli/authz/authz-type-list.js +8 -5
- 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/conn/conn-delete.js +2 -2
- package/esm/cli/conn/conn-delete.js.map +1 -1
- package/esm/cli/conn/conn-describe.js +2 -2
- package/esm/cli/conn/conn-describe.js.map +1 -1
- package/esm/cli/conn/conn-list.js +2 -2
- package/esm/cli/conn/conn-list.js.map +1 -1
- package/esm/cli/conn/conn-save.js +31 -15
- 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 +10 -7
- package/esm/cli/email/email-template-export.js.map +1 -1
- package/esm/cli/email/email-template-import.js +11 -8
- package/esm/cli/email/email-template-import.js.map +1 -1
- package/esm/cli/email/email-template-list.js +8 -5
- 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 -8
- package/esm/cli/esv/esv-apply.js.map +1 -1
- package/esm/cli/esv/esv-secret-create.js +8 -5
- package/esm/cli/esv/esv-secret-create.js.map +1 -1
- package/esm/cli/esv/esv-secret-delete.js +9 -6
- package/esm/cli/esv/esv-secret-delete.js.map +1 -1
- package/esm/cli/esv/esv-secret-describe.js +8 -5
- package/esm/cli/esv/esv-secret-describe.js.map +1 -1
- package/esm/cli/esv/esv-secret-export.js +19 -5
- package/esm/cli/esv/esv-secret-export.js.map +1 -1
- package/esm/cli/esv/esv-secret-import.js +7 -4
- package/esm/cli/esv/esv-secret-import.js.map +1 -1
- package/esm/cli/esv/esv-secret-list.js +8 -5
- package/esm/cli/esv/esv-secret-list.js.map +1 -1
- package/esm/cli/esv/esv-secret-set.js +8 -5
- package/esm/cli/esv/esv-secret-set.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-activate.js +8 -5
- package/esm/cli/esv/esv-secret-version-activate.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-create.js +9 -6
- package/esm/cli/esv/esv-secret-version-create.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-deactivate.js +8 -5
- package/esm/cli/esv/esv-secret-version-deactivate.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-delete.js +9 -6
- package/esm/cli/esv/esv-secret-version-delete.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-list.js +8 -5
- 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 +10 -6
- package/esm/cli/esv/esv-variable-create.js.map +1 -1
- package/esm/cli/esv/esv-variable-delete.js +10 -7
- package/esm/cli/esv/esv-variable-delete.js.map +1 -1
- package/esm/cli/esv/esv-variable-describe.js +10 -7
- package/esm/cli/esv/esv-variable-describe.js.map +1 -1
- package/esm/cli/esv/esv-variable-export.js +20 -6
- package/esm/cli/esv/esv-variable-export.js.map +1 -1
- package/esm/cli/esv/esv-variable-import.js +7 -4
- package/esm/cli/esv/esv-variable-import.js.map +1 -1
- package/esm/cli/esv/esv-variable-list.js +8 -5
- package/esm/cli/esv/esv-variable-list.js.map +1 -1
- package/esm/cli/esv/esv-variable-set.js +8 -5
- 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 +9 -6
- package/esm/cli/idm/idm-count.js.map +1 -1
- package/esm/cli/idm/idm-export.js +21 -12
- package/esm/cli/idm/idm-export.js.map +1 -1
- package/esm/cli/idm/idm-import.js +22 -13
- package/esm/cli/idm/idm-import.js.map +1 -1
- package/esm/cli/idm/idm-list.js +7 -4
- 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 +11 -8
- package/esm/cli/idp/idp-export.js.map +1 -1
- package/esm/cli/idp/idp-import.js +15 -12
- package/esm/cli/idp/idp-import.js.map +1 -1
- package/esm/cli/idp/idp-list.js +7 -4
- 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 +16 -10
- package/esm/cli/info/info.js.map +1 -1
- package/esm/cli/journey/journey-delete.js +8 -5
- package/esm/cli/journey/journey-delete.js.map +1 -1
- package/esm/cli/journey/journey-describe.js +19 -10
- package/esm/cli/journey/journey-describe.js.map +1 -1
- package/esm/cli/journey/journey-disable.js +12 -6
- package/esm/cli/journey/journey-disable.js.map +1 -1
- package/esm/cli/journey/journey-enable.js +12 -6
- package/esm/cli/journey/journey-enable.js.map +1 -1
- package/esm/cli/journey/journey-export.js +21 -9
- package/esm/cli/journey/journey-export.js.map +1 -1
- package/esm/cli/journey/journey-import.js +11 -8
- package/esm/cli/journey/journey-import.js.map +1 -1
- package/esm/cli/journey/journey-list.js +6 -3
- package/esm/cli/journey/journey-list.js.map +1 -1
- package/esm/cli/journey/journey-prune.js +23 -12
- 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 +35 -0
- package/esm/cli/log/log-key-delete.js.map +1 -0
- package/esm/cli/log/log-key-describe.js +22 -0
- package/esm/cli/log/log-key-describe.js.map +1 -0
- package/esm/cli/log/log-key-list.js +26 -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 +22 -0
- package/esm/cli/oauth/oauth-client-delete.js.map +1 -0
- package/esm/cli/oauth/oauth-client-describe.js +22 -0
- package/esm/cli/oauth/oauth-client-describe.js.map +1 -0
- package/esm/cli/oauth/oauth-client-export.js +52 -0
- package/esm/cli/oauth/oauth-client-export.js.map +1 -0
- package/esm/cli/oauth/oauth-client-import.js +57 -0
- package/esm/cli/oauth/oauth-client-import.js.map +1 -0
- package/esm/cli/oauth/oauth-client-list.js +25 -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 -5
- package/esm/cli/realm/realm-add-custom-domain.js.map +1 -1
- package/esm/cli/realm/realm-describe.js +8 -5
- package/esm/cli/realm/realm-describe.js.map +1 -1
- package/esm/cli/realm/realm-list.js +8 -5
- package/esm/cli/realm/realm-list.js.map +1 -1
- package/esm/cli/realm/realm-remove-custom-domain.js +11 -5
- 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 +10 -7
- package/esm/cli/saml/saml-cot-export.js.map +1 -1
- package/esm/cli/saml/saml-cot-import.js +15 -12
- package/esm/cli/saml/saml-cot-import.js.map +1 -1
- package/esm/cli/saml/saml-cot-list.js +8 -5
- 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 -7
- package/esm/cli/saml/saml-delete.js.map +1 -1
- package/esm/cli/saml/saml-describe.js +8 -5
- package/esm/cli/saml/saml-describe.js.map +1 -1
- package/esm/cli/saml/saml-export.js +10 -7
- package/esm/cli/saml/saml-export.js.map +1 -1
- package/esm/cli/saml/saml-import.js +11 -8
- package/esm/cli/saml/saml-import.js.map +1 -1
- package/esm/cli/saml/saml-list.js +8 -5
- package/esm/cli/saml/saml-list.js.map +1 -1
- package/esm/cli/saml/saml-metadata-export.js +9 -6
- 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 +7 -4
- package/esm/cli/script/script-delete.js.map +1 -1
- package/esm/cli/script/script-describe.js +7 -4
- package/esm/cli/script/script-describe.js.map +1 -1
- package/esm/cli/script/script-export.js +8 -5
- package/esm/cli/script/script-export.js.map +1 -1
- package/esm/cli/script/script-import.js +9 -6
- package/esm/cli/script/script-import.js.map +1 -1
- package/esm/cli/script/script-list.js +8 -5
- package/esm/cli/script/script-list.js.map +1 -1
- package/esm/cli/script/script.js +2 -2
- 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 +9 -6
- package/esm/cli/service/service-export.js.map +1 -1
- package/esm/cli/service/service-import.js +11 -9
- 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 +10 -7
- package/esm/cli/theme/theme-delete.js.map +1 -1
- package/esm/cli/theme/theme-export.js +11 -8
- package/esm/cli/theme/theme-export.js.map +1 -1
- package/esm/cli/theme/theme-import.js +12 -9
- package/esm/cli/theme/theme-import.js.map +1 -1
- package/esm/cli/theme/theme-list.js +7 -4
- 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 +225 -0
- package/esm/ops/AdminFederationOps.js.map +1 -0
- package/esm/ops/AgentOps.js +128 -87
- package/esm/ops/AgentOps.js.map +1 -1
- package/esm/ops/ApplicationOps.js +315 -0
- package/esm/ops/ApplicationOps.js.map +1 -0
- package/esm/ops/AuthenticationSettingsOps.js +89 -0
- package/esm/ops/AuthenticationSettingsOps.js.map +1 -0
- package/esm/ops/CirclesOfTrustOps.js +72 -59
- package/esm/ops/CirclesOfTrustOps.js.map +1 -1
- package/esm/ops/ConnectionProfileOps.js +13 -6
- package/esm/ops/ConnectionProfileOps.js.map +1 -1
- package/esm/ops/EmailTemplateOps.js +76 -64
- package/esm/ops/EmailTemplateOps.js.map +1 -1
- package/esm/ops/IdmOps.js +70 -84
- package/esm/ops/IdmOps.js.map +1 -1
- package/esm/ops/IdpOps.js +74 -43
- package/esm/ops/IdpOps.js.map +1 -1
- package/esm/ops/JourneyOps.js +99 -67
- 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 +51 -32
- 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 +84 -55
- package/esm/ops/PolicyOps.js.map +1 -1
- package/esm/ops/PolicySetOps.js +67 -43
- 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 +75 -66
- package/esm/ops/ResourceTypeOps.js.map +1 -1
- package/esm/ops/Saml2Ops.js +76 -54
- package/esm/ops/Saml2Ops.js.map +1 -1
- package/esm/ops/Saml2Ops.test_.js.map +1 -1
- package/esm/ops/ScriptOps.js +92 -31
- package/esm/ops/ScriptOps.js.map +1 -1
- package/esm/ops/SecretsOps.js +106 -23
- package/esm/ops/SecretsOps.js.map +1 -1
- package/esm/ops/ServiceOps.js +67 -41
- package/esm/ops/ServiceOps.js.map +1 -1
- package/esm/ops/ThemeOps.js +62 -36
- package/esm/ops/ThemeOps.js.map +1 -1
- package/esm/ops/VariablesOps.js +132 -41
- 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 +7 -4
- package/esm/utils/Config.js.map +1 -1
- package/esm/utils/Console.js +9 -5
- package/esm/utils/Console.js.map +1 -1
- package/esm/utils/ExportImportUtils.js +32 -66
- package/esm/utils/ExportImportUtils.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 +46 -35
- 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/ops/PolicySetOps.js
CHANGED
|
@@ -2,6 +2,26 @@ import { frodo, state } from '@rockcarver/frodo-lib';
|
|
|
2
2
|
import fs from 'fs';
|
|
3
3
|
import { createObjectTable, createProgressBar, debugMessage, failSpinner, printMessage, showSpinner, stopProgressBar, succeedSpinner, updateProgressBar } from '../utils/Console';
|
|
4
4
|
import { getTypedFilename, saveJsonToFile, titleCase } from '../utils/ExportImportUtils';
|
|
5
|
+
const {
|
|
6
|
+
getRealmName,
|
|
7
|
+
getFilePath,
|
|
8
|
+
getWorkingDirectory
|
|
9
|
+
} = frodo.utils;
|
|
10
|
+
const {
|
|
11
|
+
readPoliciesByPolicySet,
|
|
12
|
+
deletePolicy
|
|
13
|
+
} = frodo.authz.policy;
|
|
14
|
+
const {
|
|
15
|
+
readPolicySets,
|
|
16
|
+
readPolicySet,
|
|
17
|
+
exportPolicySet,
|
|
18
|
+
exportPolicySets,
|
|
19
|
+
importPolicySet,
|
|
20
|
+
importFirstPolicySet,
|
|
21
|
+
importPolicySets,
|
|
22
|
+
deletePolicySet
|
|
23
|
+
} = frodo.authz.policySet;
|
|
24
|
+
|
|
5
25
|
/**
|
|
6
26
|
* List policy sets
|
|
7
27
|
* @returns {Promise<boolean>} true if successful, false otherwise
|
|
@@ -9,7 +29,7 @@ import { getTypedFilename, saveJsonToFile, titleCase } from '../utils/ExportImpo
|
|
|
9
29
|
export async function listPolicySets() {
|
|
10
30
|
let outcome = false;
|
|
11
31
|
try {
|
|
12
|
-
const policySets = await
|
|
32
|
+
const policySets = await readPolicySets();
|
|
13
33
|
policySets.sort((a, b) => a.name.localeCompare(b.name));
|
|
14
34
|
for (const policySet of policySets) {
|
|
15
35
|
printMessage(`${policySet.name}`, 'data');
|
|
@@ -30,7 +50,7 @@ export async function listPolicySets() {
|
|
|
30
50
|
*/
|
|
31
51
|
export async function describePolicySet(policySetId, json = false) {
|
|
32
52
|
let outcome = false;
|
|
33
|
-
const policySet = await
|
|
53
|
+
const policySet = await readPolicySet(policySetId);
|
|
34
54
|
outcome = true;
|
|
35
55
|
if (json) {
|
|
36
56
|
printMessage(policySet, 'data');
|
|
@@ -46,34 +66,34 @@ export async function describePolicySet(policySetId, json = false) {
|
|
|
46
66
|
* @param {string} policySetId policy set id/name
|
|
47
67
|
* @returns {Promise<boolean>} true if successful, false otherwise
|
|
48
68
|
*/
|
|
49
|
-
export async function
|
|
69
|
+
export async function deletePolicySetById(policySetId) {
|
|
50
70
|
debugMessage(`cli.PolicySetOps.deletePolicySet: begin`);
|
|
51
71
|
showSpinner(`Deleting ${policySetId}...`);
|
|
52
72
|
let outcome = false;
|
|
53
73
|
const errors = [];
|
|
54
|
-
const policies = await
|
|
74
|
+
const policies = await readPoliciesByPolicySet(policySetId);
|
|
55
75
|
for (const policy of policies) {
|
|
56
76
|
try {
|
|
57
77
|
debugMessage(`Deleting policy ${policy._id}`);
|
|
58
|
-
await
|
|
78
|
+
await deletePolicy(policy._id);
|
|
59
79
|
} catch (error) {
|
|
60
80
|
error.message = `Error deleting policy ${policy._id} in policy set ${policySetId}: ${error}`;
|
|
61
81
|
printMessage(error.message, 'error');
|
|
62
82
|
errors.push(error);
|
|
63
83
|
}
|
|
64
84
|
}
|
|
65
|
-
try {
|
|
66
|
-
debugMessage(`Deleting policy set ${policySetId}`);
|
|
67
|
-
await frodo.authz.policySet.deletePolicySet(policySetId);
|
|
68
|
-
} catch (error) {
|
|
69
|
-
printMessage(`Error deleting policy set ${policySetId}: ${error}`, 'error');
|
|
70
|
-
}
|
|
71
85
|
if (errors.length) {
|
|
72
86
|
const errorMessages = errors.map(error => error.message).join('\n');
|
|
73
87
|
failSpinner(`Error deleting ${policySetId}: ${errorMessages}`);
|
|
74
88
|
} else {
|
|
75
|
-
|
|
76
|
-
|
|
89
|
+
try {
|
|
90
|
+
debugMessage(`Deleting policy set ${policySetId}`);
|
|
91
|
+
await deletePolicySet(policySetId);
|
|
92
|
+
succeedSpinner(`Deleted ${policySetId}.`);
|
|
93
|
+
outcome = true;
|
|
94
|
+
} catch (error) {
|
|
95
|
+
printMessage(`Error deleting policy set ${policySetId}: ${error}`, 'error');
|
|
96
|
+
}
|
|
77
97
|
}
|
|
78
98
|
debugMessage(`cli.PolicySetOps.deletePolicySet: end [outcome=${outcome}]`);
|
|
79
99
|
return outcome;
|
|
@@ -91,7 +111,7 @@ export async function deletePolicySets() {
|
|
|
91
111
|
try {
|
|
92
112
|
showSpinner(`Retrieving all policy sets...`);
|
|
93
113
|
try {
|
|
94
|
-
policySets = await
|
|
114
|
+
policySets = await readPolicySets();
|
|
95
115
|
succeedSpinner(`Found ${policySets.length} policy sets.`);
|
|
96
116
|
} catch (error) {
|
|
97
117
|
error.message = `Error retrieving all policy sets: ${error.message}`;
|
|
@@ -102,11 +122,11 @@ export async function deletePolicySets() {
|
|
|
102
122
|
for (const policySet of policySets) {
|
|
103
123
|
const policySetId = policySet.name;
|
|
104
124
|
try {
|
|
105
|
-
const policies = await
|
|
125
|
+
const policies = await readPoliciesByPolicySet(policySetId);
|
|
106
126
|
for (const policy of policies) {
|
|
107
127
|
try {
|
|
108
128
|
debugMessage(`Deleting policy ${policy._id}`);
|
|
109
|
-
await
|
|
129
|
+
await deletePolicy(policy._id);
|
|
110
130
|
} catch (error) {
|
|
111
131
|
error.message = `Error deleting policy ${policy._id} in policy set ${policySetId}: ${error}`;
|
|
112
132
|
printMessage(error.message, 'error');
|
|
@@ -118,7 +138,7 @@ export async function deletePolicySets() {
|
|
|
118
138
|
}
|
|
119
139
|
try {
|
|
120
140
|
debugMessage(`Deleting policy set ${policySetId}`);
|
|
121
|
-
await
|
|
141
|
+
await deletePolicySet(policySetId);
|
|
122
142
|
updateProgressBar(`Deleted ${policySetId}`);
|
|
123
143
|
} catch (error) {
|
|
124
144
|
error.message = `Error deleting policy set ${policySetId}: ${error}`;
|
|
@@ -162,9 +182,10 @@ export async function exportPolicySetToFile(policySetId, file, options = {
|
|
|
162
182
|
if (file) {
|
|
163
183
|
fileName = file;
|
|
164
184
|
}
|
|
165
|
-
const
|
|
166
|
-
|
|
167
|
-
|
|
185
|
+
const filePath = getFilePath(fileName, true);
|
|
186
|
+
const exportData = await exportPolicySet(policySetId, options);
|
|
187
|
+
saveJsonToFile(exportData, filePath);
|
|
188
|
+
succeedSpinner(`Exported ${policySetId} to ${filePath}.`);
|
|
168
189
|
outcome = true;
|
|
169
190
|
} catch (error) {
|
|
170
191
|
failSpinner(`Error exporting ${policySetId}: ${error.message}`);
|
|
@@ -188,13 +209,14 @@ export async function exportPolicySetsToFile(file, options = {
|
|
|
188
209
|
debugMessage(`cli.PolicySetOps.exportPolicySetsToFile: begin`);
|
|
189
210
|
showSpinner(`Exporting all policy sets...`);
|
|
190
211
|
try {
|
|
191
|
-
let fileName = getTypedFilename(`all${titleCase(
|
|
212
|
+
let fileName = getTypedFilename(`all${titleCase(getRealmName(state.getRealm()))}PolicySets`, 'policyset.authz');
|
|
192
213
|
if (file) {
|
|
193
214
|
fileName = file;
|
|
194
215
|
}
|
|
195
|
-
const
|
|
196
|
-
|
|
197
|
-
|
|
216
|
+
const filePath = getFilePath(fileName, true);
|
|
217
|
+
const exportData = await exportPolicySets(options);
|
|
218
|
+
saveJsonToFile(exportData, filePath);
|
|
219
|
+
succeedSpinner(`Exported all policy sets to ${filePath}.`);
|
|
198
220
|
outcome = true;
|
|
199
221
|
} catch (error) {
|
|
200
222
|
failSpinner(`Error exporting policy sets: ${error.message}`);
|
|
@@ -216,13 +238,13 @@ export async function exportPolicySetsToFiles(options = {
|
|
|
216
238
|
debugMessage(`cli.PolicySetOps.exportPolicySetsToFiles: begin`);
|
|
217
239
|
const errors = [];
|
|
218
240
|
try {
|
|
219
|
-
const policySets = await
|
|
241
|
+
const policySets = await readPolicySets();
|
|
220
242
|
createProgressBar(policySets.length, 'Exporting policy sets...');
|
|
221
243
|
for (const policySet of policySets) {
|
|
222
244
|
const file = getTypedFilename(policySet.name, 'policyset.authz');
|
|
223
245
|
try {
|
|
224
|
-
const exportData = await
|
|
225
|
-
saveJsonToFile(exportData, file);
|
|
246
|
+
const exportData = await exportPolicySet(policySet.name, options);
|
|
247
|
+
saveJsonToFile(exportData, getFilePath(file, true));
|
|
226
248
|
updateProgressBar(`Exported ${policySet.name}.`);
|
|
227
249
|
} catch (error) {
|
|
228
250
|
errors.push(error);
|
|
@@ -253,9 +275,9 @@ export async function importPolicySetFromFile(policySetId, file, options = {
|
|
|
253
275
|
debugMessage(`cli.PolicySetOps.importPolicySetFromFile: begin`);
|
|
254
276
|
showSpinner(`Importing ${policySetId}...`);
|
|
255
277
|
try {
|
|
256
|
-
const data = fs.readFileSync(file, 'utf8');
|
|
278
|
+
const data = fs.readFileSync(getFilePath(file), 'utf8');
|
|
257
279
|
const fileData = JSON.parse(data);
|
|
258
|
-
await
|
|
280
|
+
await importPolicySet(policySetId, fileData, options);
|
|
259
281
|
outcome = true;
|
|
260
282
|
succeedSpinner(`Imported ${policySetId}.`);
|
|
261
283
|
} catch (error) {
|
|
@@ -278,15 +300,16 @@ export async function importFirstPolicySetFromFile(file, options = {
|
|
|
278
300
|
}) {
|
|
279
301
|
let outcome = false;
|
|
280
302
|
debugMessage(`cli.PolicySetOps.importFirstPolicySetFromFile: begin`);
|
|
281
|
-
|
|
303
|
+
const filePath = getFilePath(file);
|
|
304
|
+
showSpinner(`Importing first policy set from ${filePath}...`);
|
|
282
305
|
try {
|
|
283
|
-
const data = fs.readFileSync(
|
|
306
|
+
const data = fs.readFileSync(filePath, 'utf8');
|
|
284
307
|
const fileData = JSON.parse(data);
|
|
285
|
-
await
|
|
308
|
+
const policySet = await importFirstPolicySet(fileData, options);
|
|
286
309
|
outcome = true;
|
|
287
|
-
succeedSpinner(`Imported ${
|
|
310
|
+
succeedSpinner(`Imported first policy set with name '${policySet.name}' from ${filePath}.`);
|
|
288
311
|
} catch (error) {
|
|
289
|
-
failSpinner(`Error importing ${
|
|
312
|
+
failSpinner(`Error importing first policy set from ${filePath}.`);
|
|
290
313
|
printMessage(error, 'error');
|
|
291
314
|
}
|
|
292
315
|
debugMessage(`cli.PolicySetOps.importFirstPolicySetFromFile: end`);
|
|
@@ -305,15 +328,16 @@ export async function importPolicySetsFromFile(file, options = {
|
|
|
305
328
|
}) {
|
|
306
329
|
let outcome = false;
|
|
307
330
|
debugMessage(`cli.PolicySetOps.importPolicySetsFromFile: begin`);
|
|
308
|
-
|
|
331
|
+
const filePath = getFilePath(file);
|
|
332
|
+
showSpinner(`Importing ${filePath}...`);
|
|
309
333
|
try {
|
|
310
|
-
const data = fs.readFileSync(
|
|
334
|
+
const data = fs.readFileSync(filePath, 'utf8');
|
|
311
335
|
const fileData = JSON.parse(data);
|
|
312
|
-
await
|
|
336
|
+
await importPolicySets(fileData, options);
|
|
313
337
|
outcome = true;
|
|
314
|
-
succeedSpinner(`Imported ${
|
|
338
|
+
succeedSpinner(`Imported ${filePath}.`);
|
|
315
339
|
} catch (error) {
|
|
316
|
-
failSpinner(`Error importing ${
|
|
340
|
+
failSpinner(`Error importing ${filePath}.`);
|
|
317
341
|
printMessage(error, 'error');
|
|
318
342
|
}
|
|
319
343
|
debugMessage(`cli.PolicySetOps.importPolicySetsFromFile: end`);
|
|
@@ -332,8 +356,8 @@ export async function importPolicySetsFromFiles(options = {
|
|
|
332
356
|
const errors = [];
|
|
333
357
|
try {
|
|
334
358
|
debugMessage(`cli.PolicySetOps.importPolicySetsFromFiles: begin`);
|
|
335
|
-
const names = fs.readdirSync(
|
|
336
|
-
const files = names.filter(name => name.toLowerCase().endsWith('.policyset.authz.json'));
|
|
359
|
+
const names = fs.readdirSync(getWorkingDirectory());
|
|
360
|
+
const files = names.filter(name => name.toLowerCase().endsWith('.policyset.authz.json')).map(name => getFilePath(name));
|
|
337
361
|
createProgressBar(files.length, 'Importing policy sets...');
|
|
338
362
|
let total = 0;
|
|
339
363
|
for (const file of files) {
|
|
@@ -342,7 +366,7 @@ export async function importPolicySetsFromFiles(options = {
|
|
|
342
366
|
const fileData = JSON.parse(data);
|
|
343
367
|
const count = Object.keys(fileData.policyset).length;
|
|
344
368
|
total += count;
|
|
345
|
-
await
|
|
369
|
+
await importPolicySets(fileData, options);
|
|
346
370
|
updateProgressBar(`Imported ${count} policy sets from ${file}`);
|
|
347
371
|
} catch (error) {
|
|
348
372
|
errors.push(error);
|
|
@@ -359,4 +383,4 @@ export async function importPolicySetsFromFiles(options = {
|
|
|
359
383
|
debugMessage(`cli.PolicySetOps.importPolicySetsFromFiles: end`);
|
|
360
384
|
return 0 === errors.length;
|
|
361
385
|
}
|
|
362
|
-
//# sourceMappingURL=PolicySetOps.js.map
|
|
386
|
+
//# sourceMappingURL=PolicySetOps.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PolicySetOps.js","names":["frodo","state","fs","createObjectTable","createProgressBar","debugMessage","failSpinner","printMessage","showSpinner","stopProgressBar","succeedSpinner","updateProgressBar","getTypedFilename","saveJsonToFile","titleCase","listPolicySets","outcome","policySets","authz","policySet","getPolicySets","sort","a","b","name","localeCompare","err","message","describePolicySet","policySetId","json","getPolicySet","table","toString","deletePolicySet","errors","policies","policy","getPoliciesByPolicySet","_id","deletePolicy","error","push","length","errorMessages","map","join","deletePolicySets","exportPolicySetToFile","file","options","deps","prereqs","useStringArrays","fileName","exportData","exportPolicySet","exportPolicySetsToFile","helper","utils","getRealmName","getRealm","exportPolicySets","exportPolicySetsToFiles","importPolicySetFromFile","data","readFileSync","fileData","JSON","parse","importPolicySet","importFirstPolicySetFromFile","importFirstPolicySet","importPolicySetsFromFile","importPolicySets","importPolicySetsFromFiles","names","readdirSync","files","filter","toLowerCase","endsWith","total","count","Object","keys","policyset"],"sources":["ops/PolicySetOps.ts"],"sourcesContent":["import { frodo, state } from '@rockcarver/frodo-lib';\nimport fs from 'fs';\nimport type {\n PolicySetSkeleton,\n PolicySkeleton,\n} from '@rockcarver/frodo-lib/types/api/ApiTypes';\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\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 frodo.authz.policySet.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 frodo.authz.policySet.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[] =\n await frodo.authz.policy.getPoliciesByPolicySet(policySetId);\n for (const policy of policies) {\n try {\n debugMessage(`Deleting policy ${policy._id}`);\n await frodo.authz.policy.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 frodo.authz.policySet.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 frodo.authz.policySet.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[] =\n await frodo.authz.policy.getPoliciesByPolicySet(policySetId);\n for (const policy of policies) {\n try {\n debugMessage(`Deleting policy ${policy._id}`);\n await frodo.authz.policy.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 frodo.authz.policySet.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 frodo.authz.policySet.exportPolicySet(\n policySetId,\n options\n );\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(\n frodo.helper.utils.getRealmName(state.getRealm())\n )}PolicySets`,\n 'policyset.authz'\n );\n if (file) {\n fileName = file;\n }\n const exportData = await frodo.authz.policySet.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[] =\n await frodo.authz.policySet.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 =\n await frodo.authz.policySet.exportPolicySet(policySet.name, options);\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 frodo.authz.policySet.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 frodo.authz.policySet.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 frodo.authz.policySet.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 frodo.authz.policySet.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":["frodo","state","fs","createObjectTable","createProgressBar","debugMessage","failSpinner","printMessage","showSpinner","stopProgressBar","succeedSpinner","updateProgressBar","getTypedFilename","saveJsonToFile","titleCase","getRealmName","getFilePath","getWorkingDirectory","utils","readPoliciesByPolicySet","deletePolicy","authz","policy","readPolicySets","readPolicySet","exportPolicySet","exportPolicySets","importPolicySet","importFirstPolicySet","importPolicySets","deletePolicySet","policySet","listPolicySets","outcome","policySets","sort","a","b","name","localeCompare","err","message","describePolicySet","policySetId","json","table","toString","deletePolicySetById","errors","policies","_id","error","push","length","errorMessages","map","join","deletePolicySets","exportPolicySetToFile","file","options","deps","prereqs","useStringArrays","fileName","filePath","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":["../../src/ops/PolicySetOps.ts"],"sourcesContent":["import { frodo, state } from '@rockcarver/frodo-lib';\nimport { type PolicySkeleton } from '@rockcarver/frodo-lib/types/api/PoliciesApi';\nimport { type PolicySetSkeleton } from '@rockcarver/frodo-lib/types/api/PolicySetApi';\nimport {\n type PolicySetExportInterface,\n type PolicySetExportOptions,\n type PolicySetImportOptions,\n} from '@rockcarver/frodo-lib/types/ops/PolicySetOps';\nimport fs from 'fs';\n\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';\n\nconst { getRealmName, getFilePath, getWorkingDirectory } = frodo.utils;\nconst { readPoliciesByPolicySet, deletePolicy } = frodo.authz.policy;\nconst {\n readPolicySets,\n readPolicySet,\n exportPolicySet,\n exportPolicySets,\n importPolicySet,\n importFirstPolicySet,\n importPolicySets,\n deletePolicySet,\n} = frodo.authz.policySet;\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 readPolicySets();\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 readPolicySet(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 deletePolicySetById(\n policySetId: string\n): Promise<boolean> {\n debugMessage(`cli.PolicySetOps.deletePolicySet: begin`);\n showSpinner(`Deleting ${policySetId}...`);\n let outcome = false;\n const errors = [];\n const policies: PolicySkeleton[] = await readPoliciesByPolicySet(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 if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n failSpinner(`Error deleting ${policySetId}: ${errorMessages}`);\n } else {\n try {\n debugMessage(`Deleting policy set ${policySetId}`);\n await deletePolicySet(policySetId);\n succeedSpinner(`Deleted ${policySetId}.`);\n outcome = true;\n } catch (error) {\n printMessage(\n `Error deleting policy set ${policySetId}: ${error}`,\n 'error'\n );\n }\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 readPolicySets();\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[] =\n await readPoliciesByPolicySet(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 } 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 filePath = getFilePath(fileName, true);\n const exportData = await exportPolicySet(policySetId, options);\n saveJsonToFile(exportData, filePath);\n succeedSpinner(`Exported ${policySetId} to ${filePath}.`);\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 filePath = getFilePath(fileName, true);\n const exportData = await exportPolicySets(options);\n saveJsonToFile(exportData, filePath);\n succeedSpinner(`Exported all policy sets to ${filePath}.`);\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 readPolicySets();\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, getFilePath(file, true));\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(getFilePath(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 const filePath = getFilePath(file);\n showSpinner(`Importing first policy set from ${filePath}...`);\n try {\n const data = fs.readFileSync(filePath, 'utf8');\n const fileData = JSON.parse(data);\n const policySet = await importFirstPolicySet(fileData, options);\n outcome = true;\n succeedSpinner(\n `Imported first policy set with name '${policySet.name}' from ${filePath}.`\n );\n } catch (error) {\n failSpinner(`Error importing first policy set from ${filePath}.`);\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 const filePath = getFilePath(file);\n showSpinner(`Importing ${filePath}...`);\n try {\n const data = fs.readFileSync(filePath, 'utf8');\n const fileData = JSON.parse(data);\n await importPolicySets(fileData, options);\n outcome = true;\n succeedSpinner(`Imported ${filePath}.`);\n } catch (error) {\n failSpinner(`Error importing ${filePath}.`);\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(getWorkingDirectory());\n const files = names\n .filter((name) => name.toLowerCase().endsWith('.policyset.authz.json'))\n .map((name) => getFilePath(name));\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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"}
|
package/esm/ops/RealmOps.js
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
import { frodo } from '@rockcarver/frodo-lib';
|
|
2
2
|
import { createKeyValueTable, createTable, printMessage } from '../utils/Console';
|
|
3
|
+
const {
|
|
4
|
+
readRealms,
|
|
5
|
+
readRealmByName,
|
|
6
|
+
updateRealm
|
|
7
|
+
} = frodo.realm;
|
|
3
8
|
|
|
4
9
|
/**
|
|
5
10
|
* List realms
|
|
@@ -7,21 +12,23 @@ import { createKeyValueTable, createTable, printMessage } from '../utils/Console
|
|
|
7
12
|
*/
|
|
8
13
|
export async function listRealms(long = false) {
|
|
9
14
|
try {
|
|
10
|
-
const realms =
|
|
15
|
+
const realms = await readRealms();
|
|
11
16
|
if (long) {
|
|
12
17
|
const table = createTable(['Name'['brightCyan'], 'Status'['brightCyan'], 'Custom Domains'['brightCyan'], 'Parent'['brightCyan']]);
|
|
13
18
|
realms.forEach(realmConfig => {
|
|
14
19
|
table.push([realmConfig.name, realmConfig.active ? 'active'['brightGreen'] : 'inactive'['brightRed'], realmConfig.aliases.join('\n'), realmConfig.parentPath]);
|
|
15
20
|
});
|
|
16
|
-
printMessage(table.toString());
|
|
21
|
+
printMessage(table.toString(), 'data');
|
|
17
22
|
} else {
|
|
18
23
|
realms.forEach(realmConfig => {
|
|
19
|
-
printMessage(realmConfig.name, '
|
|
24
|
+
printMessage(realmConfig.name, 'data');
|
|
20
25
|
});
|
|
21
26
|
}
|
|
22
27
|
} catch (error) {
|
|
28
|
+
var _error$response;
|
|
29
|
+
printMessage(error, 'error');
|
|
23
30
|
printMessage(`Error listing realms: ${error.rmessage}`, 'error');
|
|
24
|
-
printMessage(error.response.data, 'error');
|
|
31
|
+
printMessage((_error$response = error.response) === null || _error$response === void 0 ? void 0 : _error$response.data, 'error');
|
|
25
32
|
}
|
|
26
33
|
}
|
|
27
34
|
|
|
@@ -31,14 +38,14 @@ export async function listRealms(long = false) {
|
|
|
31
38
|
*/
|
|
32
39
|
export async function describeRealm(realm) {
|
|
33
40
|
try {
|
|
34
|
-
const realmConfig = await
|
|
41
|
+
const realmConfig = await readRealmByName(realm);
|
|
35
42
|
const table = createKeyValueTable();
|
|
36
43
|
table.push(['Name'['brightCyan'], realmConfig.name]);
|
|
37
44
|
table.push(['Status'['brightCyan'], realmConfig.active ? 'active'['brightGreen'] : 'inactive'['brightRed']]);
|
|
38
45
|
table.push(['Custom Domains'['brightCyan'], realmConfig.aliases.join('\n')]);
|
|
39
46
|
table.push(['Parent'['brightCyan'], realmConfig.parentPath]);
|
|
40
47
|
table.push(['Id'['brightCyan'], realmConfig._id]);
|
|
41
|
-
printMessage(table.toString());
|
|
48
|
+
printMessage(table.toString(), 'data');
|
|
42
49
|
} catch (error) {
|
|
43
50
|
printMessage(`Realm ${realm} not found!`, 'error');
|
|
44
51
|
}
|
|
@@ -51,7 +58,7 @@ export async function describeRealm(realm) {
|
|
|
51
58
|
*/
|
|
52
59
|
export async function addCustomDomain(realm, domain) {
|
|
53
60
|
try {
|
|
54
|
-
let realmConfig = await
|
|
61
|
+
let realmConfig = await readRealmByName(realm);
|
|
55
62
|
let exists = false;
|
|
56
63
|
realmConfig.aliases.forEach(alias => {
|
|
57
64
|
if (domain.toLowerCase() === alias.toLowerCase()) {
|
|
@@ -61,7 +68,7 @@ export async function addCustomDomain(realm, domain) {
|
|
|
61
68
|
if (!exists) {
|
|
62
69
|
try {
|
|
63
70
|
realmConfig.aliases.push(domain.toLowerCase());
|
|
64
|
-
realmConfig =
|
|
71
|
+
realmConfig = await updateRealm(realmConfig._id, realmConfig);
|
|
65
72
|
const table = createKeyValueTable();
|
|
66
73
|
table.push(['Name'['brightCyan'], realmConfig.name]);
|
|
67
74
|
table.push(['Status'['brightCyan'], realmConfig.active ? 'active'['brightGreen'] : 'inactive'['brightRed']]);
|
|
@@ -85,12 +92,12 @@ export async function addCustomDomain(realm, domain) {
|
|
|
85
92
|
*/
|
|
86
93
|
export async function removeCustomDomain(realm, domain) {
|
|
87
94
|
try {
|
|
88
|
-
let realmConfig = await
|
|
95
|
+
let realmConfig = await readRealmByName(realm);
|
|
89
96
|
const aliases = realmConfig.aliases.filter(alias => domain.toLowerCase() !== alias.toLowerCase());
|
|
90
97
|
if (aliases.length < realmConfig.aliases.length) {
|
|
91
98
|
try {
|
|
92
99
|
realmConfig.aliases = aliases;
|
|
93
|
-
realmConfig =
|
|
100
|
+
realmConfig = await updateRealm(realmConfig._id, realmConfig);
|
|
94
101
|
const table = createKeyValueTable();
|
|
95
102
|
table.push(['Name'['brightCyan'], realmConfig.name]);
|
|
96
103
|
table.push(['Status'['brightCyan'], realmConfig.active ? 'active'['brightGreen'] : 'inactive'['brightRed']]);
|
|
@@ -106,4 +113,4 @@ export async function removeCustomDomain(realm, domain) {
|
|
|
106
113
|
printMessage(`${error.message}`, 'error');
|
|
107
114
|
}
|
|
108
115
|
}
|
|
109
|
-
//# sourceMappingURL=RealmOps.js.map
|
|
116
|
+
//# sourceMappingURL=RealmOps.js.map
|
package/esm/ops/RealmOps.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RealmOps.js","names":["frodo","createKeyValueTable","createTable","printMessage","
|
|
1
|
+
{"version":3,"file":"RealmOps.js","names":["frodo","createKeyValueTable","createTable","printMessage","readRealms","readRealmByName","updateRealm","realm","listRealms","long","realms","table","forEach","realmConfig","push","name","active","aliases","join","parentPath","toString","error","_error$response","rmessage","response","data","describeRealm","_id","addCustomDomain","domain","exists","alias","toLowerCase","message","removeCustomDomain","filter","length"],"sources":["../../src/ops/RealmOps.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\n\nimport {\n createKeyValueTable,\n createTable,\n printMessage,\n} from '../utils/Console';\n\nconst { readRealms, readRealmByName, updateRealm } = frodo.realm;\n\n/**\n * List realms\n * @param {boolean} long Long list format with details\n */\nexport async function listRealms(long = false) {\n try {\n const realms = await readRealms();\n if (long) {\n const table = createTable([\n 'Name'['brightCyan'],\n 'Status'['brightCyan'],\n 'Custom Domains'['brightCyan'],\n 'Parent'['brightCyan'],\n ]);\n realms.forEach((realmConfig) => {\n table.push([\n realmConfig.name,\n realmConfig.active\n ? 'active'['brightGreen']\n : 'inactive'['brightRed'],\n realmConfig.aliases.join('\\n'),\n realmConfig.parentPath,\n ]);\n });\n printMessage(table.toString(), 'data');\n } else {\n realms.forEach((realmConfig) => {\n printMessage(realmConfig.name, 'data');\n });\n }\n } catch (error) {\n printMessage(error, 'error');\n printMessage(`Error listing realms: ${error.rmessage}`, 'error');\n printMessage(error.response?.data, 'error');\n }\n}\n\n/**\n * Describe realm\n * @param {String} realm realm name\n */\nexport async function describeRealm(realm: string) {\n try {\n const realmConfig = await readRealmByName(realm);\n const table = createKeyValueTable();\n table.push(['Name'['brightCyan'], realmConfig.name]);\n table.push([\n 'Status'['brightCyan'],\n realmConfig.active ? 'active'['brightGreen'] : 'inactive'['brightRed'],\n ]);\n table.push([\n 'Custom Domains'['brightCyan'],\n realmConfig.aliases.join('\\n'),\n ]);\n table.push(['Parent'['brightCyan'], realmConfig.parentPath]);\n table.push(['Id'['brightCyan'], realmConfig._id]);\n printMessage(table.toString(), 'data');\n } catch (error) {\n printMessage(`Realm ${realm} not found!`, 'error');\n }\n}\n\n/**\n * Add custom DNS domain name (realm DNS alias)\n * @param {String} realm realm name\n * @param {String} domain domain name\n */\nexport async function addCustomDomain(realm: string, domain: string) {\n try {\n let realmConfig = await readRealmByName(realm);\n let exists = false;\n realmConfig.aliases.forEach((alias) => {\n if (domain.toLowerCase() === alias.toLowerCase()) {\n exists = true;\n }\n });\n if (!exists) {\n try {\n realmConfig.aliases.push(domain.toLowerCase());\n realmConfig = await updateRealm(realmConfig._id, realmConfig);\n const table = createKeyValueTable();\n table.push(['Name'['brightCyan'], realmConfig.name]);\n table.push([\n 'Status'['brightCyan'],\n realmConfig.active\n ? 'active'['brightGreen']\n : 'inactive'['brightRed'],\n ]);\n table.push([\n 'Custom Domains'['brightCyan'],\n realmConfig.aliases.join('\\n'),\n ]);\n table.push(['Parent'['brightCyan'], realmConfig.parentPath]);\n table.push(['Id'['brightCyan'], realmConfig._id]);\n printMessage(table.toString());\n } catch (error) {\n printMessage(`Error adding custom domain: ${error.message}`, 'error');\n }\n }\n } catch (error) {\n printMessage(`${error.message}`, 'error');\n }\n}\n\n/**\n * Remove custom DNS domain name (realm DNS alias)\n * @param {String} realm realm name\n * @param {String} domain domain name\n */\nexport async function removeCustomDomain(realm: string, domain: string) {\n try {\n let realmConfig = await readRealmByName(realm);\n const aliases = realmConfig.aliases.filter(\n (alias) => domain.toLowerCase() !== alias.toLowerCase()\n );\n if (aliases.length < realmConfig.aliases.length) {\n try {\n realmConfig.aliases = aliases;\n realmConfig = await updateRealm(realmConfig._id, realmConfig);\n const table = createKeyValueTable();\n table.push(['Name'['brightCyan'], realmConfig.name]);\n table.push([\n 'Status'['brightCyan'],\n realmConfig.active\n ? 'active'['brightGreen']\n : 'inactive'['brightRed'],\n ]);\n table.push([\n 'Custom Domains'['brightCyan'],\n realmConfig.aliases.join('\\n'),\n ]);\n table.push(['Parent'['brightCyan'], realmConfig.parentPath]);\n table.push(['Id'['brightCyan'], realmConfig._id]);\n printMessage(table.toString());\n } catch (error) {\n printMessage(`Error removing custom domain: ${error.message}`, 'error');\n }\n }\n } catch (error) {\n printMessage(`${error.message}`, 'error');\n }\n}\n"],"mappings":"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"}
|