@rockcarver/frodo-cli 2.0.0-50 → 2.0.0-52
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 +14 -1
- package/esm/app.js +7 -2
- package/esm/app.js.map +1 -1
- package/esm/cli/_template/something-delete.js +1 -4
- package/esm/cli/_template/something-delete.js.map +1 -1
- package/esm/cli/_template/something-describe.js +1 -4
- package/esm/cli/_template/something-describe.js.map +1 -1
- package/esm/cli/_template/something-else-delete.js +1 -4
- package/esm/cli/_template/something-else-delete.js.map +1 -1
- package/esm/cli/_template/something-else-describe.js +1 -4
- package/esm/cli/_template/something-else-describe.js.map +1 -1
- package/esm/cli/_template/something-else-export.js +1 -4
- package/esm/cli/_template/something-else-export.js.map +1 -1
- package/esm/cli/_template/something-else-import.js +1 -4
- package/esm/cli/_template/something-else-import.js.map +1 -1
- package/esm/cli/_template/something-else-list.js +1 -4
- package/esm/cli/_template/something-else-list.js.map +1 -1
- package/esm/cli/_template/something-export.js +1 -4
- package/esm/cli/_template/something-export.js.map +1 -1
- package/esm/cli/_template/something-import.js +1 -4
- package/esm/cli/_template/something-import.js.map +1 -1
- package/esm/cli/_template/something-list.js +1 -4
- package/esm/cli/_template/something-list.js.map +1 -1
- package/esm/cli/_template/something-other-delete.js +1 -4
- package/esm/cli/_template/something-other-delete.js.map +1 -1
- package/esm/cli/_template/something-other-describe.js +1 -4
- package/esm/cli/_template/something-other-describe.js.map +1 -1
- package/esm/cli/_template/something-other-export.js +1 -4
- package/esm/cli/_template/something-other-export.js.map +1 -1
- package/esm/cli/_template/something-other-import.js +1 -4
- package/esm/cli/_template/something-other-import.js.map +1 -1
- package/esm/cli/_template/something-other-list.js +1 -4
- package/esm/cli/_template/something-other-list.js.map +1 -1
- package/esm/cli/admin/admin-add-autoid-static-user-mapping.js +4 -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 +47 -54
- package/esm/cli/admin/admin-create-oauth2-client-with-admin-privileges.js.map +1 -1
- package/esm/cli/admin/admin-execute-rfc7523-authz-grant-flow.js +1 -4
- package/esm/cli/admin/admin-execute-rfc7523-authz-grant-flow.js.map +1 -1
- package/esm/cli/admin/admin-federation-export.js +2 -5
- package/esm/cli/admin/admin-federation-export.js.map +1 -1
- package/esm/cli/admin/admin-federation-import.js +2 -5
- package/esm/cli/admin/admin-federation-import.js.map +1 -1
- package/esm/cli/admin/admin-federation-list.js +2 -5
- package/esm/cli/admin/admin-federation-list.js.map +1 -1
- package/esm/cli/admin/admin-generate-rfc7523-authz-grant-artefacts.js +2 -4
- package/esm/cli/admin/admin-generate-rfc7523-authz-grant-artefacts.js.map +1 -1
- package/esm/cli/admin/admin-get-access-token.js +1 -3
- package/esm/cli/admin/admin-get-access-token.js.map +1 -1
- package/esm/cli/admin/admin-grant-oauth2-client-admin-privileges.js +5 -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 +5 -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 +5 -12
- 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 +5 -12
- 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 +4 -12
- package/esm/cli/admin/admin-list-static-user-mappings.js.map +1 -1
- package/esm/cli/admin/admin-remove-static-user-mapping.js +4 -9
- package/esm/cli/admin/admin-remove-static-user-mapping.js.map +1 -1
- package/esm/cli/admin/admin-repair-org-model.js +5 -9
- package/esm/cli/admin/admin-repair-org-model.js.map +1 -1
- package/esm/cli/admin/admin-revoke-oauth2-client-admin-privileges.js +5 -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 +5 -9
- package/esm/cli/admin/admin-show-generic-extension-attributes.js.map +1 -1
- package/esm/cli/admin/admin-train-auto-access-model.js +1 -3
- package/esm/cli/admin/admin-train-auto-access-model.js.map +1 -1
- package/esm/cli/agent/agent-delete.js +9 -24
- package/esm/cli/agent/agent-delete.js.map +1 -1
- package/esm/cli/agent/agent-describe.js +1 -4
- package/esm/cli/agent/agent-describe.js.map +1 -1
- package/esm/cli/agent/agent-export.js +7 -7
- package/esm/cli/agent/agent-export.js.map +1 -1
- package/esm/cli/agent/agent-gateway-delete.js +8 -23
- package/esm/cli/agent/agent-gateway-delete.js.map +1 -1
- package/esm/cli/agent/agent-gateway-describe.js +1 -4
- package/esm/cli/agent/agent-gateway-describe.js.map +1 -1
- package/esm/cli/agent/agent-gateway-export.js +7 -7
- package/esm/cli/agent/agent-gateway-export.js.map +1 -1
- package/esm/cli/agent/agent-gateway-import.js +9 -8
- package/esm/cli/agent/agent-gateway-import.js.map +1 -1
- package/esm/cli/agent/agent-gateway-list.js +3 -5
- package/esm/cli/agent/agent-gateway-list.js.map +1 -1
- package/esm/cli/agent/agent-import.js +9 -8
- package/esm/cli/agent/agent-import.js.map +1 -1
- package/esm/cli/agent/agent-java-delete.js +8 -23
- package/esm/cli/agent/agent-java-delete.js.map +1 -1
- package/esm/cli/agent/agent-java-describe.js +1 -4
- package/esm/cli/agent/agent-java-describe.js.map +1 -1
- package/esm/cli/agent/agent-java-export.js +7 -7
- package/esm/cli/agent/agent-java-export.js.map +1 -1
- package/esm/cli/agent/agent-java-import.js +9 -8
- package/esm/cli/agent/agent-java-import.js.map +1 -1
- package/esm/cli/agent/agent-java-list.js +3 -5
- package/esm/cli/agent/agent-java-list.js.map +1 -1
- package/esm/cli/agent/agent-list.js +3 -5
- package/esm/cli/agent/agent-list.js.map +1 -1
- package/esm/cli/agent/agent-web-delete.js +8 -23
- package/esm/cli/agent/agent-web-delete.js.map +1 -1
- package/esm/cli/agent/agent-web-describe.js +1 -4
- package/esm/cli/agent/agent-web-describe.js.map +1 -1
- package/esm/cli/agent/agent-web-export.js +7 -7
- package/esm/cli/agent/agent-web-export.js.map +1 -1
- package/esm/cli/agent/agent-web-import.js +9 -8
- package/esm/cli/agent/agent-web-import.js.map +1 -1
- package/esm/cli/agent/agent-web-list.js +3 -5
- package/esm/cli/agent/agent-web-list.js.map +1 -1
- package/esm/cli/app/app-delete.js +5 -8
- package/esm/cli/app/app-delete.js.map +1 -1
- package/esm/cli/app/app-describe.js +1 -4
- package/esm/cli/app/app-describe.js.map +1 -1
- package/esm/cli/app/app-export.js +7 -10
- package/esm/cli/app/app-export.js.map +1 -1
- package/esm/cli/app/app-import.js +9 -12
- package/esm/cli/app/app-import.js.map +1 -1
- package/esm/cli/app/app-list.js +3 -5
- package/esm/cli/app/app-list.js.map +1 -1
- package/esm/cli/authn/authn-describe.js +1 -4
- package/esm/cli/authn/authn-describe.js.map +1 -1
- package/esm/cli/authn/authn-export.js +1 -4
- package/esm/cli/authn/authn-export.js.map +1 -1
- package/esm/cli/authn/authn-import.js +1 -4
- package/esm/cli/authn/authn-import.js.map +1 -1
- package/esm/cli/authz/authz-policy-delete.js +1 -4
- package/esm/cli/authz/authz-policy-delete.js.map +1 -1
- package/esm/cli/authz/authz-policy-describe.js +1 -4
- package/esm/cli/authz/authz-policy-describe.js.map +1 -1
- package/esm/cli/authz/authz-policy-export.js +1 -4
- package/esm/cli/authz/authz-policy-export.js.map +1 -1
- package/esm/cli/authz/authz-policy-import.js +1 -4
- package/esm/cli/authz/authz-policy-import.js.map +1 -1
- package/esm/cli/authz/authz-policy-list.js +1 -4
- package/esm/cli/authz/authz-policy-list.js.map +1 -1
- package/esm/cli/authz/authz-set-delete.js +1 -4
- package/esm/cli/authz/authz-set-delete.js.map +1 -1
- package/esm/cli/authz/authz-set-describe.js +1 -4
- package/esm/cli/authz/authz-set-describe.js.map +1 -1
- package/esm/cli/authz/authz-set-export.js +1 -4
- package/esm/cli/authz/authz-set-export.js.map +1 -1
- package/esm/cli/authz/authz-set-import.js +1 -4
- package/esm/cli/authz/authz-set-import.js.map +1 -1
- package/esm/cli/authz/authz-set-list.js +1 -4
- package/esm/cli/authz/authz-set-list.js.map +1 -1
- package/esm/cli/authz/authz-type-delete.js +1 -4
- package/esm/cli/authz/authz-type-delete.js.map +1 -1
- package/esm/cli/authz/authz-type-describe.js +1 -4
- package/esm/cli/authz/authz-type-describe.js.map +1 -1
- package/esm/cli/authz/authz-type-export.js +1 -4
- package/esm/cli/authz/authz-type-export.js.map +1 -1
- package/esm/cli/authz/authz-type-import.js +1 -4
- package/esm/cli/authz/authz-type-import.js.map +1 -1
- package/esm/cli/authz/authz-type-list.js +1 -4
- package/esm/cli/authz/authz-type-list.js.map +1 -1
- package/esm/cli/config/config-delete.js +1 -4
- package/esm/cli/config/config-delete.js.map +1 -1
- package/esm/cli/config/config-describe.js +1 -4
- package/esm/cli/config/config-describe.js.map +1 -1
- package/esm/cli/config/config-export.js +2 -4
- package/esm/cli/config/config-export.js.map +1 -1
- package/esm/cli/config/config-import.js +2 -4
- package/esm/cli/config/config-import.js.map +1 -1
- package/esm/cli/config/config-list.js +1 -4
- package/esm/cli/config/config-list.js.map +1 -1
- package/esm/cli/conn/conn-delete.js +7 -1
- package/esm/cli/conn/conn-delete.js.map +1 -1
- package/esm/cli/conn/conn-save.js +10 -12
- package/esm/cli/conn/conn-save.js.map +1 -1
- package/esm/cli/email/email-template-export.js +8 -7
- package/esm/cli/email/email-template-export.js.map +1 -1
- package/esm/cli/email/email-template-import.js +9 -8
- package/esm/cli/email/email-template-import.js.map +1 -1
- package/esm/cli/email/email-template-list.js +3 -5
- package/esm/cli/email/email-template-list.js.map +1 -1
- package/esm/cli/esv/esv-apply.js +1 -3
- package/esm/cli/esv/esv-apply.js.map +1 -1
- package/esm/cli/esv/esv-secret-create.js +2 -5
- package/esm/cli/esv/esv-secret-create.js.map +1 -1
- package/esm/cli/esv/esv-secret-delete.js +2 -5
- package/esm/cli/esv/esv-secret-delete.js.map +1 -1
- package/esm/cli/esv/esv-secret-describe.js +2 -5
- package/esm/cli/esv/esv-secret-describe.js.map +1 -1
- package/esm/cli/esv/esv-secret-export.js +3 -5
- package/esm/cli/esv/esv-secret-export.js.map +1 -1
- package/esm/cli/esv/esv-secret-import.js +1 -4
- package/esm/cli/esv/esv-secret-import.js.map +1 -1
- package/esm/cli/esv/esv-secret-list.js +2 -5
- package/esm/cli/esv/esv-secret-list.js.map +1 -1
- package/esm/cli/esv/esv-secret-set.js +2 -5
- package/esm/cli/esv/esv-secret-set.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-activate.js +2 -5
- package/esm/cli/esv/esv-secret-version-activate.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-create.js +2 -5
- package/esm/cli/esv/esv-secret-version-create.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-deactivate.js +2 -5
- package/esm/cli/esv/esv-secret-version-deactivate.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-delete.js +2 -5
- package/esm/cli/esv/esv-secret-version-delete.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-list.js +2 -5
- package/esm/cli/esv/esv-secret-version-list.js.map +1 -1
- package/esm/cli/esv/esv-variable-create.js +2 -5
- package/esm/cli/esv/esv-variable-create.js.map +1 -1
- package/esm/cli/esv/esv-variable-delete.js +2 -5
- package/esm/cli/esv/esv-variable-delete.js.map +1 -1
- package/esm/cli/esv/esv-variable-describe.js +2 -5
- package/esm/cli/esv/esv-variable-describe.js.map +1 -1
- package/esm/cli/esv/esv-variable-export.js +3 -5
- package/esm/cli/esv/esv-variable-export.js.map +1 -1
- package/esm/cli/esv/esv-variable-import.js +1 -4
- package/esm/cli/esv/esv-variable-import.js.map +1 -1
- package/esm/cli/esv/esv-variable-list.js +2 -5
- package/esm/cli/esv/esv-variable-list.js.map +1 -1
- package/esm/cli/esv/esv-variable-set.js +2 -5
- package/esm/cli/esv/esv-variable-set.js.map +1 -1
- package/esm/cli/idm/idm-count.js +3 -5
- package/esm/cli/idm/idm-count.js.map +1 -1
- package/esm/cli/idm/idm-export.js +8 -7
- package/esm/cli/idm/idm-export.js.map +1 -1
- package/esm/cli/idm/idm-import.js +10 -8
- package/esm/cli/idm/idm-import.js.map +1 -1
- package/esm/cli/idm/idm-list.js +3 -5
- package/esm/cli/idm/idm-list.js.map +1 -1
- package/esm/cli/idp/idp-export.js +8 -7
- package/esm/cli/idp/idp-export.js.map +1 -1
- package/esm/cli/idp/idp-import.js +10 -8
- package/esm/cli/idp/idp-import.js.map +1 -1
- package/esm/cli/idp/idp-list.js +4 -5
- package/esm/cli/idp/idp-list.js.map +1 -1
- package/esm/cli/info/info.js +1 -3
- package/esm/cli/info/info.js.map +1 -1
- package/esm/cli/journey/journey-delete.js +7 -10
- package/esm/cli/journey/journey-delete.js.map +1 -1
- package/esm/cli/journey/journey-describe.js +16 -12
- package/esm/cli/journey/journey-describe.js.map +1 -1
- package/esm/cli/journey/journey-disable.js +1 -4
- package/esm/cli/journey/journey-disable.js.map +1 -1
- package/esm/cli/journey/journey-enable.js +1 -4
- package/esm/cli/journey/journey-enable.js.map +1 -1
- package/esm/cli/journey/journey-export.js +7 -7
- package/esm/cli/journey/journey-export.js.map +1 -1
- package/esm/cli/journey/journey-import.js +9 -8
- package/esm/cli/journey/journey-import.js.map +1 -1
- package/esm/cli/journey/journey-list.js +4 -5
- package/esm/cli/journey/journey-list.js.map +1 -1
- package/esm/cli/journey/journey-prune.js +4 -5
- package/esm/cli/journey/journey-prune.js.map +1 -1
- package/esm/cli/log/log-fetch.js +7 -5
- package/esm/cli/log/log-fetch.js.map +1 -1
- package/esm/cli/log/log-key-delete.js +1 -4
- package/esm/cli/log/log-key-delete.js.map +1 -1
- package/esm/cli/log/log-key-describe.js +1 -4
- package/esm/cli/log/log-key-describe.js.map +1 -1
- package/esm/cli/log/log-key-list.js +1 -4
- package/esm/cli/log/log-key-list.js.map +1 -1
- package/esm/cli/log/log-list.js +13 -6
- package/esm/cli/log/log-list.js.map +1 -1
- package/esm/cli/log/log-tail.js +7 -5
- package/esm/cli/log/log-tail.js.map +1 -1
- package/esm/cli/oauth/oauth-client-delete.js +1 -4
- package/esm/cli/oauth/oauth-client-delete.js.map +1 -1
- package/esm/cli/oauth/oauth-client-describe.js +1 -4
- package/esm/cli/oauth/oauth-client-describe.js.map +1 -1
- package/esm/cli/oauth/oauth-client-export.js +7 -10
- package/esm/cli/oauth/oauth-client-export.js.map +1 -1
- package/esm/cli/oauth/oauth-client-import.js +9 -12
- package/esm/cli/oauth/oauth-client-import.js.map +1 -1
- package/esm/cli/oauth/oauth-client-list.js +3 -5
- package/esm/cli/oauth/oauth-client-list.js.map +1 -1
- package/esm/cli/realm/realm-add-custom-domain.js +2 -4
- package/esm/cli/realm/realm-add-custom-domain.js.map +1 -1
- package/esm/cli/realm/realm-describe.js +1 -3
- package/esm/cli/realm/realm-describe.js.map +1 -1
- package/esm/cli/realm/realm-list.js +1 -4
- package/esm/cli/realm/realm-list.js.map +1 -1
- package/esm/cli/realm/realm-remove-custom-domain.js +1 -3
- package/esm/cli/realm/realm-remove-custom-domain.js.map +1 -1
- package/esm/cli/saml/saml-cot-export.js +2 -4
- package/esm/cli/saml/saml-cot-export.js.map +1 -1
- package/esm/cli/saml/saml-cot-import.js +2 -4
- package/esm/cli/saml/saml-cot-import.js.map +1 -1
- package/esm/cli/saml/saml-cot-list.js +2 -4
- package/esm/cli/saml/saml-cot-list.js.map +1 -1
- package/esm/cli/saml/saml-delete.js +1 -3
- package/esm/cli/saml/saml-delete.js.map +1 -1
- package/esm/cli/saml/saml-describe.js +4 -5
- package/esm/cli/saml/saml-describe.js.map +1 -1
- package/esm/cli/saml/saml-export.js +8 -7
- package/esm/cli/saml/saml-export.js.map +1 -1
- package/esm/cli/saml/saml-import.js +10 -8
- package/esm/cli/saml/saml-import.js.map +1 -1
- package/esm/cli/saml/saml-list.js +4 -5
- package/esm/cli/saml/saml-list.js.map +1 -1
- package/esm/cli/saml/saml-metadata-export.js +12 -6
- package/esm/cli/saml/saml-metadata-export.js.map +1 -1
- package/esm/cli/script/script-delete.js +12 -8
- package/esm/cli/script/script-delete.js.map +1 -1
- package/esm/cli/script/script-describe.js +1 -4
- package/esm/cli/script/script-describe.js.map +1 -1
- package/esm/cli/script/script-export.js +10 -17
- package/esm/cli/script/script-export.js.map +1 -1
- package/esm/cli/script/script-import.js +21 -18
- package/esm/cli/script/script-import.js.map +1 -1
- package/esm/cli/script/script-list.js +2 -4
- package/esm/cli/script/script-list.js.map +1 -1
- package/esm/cli/service/service-delete.js +5 -6
- package/esm/cli/service/service-delete.js.map +1 -1
- package/esm/cli/service/service-export.js +7 -7
- package/esm/cli/service/service-export.js.map +1 -1
- package/esm/cli/service/service-import.js +9 -8
- package/esm/cli/service/service-import.js.map +1 -1
- package/esm/cli/service/service-list.js +3 -5
- package/esm/cli/service/service-list.js.map +1 -1
- package/esm/cli/shell/shell.js +3 -7
- package/esm/cli/shell/shell.js.map +1 -1
- package/esm/cli/theme/theme-delete.js +9 -8
- package/esm/cli/theme/theme-delete.js.map +1 -1
- package/esm/cli/theme/theme-export.js +10 -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 +4 -5
- package/esm/cli/theme/theme-list.js.map +1 -1
- package/esm/ops/AdminOps.js +790 -3
- package/esm/ops/AdminOps.js.map +1 -1
- package/esm/ops/AgentOps.js +638 -305
- package/esm/ops/AgentOps.js.map +1 -1
- package/esm/ops/ApplicationOps.js +91 -79
- package/esm/ops/ApplicationOps.js.map +1 -1
- package/esm/ops/AuthenticateOps.js +23 -0
- package/esm/ops/AuthenticateOps.js.map +1 -0
- package/esm/ops/AuthenticationSettingsOps.js +22 -23
- package/esm/ops/AuthenticationSettingsOps.js.map +1 -1
- package/esm/ops/CirclesOfTrustOps.js +52 -55
- package/esm/ops/CirclesOfTrustOps.js.map +1 -1
- package/esm/ops/ConfigOps.js +100 -84
- package/esm/ops/ConfigOps.js.map +1 -1
- package/esm/ops/ConnectionProfileOps.js +9 -7
- package/esm/ops/ConnectionProfileOps.js.map +1 -1
- package/esm/ops/EmailTemplateOps.js +64 -47
- package/esm/ops/EmailTemplateOps.js.map +1 -1
- package/esm/ops/IdmOps.js +149 -117
- package/esm/ops/IdmOps.js.map +1 -1
- package/esm/ops/IdpOps.js +76 -46
- package/esm/ops/IdpOps.js.map +1 -1
- package/esm/ops/JourneyOps.js +333 -238
- package/esm/ops/JourneyOps.js.map +1 -1
- package/esm/ops/LogOps.js +15 -23
- package/esm/ops/LogOps.js.map +1 -1
- package/esm/ops/OAuth2ClientOps.js +43 -36
- package/esm/ops/OAuth2ClientOps.js.map +1 -1
- package/esm/ops/PolicyOps.js +104 -108
- package/esm/ops/PolicyOps.js.map +1 -1
- package/esm/ops/PolicySetOps.js +72 -78
- package/esm/ops/PolicySetOps.js.map +1 -1
- package/esm/ops/ResourceTypeOps.js +84 -99
- package/esm/ops/ResourceTypeOps.js.map +1 -1
- package/esm/ops/Saml2Ops.js +132 -88
- package/esm/ops/Saml2Ops.js.map +1 -1
- package/esm/ops/ScriptOps.js +90 -80
- package/esm/ops/ScriptOps.js.map +1 -1
- package/esm/ops/ServiceOps.js +125 -87
- package/esm/ops/ServiceOps.js.map +1 -1
- package/esm/ops/ThemeOps.js +170 -139
- package/esm/ops/ThemeOps.js.map +1 -1
- package/esm/ops/{AdminFederationOps.js → cloud/AdminFederationOps.js} +10 -16
- package/esm/ops/cloud/AdminFederationOps.js.map +1 -0
- package/esm/ops/{SecretsOps.js → cloud/SecretsOps.js} +123 -129
- package/esm/ops/cloud/SecretsOps.js.map +1 -0
- package/esm/ops/{VariablesOps.js → cloud/VariablesOps.js} +48 -52
- package/esm/ops/cloud/VariablesOps.js.map +1 -0
- package/esm/ops/templates/OAuth2ClientTemplate.json +270 -0
- package/esm/ops/templates/OAuth2TrustedJwtIssuerTemplate.json +38 -0
- package/esm/ops/templates/OrgModelUserAttributesTemplate.json +149 -0
- package/esm/ops/templates/autoaccess/IPAddresses.json +202 -0
- package/esm/ops/templates/autoaccess/UserAgents.json +35 -0
- package/esm/ops/templates/autoaccess/Usernames.json +203 -0
- package/esm/ops/templates/cloud/GenericExtensionAttributesTemplate.json +392 -0
- package/esm/ops/templates/cloud/managed.json +4119 -0
- package/esm/ops/utils/OpsUtils.js.map +1 -1
- package/esm/utils/Console.js +31 -0
- package/esm/utils/Console.js.map +1 -1
- package/package.json +11 -6
- package/esm/ops/AdminFederationOps.js.map +0 -1
- package/esm/ops/SecretsOps.js.map +0 -1
- package/esm/ops/VariablesOps.js.map +0 -1
package/esm/ops/AgentOps.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentOps.js","names":["frodo","state","fs","createProgressIndicator","createTable","debugMessage","printMessage","stopProgressIndicator","getRealmName","getTypedFilename","saveJsonToFile","titleCase","getFilePath","getWorkingDirectory","utils","createAgentExportTemplate","readAgents","readIdentityGatewayAgents","readJavaAgents","readWebAgents","exportAgents","exportIdentityGatewayAgents","exportJavaAgents","exportWebAgents","exportAgent","exportIdentityGatewayAgent","exportJavaAgent","exportWebAgent","importAgent","importIdentityGatewayAgent","importJavaAgent","importWebAgent","importAgents","importIdentityGatewayAgents","importJavaAgents","importWebAgents","agent","agentTypeToFileIdMap","IdentityGatewayAgent","J2EEAgent","WebAgent","listAgents","long","agents","table","status","_type","_id","push","name","toString","forEach","error","stack","listIdentityGatewayAgents","listJavaAgents","listWebAgents","exportAgentsToFile","file","includeMeta","exportData","fileName","getRealm","exportIdentityGatewayAgentsToFile","exportJavaAgentsToFile","exportWebAgentsToFile","exportAgentToFile","agentId","exportIdentityGatewayAgentToFile","exportJavaAgentToFile","exportWebAgentToFile","exportAgentsToFiles","length","filePath","exportIdentityGatewayAgentsToFiles","exportJavaAgentsToFiles","exportWebAgentsToFiles","importAgentFromFile","verbose","getVerbose","readFile","err","data","importData","JSON","parse","spinnerId","importError","importFirstAgentFromFile","Object","keys","values","importAgentsFromFile","message","response","importAgentsFromFiles","names","readdirSync","agentFiles","filter","toLowerCase","endsWith","importIdentityGatewayAgentFromFile","importFirstIdentityGatewayAgentFromFile","importIdentityGatewayAgentsFromFile","importIdentityGatewayAgentsFromFiles","importJavaAgentFromFile","importFirstJavaAgentFromFile","importJavaAgentsFromFile","importJavaAgentsFromFiles","importWebAgentFromFile","importFirstWebAgentFromFile","importWebAgentsFromFile","importWebAgentsFromFiles"],"sources":["../../src/ops/AgentOps.ts"],"sourcesContent":["import { frodo, state } from '@rockcarver/frodo-lib';\nimport { type AgentExportInterface } from '@rockcarver/frodo-lib/types/ops/AgentOps';\nimport fs from 'fs';\n\nimport {\n createProgressIndicator,\n createTable,\n debugMessage,\n printMessage,\n stopProgressIndicator,\n} from '../utils/Console';\n\nconst {\n getRealmName,\n getTypedFilename,\n saveJsonToFile,\n titleCase,\n getFilePath,\n getWorkingDirectory,\n} = frodo.utils;\nconst {\n createAgentExportTemplate,\n readAgents,\n readIdentityGatewayAgents,\n readJavaAgents,\n readWebAgents,\n exportAgents,\n exportIdentityGatewayAgents,\n exportJavaAgents,\n exportWebAgents,\n exportAgent,\n exportIdentityGatewayAgent,\n exportJavaAgent,\n exportWebAgent,\n importAgent,\n importIdentityGatewayAgent,\n importJavaAgent,\n importWebAgent,\n importAgents,\n importIdentityGatewayAgents,\n importJavaAgents,\n importWebAgents,\n} = frodo.agent;\n\nconst agentTypeToFileIdMap = {\n IdentityGatewayAgent: 'gateway.agent',\n J2EEAgent: 'java.agent',\n WebAgent: 'web.agent',\n};\n\n/**\n * List agents\n */\nexport async function listAgents(long = false) {\n try {\n const agents = await readAgents();\n if (long) {\n const table = createTable(['Agent Id', 'Status', 'Agent Type']);\n for (const agent of agents) {\n let status = 'Unknown';\n switch (agent._type._id) {\n case 'J2EEAgent':\n status = agent['globalJ2EEAgentConfig']['status'];\n break;\n case 'WebAgent':\n status = agent['globalWebAgentConfig']['status'];\n break;\n default:\n status = agent.status as string;\n break;\n }\n table.push([\n agent._id,\n status === 'Active' ? 'Active'['brightGreen'] : status['brightRed'],\n agent._type.name,\n ]);\n }\n printMessage(table.toString(), 'data');\n } else {\n agents.forEach((agent) => {\n printMessage(`${agent._id}`, 'data');\n });\n }\n } catch (error) {\n printMessage(`Error listing agents - ${error}`, 'error');\n printMessage(error.stack, 'error');\n }\n}\n\n/**\n * List identity gateway agents\n */\nexport async function listIdentityGatewayAgents(long = false) {\n try {\n const agents = await readIdentityGatewayAgents();\n if (long) {\n const table = createTable(['Gateway Agent Id', 'Status']);\n for (const agent of agents) {\n table.push([\n agent._id,\n agent.status === 'Active'\n ? 'Active'['brightGreen']\n : agent.status['brightRed'],\n ]);\n }\n printMessage(table.toString(), 'data');\n } else {\n agents.forEach((agent) => {\n printMessage(`${agent._id}`, 'data');\n });\n }\n } catch (error) {\n printMessage(`Error listing gateway agents - ${error}`, 'error');\n printMessage(error.stack, 'error');\n }\n}\n\n/**\n * List java agents\n */\nexport async function listJavaAgents(long = false) {\n try {\n const agents = await readJavaAgents();\n if (long) {\n const table = createTable(['Java Agent Id', 'Status']);\n for (const agent of agents) {\n table.push([\n agent._id,\n agent['globalJ2EEAgentConfig']['status'] === 'Active'\n ? 'Active'['brightGreen']\n : agent['globalJ2EEAgentConfig']['status']['brightRed'],\n ]);\n }\n printMessage(table.toString(), 'data');\n } else {\n agents.forEach((agent) => {\n printMessage(`${agent._id}`, 'data');\n });\n }\n } catch (error) {\n printMessage(`Error listing java agents - ${error}`, 'error');\n printMessage(error.stack, 'error');\n }\n}\n\n/**\n * List web agents\n */\nexport async function listWebAgents(long = false) {\n try {\n const agents = await readWebAgents();\n if (long) {\n const table = createTable(['Web Agent Id', 'Status']);\n for (const agent of agents) {\n table.push([\n agent._id,\n agent['globalWebAgentConfig']['status'] === 'Active'\n ? 'Active'['brightGreen']\n : agent['globalWebAgentConfig']['status']['brightRed'],\n ]);\n }\n printMessage(table.toString(), 'data');\n } else {\n agents.forEach((agent) => {\n printMessage(`${agent._id}`, 'data');\n });\n }\n } catch (error) {\n printMessage(`Error listing web agents - ${error}`, 'error');\n printMessage(error.stack, 'error');\n }\n}\n\n/**\n * Export all agents to file\n * @param {string} file file name\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n */\nexport async function exportAgentsToFile(file, includeMeta = true) {\n const exportData = await exportAgents();\n let fileName = getTypedFilename(\n `all${titleCase(getRealmName(state.getRealm()))}Agents`,\n 'agent'\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, getFilePath(fileName, true), includeMeta);\n}\n\n/**\n * Export all identity gateway agents to file\n * @param {string} file file name\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n */\nexport async function exportIdentityGatewayAgentsToFile(\n file,\n includeMeta = true\n) {\n const exportData = await exportIdentityGatewayAgents();\n let fileName = getTypedFilename(\n `all${titleCase(getRealmName(state.getRealm()))}Agents`,\n agentTypeToFileIdMap['IdentityGatewayAgent']\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, getFilePath(fileName, true), includeMeta);\n}\n\n/**\n * Export all java agents to file\n * @param {string} file file name\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n */\nexport async function exportJavaAgentsToFile(file, includeMeta = true) {\n const exportData = await exportJavaAgents();\n let fileName = getTypedFilename(\n `all${titleCase(getRealmName(state.getRealm()))}Agents`,\n agentTypeToFileIdMap['J2EEAgent']\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, getFilePath(fileName, true), includeMeta);\n}\n\n/**\n * Export all web agents to file\n * @param {string} file file name\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n */\nexport async function exportWebAgentsToFile(file, includeMeta = true) {\n const exportData = await exportWebAgents();\n let fileName = getTypedFilename(\n `all${titleCase(getRealmName(state.getRealm()))}Agents`,\n agentTypeToFileIdMap['WebAgent']\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, getFilePath(fileName, true), includeMeta);\n}\n\n/**\n * Export agent to file\n * @param {string} agentId agent id\n * @param {string} file file name\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n */\nexport async function exportAgentToFile(agentId, file, includeMeta = true) {\n const exportData = await exportAgent(agentId);\n let fileName = getTypedFilename(\n agentId,\n agentTypeToFileIdMap[exportData.agents[agentId]._type._id]\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, getFilePath(fileName, true), includeMeta);\n}\n\n/**\n * Export identity gateway agent to file\n * @param {string} agentId agent id\n * @param {string} file file name\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n */\nexport async function exportIdentityGatewayAgentToFile(\n agentId,\n file,\n includeMeta = true\n) {\n const exportData = await exportIdentityGatewayAgent(agentId);\n let fileName = getTypedFilename(\n agentId,\n agentTypeToFileIdMap[exportData.agents[agentId]._type._id]\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, getFilePath(fileName, true), includeMeta);\n}\n\n/**\n * Export java agent to file\n * @param {string} agentId agent id\n * @param {string} file file name\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n */\nexport async function exportJavaAgentToFile(agentId, file, includeMeta = true) {\n const exportData = await exportJavaAgent(agentId);\n let fileName = getTypedFilename(\n agentId,\n agentTypeToFileIdMap[exportData.agents[agentId]._type._id]\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, getFilePath(fileName, true), includeMeta);\n}\n\n/**\n * Export web agent to file\n * @param {string} agentId agent id\n * @param {string} file file name\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n */\nexport async function exportWebAgentToFile(agentId, file, includeMeta = true) {\n const exportData = await exportWebAgent(agentId);\n let fileName = getTypedFilename(\n agentId,\n agentTypeToFileIdMap[exportData.agents[agentId]._type._id]\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, getFilePath(fileName, true), includeMeta);\n}\n\n/**\n * Export all agents to separate files\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n */\nexport async function exportAgentsToFiles(includeMeta = true) {\n const agents = await readAgents();\n debugMessage(`exportAgentsToFiles: ${agents.length} agents`);\n for (const agent of agents) {\n const fileName = getTypedFilename(\n agent._id,\n agentTypeToFileIdMap[agent._type._id]\n );\n const filePath = getFilePath(fileName, true);\n const exportData = createAgentExportTemplate();\n exportData.agents[agent._id] = agent;\n debugMessage(`exportAgentsToFiles: exporting ${agent._id} to ${filePath}`);\n saveJsonToFile(exportData, filePath, includeMeta);\n }\n debugMessage(`exportAgentsToFiles: done.`);\n}\n\n/**\n * Export all identity gateway agents to separate files\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n */\nexport async function exportIdentityGatewayAgentsToFiles(includeMeta = true) {\n const agents = await readIdentityGatewayAgents();\n for (const agent of agents) {\n const fileName = getTypedFilename(\n agent._id,\n agentTypeToFileIdMap[agent._type._id]\n );\n const exportData = createAgentExportTemplate();\n exportData.agents[agent._id] = agent;\n saveJsonToFile(exportData, getFilePath(fileName, true), includeMeta);\n }\n}\n\n/**\n * Export all java agents to separate files\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n */\nexport async function exportJavaAgentsToFiles(includeMeta = true) {\n const agents = await readJavaAgents();\n for (const agent of agents) {\n const fileName = getTypedFilename(\n agent._id,\n agentTypeToFileIdMap[agent._type._id]\n );\n const exportData = createAgentExportTemplate();\n exportData.agents[agent._id] = agent;\n saveJsonToFile(exportData, getFilePath(fileName, true), includeMeta);\n }\n}\n\n/**\n * Export all web agents to separate files\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n */\nexport async function exportWebAgentsToFiles(includeMeta = true) {\n const agents = await readWebAgents();\n for (const agent of agents) {\n const fileName = getTypedFilename(\n agent._id,\n agentTypeToFileIdMap[agent._type._id]\n );\n const exportData = createAgentExportTemplate();\n exportData.agents[agent._id] = agent;\n saveJsonToFile(exportData, getFilePath(fileName, true), includeMeta);\n }\n}\n\n/**\n * Import an agent from file\n * @param {string} agentId agent id/name\n * @param {string} file import file name\n */\nexport async function importAgentFromFile(agentId: string, file: string) {\n const verbose = state.getVerbose();\n fs.readFile(getFilePath(file), 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n // check if this is a file with multiple agents and get agent by id\n if (importData.agents && importData.agents[agentId]) {\n const agent = importData.agents[agentId];\n importData.agents = {};\n importData.agents[agentId] = agent;\n } else if (importData.agents) {\n importData.agents = null;\n }\n // if an agentId was specified, only import the matching agent\n let spinnerId: string;\n if (importData.agents) {\n if (!verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n try {\n if (verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n await importAgent(agentId, importData);\n stopProgressIndicator(spinnerId, `Imported ${agentId}.`, 'success');\n } catch (importError) {\n if (verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n stopProgressIndicator(spinnerId, `${importError}`, 'fail');\n }\n } else {\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n stopProgressIndicator(spinnerId, `${agentId} not found!`, 'fail');\n }\n });\n}\n\n/**\n * Import first agent from file\n * @param {string} file import file name\n */\nexport async function importFirstAgentFromFile(file: string) {\n const verbose = state.getVerbose();\n fs.readFile(getFilePath(file), 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n let spinnerId: string;\n if (Object.keys(importData.agents).length > 0) {\n for (const agent of Object.values(importData.agents)) {\n if (!verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agent['_id']}...`\n );\n try {\n if (verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agent['_id']}...`\n );\n await importAgent(agent['_id'], importData);\n stopProgressIndicator(\n spinnerId,\n `Imported ${agent['_id']}.`,\n 'success'\n );\n } catch (importError) {\n if (verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agent['_id']}...`\n );\n stopProgressIndicator(spinnerId, `${importError}`, 'fail');\n }\n return;\n }\n } else {\n spinnerId = createProgressIndicator('indeterminate', 0, `Importing...`);\n stopProgressIndicator(spinnerId, `No agents found!`, 'fail');\n }\n });\n}\n\n/**\n * Import agents from file\n * @param {String} file file name\n */\nexport async function importAgentsFromFile(file) {\n debugMessage(`importAgentsFromFile: start`);\n const filePath = getFilePath(file);\n fs.readFile(filePath, 'utf8', async (err, data) => {\n if (err) throw err;\n debugMessage(`importAgentsFromFile: importing ${filePath}`);\n const importData = JSON.parse(data) as AgentExportInterface;\n try {\n await importAgents(importData);\n } catch (error) {\n printMessage(`${error.message}`, 'error');\n printMessage(error.response.status, 'error');\n }\n debugMessage(`importAgentsFromFile: end`);\n });\n}\n\n/**\n * Import all agents from separate files\n */\nexport async function importAgentsFromFiles() {\n const names = fs.readdirSync(getWorkingDirectory());\n const agentFiles = names.filter((name) =>\n name.toLowerCase().endsWith('.agent.json')\n );\n for (const file of agentFiles) {\n await importAgentsFromFile(file);\n }\n}\n\n/**\n * Import an identity gateway agent from file\n * @param {string} agentId agent id/name\n * @param {string} file import file name\n */\nexport async function importIdentityGatewayAgentFromFile(\n agentId: string,\n file: string\n) {\n debugMessage(`cli.AgentOps.importIdentityGatewayAgentFromFile: start`);\n const verbose = state.getVerbose();\n fs.readFile(getFilePath(file), 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n // check if this is a file with multiple agents and get agent by id\n if (importData.agents && importData.agents[agentId]) {\n const agent = importData.agents[agentId];\n importData.agents = {};\n importData.agents[agentId] = agent;\n } else if (importData.agents) {\n importData.agents = null;\n }\n // if an agentId was specified, only import the matching agent\n let spinnerId: string;\n if (importData.agents) {\n if (!verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n try {\n if (verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n await importIdentityGatewayAgent(agentId, importData);\n stopProgressIndicator(spinnerId, `Imported ${agentId}.`, 'success');\n } catch (importError) {\n stopProgressIndicator(spinnerId, `${importError}`, 'fail');\n }\n } else {\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n stopProgressIndicator(spinnerId, `${agentId} not found!`, 'fail');\n }\n debugMessage(`cli.AgentOps.importIdentityGatewayAgentFromFile: end`);\n });\n}\n\n/**\n * Import first identity gateway agent from file\n * @param {string} file import file name\n */\nexport async function importFirstIdentityGatewayAgentFromFile(file: string) {\n debugMessage(`cli.AgentOps.importFirstIdentityGatewayAgentFromFile: start`);\n const verbose = state.getVerbose();\n fs.readFile(getFilePath(file), 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n let spinnerId: string;\n if (Object.keys(importData.agents).length > 0) {\n for (const agent of Object.values(importData.agents)) {\n if (!verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agent['_id']}...`\n );\n try {\n if (verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agent['_id']}...`\n );\n await importIdentityGatewayAgent(agent['_id'], importData);\n stopProgressIndicator(\n spinnerId,\n `Imported ${agent['_id']}.`,\n 'success'\n );\n } catch (importError) {\n stopProgressIndicator(spinnerId, `${importError}`, 'fail');\n }\n return;\n }\n } else {\n spinnerId = createProgressIndicator('indeterminate', 0, `Importing...`);\n stopProgressIndicator(spinnerId, `No agents found!`, 'fail');\n }\n debugMessage(`cli.AgentOps.importFirstIdentityGatewayAgentFromFile: end`);\n });\n}\n\n/**\n * Import identity gateway agents from file\n * @param {String} file file name\n */\nexport async function importIdentityGatewayAgentsFromFile(file) {\n debugMessage(`cli.AgentOps.importIdentityGatewayAgentsFromFile: start`);\n const filePath = getFilePath(file);\n fs.readFile(filePath, 'utf8', async (err, data) => {\n if (err) throw err;\n debugMessage(\n `cli.AgentOps.importIdentityGatewayAgentsFromFile: importing ${filePath}`\n );\n const importData = JSON.parse(data) as AgentExportInterface;\n try {\n await importIdentityGatewayAgents(importData);\n } catch (error) {\n printMessage(`${error.message}`, 'error');\n printMessage(error.response.status, 'error');\n }\n debugMessage(`cli.AgentOps.importIdentityGatewayAgentsFromFile: end`);\n });\n}\n\n/**\n * Import all identity gateway agents from separate files\n */\nexport async function importIdentityGatewayAgentsFromFiles() {\n debugMessage(`cli.AgentOps.importIdentityGatewayAgentsFromFiles: start`);\n const names = fs.readdirSync(getWorkingDirectory());\n const agentFiles = names.filter((name) =>\n name.toLowerCase().endsWith('.agent.json')\n );\n for (const file of agentFiles) {\n await importIdentityGatewayAgentsFromFile(file);\n }\n debugMessage(`cli.AgentOps.importIdentityGatewayAgentsFromFiles: end`);\n}\n\n/**\n * Import an java agent from file\n * @param {string} agentId agent id/name\n * @param {string} file import file name\n */\nexport async function importJavaAgentFromFile(agentId: string, file: string) {\n debugMessage(`cli.AgentOps.importJavaAgentFromFile: start`);\n const verbose = state.getVerbose();\n fs.readFile(getFilePath(file), 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n // check if this is a file with multiple agents and get agent by id\n if (importData.agents && importData.agents[agentId]) {\n const agent = importData.agents[agentId];\n importData.agents = {};\n importData.agents[agentId] = agent;\n } else if (importData.agents) {\n importData.agents = null;\n }\n // if an agentId was specified, only import the matching agent\n let spinnerId: string;\n if (importData.agents) {\n if (!verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n try {\n if (verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n await importJavaAgent(agentId, importData);\n stopProgressIndicator(spinnerId, `Imported ${agentId}.`, 'success');\n } catch (importError) {\n stopProgressIndicator(spinnerId, `${importError}`, 'fail');\n }\n } else {\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n stopProgressIndicator(spinnerId, `${agentId} not found!`, 'fail');\n }\n debugMessage(`cli.AgentOps.importJavaAgentFromFile: end`);\n });\n}\n\n/**\n * Import first java agent from file\n * @param {string} file import file name\n */\nexport async function importFirstJavaAgentFromFile(file: string) {\n debugMessage(`cli.AgentOps.importFirstJavaAgentFromFile: start`);\n const verbose = state.getVerbose();\n fs.readFile(getFilePath(file), 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n let spinnerId: string;\n if (Object.keys(importData.agents).length > 0) {\n for (const agent of Object.values(importData.agents)) {\n if (!verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agent['_id']}...`\n );\n try {\n if (verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agent['_id']}...`\n );\n await importJavaAgent(agent['_id'], importData);\n stopProgressIndicator(\n spinnerId,\n `Imported ${agent['_id']}.`,\n 'success'\n );\n } catch (importError) {\n stopProgressIndicator(spinnerId, `${importError}`, 'fail');\n }\n return;\n }\n } else {\n spinnerId = createProgressIndicator('indeterminate', 0, `Importing...`);\n stopProgressIndicator(spinnerId, `No agents found!`, 'fail');\n }\n debugMessage(`cli.AgentOps.importFirstJavaAgentFromFile: end`);\n });\n}\n\n/**\n * Import java agents from file\n * @param {String} file file name\n */\nexport async function importJavaAgentsFromFile(file) {\n debugMessage(`cli.AgentOps.importJavaAgentsFromFile: start`);\n const filePath = getFilePath(file);\n fs.readFile(filePath, 'utf8', async (err, data) => {\n if (err) throw err;\n debugMessage(\n `cli.AgentOps.importJavaAgentsFromFile: importing ${filePath}`\n );\n const importData = JSON.parse(data) as AgentExportInterface;\n try {\n await importJavaAgents(importData);\n } catch (error) {\n printMessage(`${error.message}`, 'error');\n printMessage(error.response.status, 'error');\n }\n debugMessage(`cli.AgentOps.importJavaAgentsFromFile: end`);\n });\n}\n\n/**\n * Import all java agents from separate files\n */\nexport async function importJavaAgentsFromFiles() {\n debugMessage(`cli.AgentOps.importJavaAgentsFromFiles: start`);\n const names = fs.readdirSync(getWorkingDirectory());\n const agentFiles = names.filter((name) =>\n name.toLowerCase().endsWith('.agent.json')\n );\n for (const file of agentFiles) {\n await importJavaAgentsFromFile(file);\n }\n debugMessage(`cli.AgentOps.importJavaAgentsFromFiles: end`);\n}\n\n/**\n * Import an web agent from file\n * @param {string} agentId agent id/name\n * @param {string} file import file name\n */\nexport async function importWebAgentFromFile(agentId: string, file: string) {\n debugMessage(`cli.AgentOps.importWebAgentFromFile: start`);\n const verbose = state.getVerbose();\n fs.readFile(getFilePath(file), 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n // check if this is a file with multiple agents and get agent by id\n if (importData.agents && importData.agents[agentId]) {\n const agent = importData.agents[agentId];\n importData.agents = {};\n importData.agents[agentId] = agent;\n } else if (importData.agents) {\n importData.agents = null;\n }\n // if an agentId was specified, only import the matching agent\n let spinnerId: string;\n if (importData.agents) {\n if (!verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n try {\n if (verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n await importWebAgent(agentId, importData);\n stopProgressIndicator(spinnerId, `Imported ${agentId}.`, 'success');\n } catch (importError) {\n stopProgressIndicator(spinnerId, `${importError}`, 'fail');\n }\n } else {\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n stopProgressIndicator(spinnerId, `${agentId} not found!`, 'fail');\n }\n debugMessage(`cli.AgentOps.importWebAgentFromFile: end`);\n });\n}\n\n/**\n * Import web gateway agent from file\n * @param {string} file import file name\n */\nexport async function importFirstWebAgentFromFile(file: string) {\n debugMessage(`cli.AgentOps.importFirstWebAgentFromFile: start`);\n const verbose = state.getVerbose();\n fs.readFile(getFilePath(file), 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n let spinnerId: string;\n if (Object.keys(importData.agents).length > 0) {\n for (const agent of Object.values(importData.agents)) {\n if (!verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agent['_id']}...`\n );\n try {\n if (verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agent['_id']}...`\n );\n await importWebAgent(agent['_id'], importData);\n stopProgressIndicator(\n spinnerId,\n `Imported ${agent['_id']}.`,\n 'success'\n );\n } catch (importError) {\n stopProgressIndicator(\n spinnerId,\n `caught it here ${importError}`,\n 'fail'\n );\n }\n break;\n }\n } else {\n spinnerId = createProgressIndicator('indeterminate', 0, `Importing...`);\n stopProgressIndicator(spinnerId, `No agents found!`, 'fail');\n }\n debugMessage(`cli.AgentOps.importFirstWebAgentFromFile: end`);\n });\n}\n\n/**\n * Import web agents from file\n * @param {String} file file name\n */\nexport async function importWebAgentsFromFile(file) {\n debugMessage(`cli.AgentOps.importWebAgentsFromFile: start`);\n const filePath = getFilePath(file);\n fs.readFile(filePath, 'utf8', async (err, data) => {\n if (err) throw err;\n debugMessage(`cli.AgentOps.importWebAgentsFromFile: importing ${filePath}`);\n const importData = JSON.parse(data) as AgentExportInterface;\n try {\n await importWebAgents(importData);\n } catch (error) {\n printMessage(`${error.message}`, 'error');\n printMessage(error.response.status, 'error');\n }\n debugMessage(`cli.AgentOps.importWebAgentsFromFile: end`);\n });\n}\n\n/**\n * Import all web agents from separate files\n */\nexport async function importWebAgentsFromFiles() {\n debugMessage(`cli.AgentOps.importWebAgentsFromFiles: start`);\n const names = fs.readdirSync(getWorkingDirectory());\n const agentFiles = names.filter((name) =>\n name.toLowerCase().endsWith('.agent.json')\n );\n for (const file of agentFiles) {\n await importWebAgentsFromFile(file);\n }\n debugMessage(`cli.AgentOps.importWebAgentsFromFiles: end`);\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AgentOps.js","names":["frodo","FrodoError","state","fs","createProgressIndicator","createTable","debugMessage","printError","printMessage","stopProgressIndicator","getRealmName","getTypedFilename","saveJsonToFile","titleCase","getFilePath","getWorkingDirectory","utils","createAgentExportTemplate","readAgents","readIdentityGatewayAgents","readJavaAgents","readWebAgents","exportAgents","exportIdentityGatewayAgents","exportJavaAgents","exportWebAgents","exportAgent","exportIdentityGatewayAgent","exportJavaAgent","exportWebAgent","importAgent","importIdentityGatewayAgent","importJavaAgent","importWebAgent","importAgents","importIdentityGatewayAgents","importJavaAgents","importWebAgents","agent","agentTypeToFileIdMap","IdentityGatewayAgent","J2EEAgent","WebAgent","listAgents","long","agents","table","status","_type","_id","push","name","toString","forEach","error","listIdentityGatewayAgents","listJavaAgents","listWebAgents","exportAgentsToFile","file","includeMeta","exportData","fileName","getRealm","exportIdentityGatewayAgentsToFile","exportJavaAgentsToFile","exportWebAgentsToFile","exportAgentToFile","agentId","exportIdentityGatewayAgentToFile","exportJavaAgentToFile","exportWebAgentToFile","exportAgentsToFiles","length","filePath","exportIdentityGatewayAgentsToFiles","exportJavaAgentsToFiles","exportWebAgentsToFiles","importAgentFromFile","verbose","getVerbose","data","readFileSync","importData","JSON","parse","spinnerId","importIdentityGatewayAgentFromFile","importJavaAgentFromFile","importWebAgentFromFile","importFirstAgentFromFile","Object","keys","values","importFirstIdentityGatewayAgentFromFile","importFirstJavaAgentFromFile","importError","importFirstWebAgentFromFile","importAgentsFromFile","importIdentityGatewayAgentsFromFile","importJavaAgentsFromFile","importWebAgentsFromFile","importAgentsFromFiles","errors","names","readdirSync","agentFiles","filter","toLowerCase","endsWith","importIdentityGatewayAgentsFromFiles","importJavaAgentsFromFiles","importWebAgentsFromFiles","deleteAgent","deleteIdentityGatewayAgent","deleteJavaAgent","deleteWebAgent","deleteAgents","deleteIdentityGatewayAgents","deleteJavaAgents","deleteWebAgents"],"sources":["../../src/ops/AgentOps.ts"],"sourcesContent":["import { frodo, FrodoError, state } from '@rockcarver/frodo-lib';\nimport { type AgentExportInterface } from '@rockcarver/frodo-lib/types/ops/AgentOps';\nimport fs from 'fs';\n\nimport {\n createProgressIndicator,\n createTable,\n debugMessage,\n printError,\n printMessage,\n stopProgressIndicator,\n} from '../utils/Console';\n\nconst {\n getRealmName,\n getTypedFilename,\n saveJsonToFile,\n titleCase,\n getFilePath,\n getWorkingDirectory,\n} = frodo.utils;\nconst {\n createAgentExportTemplate,\n readAgents,\n readIdentityGatewayAgents,\n readJavaAgents,\n readWebAgents,\n exportAgents,\n exportIdentityGatewayAgents,\n exportJavaAgents,\n exportWebAgents,\n exportAgent,\n exportIdentityGatewayAgent,\n exportJavaAgent,\n exportWebAgent,\n importAgent,\n importIdentityGatewayAgent,\n importJavaAgent,\n importWebAgent,\n importAgents,\n importIdentityGatewayAgents,\n importJavaAgents,\n importWebAgents,\n} = frodo.agent;\n\nconst agentTypeToFileIdMap = {\n IdentityGatewayAgent: 'gateway.agent',\n J2EEAgent: 'java.agent',\n WebAgent: 'web.agent',\n};\n\n/**\n * List agents\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function listAgents(long: boolean = false): Promise<boolean> {\n try {\n const agents = await readAgents();\n if (long) {\n const table = createTable(['Agent Id', 'Status', 'Agent Type']);\n for (const agent of agents) {\n let status = 'Unknown';\n switch (agent._type._id) {\n case 'J2EEAgent':\n status = agent['globalJ2EEAgentConfig']['status'];\n break;\n case 'WebAgent':\n status = agent['globalWebAgentConfig']['status'];\n break;\n default:\n status = agent.status as string;\n break;\n }\n table.push([\n agent._id,\n status === 'Active' ? 'Active'['brightGreen'] : status['brightRed'],\n agent._type.name,\n ]);\n }\n printMessage(table.toString(), 'data');\n } else {\n agents.forEach((agent) => {\n printMessage(`${agent._id}`, 'data');\n });\n }\n return true;\n } catch (error) {\n printError(error, `Error listing agents`);\n }\n return false;\n}\n\n/**\n * List identity gateway agents\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function listIdentityGatewayAgents(\n long: boolean = false\n): Promise<boolean> {\n try {\n const agents = await readIdentityGatewayAgents();\n if (long) {\n const table = createTable(['Gateway Agent Id', 'Status']);\n for (const agent of agents) {\n table.push([\n agent._id,\n agent.status === 'Active'\n ? 'Active'['brightGreen']\n : agent.status['brightRed'],\n ]);\n }\n printMessage(table.toString(), 'data');\n } else {\n agents.forEach((agent) => {\n printMessage(`${agent._id}`, 'data');\n });\n }\n return true;\n } catch (error) {\n printError(error, `Error listing gateway agents`);\n }\n return false;\n}\n\n/**\n * List java agents\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function listJavaAgents(long: boolean = false): Promise<boolean> {\n try {\n const agents = await readJavaAgents();\n if (long) {\n const table = createTable(['Java Agent Id', 'Status']);\n for (const agent of agents) {\n table.push([\n agent._id,\n agent['globalJ2EEAgentConfig']['status'] === 'Active'\n ? 'Active'['brightGreen']\n : agent['globalJ2EEAgentConfig']['status']['brightRed'],\n ]);\n }\n printMessage(table.toString(), 'data');\n } else {\n agents.forEach((agent) => {\n printMessage(`${agent._id}`, 'data');\n });\n }\n return true;\n } catch (error) {\n printError(error, `Error listing java agents`);\n }\n return false;\n}\n\n/**\n * List web agents\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function listWebAgents(long: boolean = false): Promise<boolean> {\n try {\n const agents = await readWebAgents();\n if (long) {\n const table = createTable(['Web Agent Id', 'Status']);\n for (const agent of agents) {\n table.push([\n agent._id,\n agent['globalWebAgentConfig']['status'] === 'Active'\n ? 'Active'['brightGreen']\n : agent['globalWebAgentConfig']['status']['brightRed'],\n ]);\n }\n printMessage(table.toString(), 'data');\n } else {\n agents.forEach((agent) => {\n printMessage(`${agent._id}`, 'data');\n });\n }\n return true;\n } catch (error) {\n printError(error, `Error listing web agents`);\n }\n return false;\n}\n\n/**\n * Export all agents to file\n * @param {string} file file name\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportAgentsToFile(\n file: string,\n includeMeta: boolean = true\n): Promise<boolean> {\n try {\n const exportData = await exportAgents();\n let fileName = getTypedFilename(\n `all${titleCase(getRealmName(state.getRealm()))}Agents`,\n 'agent'\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, getFilePath(fileName, true), includeMeta);\n return true;\n } catch (error) {\n printError(error, `Error exporting agents to file`);\n }\n return false;\n}\n\n/**\n * Export all identity gateway agents to file\n * @param {string} file file name\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportIdentityGatewayAgentsToFile(\n file: string,\n includeMeta: boolean = true\n): Promise<boolean> {\n try {\n const exportData = await exportIdentityGatewayAgents();\n let fileName = getTypedFilename(\n `all${titleCase(getRealmName(state.getRealm()))}Agents`,\n agentTypeToFileIdMap['IdentityGatewayAgent']\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, getFilePath(fileName, true), includeMeta);\n return true;\n } catch (error) {\n printError(error, `Error exporting identity gateway agents to file`);\n }\n return false;\n}\n\n/**\n * Export all java agents to file\n * @param {string} file file name\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportJavaAgentsToFile(\n file: string,\n includeMeta: boolean = true\n): Promise<boolean> {\n try {\n const exportData = await exportJavaAgents();\n let fileName = getTypedFilename(\n `all${titleCase(getRealmName(state.getRealm()))}Agents`,\n agentTypeToFileIdMap['J2EEAgent']\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, getFilePath(fileName, true), includeMeta);\n return true;\n } catch (error) {\n printError(error, `Error exporting java agents to file`);\n }\n return false;\n}\n\n/**\n * Export all web agents to file\n * @param {string} file file name\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportWebAgentsToFile(\n file: string,\n includeMeta: boolean = true\n): Promise<boolean> {\n try {\n const exportData = await exportWebAgents();\n let fileName = getTypedFilename(\n `all${titleCase(getRealmName(state.getRealm()))}Agents`,\n agentTypeToFileIdMap['WebAgent']\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, getFilePath(fileName, true), includeMeta);\n return true;\n } catch (error) {\n printError(error, `Error exporting web agents to file`);\n }\n return false;\n}\n\n/**\n * Export agent to file\n * @param {string} agentId agent id\n * @param {string} file file name\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportAgentToFile(\n agentId: string,\n file: string,\n includeMeta: boolean = true\n): Promise<boolean> {\n try {\n const exportData = await exportAgent(agentId);\n let fileName = getTypedFilename(\n agentId,\n agentTypeToFileIdMap[exportData.agents[agentId]._type._id]\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, getFilePath(fileName, true), includeMeta);\n return true;\n } catch (error) {\n printError(error, `Error exporting agent ${agentId} to file`);\n }\n return false;\n}\n\n/**\n * Export identity gateway agent to file\n * @param {string} agentId agent id\n * @param {string} file file name\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportIdentityGatewayAgentToFile(\n agentId: string,\n file: string,\n includeMeta: boolean = true\n): Promise<boolean> {\n try {\n const exportData = await exportIdentityGatewayAgent(agentId);\n let fileName = getTypedFilename(\n agentId,\n agentTypeToFileIdMap[exportData.agents[agentId]._type._id]\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, getFilePath(fileName, true), includeMeta);\n return true;\n } catch (error) {\n printError(\n error,\n `Error exporting identity gateway agent ${agentId} to file`\n );\n }\n return false;\n}\n\n/**\n * Export java agent to file\n * @param {string} agentId agent id\n * @param {string} file file name\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportJavaAgentToFile(\n agentId: string,\n file: string,\n includeMeta: boolean = true\n): Promise<boolean> {\n try {\n const exportData = await exportJavaAgent(agentId);\n let fileName = getTypedFilename(\n agentId,\n agentTypeToFileIdMap[exportData.agents[agentId]._type._id]\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, getFilePath(fileName, true), includeMeta);\n return true;\n } catch (error) {\n printError(error, `Error exporting java agent ${agentId} to file`);\n }\n return false;\n}\n\n/**\n * Export web agent to file\n * @param {string} agentId agent id\n * @param {string} file file name\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportWebAgentToFile(\n agentId: string,\n file: string,\n includeMeta: boolean = true\n): Promise<boolean> {\n try {\n const exportData = await exportWebAgent(agentId);\n let fileName = getTypedFilename(\n agentId,\n agentTypeToFileIdMap[exportData.agents[agentId]._type._id]\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, getFilePath(fileName, true), includeMeta);\n return true;\n } catch (error) {\n printError(error, `Error exporting web agent ${agentId} to file`);\n }\n return false;\n}\n\n/**\n * Export all agents to separate files\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportAgentsToFiles(\n includeMeta: boolean = true\n): Promise<boolean> {\n try {\n const agents = await readAgents();\n debugMessage(`exportAgentsToFiles: ${agents.length} agents`);\n for (const agent of agents) {\n const fileName = getTypedFilename(\n agent._id,\n agentTypeToFileIdMap[agent._type._id]\n );\n const filePath = getFilePath(fileName, true);\n const exportData = createAgentExportTemplate();\n exportData.agents[agent._id] = agent;\n debugMessage(\n `exportAgentsToFiles: exporting ${agent._id} to ${filePath}`\n );\n saveJsonToFile(exportData, filePath, includeMeta);\n }\n debugMessage(`exportAgentsToFiles: done.`);\n return true;\n } catch (error) {\n printError(error, `Error exporting agents to files`);\n }\n return false;\n}\n\n/**\n * Export all identity gateway agents to separate files\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportIdentityGatewayAgentsToFiles(\n includeMeta = true\n): Promise<boolean> {\n try {\n const agents = await readIdentityGatewayAgents();\n for (const agent of agents) {\n const fileName = getTypedFilename(\n agent._id,\n agentTypeToFileIdMap[agent._type._id]\n );\n const exportData = createAgentExportTemplate();\n exportData.agents[agent._id] = agent;\n saveJsonToFile(exportData, getFilePath(fileName, true), includeMeta);\n }\n return true;\n } catch (error) {\n printError(error, `Error exporting identity gateway agents to files`);\n }\n return false;\n}\n\n/**\n * Export all java agents to separate files\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportJavaAgentsToFiles(\n includeMeta = true\n): Promise<boolean> {\n try {\n const agents = await readJavaAgents();\n for (const agent of agents) {\n const fileName = getTypedFilename(\n agent._id,\n agentTypeToFileIdMap[agent._type._id]\n );\n const exportData = createAgentExportTemplate();\n exportData.agents[agent._id] = agent;\n saveJsonToFile(exportData, getFilePath(fileName, true), includeMeta);\n }\n return true;\n } catch (error) {\n printError(error, `Error exporting java agents to files`);\n }\n return false;\n}\n\n/**\n * Export all web agents to separate files\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportWebAgentsToFiles(\n includeMeta = true\n): Promise<boolean> {\n try {\n const agents = await readWebAgents();\n for (const agent of agents) {\n const fileName = getTypedFilename(\n agent._id,\n agentTypeToFileIdMap[agent._type._id]\n );\n const exportData = createAgentExportTemplate();\n exportData.agents[agent._id] = agent;\n saveJsonToFile(exportData, getFilePath(fileName, true), includeMeta);\n }\n return true;\n } catch (error) {\n printError(error, `Error exporting web agents to files`);\n }\n return false;\n}\n\n/**\n * Import an agent from file\n * @param {string} agentId agent id/name\n * @param {string} file import file name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importAgentFromFile(\n agentId: string,\n file: string\n): Promise<boolean> {\n try {\n const verbose = state.getVerbose();\n const data = fs.readFileSync(getFilePath(file), 'utf8');\n const importData = JSON.parse(data);\n // check if this is a file with multiple agents and get agent by id\n if (importData.agents && importData.agents[agentId]) {\n const agent = importData.agents[agentId];\n importData.agents = {};\n importData.agents[agentId] = agent;\n } else if (importData.agents) {\n importData.agents = null;\n }\n // if an agentId was specified, only import the matching agent\n let spinnerId: string;\n if (importData.agents) {\n if (!verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n try {\n if (verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n await importAgent(agentId, importData);\n stopProgressIndicator(spinnerId, `Imported ${agentId}.`, 'success');\n return true;\n } catch (error) {\n if (verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n stopProgressIndicator(\n spinnerId,\n `Error importing agent ${agentId}`,\n 'fail'\n );\n printError(error, `Error importing agent ${agentId}`);\n }\n } else {\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n stopProgressIndicator(spinnerId, `${agentId} not found!`, 'fail');\n }\n } catch (error) {\n printError(error, `Error importing agent ${agentId} from file`);\n }\n return false;\n}\n\n/**\n * Import an identity gateway agent from file\n * @param {string} agentId agent id/name\n * @param {string} file import file name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importIdentityGatewayAgentFromFile(\n agentId: string,\n file: string\n): Promise<boolean> {\n try {\n debugMessage(`cli.AgentOps.importIdentityGatewayAgentFromFile: start`);\n const verbose = state.getVerbose();\n const data = fs.readFileSync(getFilePath(file), 'utf8');\n const importData = JSON.parse(data);\n // check if this is a file with multiple agents and get agent by id\n if (importData.agents && importData.agents[agentId]) {\n const agent = importData.agents[agentId];\n importData.agents = {};\n importData.agents[agentId] = agent;\n } else if (importData.agents) {\n importData.agents = null;\n }\n // if an agentId was specified, only import the matching agent\n let spinnerId: string;\n if (importData.agents) {\n if (!verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n try {\n if (verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n await importIdentityGatewayAgent(agentId, importData);\n stopProgressIndicator(spinnerId, `Imported ${agentId}.`, 'success');\n return true;\n } catch (error) {\n stopProgressIndicator(\n spinnerId,\n `Error importing identity gateway agent ${agentId}`,\n 'fail'\n );\n printError(error, `Error importing identity gateway agent ${agentId}`);\n }\n } else {\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n stopProgressIndicator(spinnerId, `${agentId} not found!`, 'fail');\n }\n debugMessage(`cli.AgentOps.importIdentityGatewayAgentFromFile: end`);\n } catch (error) {\n printError(\n error,\n `Error importing identity gateway agent ${agentId} from file`\n );\n }\n return false;\n}\n\n/**\n * Import an java agent from file\n * @param {string} agentId agent id/name\n * @param {string} file import file name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importJavaAgentFromFile(\n agentId: string,\n file: string\n): Promise<boolean> {\n try {\n debugMessage(`cli.AgentOps.importJavaAgentFromFile: start`);\n const verbose = state.getVerbose();\n const data = fs.readFileSync(getFilePath(file), 'utf8');\n const importData = JSON.parse(data);\n // check if this is a file with multiple agents and get agent by id\n if (importData.agents && importData.agents[agentId]) {\n const agent = importData.agents[agentId];\n importData.agents = {};\n importData.agents[agentId] = agent;\n } else if (importData.agents) {\n importData.agents = null;\n }\n // if an agentId was specified, only import the matching agent\n let spinnerId: string;\n if (importData.agents) {\n if (!verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n try {\n if (verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n await importJavaAgent(agentId, importData);\n stopProgressIndicator(spinnerId, `Imported ${agentId}.`, 'success');\n return true;\n } catch (error) {\n stopProgressIndicator(\n spinnerId,\n `Error importing java agent ${agentId}`,\n 'fail'\n );\n printError(error, `Error importing java agent ${agentId}`);\n }\n } else {\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n stopProgressIndicator(spinnerId, `${agentId} not found!`, 'fail');\n }\n debugMessage(`cli.AgentOps.importJavaAgentFromFile: end`);\n } catch (error) {\n printError(error, `Error importing java agent ${agentId} from file`);\n }\n return false;\n}\n\n/**\n * Import an web agent from file\n * @param {string} agentId agent id/name\n * @param {string} file import file name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importWebAgentFromFile(\n agentId: string,\n file: string\n): Promise<boolean> {\n try {\n debugMessage(`cli.AgentOps.importWebAgentFromFile: start`);\n const verbose = state.getVerbose();\n const data = fs.readFileSync(getFilePath(file), 'utf8');\n const importData = JSON.parse(data);\n // check if this is a file with multiple agents and get agent by id\n if (importData.agents && importData.agents[agentId]) {\n const agent = importData.agents[agentId];\n importData.agents = {};\n importData.agents[agentId] = agent;\n } else if (importData.agents) {\n importData.agents = null;\n }\n // if an agentId was specified, only import the matching agent\n let spinnerId: string;\n if (importData.agents) {\n if (!verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n try {\n if (verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n await importWebAgent(agentId, importData);\n stopProgressIndicator(spinnerId, `Imported ${agentId}.`, 'success');\n return true;\n } catch (error) {\n stopProgressIndicator(\n spinnerId,\n `Error importing web agent ${agentId}`,\n 'fail'\n );\n printError(error, `Error importing web agent ${agentId}`);\n }\n } else {\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n stopProgressIndicator(spinnerId, `${agentId} not found!`, 'fail');\n }\n debugMessage(`cli.AgentOps.importWebAgentFromFile: end`);\n } catch (error) {\n printError(error, `Error importing web agent ${agentId} from file`);\n }\n return false;\n}\n\n/**\n * Import first agent from file\n * @param {string} file import file name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importFirstAgentFromFile(file: string): Promise<boolean> {\n try {\n const verbose = state.getVerbose();\n const data = fs.readFileSync(getFilePath(file), 'utf8');\n const importData = JSON.parse(data);\n let spinnerId: string;\n if (Object.keys(importData.agents).length > 0) {\n for (const agent of Object.values(importData.agents)) {\n if (!verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agent['_id']}...`\n );\n try {\n if (verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agent['_id']}...`\n );\n await importAgent(agent['_id'], importData);\n stopProgressIndicator(\n spinnerId,\n `Imported ${agent['_id']}.`,\n 'success'\n );\n return true;\n } catch (error) {\n if (verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agent['_id']}...`\n );\n stopProgressIndicator(spinnerId, `${error}`, 'fail');\n printError(error, `Error importing first agent`);\n }\n return;\n }\n } else {\n spinnerId = createProgressIndicator('indeterminate', 0, `Importing...`);\n stopProgressIndicator(spinnerId, `No agents found!`, 'fail');\n }\n } catch (error) {\n printError(error, `Error importing first agent from file`);\n }\n return false;\n}\n\n/**\n * Import first identity gateway agent from file\n * @param {string} file import file name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importFirstIdentityGatewayAgentFromFile(\n file: string\n): Promise<boolean> {\n try {\n debugMessage(`cli.AgentOps.importFirstIdentityGatewayAgentFromFile: start`);\n const verbose = state.getVerbose();\n const data = fs.readFileSync(getFilePath(file), 'utf8');\n const importData = JSON.parse(data);\n let spinnerId: string;\n if (Object.keys(importData.agents).length > 0) {\n for (const agent of Object.values(importData.agents)) {\n if (!verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agent['_id']}...`\n );\n try {\n if (verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agent['_id']}...`\n );\n await importIdentityGatewayAgent(agent['_id'], importData);\n stopProgressIndicator(\n spinnerId,\n `Imported ${agent['_id']}.`,\n 'success'\n );\n return true;\n } catch (error) {\n stopProgressIndicator(spinnerId, `${error}`, 'fail');\n printError(\n error,\n `Error importing first identity gateway agent from file`\n );\n }\n }\n } else {\n spinnerId = createProgressIndicator('indeterminate', 0, `Importing...`);\n stopProgressIndicator(spinnerId, `No agents found!`, 'fail');\n }\n debugMessage(`cli.AgentOps.importFirstIdentityGatewayAgentFromFile: end`);\n } catch (error) {\n printError(error, `Error importing first identity gateway agent from file`);\n }\n return false;\n}\n\n/**\n * Import first java agent from file\n * @param {string} file import file name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importFirstJavaAgentFromFile(\n file: string\n): Promise<boolean> {\n try {\n debugMessage(`cli.AgentOps.importFirstJavaAgentFromFile: start`);\n const verbose = state.getVerbose();\n const data = fs.readFileSync(getFilePath(file), 'utf8');\n const importData = JSON.parse(data);\n let spinnerId: string;\n if (Object.keys(importData.agents).length > 0) {\n for (const agent of Object.values(importData.agents)) {\n if (!verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agent['_id']}...`\n );\n try {\n if (verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agent['_id']}...`\n );\n await importJavaAgent(agent['_id'], importData);\n stopProgressIndicator(\n spinnerId,\n `Imported ${agent['_id']}.`,\n 'success'\n );\n return true;\n } catch (importError) {\n stopProgressIndicator(spinnerId, `${importError}`, 'fail');\n }\n return;\n }\n } else {\n spinnerId = createProgressIndicator('indeterminate', 0, `Importing...`);\n stopProgressIndicator(spinnerId, `No agents found!`, 'fail');\n }\n debugMessage(`cli.AgentOps.importFirstJavaAgentFromFile: end`);\n } catch (error) {\n printError(error, `Error importing first java agent from file`);\n }\n return false;\n}\n\n/**\n * Import web gateway agent from file\n * @param {string} file import file name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importFirstWebAgentFromFile(\n file: string\n): Promise<boolean> {\n try {\n debugMessage(`cli.AgentOps.importFirstWebAgentFromFile: start`);\n const verbose = state.getVerbose();\n const data = fs.readFileSync(getFilePath(file), 'utf8');\n const importData = JSON.parse(data);\n let spinnerId: string;\n if (Object.keys(importData.agents).length > 0) {\n for (const agent of Object.values(importData.agents)) {\n if (!verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agent['_id']}...`\n );\n try {\n if (verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agent['_id']}...`\n );\n await importWebAgent(agent['_id'], importData);\n stopProgressIndicator(\n spinnerId,\n `Imported ${agent['_id']}.`,\n 'success'\n );\n return true;\n } catch (importError) {\n stopProgressIndicator(\n spinnerId,\n `caught it here ${importError}`,\n 'fail'\n );\n }\n break;\n }\n } else {\n spinnerId = createProgressIndicator('indeterminate', 0, `Importing...`);\n stopProgressIndicator(spinnerId, `No agents found!`, 'fail');\n }\n debugMessage(`cli.AgentOps.importFirstWebAgentFromFile: end`);\n } catch (error) {\n printError(error, `Error importing first java agent from file`);\n }\n return false;\n}\n\n/**\n * Import agents from file\n * @param {String} file file name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importAgentsFromFile(file: string): Promise<boolean> {\n try {\n debugMessage(`importAgentsFromFile: start`);\n const filePath = getFilePath(file);\n const data = fs.readFileSync(filePath, 'utf8');\n debugMessage(`importAgentsFromFile: importing ${filePath}`);\n const importData = JSON.parse(data) as AgentExportInterface;\n await importAgents(importData);\n debugMessage(`importAgentsFromFile: end`);\n return true;\n } catch (error) {\n printError(error, `Error importing agents from file`);\n }\n return false;\n}\n\n/**\n * Import identity gateway agents from file\n * @param {String} file file name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importIdentityGatewayAgentsFromFile(\n file: string\n): Promise<boolean> {\n try {\n debugMessage(`cli.AgentOps.importIdentityGatewayAgentsFromFile: start`);\n const filePath = getFilePath(file);\n const data = fs.readFileSync(filePath, 'utf8');\n debugMessage(\n `cli.AgentOps.importIdentityGatewayAgentsFromFile: importing ${filePath}`\n );\n const importData = JSON.parse(data) as AgentExportInterface;\n await importIdentityGatewayAgents(importData);\n debugMessage(`cli.AgentOps.importIdentityGatewayAgentsFromFile: end`);\n return true;\n } catch (error) {\n printError(error, `Error importing identity gateway agents from file`);\n }\n return false;\n}\n\n/**\n * Import java agents from file\n * @param {String} file file name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importJavaAgentsFromFile(file: string): Promise<boolean> {\n try {\n debugMessage(`cli.AgentOps.importJavaAgentsFromFile: start`);\n const filePath = getFilePath(file);\n const data = fs.readFileSync(filePath, 'utf8');\n debugMessage(\n `cli.AgentOps.importJavaAgentsFromFile: importing ${filePath}`\n );\n const importData = JSON.parse(data) as AgentExportInterface;\n await importJavaAgents(importData);\n debugMessage(`cli.AgentOps.importJavaAgentsFromFile: end`);\n return true;\n } catch (error) {\n printError(error, `Error importing java agents from file`);\n }\n return false;\n}\n\n/**\n * Import web agents from file\n * @param {String} file file name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importWebAgentsFromFile(file: string): Promise<boolean> {\n try {\n debugMessage(`cli.AgentOps.importWebAgentsFromFile: start`);\n const filePath = getFilePath(file);\n const data = fs.readFileSync(filePath, 'utf8');\n debugMessage(`cli.AgentOps.importWebAgentsFromFile: importing ${filePath}`);\n const importData = JSON.parse(data) as AgentExportInterface;\n await importWebAgents(importData);\n debugMessage(`cli.AgentOps.importWebAgentsFromFile: end`);\n return true;\n } catch (error) {\n printError(error, `Error importing web agents from file`);\n }\n return false;\n}\n\n/**\n * Import all agents from separate files\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importAgentsFromFiles(): Promise<boolean> {\n const errors: Error[] = [];\n try {\n const names = fs.readdirSync(getWorkingDirectory());\n const agentFiles = names.filter((name) =>\n name.toLowerCase().endsWith('.agent.json')\n );\n for (const file of agentFiles) {\n try {\n await importAgentsFromFile(file);\n } catch (error) {\n errors.push(\n new FrodoError(`Error importing agents from ${file}`, error)\n );\n }\n }\n if (errors.length > 0) {\n throw new FrodoError(`One or more errors importing agents`, errors);\n }\n return true;\n } catch (error) {\n if (errors.length > 0) {\n printError(error);\n } else {\n printError(error, `Error importing agents from files`);\n }\n }\n return false;\n}\n\n/**\n * Import all identity gateway agents from separate files\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importIdentityGatewayAgentsFromFiles(): Promise<boolean> {\n const errors: Error[] = [];\n try {\n debugMessage(`cli.AgentOps.importIdentityGatewayAgentsFromFiles: start`);\n const names = fs.readdirSync(getWorkingDirectory());\n const agentFiles = names.filter((name) =>\n name.toLowerCase().endsWith('.agent.json')\n );\n for (const file of agentFiles) {\n try {\n await importIdentityGatewayAgentsFromFile(file);\n } catch (error) {\n errors.push(\n new FrodoError(\n `Error importing identity gateway agents from ${file}`,\n error\n )\n );\n }\n }\n if (errors.length > 0) {\n throw new FrodoError(\n `One or more errors importing identity gateway agents`,\n errors\n );\n }\n debugMessage(`cli.AgentOps.importIdentityGatewayAgentsFromFiles: end`);\n return true;\n } catch (error) {\n if (errors.length > 0) {\n printError(error);\n } else {\n printError(error, `Error importing identity gateway agents from files`);\n }\n }\n return false;\n}\n\n/**\n * Import all java agents from separate files\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importJavaAgentsFromFiles(): Promise<boolean> {\n const errors: Error[] = [];\n try {\n debugMessage(`cli.AgentOps.importJavaAgentsFromFiles: start`);\n const names = fs.readdirSync(getWorkingDirectory());\n const agentFiles = names.filter((name) =>\n name.toLowerCase().endsWith('.agent.json')\n );\n for (const file of agentFiles) {\n try {\n await importJavaAgentsFromFile(file);\n } catch (error) {\n errors.push(\n new FrodoError(`Error importing java agents from ${file}`, error)\n );\n }\n }\n if (errors.length > 0) {\n throw new FrodoError(`One or more errors importing java agents`, errors);\n }\n debugMessage(`cli.AgentOps.importJavaAgentsFromFiles: end`);\n return true;\n } catch (error) {\n if (errors.length > 0) {\n printError(error);\n } else {\n printError(error, `Error importing java agents from files`);\n }\n }\n return false;\n}\n\n/**\n * Import all web agents from separate files\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importWebAgentsFromFiles(): Promise<boolean> {\n const errors: Error[] = [];\n try {\n debugMessage(`cli.AgentOps.importWebAgentsFromFiles: start`);\n const names = fs.readdirSync(getWorkingDirectory());\n const agentFiles = names.filter((name) =>\n name.toLowerCase().endsWith('.agent.json')\n );\n for (const file of agentFiles) {\n try {\n await importWebAgentsFromFile(file);\n } catch (error) {\n errors.push(\n new FrodoError(`Error importing web agents from ${file}`, error)\n );\n }\n }\n if (errors.length > 0) {\n throw new FrodoError(`One or more errors importing web agents`, errors);\n }\n debugMessage(`cli.AgentOps.importWebAgentsFromFiles: end`);\n return true;\n } catch (error) {\n if (errors.length > 0) {\n printError(error);\n } else {\n printError(error, `Error importing web agents from files`);\n }\n }\n return false;\n}\n\n/**\n * Delete agent\n * @param {string} agentId agent id/name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function deleteAgent(agentId: string): Promise<boolean> {\n try {\n await frodo.agent.deleteAgent(agentId);\n return true;\n } catch (error) {\n printError(error);\n }\n return false;\n}\n\n/**\n * Delete identity gateway agent\n * @param {string} agentId agent id/name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function deleteIdentityGatewayAgent(\n agentId: string\n): Promise<boolean> {\n try {\n await frodo.agent.deleteIdentityGatewayAgent(agentId);\n return true;\n } catch (error) {\n printError(error);\n }\n return false;\n}\n\n/**\n * Delete java agent\n * @param {string} agentId agent id/name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function deleteJavaAgent(agentId: string): Promise<boolean> {\n try {\n await frodo.agent.deleteJavaAgent(agentId);\n return true;\n } catch (error) {\n printError(error);\n }\n return false;\n}\n\n/**\n * Delete web agent\n * @param {string} agentId agent id/name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function deleteWebAgent(agentId: string): Promise<boolean> {\n try {\n await frodo.agent.deleteWebAgent(agentId);\n return true;\n } catch (error) {\n printError(error);\n }\n return false;\n}\n\n/**\n * Delete agents\n * @param {string} agentId agent id/name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function deleteAgents(): Promise<boolean> {\n try {\n await frodo.agent.deleteAgents();\n return true;\n } catch (error) {\n printError(error);\n }\n return false;\n}\n\n/**\n * Delete identity gateway agents\n * @param {string} agentId agent id/name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function deleteIdentityGatewayAgents(): Promise<boolean> {\n try {\n await frodo.agent.deleteIdentityGatewayAgents();\n return true;\n } catch (error) {\n printError(error);\n }\n return false;\n}\n\n/**\n * Delete java agents\n * @param {string} agentId agent id/name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function deleteJavaAgents(): Promise<boolean> {\n try {\n await frodo.agent.deleteJavaAgents();\n return true;\n } catch (error) {\n printError(error);\n }\n return false;\n}\n\n/**\n * Delete web agents\n * @param {string} agentId agent id/name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function deleteWebAgents(): Promise<boolean> {\n try {\n await frodo.agent.deleteWebAgents();\n return true;\n } catch (error) {\n printError(error);\n }\n return false;\n}\n"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { frodo, state } from '@rockcarver/frodo-lib';
|
|
1
|
+
import { frodo, FrodoError, state } from '@rockcarver/frodo-lib';
|
|
2
2
|
import fs from 'fs';
|
|
3
|
-
import { createProgressIndicator, createTable, debugMessage,
|
|
3
|
+
import { createProgressIndicator, createTable, debugMessage, printError, printMessage, stopProgressIndicator, updateProgressIndicator } from '../utils/Console';
|
|
4
4
|
import wordwrap from './utils/Wordwrap';
|
|
5
5
|
const {
|
|
6
6
|
getTypedFilename,
|
|
@@ -51,9 +51,11 @@ export async function listApplications(long = false) {
|
|
|
51
51
|
printMessage(`${app.name}`, 'data');
|
|
52
52
|
});
|
|
53
53
|
}
|
|
54
|
+
return true;
|
|
54
55
|
} catch (error) {
|
|
55
|
-
|
|
56
|
+
printError(error);
|
|
56
57
|
}
|
|
58
|
+
return false;
|
|
57
59
|
}
|
|
58
60
|
|
|
59
61
|
/**
|
|
@@ -63,18 +65,19 @@ export async function listApplications(long = false) {
|
|
|
63
65
|
* @returns {Promise<boolean>} true if successful, false otherwise
|
|
64
66
|
*/
|
|
65
67
|
export async function deleteApplication(applicationName, deep) {
|
|
66
|
-
let
|
|
67
|
-
debugMessage(`cli.ApplicationOps.deleteApplication: begin`);
|
|
68
|
-
showSpinner(`Deleting ${applicationName}...`);
|
|
68
|
+
let spinnerId;
|
|
69
69
|
try {
|
|
70
|
+
debugMessage(`cli.ApplicationOps.deleteApplication: begin`);
|
|
71
|
+
spinnerId = createProgressIndicator('indeterminate', 0, `Deleting ${applicationName}...`);
|
|
70
72
|
await _deleteApplicationByName(applicationName, deep);
|
|
71
|
-
|
|
72
|
-
|
|
73
|
+
stopProgressIndicator(spinnerId, `Deleted ${applicationName}`, 'success');
|
|
74
|
+
debugMessage(`cli.ApplicationOps.deleteApplication: end`);
|
|
75
|
+
return true;
|
|
73
76
|
} catch (error) {
|
|
74
|
-
|
|
77
|
+
stopProgressIndicator(spinnerId, `Error deleting ${applicationName}`, 'fail');
|
|
78
|
+
printError(error);
|
|
75
79
|
}
|
|
76
|
-
|
|
77
|
-
return outcome;
|
|
80
|
+
return false;
|
|
78
81
|
}
|
|
79
82
|
|
|
80
83
|
/**
|
|
@@ -83,18 +86,19 @@ export async function deleteApplication(applicationName, deep) {
|
|
|
83
86
|
* @returns {Promise<boolean>} true if successful, false otherwise
|
|
84
87
|
*/
|
|
85
88
|
export async function deleteApplications(deep) {
|
|
86
|
-
let
|
|
87
|
-
debugMessage(`cli.ApplicationOps.deleteApplications: begin`);
|
|
88
|
-
showSpinner(`Deleting all applications...`);
|
|
89
|
+
let spinnerId;
|
|
89
90
|
try {
|
|
91
|
+
debugMessage(`cli.ApplicationOps.deleteApplications: begin`);
|
|
92
|
+
spinnerId = createProgressIndicator('indeterminate', 0, `Deleting applications...`);
|
|
90
93
|
const deleted = await _deleteApplications(deep);
|
|
91
|
-
|
|
92
|
-
|
|
94
|
+
stopProgressIndicator(spinnerId, `Deleted ${deleted.length} applications`, 'success');
|
|
95
|
+
debugMessage(`cli.ApplicationOps.deleteApplications: end`);
|
|
96
|
+
return true;
|
|
93
97
|
} catch (error) {
|
|
94
|
-
|
|
98
|
+
stopProgressIndicator(spinnerId, `Error deleting applications`, 'fail');
|
|
99
|
+
printError(error);
|
|
95
100
|
}
|
|
96
|
-
|
|
97
|
-
return outcome;
|
|
101
|
+
return false;
|
|
98
102
|
}
|
|
99
103
|
|
|
100
104
|
/**
|
|
@@ -109,10 +113,10 @@ export async function exportApplicationToFile(applicationName, file, includeMeta
|
|
|
109
113
|
useStringArrays: true,
|
|
110
114
|
deps: true
|
|
111
115
|
}) {
|
|
112
|
-
let
|
|
113
|
-
debugMessage(`cli.ApplicationOps.exportApplicationToFile: begin`);
|
|
114
|
-
showSpinner(`Exporting ${applicationName}...`);
|
|
116
|
+
let spinnerId;
|
|
115
117
|
try {
|
|
118
|
+
debugMessage(`cli.ApplicationOps.exportApplicationToFile: begin`);
|
|
119
|
+
spinnerId = createProgressIndicator('indeterminate', 0, `Exporting ${applicationName}...`);
|
|
116
120
|
let fileName = getTypedFilename(applicationName, 'application');
|
|
117
121
|
if (file) {
|
|
118
122
|
fileName = file;
|
|
@@ -120,13 +124,14 @@ export async function exportApplicationToFile(applicationName, file, includeMeta
|
|
|
120
124
|
const filePath = getFilePath(fileName, true);
|
|
121
125
|
const exportData = await _exportApplicationByName(applicationName, options);
|
|
122
126
|
saveJsonToFile(exportData, filePath, includeMeta);
|
|
123
|
-
|
|
124
|
-
|
|
127
|
+
stopProgressIndicator(spinnerId, `Exported ${applicationName} to ${filePath}.`, 'success');
|
|
128
|
+
debugMessage(`cli.ApplicationOps.exportApplicationToFile: end`);
|
|
129
|
+
return true;
|
|
125
130
|
} catch (error) {
|
|
126
|
-
|
|
131
|
+
stopProgressIndicator(spinnerId, `Error exporting ${applicationName}`, 'fail');
|
|
132
|
+
printError(error);
|
|
127
133
|
}
|
|
128
|
-
|
|
129
|
-
return outcome;
|
|
134
|
+
return false;
|
|
130
135
|
}
|
|
131
136
|
|
|
132
137
|
/**
|
|
@@ -140,10 +145,10 @@ export async function exportApplicationsToFile(file, includeMeta, options = {
|
|
|
140
145
|
useStringArrays: true,
|
|
141
146
|
deps: true
|
|
142
147
|
}) {
|
|
143
|
-
let
|
|
144
|
-
debugMessage(`cli.ApplicationOps.exportApplicationsToFile: begin`);
|
|
145
|
-
showSpinner(`Exporting all applications...`);
|
|
148
|
+
let spinnerId;
|
|
146
149
|
try {
|
|
150
|
+
debugMessage(`cli.ApplicationOps.exportApplicationsToFile: begin`);
|
|
151
|
+
spinnerId = createProgressIndicator('indeterminate', 0, `Exporting applications...`);
|
|
147
152
|
let fileName = getTypedFilename(`all${titleCase(frodo.utils.getRealmName(state.getRealm()))}Applications`, 'application');
|
|
148
153
|
if (file) {
|
|
149
154
|
fileName = file;
|
|
@@ -151,14 +156,14 @@ export async function exportApplicationsToFile(file, includeMeta, options = {
|
|
|
151
156
|
const filePath = getFilePath(fileName, true);
|
|
152
157
|
const exportData = await _exportApplications(options);
|
|
153
158
|
saveJsonToFile(exportData, filePath, includeMeta);
|
|
154
|
-
|
|
155
|
-
|
|
159
|
+
stopProgressIndicator(spinnerId, `Exported applications to ${filePath}.`, 'success');
|
|
160
|
+
debugMessage(`cli.ApplicationOps.exportApplicationsToFile: end`);
|
|
161
|
+
return true;
|
|
156
162
|
} catch (error) {
|
|
157
|
-
|
|
158
|
-
|
|
163
|
+
stopProgressIndicator(spinnerId, `Error exporting applications`, 'fail');
|
|
164
|
+
printError(error);
|
|
159
165
|
}
|
|
160
|
-
|
|
161
|
-
return outcome;
|
|
166
|
+
return false;
|
|
162
167
|
}
|
|
163
168
|
|
|
164
169
|
/**
|
|
@@ -173,32 +178,36 @@ export async function exportApplicationsToFiles(includeMeta, options = {
|
|
|
173
178
|
}) {
|
|
174
179
|
debugMessage(`cli.ApplicationOps.exportApplicationsToFiles: begin`);
|
|
175
180
|
const errors = [];
|
|
176
|
-
let
|
|
181
|
+
let totalBarId;
|
|
177
182
|
try {
|
|
178
183
|
const applications = await _readApplications();
|
|
179
|
-
|
|
184
|
+
totalBarId = createProgressIndicator('determinate', applications.length, 'Exporting applications...');
|
|
180
185
|
for (const application of applications) {
|
|
181
186
|
const fileBarId = createProgressIndicator('determinate', 1, `Exporting application ${application.name}...`);
|
|
182
187
|
const file = getFilePath(getTypedFilename(application.name, 'application'), true);
|
|
183
188
|
try {
|
|
184
|
-
updateProgressIndicator(
|
|
189
|
+
updateProgressIndicator(totalBarId, `Exporting ${application.name}.`);
|
|
185
190
|
const exportData = await _exportApplication(application._id, options);
|
|
186
191
|
saveJsonToFile(exportData, file, includeMeta);
|
|
187
192
|
updateProgressIndicator(fileBarId, `Saving ${application.name} to ${file}.`);
|
|
188
193
|
stopProgressIndicator(fileBarId, `${application.name} saved to ${file}.`);
|
|
189
194
|
} catch (error) {
|
|
190
195
|
errors.push(error);
|
|
191
|
-
updateProgressIndicator(
|
|
192
|
-
stopProgressIndicator(fileBarId, `Error saving ${application.name} to ${file}
|
|
196
|
+
updateProgressIndicator(totalBarId, `Error exporting ${application.name}.`);
|
|
197
|
+
stopProgressIndicator(fileBarId, `Error saving ${application.name} to ${file}.`, 'fail');
|
|
193
198
|
}
|
|
194
199
|
}
|
|
195
|
-
stopProgressIndicator(
|
|
200
|
+
stopProgressIndicator(totalBarId, `Export complete.`);
|
|
201
|
+
if (errors.length > 0) {
|
|
202
|
+
throw new FrodoError(`Error exporting applications(s) to file(s)`, errors);
|
|
203
|
+
}
|
|
204
|
+
debugMessage(`cli.ApplicationOps.exportApplicationsToFiles: end`);
|
|
205
|
+
return true;
|
|
196
206
|
} catch (error) {
|
|
197
|
-
|
|
198
|
-
|
|
207
|
+
stopProgressIndicator(totalBarId, `Error exporting applications(s) to file(s)`, 'fail');
|
|
208
|
+
printError(error);
|
|
199
209
|
}
|
|
200
|
-
|
|
201
|
-
return 0 === errors.length;
|
|
210
|
+
return false;
|
|
202
211
|
}
|
|
203
212
|
|
|
204
213
|
/**
|
|
@@ -211,21 +220,21 @@ export async function exportApplicationsToFiles(includeMeta, options = {
|
|
|
211
220
|
export async function importApplicationFromFile(applicationName, file, options = {
|
|
212
221
|
deps: true
|
|
213
222
|
}) {
|
|
214
|
-
let
|
|
215
|
-
debugMessage(`cli.ApplicationOps.importApplicationFromFile: begin`);
|
|
216
|
-
showSpinner(`Importing ${applicationName}...`);
|
|
223
|
+
let spinnerId;
|
|
217
224
|
try {
|
|
225
|
+
debugMessage(`cli.ApplicationOps.importApplicationFromFile: begin`);
|
|
226
|
+
spinnerId = createProgressIndicator('indeterminate', 0, `Exporting applications...`);
|
|
218
227
|
const data = fs.readFileSync(getFilePath(file), 'utf8');
|
|
219
228
|
const fileData = JSON.parse(data);
|
|
220
229
|
await _importApplicationByName(applicationName, fileData, options);
|
|
221
|
-
|
|
222
|
-
|
|
230
|
+
stopProgressIndicator(spinnerId, `Imported ${applicationName}`, 'success');
|
|
231
|
+
debugMessage(`cli.ApplicationOps.importApplicationFromFile: end`);
|
|
232
|
+
return true;
|
|
223
233
|
} catch (error) {
|
|
224
|
-
|
|
225
|
-
|
|
234
|
+
stopProgressIndicator(spinnerId, `Error importing ${applicationName}`, 'fail');
|
|
235
|
+
printError(error);
|
|
226
236
|
}
|
|
227
|
-
|
|
228
|
-
return outcome;
|
|
237
|
+
return false;
|
|
229
238
|
}
|
|
230
239
|
|
|
231
240
|
/**
|
|
@@ -237,22 +246,22 @@ export async function importApplicationFromFile(applicationName, file, options =
|
|
|
237
246
|
export async function importFirstApplicationFromFile(file, options = {
|
|
238
247
|
deps: true
|
|
239
248
|
}) {
|
|
240
|
-
let
|
|
241
|
-
debugMessage(`cli.ApplicationOps.importFirstApplicationFromFile: begin`);
|
|
242
|
-
const filePath = getFilePath(file);
|
|
243
|
-
showSpinner(`Importing ${filePath}...`);
|
|
249
|
+
let spinnerId;
|
|
244
250
|
try {
|
|
251
|
+
debugMessage(`cli.ApplicationOps.importFirstApplicationFromFile: begin`);
|
|
252
|
+
const filePath = getFilePath(file);
|
|
253
|
+
spinnerId = createProgressIndicator('indeterminate', 0, `Importing ${filePath}...`);
|
|
245
254
|
const data = fs.readFileSync(filePath, 'utf8');
|
|
246
255
|
const fileData = JSON.parse(data);
|
|
247
256
|
await _importFirstApplication(fileData, options);
|
|
248
|
-
|
|
249
|
-
|
|
257
|
+
stopProgressIndicator(spinnerId, `Imported ${filePath}`, 'success');
|
|
258
|
+
debugMessage(`cli.ApplicationOps.importFirstApplicationFromFile: end`);
|
|
259
|
+
return true;
|
|
250
260
|
} catch (error) {
|
|
251
|
-
|
|
252
|
-
|
|
261
|
+
stopProgressIndicator(spinnerId, `Error importing first application`, 'fail');
|
|
262
|
+
printError(error);
|
|
253
263
|
}
|
|
254
|
-
|
|
255
|
-
return outcome;
|
|
264
|
+
return false;
|
|
256
265
|
}
|
|
257
266
|
|
|
258
267
|
/**
|
|
@@ -264,22 +273,22 @@ export async function importFirstApplicationFromFile(file, options = {
|
|
|
264
273
|
export async function importApplicationsFromFile(file, options = {
|
|
265
274
|
deps: true
|
|
266
275
|
}) {
|
|
267
|
-
let
|
|
268
|
-
debugMessage(`cli.ApplicationOps.importApplicationsFromFile: begin`);
|
|
269
|
-
const filePath = getFilePath(file);
|
|
270
|
-
showSpinner(`Importing ${filePath}...`);
|
|
276
|
+
let spinnerId;
|
|
271
277
|
try {
|
|
278
|
+
debugMessage(`cli.ApplicationOps.importApplicationsFromFile: begin`);
|
|
279
|
+
const filePath = getFilePath(file);
|
|
280
|
+
spinnerId = createProgressIndicator('indeterminate', 0, `Importing ${filePath}...`);
|
|
272
281
|
const data = fs.readFileSync(filePath, 'utf8');
|
|
273
282
|
const applicationData = JSON.parse(data);
|
|
274
283
|
await _importApplications(applicationData, options);
|
|
275
|
-
|
|
276
|
-
|
|
284
|
+
stopProgressIndicator(spinnerId, `Imported ${filePath}`, 'success');
|
|
285
|
+
debugMessage(`cli.ApplicationOps.importApplicationsFromFile: end`);
|
|
286
|
+
return true;
|
|
277
287
|
} catch (error) {
|
|
278
|
-
|
|
279
|
-
|
|
288
|
+
stopProgressIndicator(spinnerId, `Error importing first application`, 'fail');
|
|
289
|
+
printError(error);
|
|
280
290
|
}
|
|
281
|
-
|
|
282
|
-
return outcome;
|
|
291
|
+
return false;
|
|
283
292
|
}
|
|
284
293
|
|
|
285
294
|
/**
|
|
@@ -312,13 +321,16 @@ export async function importApplicationsFromFiles(options = {
|
|
|
312
321
|
printMessage(error, 'error');
|
|
313
322
|
}
|
|
314
323
|
}
|
|
324
|
+
if (errors.length > 0) {
|
|
325
|
+
throw new FrodoError(`Error importing applications`, errors);
|
|
326
|
+
}
|
|
315
327
|
stopProgressIndicator(barId, `Finished importing ${total} application(s) from ${files.length} file(s).`);
|
|
328
|
+
debugMessage(`cli.ApplicationOps.importApplicationsFromFiles: end`);
|
|
329
|
+
return true;
|
|
316
330
|
} catch (error) {
|
|
317
|
-
|
|
318
|
-
stopProgressIndicator(barId, `Error importing application(s) from file(s).`);
|
|
331
|
+
stopProgressIndicator(barId, `Error importing applications`);
|
|
319
332
|
printMessage(error, 'error');
|
|
320
333
|
}
|
|
321
|
-
|
|
322
|
-
return 0 === errors.length;
|
|
334
|
+
return false;
|
|
323
335
|
}
|
|
324
336
|
//# sourceMappingURL=ApplicationOps.js.map
|