@rockcarver/frodo-cli 0.24.5 → 2.0.0-2
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/.vscode/launch.json +15 -0
- package/CHANGELOG.md +9 -1
- package/esm/app.js +2 -5
- package/esm/app.js.map +1 -1
- package/esm/cli/FrodoCommand.js +10 -10
- package/esm/cli/FrodoCommand.js.map +1 -1
- package/esm/cli/_template/something-delete.js +2 -5
- package/esm/cli/_template/something-delete.js.map +1 -1
- package/esm/cli/_template/something-describe.js +2 -5
- package/esm/cli/_template/something-describe.js.map +1 -1
- package/esm/cli/_template/something-else-delete.js +2 -5
- package/esm/cli/_template/something-else-delete.js.map +1 -1
- package/esm/cli/_template/something-else-describe.js +2 -5
- package/esm/cli/_template/something-else-describe.js.map +1 -1
- package/esm/cli/_template/something-else-export.js +2 -5
- package/esm/cli/_template/something-else-export.js.map +1 -1
- package/esm/cli/_template/something-else-import.js +2 -5
- package/esm/cli/_template/something-else-import.js.map +1 -1
- package/esm/cli/_template/something-else-list.js +2 -5
- package/esm/cli/_template/something-else-list.js.map +1 -1
- package/esm/cli/_template/something-export.js +2 -5
- package/esm/cli/_template/something-export.js.map +1 -1
- package/esm/cli/_template/something-import.js +2 -5
- package/esm/cli/_template/something-import.js.map +1 -1
- package/esm/cli/_template/something-list.js +2 -5
- package/esm/cli/_template/something-list.js.map +1 -1
- package/esm/cli/_template/something-other-delete.js +2 -5
- package/esm/cli/_template/something-other-delete.js.map +1 -1
- package/esm/cli/_template/something-other-describe.js +2 -5
- package/esm/cli/_template/something-other-describe.js.map +1 -1
- package/esm/cli/_template/something-other-export.js +2 -5
- package/esm/cli/_template/something-other-export.js.map +1 -1
- package/esm/cli/_template/something-other-import.js +2 -5
- package/esm/cli/_template/something-other-import.js.map +1 -1
- package/esm/cli/_template/something-other-list.js +2 -5
- package/esm/cli/_template/something-other-list.js.map +1 -1
- package/esm/cli/admin/admin-add-autoid-static-user-mapping.js +3 -9
- 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 +4 -11
- package/esm/cli/admin/admin-create-oauth2-client-with-admin-privileges.js.map +1 -1
- package/esm/cli/admin/admin-get-access-token.js +3 -9
- package/esm/cli/admin/admin-get-access-token.js.map +1 -1
- package/esm/cli/admin/admin-grant-oauth2-client-admin-privileges.js +3 -9
- package/esm/cli/admin/admin-grant-oauth2-client-admin-privileges.js.map +1 -1
- package/esm/cli/admin/admin-hide-generic-extension-attributes.js +3 -9
- 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 +3 -9
- 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 +3 -9
- 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 +3 -9
- package/esm/cli/admin/admin-list-static-user-mappings.js.map +1 -1
- package/esm/cli/admin/admin-remove-static-user-mapping.js +3 -9
- package/esm/cli/admin/admin-remove-static-user-mapping.js.map +1 -1
- package/esm/cli/admin/admin-repair-org-model.js +3 -9
- package/esm/cli/admin/admin-repair-org-model.js.map +1 -1
- package/esm/cli/admin/admin-revoke-oauth2-client-admin-privileges.js +3 -9
- package/esm/cli/admin/admin-revoke-oauth2-client-admin-privileges.js.map +1 -1
- package/esm/cli/admin/admin-show-generic-extension-attributes.js +3 -9
- package/esm/cli/admin/admin-show-generic-extension-attributes.js.map +1 -1
- package/esm/cli/agent/agent-delete.js +4 -11
- package/esm/cli/agent/agent-delete.js.map +1 -1
- package/esm/cli/agent/agent-describe.js +2 -5
- package/esm/cli/agent/agent-describe.js.map +1 -1
- package/esm/cli/agent/agent-export.js +2 -5
- package/esm/cli/agent/agent-export.js.map +1 -1
- package/esm/cli/agent/agent-gateway-delete.js +4 -11
- package/esm/cli/agent/agent-gateway-delete.js.map +1 -1
- package/esm/cli/agent/agent-gateway-describe.js +2 -5
- package/esm/cli/agent/agent-gateway-describe.js.map +1 -1
- package/esm/cli/agent/agent-gateway-export.js +2 -5
- package/esm/cli/agent/agent-gateway-export.js.map +1 -1
- package/esm/cli/agent/agent-gateway-import.js +2 -5
- package/esm/cli/agent/agent-gateway-import.js.map +1 -1
- package/esm/cli/agent/agent-gateway-list.js +2 -5
- package/esm/cli/agent/agent-gateway-list.js.map +1 -1
- package/esm/cli/agent/agent-import.js +2 -5
- package/esm/cli/agent/agent-import.js.map +1 -1
- package/esm/cli/agent/agent-java-delete.js +4 -11
- package/esm/cli/agent/agent-java-delete.js.map +1 -1
- package/esm/cli/agent/agent-java-describe.js +2 -5
- package/esm/cli/agent/agent-java-describe.js.map +1 -1
- package/esm/cli/agent/agent-java-export.js +2 -5
- package/esm/cli/agent/agent-java-export.js.map +1 -1
- package/esm/cli/agent/agent-java-import.js +2 -5
- package/esm/cli/agent/agent-java-import.js.map +1 -1
- package/esm/cli/agent/agent-java-list.js +2 -5
- package/esm/cli/agent/agent-java-list.js.map +1 -1
- package/esm/cli/agent/agent-list.js +2 -5
- package/esm/cli/agent/agent-list.js.map +1 -1
- package/esm/cli/agent/agent-web-delete.js +4 -11
- package/esm/cli/agent/agent-web-delete.js.map +1 -1
- package/esm/cli/agent/agent-web-describe.js +2 -5
- package/esm/cli/agent/agent-web-describe.js.map +1 -1
- package/esm/cli/agent/agent-web-export.js +2 -5
- package/esm/cli/agent/agent-web-export.js.map +1 -1
- package/esm/cli/agent/agent-web-import.js +2 -5
- package/esm/cli/agent/agent-web-import.js.map +1 -1
- package/esm/cli/agent/agent-web-list.js +2 -5
- package/esm/cli/agent/agent-web-list.js.map +1 -1
- package/esm/cli/app/app-delete.js +2 -5
- package/esm/cli/app/app-delete.js.map +1 -1
- package/esm/cli/app/app-describe.js +2 -5
- package/esm/cli/app/app-describe.js.map +1 -1
- package/esm/cli/app/app-export.js +4 -7
- package/esm/cli/app/app-export.js.map +1 -1
- package/esm/cli/app/app-import.js +5 -8
- package/esm/cli/app/app-import.js.map +1 -1
- package/esm/cli/app/app-list.js +3 -6
- package/esm/cli/app/app-list.js.map +1 -1
- package/esm/cli/authz/authz-policy-delete.js +4 -7
- package/esm/cli/authz/authz-policy-delete.js.map +1 -1
- package/esm/cli/authz/authz-policy-describe.js +2 -5
- package/esm/cli/authz/authz-policy-describe.js.map +1 -1
- package/esm/cli/authz/authz-policy-export.js +6 -9
- package/esm/cli/authz/authz-policy-export.js.map +1 -1
- package/esm/cli/authz/authz-policy-import.js +5 -8
- package/esm/cli/authz/authz-policy-import.js.map +1 -1
- package/esm/cli/authz/authz-policy-list.js +3 -6
- package/esm/cli/authz/authz-policy-list.js.map +1 -1
- package/esm/cli/authz/authz-set-delete.js +3 -6
- package/esm/cli/authz/authz-set-delete.js.map +1 -1
- package/esm/cli/authz/authz-set-describe.js +2 -5
- package/esm/cli/authz/authz-set-describe.js.map +1 -1
- package/esm/cli/authz/authz-set-export.js +4 -7
- package/esm/cli/authz/authz-set-export.js.map +1 -1
- package/esm/cli/authz/authz-set-import.js +5 -8
- package/esm/cli/authz/authz-set-import.js.map +1 -1
- package/esm/cli/authz/authz-set-list.js +2 -5
- package/esm/cli/authz/authz-set-list.js.map +1 -1
- package/esm/cli/authz/authz-type-delete.js +4 -7
- package/esm/cli/authz/authz-type-delete.js.map +1 -1
- package/esm/cli/authz/authz-type-describe.js +3 -6
- package/esm/cli/authz/authz-type-describe.js.map +1 -1
- package/esm/cli/authz/authz-type-export.js +5 -8
- package/esm/cli/authz/authz-type-export.js.map +1 -1
- package/esm/cli/authz/authz-type-import.js +6 -9
- package/esm/cli/authz/authz-type-import.js.map +1 -1
- package/esm/cli/authz/authz-type-list.js +2 -5
- package/esm/cli/authz/authz-type-list.js.map +1 -1
- package/esm/cli/conn/conn-delete.js +2 -5
- package/esm/cli/conn/conn-delete.js.map +1 -1
- package/esm/cli/conn/conn-describe.js +1 -4
- package/esm/cli/conn/conn-describe.js.map +1 -1
- package/esm/cli/conn/conn-list.js +1 -4
- package/esm/cli/conn/conn-list.js.map +1 -1
- package/esm/cli/conn/conn-save.js +6 -16
- package/esm/cli/conn/conn-save.js.map +1 -1
- package/esm/cli/email/email-template-export.js +4 -7
- package/esm/cli/email/email-template-export.js.map +1 -1
- package/esm/cli/email/email-template-import.js +5 -8
- package/esm/cli/email/email-template-import.js.map +1 -1
- package/esm/cli/email/email-template-list.js +2 -5
- package/esm/cli/email/email-template-list.js.map +1 -1
- package/esm/cli/esv/esv-apply.js +6 -16
- package/esm/cli/esv/esv-apply.js.map +1 -1
- package/esm/cli/esv/esv-secret-create.js +3 -8
- package/esm/cli/esv/esv-secret-create.js.map +1 -1
- package/esm/cli/esv/esv-secret-delete.js +6 -12
- package/esm/cli/esv/esv-secret-delete.js.map +1 -1
- package/esm/cli/esv/esv-secret-describe.js +3 -8
- package/esm/cli/esv/esv-secret-describe.js.map +1 -1
- package/esm/cli/esv/esv-secret-export.js +2 -5
- package/esm/cli/esv/esv-secret-export.js.map +1 -1
- package/esm/cli/esv/esv-secret-import.js +2 -5
- package/esm/cli/esv/esv-secret-import.js.map +1 -1
- package/esm/cli/esv/esv-secret-list.js +3 -8
- package/esm/cli/esv/esv-secret-list.js.map +1 -1
- package/esm/cli/esv/esv-secret-set.js +4 -9
- package/esm/cli/esv/esv-secret-set.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-activate.js +3 -8
- package/esm/cli/esv/esv-secret-version-activate.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-create.js +4 -9
- package/esm/cli/esv/esv-secret-version-create.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-deactivate.js +3 -8
- package/esm/cli/esv/esv-secret-version-deactivate.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-delete.js +5 -10
- package/esm/cli/esv/esv-secret-version-delete.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-list.js +4 -9
- package/esm/cli/esv/esv-secret-version-list.js.map +1 -1
- package/esm/cli/esv/esv-variable-create.js +3 -8
- package/esm/cli/esv/esv-variable-create.js.map +1 -1
- package/esm/cli/esv/esv-variable-delete.js +6 -12
- package/esm/cli/esv/esv-variable-delete.js.map +1 -1
- package/esm/cli/esv/esv-variable-describe.js +3 -8
- package/esm/cli/esv/esv-variable-describe.js.map +1 -1
- package/esm/cli/esv/esv-variable-export.js +2 -5
- package/esm/cli/esv/esv-variable-export.js.map +1 -1
- package/esm/cli/esv/esv-variable-import.js +2 -5
- package/esm/cli/esv/esv-variable-import.js.map +1 -1
- package/esm/cli/esv/esv-variable-list.js +3 -8
- package/esm/cli/esv/esv-variable-list.js.map +1 -1
- package/esm/cli/esv/esv-variable-set.js +5 -11
- package/esm/cli/esv/esv-variable-set.js.map +1 -1
- package/esm/cli/idm/idm-count.js +2 -5
- package/esm/cli/idm/idm-count.js.map +1 -1
- package/esm/cli/idm/idm-export.js +4 -7
- package/esm/cli/idm/idm-export.js.map +1 -1
- package/esm/cli/idm/idm-import.js +5 -8
- package/esm/cli/idm/idm-import.js.map +1 -1
- package/esm/cli/idm/idm-list.js +2 -5
- package/esm/cli/idm/idm-list.js.map +1 -1
- package/esm/cli/idp/idp-export.js +2 -5
- package/esm/cli/idp/idp-export.js.map +1 -1
- package/esm/cli/idp/idp-import.js +5 -8
- package/esm/cli/idp/idp-import.js.map +1 -1
- package/esm/cli/idp/idp-list.js +2 -5
- package/esm/cli/idp/idp-list.js.map +1 -1
- package/esm/cli/info/info.js +3 -9
- package/esm/cli/info/info.js.map +1 -1
- package/esm/cli/journey/journey-delete.js +5 -12
- package/esm/cli/journey/journey-delete.js.map +1 -1
- package/esm/cli/journey/journey-describe.js +7 -15
- package/esm/cli/journey/journey-describe.js.map +1 -1
- package/esm/cli/journey/journey-disable.js +3 -9
- package/esm/cli/journey/journey-disable.js.map +1 -1
- package/esm/cli/journey/journey-enable.js +3 -9
- package/esm/cli/journey/journey-enable.js.map +1 -1
- package/esm/cli/journey/journey-export.js +4 -7
- package/esm/cli/journey/journey-export.js.map +1 -1
- package/esm/cli/journey/journey-import.js +5 -8
- package/esm/cli/journey/journey-import.js.map +1 -1
- package/esm/cli/journey/journey-list.js +2 -5
- package/esm/cli/journey/journey-list.js.map +1 -1
- package/esm/cli/journey/journey-prune.js +4 -11
- package/esm/cli/journey/journey-prune.js.map +1 -1
- package/esm/cli/logging/logs-fetch.js +7 -17
- package/esm/cli/logging/logs-fetch.js.map +1 -1
- package/esm/cli/logging/logs-list.js +5 -15
- package/esm/cli/logging/logs-list.js.map +1 -1
- package/esm/cli/logging/logs-tail.js +7 -17
- package/esm/cli/logging/logs-tail.js.map +1 -1
- package/esm/cli/realm/realm-add-custom-domain.js +3 -8
- package/esm/cli/realm/realm-add-custom-domain.js.map +1 -1
- package/esm/cli/realm/realm-describe.js +4 -12
- package/esm/cli/realm/realm-describe.js.map +1 -1
- package/esm/cli/realm/realm-list.js +3 -8
- package/esm/cli/realm/realm-list.js.map +1 -1
- package/esm/cli/realm/realm-remove-custom-domain.js +3 -9
- package/esm/cli/realm/realm-remove-custom-domain.js.map +1 -1
- package/esm/cli/saml/saml-cot-export.js +11 -15
- package/esm/cli/saml/saml-cot-export.js.map +1 -1
- package/esm/cli/saml/saml-cot-import.js +15 -19
- package/esm/cli/saml/saml-cot-import.js.map +1 -1
- package/esm/cli/saml/saml-cot-list.js +5 -9
- package/esm/cli/saml/saml-cot-list.js.map +1 -1
- package/esm/cli/saml/saml-delete.js +5 -12
- package/esm/cli/saml/saml-delete.js.map +1 -1
- package/esm/cli/saml/saml-describe.js +2 -5
- package/esm/cli/saml/saml-describe.js.map +1 -1
- package/esm/cli/saml/saml-export.js +12 -30
- package/esm/cli/saml/saml-export.js.map +1 -1
- package/esm/cli/saml/saml-import.js +15 -36
- package/esm/cli/saml/saml-import.js.map +1 -1
- package/esm/cli/saml/saml-list.js +6 -14
- package/esm/cli/saml/saml-list.js.map +1 -1
- package/esm/cli/saml/saml-metadata-export.js +3 -6
- package/esm/cli/saml/saml-metadata-export.js.map +1 -1
- package/esm/cli/script/script-delete.js +2 -5
- package/esm/cli/script/script-delete.js.map +1 -1
- package/esm/cli/script/script-describe.js +2 -5
- package/esm/cli/script/script-describe.js.map +1 -1
- package/esm/cli/script/script-export.js +2 -5
- package/esm/cli/script/script-export.js.map +1 -1
- package/esm/cli/script/script-import.js +4 -6
- package/esm/cli/script/script-import.js.map +1 -1
- package/esm/cli/script/script-list.js +4 -6
- package/esm/cli/script/script-list.js.map +1 -1
- package/esm/cli/service/service-delete.js +3 -6
- package/esm/cli/service/service-delete.js.map +1 -1
- package/esm/cli/service/service-export.js +4 -7
- package/esm/cli/service/service-export.js.map +1 -1
- package/esm/cli/service/service-import.js +5 -8
- package/esm/cli/service/service-import.js.map +1 -1
- package/esm/cli/service/service-list.js +2 -5
- package/esm/cli/service/service-list.js.map +1 -1
- package/esm/cli/theme/theme-delete.js +4 -7
- package/esm/cli/theme/theme-delete.js.map +1 -1
- package/esm/cli/theme/theme-export.js +5 -8
- package/esm/cli/theme/theme-export.js.map +1 -1
- package/esm/cli/theme/theme-import.js +6 -9
- package/esm/cli/theme/theme-import.js.map +1 -1
- package/esm/cli/theme/theme-list.js +2 -5
- package/esm/cli/theme/theme-list.js.map +1 -1
- package/esm/launch.js +4 -3
- package/esm/launch.js.map +1 -1
- package/esm/ops/AgentOps.js +49 -82
- package/esm/ops/AgentOps.js.map +1 -1
- package/esm/ops/CirclesOfTrustOps.js +217 -2
- package/esm/ops/CirclesOfTrustOps.js.map +1 -1
- package/esm/ops/ConnectionProfileOps.js +97 -8
- package/esm/ops/ConnectionProfileOps.js.map +1 -1
- package/esm/ops/EmailTemplateOps.js +16 -25
- package/esm/ops/EmailTemplateOps.js.map +1 -1
- package/esm/ops/IdmOps.js +25 -39
- package/esm/ops/IdmOps.js.map +1 -1
- package/esm/ops/IdpOps.js +10 -18
- package/esm/ops/IdpOps.js.map +1 -1
- package/esm/ops/JourneyOps.js +49 -65
- package/esm/ops/JourneyOps.js.map +1 -1
- package/esm/ops/LogOps.js +9 -17
- package/esm/ops/LogOps.js.map +1 -1
- package/esm/ops/NodeOps.js +11 -11
- package/esm/ops/NodeOps.js.map +1 -1
- package/esm/ops/OAuth2ClientOps.js +13 -29
- package/esm/ops/OAuth2ClientOps.js.map +1 -1
- package/esm/ops/OrganizationOps.js +28 -0
- package/esm/ops/OrganizationOps.js.map +1 -0
- package/esm/ops/PolicyOps.js +22 -38
- package/esm/ops/PolicyOps.js.map +1 -1
- package/esm/ops/PolicySetOps.js +19 -37
- package/esm/ops/PolicySetOps.js.map +1 -1
- package/esm/ops/RealmOps.js +109 -0
- package/esm/ops/RealmOps.js.map +1 -0
- package/esm/ops/ResourceTypeOps.js +19 -37
- package/esm/ops/ResourceTypeOps.js.map +1 -1
- package/esm/ops/Saml2Ops.js +30 -251
- package/esm/ops/Saml2Ops.js.map +1 -1
- package/esm/ops/ScriptOps.js +14 -21
- package/esm/ops/ScriptOps.js.map +1 -1
- package/esm/ops/SecretsOps.js +223 -0
- package/esm/ops/SecretsOps.js.map +1 -0
- package/esm/ops/ServiceOps.js +20 -41
- package/esm/ops/ServiceOps.js.map +1 -1
- package/esm/ops/ThemeOps.js +20 -35
- package/esm/ops/ThemeOps.js.map +1 -1
- package/esm/ops/VariablesOps.js +133 -0
- package/esm/ops/VariablesOps.js.map +1 -0
- package/esm/utils/Config.js +3 -6
- package/esm/utils/Config.js.map +1 -1
- package/esm/utils/Console.js +2 -5
- package/esm/utils/Console.js.map +1 -1
- package/esm/utils/ExportImportUtils.js +4 -6
- package/esm/utils/ExportImportUtils.js.map +1 -1
- package/esm/utils/Version.js +3 -3
- package/esm/utils/Version.js.map +1 -1
- package/package.json +4 -4
package/esm/ops/PolicySetOps.js
CHANGED
|
@@ -1,25 +1,7 @@
|
|
|
1
|
+
import { frodo, state } from '@rockcarver/frodo-lib';
|
|
1
2
|
import fs from 'fs';
|
|
2
|
-
import { Policy, PolicySet, Utils, state } from '@rockcarver/frodo-lib';
|
|
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
|
-
deletePolicySet: _deletePolicySet,
|
|
7
|
-
getPolicySets,
|
|
8
|
-
getPolicySet,
|
|
9
|
-
exportPolicySet,
|
|
10
|
-
exportPolicySets,
|
|
11
|
-
importPolicySet,
|
|
12
|
-
importFirstPolicySet,
|
|
13
|
-
importPolicySets
|
|
14
|
-
} = PolicySet;
|
|
15
|
-
const {
|
|
16
|
-
getPoliciesByPolicySet,
|
|
17
|
-
deletePolicy
|
|
18
|
-
} = Policy;
|
|
19
|
-
const {
|
|
20
|
-
getRealmName
|
|
21
|
-
} = Utils;
|
|
22
|
-
|
|
23
5
|
/**
|
|
24
6
|
* List policy sets
|
|
25
7
|
* @returns {Promise<boolean>} true if successful, false otherwise
|
|
@@ -27,7 +9,7 @@ const {
|
|
|
27
9
|
export async function listPolicySets() {
|
|
28
10
|
let outcome = false;
|
|
29
11
|
try {
|
|
30
|
-
const policySets = await getPolicySets();
|
|
12
|
+
const policySets = await frodo.authz.policySet.getPolicySets();
|
|
31
13
|
policySets.sort((a, b) => a.name.localeCompare(b.name));
|
|
32
14
|
for (const policySet of policySets) {
|
|
33
15
|
printMessage(`${policySet.name}`, 'data');
|
|
@@ -48,7 +30,7 @@ export async function listPolicySets() {
|
|
|
48
30
|
*/
|
|
49
31
|
export async function describePolicySet(policySetId, json = false) {
|
|
50
32
|
let outcome = false;
|
|
51
|
-
const policySet = await getPolicySet(policySetId);
|
|
33
|
+
const policySet = await frodo.authz.policySet.getPolicySet(policySetId);
|
|
52
34
|
outcome = true;
|
|
53
35
|
if (json) {
|
|
54
36
|
printMessage(policySet, 'data');
|
|
@@ -69,11 +51,11 @@ export async function deletePolicySet(policySetId) {
|
|
|
69
51
|
showSpinner(`Deleting ${policySetId}...`);
|
|
70
52
|
let outcome = false;
|
|
71
53
|
const errors = [];
|
|
72
|
-
const policies = await getPoliciesByPolicySet(policySetId);
|
|
54
|
+
const policies = await frodo.authz.policy.getPoliciesByPolicySet(policySetId);
|
|
73
55
|
for (const policy of policies) {
|
|
74
56
|
try {
|
|
75
57
|
debugMessage(`Deleting policy ${policy._id}`);
|
|
76
|
-
await deletePolicy(policy._id);
|
|
58
|
+
await frodo.authz.policy.deletePolicy(policy._id);
|
|
77
59
|
} catch (error) {
|
|
78
60
|
error.message = `Error deleting policy ${policy._id} in policy set ${policySetId}: ${error}`;
|
|
79
61
|
printMessage(error.message, 'error');
|
|
@@ -82,7 +64,7 @@ export async function deletePolicySet(policySetId) {
|
|
|
82
64
|
}
|
|
83
65
|
try {
|
|
84
66
|
debugMessage(`Deleting policy set ${policySetId}`);
|
|
85
|
-
await
|
|
67
|
+
await frodo.authz.policySet.deletePolicySet(policySetId);
|
|
86
68
|
} catch (error) {
|
|
87
69
|
printMessage(`Error deleting policy set ${policySetId}: ${error}`, 'error');
|
|
88
70
|
}
|
|
@@ -109,7 +91,7 @@ export async function deletePolicySets() {
|
|
|
109
91
|
try {
|
|
110
92
|
showSpinner(`Retrieving all policy sets...`);
|
|
111
93
|
try {
|
|
112
|
-
policySets = await getPolicySets();
|
|
94
|
+
policySets = await frodo.authz.policySet.getPolicySets();
|
|
113
95
|
succeedSpinner(`Found ${policySets.length} policy sets.`);
|
|
114
96
|
} catch (error) {
|
|
115
97
|
error.message = `Error retrieving all policy sets: ${error.message}`;
|
|
@@ -120,11 +102,11 @@ export async function deletePolicySets() {
|
|
|
120
102
|
for (const policySet of policySets) {
|
|
121
103
|
const policySetId = policySet.name;
|
|
122
104
|
try {
|
|
123
|
-
const policies = await getPoliciesByPolicySet(policySetId);
|
|
105
|
+
const policies = await frodo.authz.policy.getPoliciesByPolicySet(policySetId);
|
|
124
106
|
for (const policy of policies) {
|
|
125
107
|
try {
|
|
126
108
|
debugMessage(`Deleting policy ${policy._id}`);
|
|
127
|
-
await deletePolicy(policy._id);
|
|
109
|
+
await frodo.authz.policy.deletePolicy(policy._id);
|
|
128
110
|
} catch (error) {
|
|
129
111
|
error.message = `Error deleting policy ${policy._id} in policy set ${policySetId}: ${error}`;
|
|
130
112
|
printMessage(error.message, 'error');
|
|
@@ -136,7 +118,7 @@ export async function deletePolicySets() {
|
|
|
136
118
|
}
|
|
137
119
|
try {
|
|
138
120
|
debugMessage(`Deleting policy set ${policySetId}`);
|
|
139
|
-
await
|
|
121
|
+
await frodo.authz.policySet.deletePolicySet(policySetId);
|
|
140
122
|
updateProgressBar(`Deleted ${policySetId}`);
|
|
141
123
|
} catch (error) {
|
|
142
124
|
error.message = `Error deleting policy set ${policySetId}: ${error}`;
|
|
@@ -180,7 +162,7 @@ export async function exportPolicySetToFile(policySetId, file, options = {
|
|
|
180
162
|
if (file) {
|
|
181
163
|
fileName = file;
|
|
182
164
|
}
|
|
183
|
-
const exportData = await exportPolicySet(policySetId, options);
|
|
165
|
+
const exportData = await frodo.authz.policySet.exportPolicySet(policySetId, options);
|
|
184
166
|
saveJsonToFile(exportData, fileName);
|
|
185
167
|
succeedSpinner(`Exported ${policySetId} to ${fileName}.`);
|
|
186
168
|
outcome = true;
|
|
@@ -206,11 +188,11 @@ export async function exportPolicySetsToFile(file, options = {
|
|
|
206
188
|
debugMessage(`cli.PolicySetOps.exportPolicySetsToFile: begin`);
|
|
207
189
|
showSpinner(`Exporting all policy sets...`);
|
|
208
190
|
try {
|
|
209
|
-
let fileName = getTypedFilename(`all${titleCase(getRealmName(state.getRealm()))}PolicySets`, 'policyset.authz');
|
|
191
|
+
let fileName = getTypedFilename(`all${titleCase(frodo.helper.utils.getRealmName(state.getRealm()))}PolicySets`, 'policyset.authz');
|
|
210
192
|
if (file) {
|
|
211
193
|
fileName = file;
|
|
212
194
|
}
|
|
213
|
-
const exportData = await exportPolicySets(options);
|
|
195
|
+
const exportData = await frodo.authz.policySet.exportPolicySets(options);
|
|
214
196
|
saveJsonToFile(exportData, fileName);
|
|
215
197
|
succeedSpinner(`Exported all policy sets to ${fileName}.`);
|
|
216
198
|
outcome = true;
|
|
@@ -234,12 +216,12 @@ export async function exportPolicySetsToFiles(options = {
|
|
|
234
216
|
debugMessage(`cli.PolicySetOps.exportPolicySetsToFiles: begin`);
|
|
235
217
|
const errors = [];
|
|
236
218
|
try {
|
|
237
|
-
const policySets = await getPolicySets();
|
|
219
|
+
const policySets = await frodo.authz.policySet.getPolicySets();
|
|
238
220
|
createProgressBar(policySets.length, 'Exporting policy sets...');
|
|
239
221
|
for (const policySet of policySets) {
|
|
240
222
|
const file = getTypedFilename(policySet.name, 'policyset.authz');
|
|
241
223
|
try {
|
|
242
|
-
const exportData = await exportPolicySet(policySet.name, options);
|
|
224
|
+
const exportData = await frodo.authz.policySet.exportPolicySet(policySet.name, options);
|
|
243
225
|
saveJsonToFile(exportData, file);
|
|
244
226
|
updateProgressBar(`Exported ${policySet.name}.`);
|
|
245
227
|
} catch (error) {
|
|
@@ -273,7 +255,7 @@ export async function importPolicySetFromFile(policySetId, file, options = {
|
|
|
273
255
|
try {
|
|
274
256
|
const data = fs.readFileSync(file, 'utf8');
|
|
275
257
|
const fileData = JSON.parse(data);
|
|
276
|
-
await importPolicySet(policySetId, fileData, options);
|
|
258
|
+
await frodo.authz.policySet.importPolicySet(policySetId, fileData, options);
|
|
277
259
|
outcome = true;
|
|
278
260
|
succeedSpinner(`Imported ${policySetId}.`);
|
|
279
261
|
} catch (error) {
|
|
@@ -300,7 +282,7 @@ export async function importFirstPolicySetFromFile(file, options = {
|
|
|
300
282
|
try {
|
|
301
283
|
const data = fs.readFileSync(file, 'utf8');
|
|
302
284
|
const fileData = JSON.parse(data);
|
|
303
|
-
await importFirstPolicySet(fileData, options);
|
|
285
|
+
await frodo.authz.policySet.importFirstPolicySet(fileData, options);
|
|
304
286
|
outcome = true;
|
|
305
287
|
succeedSpinner(`Imported ${file}.`);
|
|
306
288
|
} catch (error) {
|
|
@@ -327,7 +309,7 @@ export async function importPolicySetsFromFile(file, options = {
|
|
|
327
309
|
try {
|
|
328
310
|
const data = fs.readFileSync(file, 'utf8');
|
|
329
311
|
const fileData = JSON.parse(data);
|
|
330
|
-
await importPolicySets(fileData, options);
|
|
312
|
+
await frodo.authz.policySet.importPolicySets(fileData, options);
|
|
331
313
|
outcome = true;
|
|
332
314
|
succeedSpinner(`Imported ${file}.`);
|
|
333
315
|
} catch (error) {
|
|
@@ -360,7 +342,7 @@ export async function importPolicySetsFromFiles(options = {
|
|
|
360
342
|
const fileData = JSON.parse(data);
|
|
361
343
|
const count = Object.keys(fileData.policyset).length;
|
|
362
344
|
total += count;
|
|
363
|
-
await importPolicySets(fileData, options);
|
|
345
|
+
await frodo.authz.policySet.importPolicySets(fileData, options);
|
|
364
346
|
updateProgressBar(`Imported ${count} policy sets from ${file}`);
|
|
365
347
|
} catch (error) {
|
|
366
348
|
errors.push(error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PolicySetOps.js","names":["fs","Policy","PolicySet","Utils","state","createObjectTable","createProgressBar","debugMessage","failSpinner","printMessage","showSpinner","stopProgressBar","succeedSpinner","updateProgressBar","getTypedFilename","saveJsonToFile","titleCase","deletePolicySet","_deletePolicySet","getPolicySets","getPolicySet","exportPolicySet","exportPolicySets","importPolicySet","importFirstPolicySet","importPolicySets","getPoliciesByPolicySet","deletePolicy","getRealmName","listPolicySets","outcome","policySets","sort","a","b","name","localeCompare","policySet","err","message","describePolicySet","policySetId","json","table","toString","errors","policies","policy","_id","error","push","length","errorMessages","map","join","deletePolicySets","exportPolicySetToFile","file","options","deps","prereqs","useStringArrays","fileName","exportData","exportPolicySetsToFile","getRealm","exportPolicySetsToFiles","importPolicySetFromFile","data","readFileSync","fileData","JSON","parse","importFirstPolicySetFromFile","importPolicySetsFromFile","importPolicySetsFromFiles","names","readdirSync","files","filter","toLowerCase","endsWith","total","count","Object","keys","policyset"],"sources":["ops/PolicySetOps.ts"],"sourcesContent":["import fs from 'fs';\nimport {\n PolicySetSkeleton,\n PolicySkeleton,\n} from '@rockcarver/frodo-lib/types/api/ApiTypes';\nimport { Policy, PolicySet, Utils, state } from '@rockcarver/frodo-lib';\nimport {\n createObjectTable,\n createProgressBar,\n debugMessage,\n failSpinner,\n printMessage,\n showSpinner,\n stopProgressBar,\n succeedSpinner,\n updateProgressBar,\n} from '../utils/Console';\nimport {\n getTypedFilename,\n saveJsonToFile,\n titleCase,\n} from '../utils/ExportImportUtils';\nimport {\n PolicySetExportInterface,\n PolicySetExportOptions,\n PolicySetImportOptions,\n} from '@rockcarver/frodo-lib/types/ops/PolicySetOps';\n\nconst {\n deletePolicySet: _deletePolicySet,\n getPolicySets,\n getPolicySet,\n exportPolicySet,\n exportPolicySets,\n importPolicySet,\n importFirstPolicySet,\n importPolicySets,\n} = PolicySet;\nconst { getPoliciesByPolicySet, deletePolicy } = Policy;\nconst { getRealmName } = Utils;\n\n/**\n * List policy sets\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function listPolicySets(): Promise<boolean> {\n let outcome = false;\n try {\n const policySets = await getPolicySets();\n policySets.sort((a, b) => a.name.localeCompare(b.name));\n for (const policySet of policySets) {\n printMessage(`${policySet.name}`, 'data');\n }\n outcome = true;\n } catch (err) {\n printMessage(`listPolicySets ERROR: ${err.message}`, 'error');\n printMessage(err, 'error');\n }\n return outcome;\n}\n\n/**\n * Describe policy set\n * @param {string} policySetId policy set id/name\n * @param {Object} json JSON output\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function describePolicySet(\n policySetId: string,\n json = false\n): Promise<boolean> {\n let outcome = false;\n const policySet = await getPolicySet(policySetId);\n outcome = true;\n if (json) {\n printMessage(policySet, 'data');\n } else {\n const table = createObjectTable(policySet);\n printMessage(table.toString(), 'data');\n }\n return outcome;\n}\n\n/**\n * Delete policy set\n * @param {string} policySetId policy set id/name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function deletePolicySet(policySetId: string): Promise<boolean> {\n debugMessage(`cli.PolicySetOps.deletePolicySet: begin`);\n showSpinner(`Deleting ${policySetId}...`);\n let outcome = false;\n const errors = [];\n const policies: PolicySkeleton[] = await getPoliciesByPolicySet(policySetId);\n for (const policy of policies) {\n try {\n debugMessage(`Deleting policy ${policy._id}`);\n await deletePolicy(policy._id);\n } catch (error) {\n error.message = `Error deleting policy ${policy._id} in policy set ${policySetId}: ${error}`;\n printMessage(error.message, 'error');\n errors.push(error);\n }\n }\n try {\n debugMessage(`Deleting policy set ${policySetId}`);\n await _deletePolicySet(policySetId);\n } catch (error) {\n printMessage(`Error deleting policy set ${policySetId}: ${error}`, 'error');\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n failSpinner(`Error deleting ${policySetId}: ${errorMessages}`);\n } else {\n succeedSpinner(`Deleted ${policySetId}.`);\n outcome = true;\n }\n debugMessage(`cli.PolicySetOps.deletePolicySet: end [outcome=${outcome}]`);\n return outcome;\n}\n\n/**\n * Delete all policy sets\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function deletePolicySets(): Promise<boolean> {\n debugMessage(`cli.PolicySetOps.deletePolicySets: begin`);\n let outcome = false;\n const errors = [];\n let policySets: PolicySetSkeleton[] = [];\n try {\n showSpinner(`Retrieving all policy sets...`);\n try {\n policySets = await getPolicySets();\n succeedSpinner(`Found ${policySets.length} policy sets.`);\n } catch (error) {\n error.message = `Error retrieving all policy sets: ${error.message}`;\n failSpinner(error.message);\n throw error;\n }\n if (policySets.length)\n createProgressBar(\n policySets.length,\n `Deleting ${policySets.length} policy sets...`\n );\n for (const policySet of policySets) {\n const policySetId = policySet.name;\n try {\n const policies: PolicySkeleton[] = await getPoliciesByPolicySet(\n policySetId\n );\n for (const policy of policies) {\n try {\n debugMessage(`Deleting policy ${policy._id}`);\n await deletePolicy(policy._id);\n } catch (error) {\n error.message = `Error deleting policy ${policy._id} in policy set ${policySetId}: ${error}`;\n printMessage(error.message, 'error');\n errors.push(error);\n }\n }\n } catch (error) {\n errors.push(error);\n }\n try {\n debugMessage(`Deleting policy set ${policySetId}`);\n await _deletePolicySet(policySetId);\n updateProgressBar(`Deleted ${policySetId}`);\n } catch (error) {\n error.message = `Error deleting policy set ${policySetId}: ${error}`;\n updateProgressBar(error.message);\n errors.push(error);\n }\n }\n } catch (error) {\n error.message = `Error deleting policy sets: ${error}`;\n errors.push(error);\n } finally {\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n if (policySets.length)\n stopProgressBar(`Error deleting all policy sets: ${errorMessages}`);\n } else {\n if (policySets.length)\n stopProgressBar(`Deleted ${policySets.length} policy sets.`);\n outcome = true;\n }\n }\n debugMessage(`cli.PolicySetOps.deletePolicySets: end [outcome=${outcome}]`);\n return outcome;\n}\n\n/**\n * Export policy set to file\n * @param {string} policySetId policy set id/name\n * @param {string} file file name\n * @param {PolicySetExportOptions} options export options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportPolicySetToFile(\n policySetId: string,\n file: string,\n options: PolicySetExportOptions = {\n deps: true,\n prereqs: false,\n useStringArrays: true,\n }\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.PolicySetOps.exportPolicySetToFile: begin`);\n showSpinner(`Exporting ${policySetId}...`);\n try {\n let fileName = getTypedFilename(policySetId, 'policyset.authz');\n if (file) {\n fileName = file;\n }\n const exportData = await exportPolicySet(policySetId, options);\n saveJsonToFile(exportData, fileName);\n succeedSpinner(`Exported ${policySetId} to ${fileName}.`);\n outcome = true;\n } catch (error) {\n failSpinner(`Error exporting ${policySetId}: ${error.message}`);\n }\n debugMessage(`cli.PolicySetOps.exportPolicySetToFile: end`);\n return outcome;\n}\n\n/**\n * Export policy sets to file\n * @param {string} file file name\n * @param {PolicySetExportOptions} options export options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportPolicySetsToFile(\n file: string,\n options: PolicySetExportOptions = {\n deps: true,\n prereqs: false,\n useStringArrays: true,\n }\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.PolicySetOps.exportPolicySetsToFile: begin`);\n showSpinner(`Exporting all policy sets...`);\n try {\n let fileName = getTypedFilename(\n `all${titleCase(getRealmName(state.getRealm()))}PolicySets`,\n 'policyset.authz'\n );\n if (file) {\n fileName = file;\n }\n const exportData = await exportPolicySets(options);\n saveJsonToFile(exportData, fileName);\n succeedSpinner(`Exported all policy sets to ${fileName}.`);\n outcome = true;\n } catch (error) {\n failSpinner(`Error exporting policy sets: ${error.message}`);\n }\n debugMessage(`cli.PolicySetOps.exportPolicySetsToFile: end`);\n return outcome;\n}\n\n/**\n * Export all policy sets to separate files\n * @param {PolicySetExportOptions} options export options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportPolicySetsToFiles(\n options: PolicySetExportOptions = {\n deps: true,\n prereqs: false,\n useStringArrays: true,\n }\n): Promise<boolean> {\n debugMessage(`cli.PolicySetOps.exportPolicySetsToFiles: begin`);\n const errors = [];\n try {\n const policySets: PolicySetSkeleton[] = await getPolicySets();\n createProgressBar(policySets.length, 'Exporting policy sets...');\n for (const policySet of policySets) {\n const file = getTypedFilename(policySet.name, 'policyset.authz');\n try {\n const exportData: PolicySetExportInterface = await exportPolicySet(\n policySet.name,\n options\n );\n saveJsonToFile(exportData, file);\n updateProgressBar(`Exported ${policySet.name}.`);\n } catch (error) {\n errors.push(error);\n updateProgressBar(`Error exporting ${policySet.name}.`);\n }\n }\n stopProgressBar(`Export complete.`);\n } catch (error) {\n errors.push(error);\n stopProgressBar(`Error exporting policy sets to files`);\n }\n debugMessage(`cli.PolicySetOps.exportPolicySetsToFiles: end`);\n return 0 === errors.length;\n}\n\n/**\n * Import policy set from file\n * @param {string} policySetId policy set id/name\n * @param {string} file file name\n * @param {PolicySetImportOptions} options import options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importPolicySetFromFile(\n policySetId: string,\n file: string,\n options: PolicySetImportOptions = { deps: true, prereqs: false }\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.PolicySetOps.importPolicySetFromFile: begin`);\n showSpinner(`Importing ${policySetId}...`);\n try {\n const data = fs.readFileSync(file, 'utf8');\n const fileData = JSON.parse(data);\n await importPolicySet(policySetId, fileData, options);\n outcome = true;\n succeedSpinner(`Imported ${policySetId}.`);\n } catch (error) {\n failSpinner(`Error importing ${policySetId}.`);\n printMessage(error, 'error');\n }\n debugMessage(`cli.PolicySetOps.importPolicySetFromFile: end`);\n return outcome;\n}\n\n/**\n * Import first policy set from file\n * @param {string} file file name\n * @param {PolicySetImportOptions} options import options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importFirstPolicySetFromFile(\n file: string,\n options: PolicySetImportOptions = { deps: true, prereqs: false }\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.PolicySetOps.importFirstPolicySetFromFile: begin`);\n showSpinner(`Importing ${file}...`);\n try {\n const data = fs.readFileSync(file, 'utf8');\n const fileData = JSON.parse(data);\n await importFirstPolicySet(fileData, options);\n outcome = true;\n succeedSpinner(`Imported ${file}.`);\n } catch (error) {\n failSpinner(`Error importing ${file}.`);\n printMessage(error, 'error');\n }\n debugMessage(`cli.PolicySetOps.importFirstPolicySetFromFile: end`);\n return outcome;\n}\n\n/**\n * Import policy sets from file\n * @param {string} file file name\n * @param {PolicySetImportOptions} options import options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importPolicySetsFromFile(\n file: string,\n options: PolicySetImportOptions = { deps: true, prereqs: false }\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.PolicySetOps.importPolicySetsFromFile: begin`);\n showSpinner(`Importing ${file}...`);\n try {\n const data = fs.readFileSync(file, 'utf8');\n const fileData = JSON.parse(data);\n await importPolicySets(fileData, options);\n outcome = true;\n succeedSpinner(`Imported ${file}.`);\n } catch (error) {\n failSpinner(`Error importing ${file}.`);\n printMessage(error, 'error');\n }\n debugMessage(`cli.PolicySetOps.importPolicySetsFromFile: end`);\n return outcome;\n}\n\n/**\n * Import policy sets from files\n * @param {OAuth2ClientImportOptions} options import options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importPolicySetsFromFiles(\n options: PolicySetImportOptions = { deps: true, prereqs: false }\n): Promise<boolean> {\n const errors = [];\n try {\n debugMessage(`cli.PolicySetOps.importPolicySetsFromFiles: begin`);\n const names = fs.readdirSync('.');\n const files = names.filter((name) =>\n name.toLowerCase().endsWith('.policyset.authz.json')\n );\n createProgressBar(files.length, 'Importing policy sets...');\n let total = 0;\n for (const file of files) {\n try {\n const data = fs.readFileSync(file, 'utf8');\n const fileData: PolicySetExportInterface = JSON.parse(data);\n const count = Object.keys(fileData.policyset).length;\n total += count;\n await importPolicySets(fileData, options);\n updateProgressBar(`Imported ${count} policy sets from ${file}`);\n } catch (error) {\n errors.push(error);\n updateProgressBar(`Error importing policy sets from ${file}`);\n printMessage(error, 'error');\n }\n }\n stopProgressBar(\n `Finished importing ${total} policy sets from ${files.length} files.`\n );\n } catch (error) {\n errors.push(error);\n stopProgressBar(`Error importing policy sets from files.`);\n printMessage(error, 'error');\n }\n debugMessage(`cli.PolicySetOps.importPolicySetsFromFiles: end`);\n return 0 === errors.length;\n}\n"],"mappings":"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"}
|
|
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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"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { frodo } from '@rockcarver/frodo-lib';
|
|
2
|
+
import { createKeyValueTable, createTable, printMessage } from '../utils/Console';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* List realms
|
|
6
|
+
* @param {boolean} long Long list format with details
|
|
7
|
+
*/
|
|
8
|
+
export async function listRealms(long = false) {
|
|
9
|
+
try {
|
|
10
|
+
const realms = (await frodo.realm.getRealms()).data.result;
|
|
11
|
+
if (long) {
|
|
12
|
+
const table = createTable(['Name'['brightCyan'], 'Status'['brightCyan'], 'Custom Domains'['brightCyan'], 'Parent'['brightCyan']]);
|
|
13
|
+
realms.forEach(realmConfig => {
|
|
14
|
+
table.push([realmConfig.name, realmConfig.active ? 'active'['brightGreen'] : 'inactive'['brightRed'], realmConfig.aliases.join('\n'), realmConfig.parentPath]);
|
|
15
|
+
});
|
|
16
|
+
printMessage(table.toString());
|
|
17
|
+
} else {
|
|
18
|
+
realms.forEach(realmConfig => {
|
|
19
|
+
printMessage(realmConfig.name, 'info');
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
} catch (error) {
|
|
23
|
+
printMessage(`Error listing realms: ${error.rmessage}`, 'error');
|
|
24
|
+
printMessage(error.response.data, 'error');
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Describe realm
|
|
30
|
+
* @param {String} realm realm name
|
|
31
|
+
*/
|
|
32
|
+
export async function describeRealm(realm) {
|
|
33
|
+
try {
|
|
34
|
+
const realmConfig = await frodo.realm.getRealmByName(realm);
|
|
35
|
+
const table = createKeyValueTable();
|
|
36
|
+
table.push(['Name'['brightCyan'], realmConfig.name]);
|
|
37
|
+
table.push(['Status'['brightCyan'], realmConfig.active ? 'active'['brightGreen'] : 'inactive'['brightRed']]);
|
|
38
|
+
table.push(['Custom Domains'['brightCyan'], realmConfig.aliases.join('\n')]);
|
|
39
|
+
table.push(['Parent'['brightCyan'], realmConfig.parentPath]);
|
|
40
|
+
table.push(['Id'['brightCyan'], realmConfig._id]);
|
|
41
|
+
printMessage(table.toString());
|
|
42
|
+
} catch (error) {
|
|
43
|
+
printMessage(`Realm ${realm} not found!`, 'error');
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Add custom DNS domain name (realm DNS alias)
|
|
49
|
+
* @param {String} realm realm name
|
|
50
|
+
* @param {String} domain domain name
|
|
51
|
+
*/
|
|
52
|
+
export async function addCustomDomain(realm, domain) {
|
|
53
|
+
try {
|
|
54
|
+
let realmConfig = await frodo.realm.getRealmByName(realm);
|
|
55
|
+
let exists = false;
|
|
56
|
+
realmConfig.aliases.forEach(alias => {
|
|
57
|
+
if (domain.toLowerCase() === alias.toLowerCase()) {
|
|
58
|
+
exists = true;
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
if (!exists) {
|
|
62
|
+
try {
|
|
63
|
+
realmConfig.aliases.push(domain.toLowerCase());
|
|
64
|
+
realmConfig = (await frodo.realm.putRealm(realmConfig._id, realmConfig)).data;
|
|
65
|
+
const table = createKeyValueTable();
|
|
66
|
+
table.push(['Name'['brightCyan'], realmConfig.name]);
|
|
67
|
+
table.push(['Status'['brightCyan'], realmConfig.active ? 'active'['brightGreen'] : 'inactive'['brightRed']]);
|
|
68
|
+
table.push(['Custom Domains'['brightCyan'], realmConfig.aliases.join('\n')]);
|
|
69
|
+
table.push(['Parent'['brightCyan'], realmConfig.parentPath]);
|
|
70
|
+
table.push(['Id'['brightCyan'], realmConfig._id]);
|
|
71
|
+
printMessage(table.toString());
|
|
72
|
+
} catch (error) {
|
|
73
|
+
printMessage(`Error adding custom domain: ${error.message}`, 'error');
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
} catch (error) {
|
|
77
|
+
printMessage(`${error.message}`, 'error');
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Remove custom DNS domain name (realm DNS alias)
|
|
83
|
+
* @param {String} realm realm name
|
|
84
|
+
* @param {String} domain domain name
|
|
85
|
+
*/
|
|
86
|
+
export async function removeCustomDomain(realm, domain) {
|
|
87
|
+
try {
|
|
88
|
+
let realmConfig = await frodo.realm.getRealmByName(realm);
|
|
89
|
+
const aliases = realmConfig.aliases.filter(alias => domain.toLowerCase() !== alias.toLowerCase());
|
|
90
|
+
if (aliases.length < realmConfig.aliases.length) {
|
|
91
|
+
try {
|
|
92
|
+
realmConfig.aliases = aliases;
|
|
93
|
+
realmConfig = (await frodo.realm.putRealm(realmConfig._id, realmConfig)).data;
|
|
94
|
+
const table = createKeyValueTable();
|
|
95
|
+
table.push(['Name'['brightCyan'], realmConfig.name]);
|
|
96
|
+
table.push(['Status'['brightCyan'], realmConfig.active ? 'active'['brightGreen'] : 'inactive'['brightRed']]);
|
|
97
|
+
table.push(['Custom Domains'['brightCyan'], realmConfig.aliases.join('\n')]);
|
|
98
|
+
table.push(['Parent'['brightCyan'], realmConfig.parentPath]);
|
|
99
|
+
table.push(['Id'['brightCyan'], realmConfig._id]);
|
|
100
|
+
printMessage(table.toString());
|
|
101
|
+
} catch (error) {
|
|
102
|
+
printMessage(`Error removing custom domain: ${error.message}`, 'error');
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
} catch (error) {
|
|
106
|
+
printMessage(`${error.message}`, 'error');
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=RealmOps.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RealmOps.js","names":["frodo","createKeyValueTable","createTable","printMessage","listRealms","long","realms","realm","getRealms","data","result","table","forEach","realmConfig","push","name","active","aliases","join","parentPath","toString","error","rmessage","response","describeRealm","getRealmByName","_id","addCustomDomain","domain","exists","alias","toLowerCase","putRealm","message","removeCustomDomain","filter","length"],"sources":["ops/RealmOps.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\nimport {\n createKeyValueTable,\n createTable,\n printMessage,\n} from '../utils/Console';\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 frodo.realm.getRealms()).data.result;\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());\n } else {\n realms.forEach((realmConfig) => {\n printMessage(realmConfig.name, 'info');\n });\n }\n } catch (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 frodo.realm.getRealmByName(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());\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 frodo.realm.getRealmByName(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 frodo.realm.putRealm(realmConfig._id, realmConfig))\n .data;\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 frodo.realm.getRealmByName(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 frodo.realm.putRealm(realmConfig._id, realmConfig))\n .data;\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":"AAAA,SAASA,KAAK,QAAQ,uBAAuB;AAC7C,SACEC,mBAAmB,EACnBC,WAAW,EACXC,YAAY,QACP,kBAAkB;;AAEzB;AACA;AACA;AACA;AACA,OAAO,eAAeC,UAAUA,CAACC,IAAI,GAAG,KAAK,EAAE;EAC7C,IAAI;IACF,MAAMC,MAAM,GAAG,CAAC,MAAMN,KAAK,CAACO,KAAK,CAACC,SAAS,CAAC,CAAC,EAAEC,IAAI,CAACC,MAAM;IAC1D,IAAIL,IAAI,EAAE;MACR,MAAMM,KAAK,GAAGT,WAAW,CAAC,CACxB,MAAM,CAAC,YAAY,CAAC,EACpB,QAAQ,CAAC,YAAY,CAAC,EACtB,gBAAgB,CAAC,YAAY,CAAC,EAC9B,QAAQ,CAAC,YAAY,CAAC,CACvB,CAAC;MACFI,MAAM,CAACM,OAAO,CAAEC,WAAW,IAAK;QAC9BF,KAAK,CAACG,IAAI,CAAC,CACTD,WAAW,CAACE,IAAI,EAChBF,WAAW,CAACG,MAAM,GACd,QAAQ,CAAC,aAAa,CAAC,GACvB,UAAU,CAAC,WAAW,CAAC,EAC3BH,WAAW,CAACI,OAAO,CAACC,IAAI,CAAC,IAAI,CAAC,EAC9BL,WAAW,CAACM,UAAU,CACvB,CAAC;MACJ,CAAC,CAAC;MACFhB,YAAY,CAACQ,KAAK,CAACS,QAAQ,CAAC,CAAC,CAAC;IAChC,CAAC,MAAM;MACLd,MAAM,CAACM,OAAO,CAAEC,WAAW,IAAK;QAC9BV,YAAY,CAACU,WAAW,CAACE,IAAI,EAAE,MAAM,CAAC;MACxC,CAAC,CAAC;IACJ;EACF,CAAC,CAAC,OAAOM,KAAK,EAAE;IACdlB,YAAY,CAAE,yBAAwBkB,KAAK,CAACC,QAAS,EAAC,EAAE,OAAO,CAAC;IAChEnB,YAAY,CAACkB,KAAK,CAACE,QAAQ,CAACd,IAAI,EAAE,OAAO,CAAC;EAC5C;AACF;;AAEA;AACA;AACA;AACA;AACA,OAAO,eAAee,aAAaA,CAACjB,KAAa,EAAE;EACjD,IAAI;IACF,MAAMM,WAAW,GAAG,MAAMb,KAAK,CAACO,KAAK,CAACkB,cAAc,CAAClB,KAAK,CAAC;IAC3D,MAAMI,KAAK,GAAGV,mBAAmB,CAAC,CAAC;IACnCU,KAAK,CAACG,IAAI,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,EAAED,WAAW,CAACE,IAAI,CAAC,CAAC;IACpDJ,KAAK,CAACG,IAAI,CAAC,CACT,QAAQ,CAAC,YAAY,CAAC,EACtBD,WAAW,CAACG,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,UAAU,CAAC,WAAW,CAAC,CACvE,CAAC;IACFL,KAAK,CAACG,IAAI,CAAC,CACT,gBAAgB,CAAC,YAAY,CAAC,EAC9BD,WAAW,CAACI,OAAO,CAACC,IAAI,CAAC,IAAI,CAAC,CAC/B,CAAC;IACFP,KAAK,CAACG,IAAI,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAED,WAAW,CAACM,UAAU,CAAC,CAAC;IAC5DR,KAAK,CAACG,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,EAAED,WAAW,CAACa,GAAG,CAAC,CAAC;IACjDvB,YAAY,CAACQ,KAAK,CAACS,QAAQ,CAAC,CAAC,CAAC;EAChC,CAAC,CAAC,OAAOC,KAAK,EAAE;IACdlB,YAAY,CAAE,SAAQI,KAAM,aAAY,EAAE,OAAO,CAAC;EACpD;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeoB,eAAeA,CAACpB,KAAa,EAAEqB,MAAc,EAAE;EACnE,IAAI;IACF,IAAIf,WAAW,GAAG,MAAMb,KAAK,CAACO,KAAK,CAACkB,cAAc,CAAClB,KAAK,CAAC;IACzD,IAAIsB,MAAM,GAAG,KAAK;IAClBhB,WAAW,CAACI,OAAO,CAACL,OAAO,CAAEkB,KAAK,IAAK;MACrC,IAAIF,MAAM,CAACG,WAAW,CAAC,CAAC,KAAKD,KAAK,CAACC,WAAW,CAAC,CAAC,EAAE;QAChDF,MAAM,GAAG,IAAI;MACf;IACF,CAAC,CAAC;IACF,IAAI,CAACA,MAAM,EAAE;MACX,IAAI;QACFhB,WAAW,CAACI,OAAO,CAACH,IAAI,CAACc,MAAM,CAACG,WAAW,CAAC,CAAC,CAAC;QAC9ClB,WAAW,GAAG,CAAC,MAAMb,KAAK,CAACO,KAAK,CAACyB,QAAQ,CAACnB,WAAW,CAACa,GAAG,EAAEb,WAAW,CAAC,EACpEJ,IAAI;QACP,MAAME,KAAK,GAAGV,mBAAmB,CAAC,CAAC;QACnCU,KAAK,CAACG,IAAI,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,EAAED,WAAW,CAACE,IAAI,CAAC,CAAC;QACpDJ,KAAK,CAACG,IAAI,CAAC,CACT,QAAQ,CAAC,YAAY,CAAC,EACtBD,WAAW,CAACG,MAAM,GACd,QAAQ,CAAC,aAAa,CAAC,GACvB,UAAU,CAAC,WAAW,CAAC,CAC5B,CAAC;QACFL,KAAK,CAACG,IAAI,CAAC,CACT,gBAAgB,CAAC,YAAY,CAAC,EAC9BD,WAAW,CAACI,OAAO,CAACC,IAAI,CAAC,IAAI,CAAC,CAC/B,CAAC;QACFP,KAAK,CAACG,IAAI,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAED,WAAW,CAACM,UAAU,CAAC,CAAC;QAC5DR,KAAK,CAACG,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,EAAED,WAAW,CAACa,GAAG,CAAC,CAAC;QACjDvB,YAAY,CAACQ,KAAK,CAACS,QAAQ,CAAC,CAAC,CAAC;MAChC,CAAC,CAAC,OAAOC,KAAK,EAAE;QACdlB,YAAY,CAAE,+BAA8BkB,KAAK,CAACY,OAAQ,EAAC,EAAE,OAAO,CAAC;MACvE;IACF;EACF,CAAC,CAAC,OAAOZ,KAAK,EAAE;IACdlB,YAAY,CAAE,GAAEkB,KAAK,CAACY,OAAQ,EAAC,EAAE,OAAO,CAAC;EAC3C;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeC,kBAAkBA,CAAC3B,KAAa,EAAEqB,MAAc,EAAE;EACtE,IAAI;IACF,IAAIf,WAAW,GAAG,MAAMb,KAAK,CAACO,KAAK,CAACkB,cAAc,CAAClB,KAAK,CAAC;IACzD,MAAMU,OAAO,GAAGJ,WAAW,CAACI,OAAO,CAACkB,MAAM,CACvCL,KAAK,IAAKF,MAAM,CAACG,WAAW,CAAC,CAAC,KAAKD,KAAK,CAACC,WAAW,CAAC,CACxD,CAAC;IACD,IAAId,OAAO,CAACmB,MAAM,GAAGvB,WAAW,CAACI,OAAO,CAACmB,MAAM,EAAE;MAC/C,IAAI;QACFvB,WAAW,CAACI,OAAO,GAAGA,OAAO;QAC7BJ,WAAW,GAAG,CAAC,MAAMb,KAAK,CAACO,KAAK,CAACyB,QAAQ,CAACnB,WAAW,CAACa,GAAG,EAAEb,WAAW,CAAC,EACpEJ,IAAI;QACP,MAAME,KAAK,GAAGV,mBAAmB,CAAC,CAAC;QACnCU,KAAK,CAACG,IAAI,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,EAAED,WAAW,CAACE,IAAI,CAAC,CAAC;QACpDJ,KAAK,CAACG,IAAI,CAAC,CACT,QAAQ,CAAC,YAAY,CAAC,EACtBD,WAAW,CAACG,MAAM,GACd,QAAQ,CAAC,aAAa,CAAC,GACvB,UAAU,CAAC,WAAW,CAAC,CAC5B,CAAC;QACFL,KAAK,CAACG,IAAI,CAAC,CACT,gBAAgB,CAAC,YAAY,CAAC,EAC9BD,WAAW,CAACI,OAAO,CAACC,IAAI,CAAC,IAAI,CAAC,CAC/B,CAAC;QACFP,KAAK,CAACG,IAAI,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAED,WAAW,CAACM,UAAU,CAAC,CAAC;QAC5DR,KAAK,CAACG,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,EAAED,WAAW,CAACa,GAAG,CAAC,CAAC;QACjDvB,YAAY,CAACQ,KAAK,CAACS,QAAQ,CAAC,CAAC,CAAC;MAChC,CAAC,CAAC,OAAOC,KAAK,EAAE;QACdlB,YAAY,CAAE,iCAAgCkB,KAAK,CAACY,OAAQ,EAAC,EAAE,OAAO,CAAC;MACzE;IACF;EACF,CAAC,CAAC,OAAOZ,KAAK,EAAE;IACdlB,YAAY,CAAE,GAAEkB,KAAK,CAACY,OAAQ,EAAC,EAAE,OAAO,CAAC;EAC3C;AACF"}
|
|
@@ -1,25 +1,7 @@
|
|
|
1
|
+
import { frodo, state } from '@rockcarver/frodo-lib';
|
|
1
2
|
import fs from 'fs';
|
|
2
|
-
import { ResourceType, Utils, state } from '@rockcarver/frodo-lib';
|
|
3
3
|
import { createObjectTable, createProgressBar, createTable, debugMessage, failSpinner, printMessage, showSpinner, stopProgressBar, succeedSpinner, updateProgressBar } from '../utils/Console';
|
|
4
4
|
import { getTypedFilename, saveJsonToFile, titleCase } from '../utils/ExportImportUtils';
|
|
5
|
-
const {
|
|
6
|
-
deleteResourceType: _deleteResourceType,
|
|
7
|
-
deleteResourceTypeByName: _deleteResourceTypeByName,
|
|
8
|
-
getResourceTypes,
|
|
9
|
-
getResourceType,
|
|
10
|
-
getResourceTypeByName,
|
|
11
|
-
exportResourceType,
|
|
12
|
-
exportResourceTypeByName,
|
|
13
|
-
exportResourceTypes,
|
|
14
|
-
importResourceType,
|
|
15
|
-
importResourceTypeByName,
|
|
16
|
-
importFirstResourceType,
|
|
17
|
-
importResourceTypes
|
|
18
|
-
} = ResourceType;
|
|
19
|
-
const {
|
|
20
|
-
getRealmName
|
|
21
|
-
} = Utils;
|
|
22
|
-
|
|
23
5
|
/**
|
|
24
6
|
* List resource types
|
|
25
7
|
* @param {boolean} long more fields
|
|
@@ -28,7 +10,7 @@ const {
|
|
|
28
10
|
export async function listResourceTypes(long = false) {
|
|
29
11
|
let outcome = false;
|
|
30
12
|
try {
|
|
31
|
-
const resourceTypes = await getResourceTypes();
|
|
13
|
+
const resourceTypes = await frodo.authz.resourceType.getResourceTypes();
|
|
32
14
|
resourceTypes.sort((a, b) => a.name.localeCompare(b.name));
|
|
33
15
|
if (long) {
|
|
34
16
|
const table = createTable(['Name', 'Description', 'Uuid']);
|
|
@@ -58,7 +40,7 @@ export async function listResourceTypes(long = false) {
|
|
|
58
40
|
export async function describeResourceType(resourceTypeUuid, json = false) {
|
|
59
41
|
let outcome = false;
|
|
60
42
|
try {
|
|
61
|
-
const resourceType = await getResourceType(resourceTypeUuid);
|
|
43
|
+
const resourceType = await frodo.authz.resourceType.getResourceType(resourceTypeUuid);
|
|
62
44
|
if (json) {
|
|
63
45
|
printMessage(resourceType, 'data');
|
|
64
46
|
} else {
|
|
@@ -87,7 +69,7 @@ export async function describeResourceType(resourceTypeUuid, json = false) {
|
|
|
87
69
|
export async function describeResourceTypeByName(resourceTypeName, json = false) {
|
|
88
70
|
let outcome = false;
|
|
89
71
|
try {
|
|
90
|
-
const resourceType = await getResourceTypeByName(resourceTypeName);
|
|
72
|
+
const resourceType = await frodo.authz.resourceType.getResourceTypeByName(resourceTypeName);
|
|
91
73
|
if (json) {
|
|
92
74
|
printMessage(resourceType, 'data');
|
|
93
75
|
} else {
|
|
@@ -119,7 +101,7 @@ export async function deleteResourceType(resourceTypeUuid) {
|
|
|
119
101
|
const errors = [];
|
|
120
102
|
try {
|
|
121
103
|
debugMessage(`Deleting resource type ${resourceTypeUuid}`);
|
|
122
|
-
await
|
|
104
|
+
await frodo.authz.resourceType.deleteResourceType(resourceTypeUuid);
|
|
123
105
|
} catch (error) {
|
|
124
106
|
errors.push(error);
|
|
125
107
|
}
|
|
@@ -149,7 +131,7 @@ export async function deleteResourceTypeByName(resourceTypeName) {
|
|
|
149
131
|
const errors = [];
|
|
150
132
|
try {
|
|
151
133
|
debugMessage(`Deleting resource type ${resourceTypeName}`);
|
|
152
|
-
await
|
|
134
|
+
await frodo.authz.resourceType.deleteResourceTypeByName(resourceTypeName);
|
|
153
135
|
} catch (error) {
|
|
154
136
|
errors.push(error);
|
|
155
137
|
}
|
|
@@ -179,7 +161,7 @@ export async function deleteResourceTypes() {
|
|
|
179
161
|
try {
|
|
180
162
|
showSpinner(`Retrieving all resource types...`);
|
|
181
163
|
try {
|
|
182
|
-
resourceTypes = await getResourceTypes();
|
|
164
|
+
resourceTypes = await frodo.authz.resourceType.getResourceTypes();
|
|
183
165
|
succeedSpinner(`Found ${resourceTypes.length} resource types.`);
|
|
184
166
|
} catch (error) {
|
|
185
167
|
error.message = `Error retrieving all resource types: ${error.message}`;
|
|
@@ -191,7 +173,7 @@ export async function deleteResourceTypes() {
|
|
|
191
173
|
const resourceTypeId = resourceType.uuid;
|
|
192
174
|
try {
|
|
193
175
|
debugMessage(`Deleting resource type ${resourceTypeId}`);
|
|
194
|
-
await
|
|
176
|
+
await frodo.authz.resourceType.deleteResourceType(resourceTypeId);
|
|
195
177
|
updateProgressBar(`Deleted ${resourceTypeId}`);
|
|
196
178
|
} catch (error) {
|
|
197
179
|
error.message = `Error deleting resource type ${resourceTypeId}: ${error}`;
|
|
@@ -230,7 +212,7 @@ export async function exportResourceTypeToFile(resourceTypeUuid, file) {
|
|
|
230
212
|
if (file) {
|
|
231
213
|
fileName = file;
|
|
232
214
|
}
|
|
233
|
-
const exportData = await exportResourceType(resourceTypeUuid);
|
|
215
|
+
const exportData = await frodo.authz.resourceType.exportResourceType(resourceTypeUuid);
|
|
234
216
|
saveJsonToFile(exportData, fileName);
|
|
235
217
|
succeedSpinner(`Exported ${resourceTypeUuid} to ${fileName}.`);
|
|
236
218
|
outcome = true;
|
|
@@ -256,7 +238,7 @@ export async function exportResourceTypeByNameToFile(resourceTypeName, file) {
|
|
|
256
238
|
if (file) {
|
|
257
239
|
fileName = file;
|
|
258
240
|
}
|
|
259
|
-
const exportData = await exportResourceTypeByName(resourceTypeName);
|
|
241
|
+
const exportData = await frodo.authz.resourceType.exportResourceTypeByName(resourceTypeName);
|
|
260
242
|
saveJsonToFile(exportData, fileName);
|
|
261
243
|
succeedSpinner(`Exported ${resourceTypeName} to ${fileName}.`);
|
|
262
244
|
outcome = true;
|
|
@@ -277,11 +259,11 @@ export async function exportResourceTypesToFile(file) {
|
|
|
277
259
|
debugMessage(`cli.ResourceTypeOps.exportResourceTypesToFile: begin`);
|
|
278
260
|
showSpinner(`Exporting all resource types...`);
|
|
279
261
|
try {
|
|
280
|
-
let fileName = getTypedFilename(`all${titleCase(getRealmName(state.getRealm()))}ResourceTypes`, 'resourcetype.authz');
|
|
262
|
+
let fileName = getTypedFilename(`all${titleCase(frodo.helper.utils.getRealmName(state.getRealm()))}ResourceTypes`, 'resourcetype.authz');
|
|
281
263
|
if (file) {
|
|
282
264
|
fileName = file;
|
|
283
265
|
}
|
|
284
|
-
const exportData = await exportResourceTypes();
|
|
266
|
+
const exportData = await frodo.authz.resourceType.exportResourceTypes();
|
|
285
267
|
saveJsonToFile(exportData, fileName);
|
|
286
268
|
succeedSpinner(`Exported all resource types to ${fileName}.`);
|
|
287
269
|
outcome = true;
|
|
@@ -300,12 +282,12 @@ export async function exportResourceTypesToFiles() {
|
|
|
300
282
|
debugMessage(`cli.ResourceTypeOps.exportResourceTypesToFiles: begin`);
|
|
301
283
|
const errors = [];
|
|
302
284
|
try {
|
|
303
|
-
const resourceTypes = await getResourceTypes();
|
|
285
|
+
const resourceTypes = await frodo.authz.resourceType.getResourceTypes();
|
|
304
286
|
createProgressBar(resourceTypes.length, 'Exporting resource types...');
|
|
305
287
|
for (const resourceType of resourceTypes) {
|
|
306
288
|
const file = getTypedFilename(resourceType.name, 'resourcetype.authz');
|
|
307
289
|
try {
|
|
308
|
-
const exportData = await exportResourceType(resourceType.uuid);
|
|
290
|
+
const exportData = await frodo.authz.resourceType.exportResourceType(resourceType.uuid);
|
|
309
291
|
saveJsonToFile(exportData, file);
|
|
310
292
|
updateProgressBar(`Exported ${resourceType.name}.`);
|
|
311
293
|
} catch (error) {
|
|
@@ -335,7 +317,7 @@ export async function importResourceTypeFromFile(resourceTypeId, file) {
|
|
|
335
317
|
try {
|
|
336
318
|
const data = fs.readFileSync(file, 'utf8');
|
|
337
319
|
const fileData = JSON.parse(data);
|
|
338
|
-
await importResourceType(resourceTypeId, fileData);
|
|
320
|
+
await frodo.authz.resourceType.importResourceType(resourceTypeId, fileData);
|
|
339
321
|
outcome = true;
|
|
340
322
|
succeedSpinner(`Imported ${resourceTypeId}.`);
|
|
341
323
|
} catch (error) {
|
|
@@ -359,7 +341,7 @@ export async function importResourceTypeByNameFromFile(resourceTypeName, file) {
|
|
|
359
341
|
try {
|
|
360
342
|
const data = fs.readFileSync(file, 'utf8');
|
|
361
343
|
const fileData = JSON.parse(data);
|
|
362
|
-
await importResourceTypeByName(resourceTypeName, fileData);
|
|
344
|
+
await frodo.authz.resourceType.importResourceTypeByName(resourceTypeName, fileData);
|
|
363
345
|
outcome = true;
|
|
364
346
|
succeedSpinner(`Imported ${resourceTypeName}.`);
|
|
365
347
|
} catch (error) {
|
|
@@ -382,7 +364,7 @@ export async function importFirstResourceTypeFromFile(file) {
|
|
|
382
364
|
try {
|
|
383
365
|
const data = fs.readFileSync(file, 'utf8');
|
|
384
366
|
const fileData = JSON.parse(data);
|
|
385
|
-
await importFirstResourceType(fileData);
|
|
367
|
+
await frodo.authz.resourceType.importFirstResourceType(fileData);
|
|
386
368
|
outcome = true;
|
|
387
369
|
succeedSpinner(`Imported ${file}.`);
|
|
388
370
|
} catch (error) {
|
|
@@ -405,7 +387,7 @@ export async function importResourceTypesFromFile(file) {
|
|
|
405
387
|
try {
|
|
406
388
|
const data = fs.readFileSync(file, 'utf8');
|
|
407
389
|
const fileData = JSON.parse(data);
|
|
408
|
-
await importResourceTypes(fileData);
|
|
390
|
+
await frodo.authz.resourceType.importResourceTypes(fileData);
|
|
409
391
|
outcome = true;
|
|
410
392
|
succeedSpinner(`Imported ${file}.`);
|
|
411
393
|
} catch (error) {
|
|
@@ -434,7 +416,7 @@ export async function importResourceTypesFromFiles() {
|
|
|
434
416
|
const fileData = JSON.parse(data);
|
|
435
417
|
const count = Object.keys(fileData.resourcetype).length;
|
|
436
418
|
total += count;
|
|
437
|
-
await importResourceTypes(fileData);
|
|
419
|
+
await frodo.authz.resourceType.importResourceTypes(fileData);
|
|
438
420
|
updateProgressBar(`Imported ${count} resource types from ${file}`);
|
|
439
421
|
} catch (error) {
|
|
440
422
|
errors.push(error);
|