@rockcarver/frodo-cli 2.0.0-5 → 2.0.0-7
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 +39 -1
- package/esm/app.js +4 -1
- package/esm/app.js.map +1 -1
- package/esm/cli/_template/something-delete.js +4 -1
- package/esm/cli/_template/something-delete.js.map +1 -1
- package/esm/cli/_template/something-describe.js +4 -1
- package/esm/cli/_template/something-describe.js.map +1 -1
- package/esm/cli/_template/something-else-delete.js +4 -1
- package/esm/cli/_template/something-else-delete.js.map +1 -1
- package/esm/cli/_template/something-else-describe.js +4 -1
- package/esm/cli/_template/something-else-describe.js.map +1 -1
- package/esm/cli/_template/something-else-export.js +4 -1
- package/esm/cli/_template/something-else-export.js.map +1 -1
- package/esm/cli/_template/something-else-import.js +4 -1
- package/esm/cli/_template/something-else-import.js.map +1 -1
- package/esm/cli/_template/something-else-list.js +4 -1
- package/esm/cli/_template/something-else-list.js.map +1 -1
- package/esm/cli/_template/something-export.js +4 -1
- package/esm/cli/_template/something-export.js.map +1 -1
- package/esm/cli/_template/something-import.js +4 -1
- package/esm/cli/_template/something-import.js.map +1 -1
- package/esm/cli/_template/something-list.js +4 -1
- package/esm/cli/_template/something-list.js.map +1 -1
- package/esm/cli/_template/something-other-delete.js +4 -1
- package/esm/cli/_template/something-other-delete.js.map +1 -1
- package/esm/cli/_template/something-other-describe.js +4 -1
- package/esm/cli/_template/something-other-describe.js.map +1 -1
- package/esm/cli/_template/something-other-export.js +4 -1
- package/esm/cli/_template/something-other-export.js.map +1 -1
- package/esm/cli/_template/something-other-import.js +4 -1
- package/esm/cli/_template/something-other-import.js.map +1 -1
- package/esm/cli/_template/something-other-list.js +4 -1
- package/esm/cli/_template/something-other-list.js.map +1 -1
- package/esm/cli/admin/admin-add-autoid-static-user-mapping.js +8 -2
- 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 +10 -3
- package/esm/cli/admin/admin-create-oauth2-client-with-admin-privileges.js.map +1 -1
- package/esm/cli/admin/admin-federation-export.js +45 -0
- package/esm/cli/admin/admin-federation-export.js.map +1 -0
- package/esm/cli/admin/admin-federation-import.js +49 -0
- package/esm/cli/admin/admin-federation-import.js.map +1 -0
- package/esm/cli/admin/admin-federation-list.js +29 -0
- package/esm/cli/admin/admin-federation-list.js.map +1 -0
- package/esm/cli/admin/admin-federation.js +13 -0
- package/esm/cli/admin/admin-federation.js.map +1 -0
- package/esm/cli/admin/admin-get-access-token.js +8 -2
- package/esm/cli/admin/admin-get-access-token.js.map +1 -1
- package/esm/cli/admin/admin-grant-oauth2-client-admin-privileges.js +8 -2
- package/esm/cli/admin/admin-grant-oauth2-client-admin-privileges.js.map +1 -1
- package/esm/cli/admin/admin-hide-generic-extension-attributes.js +8 -2
- 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 +8 -2
- 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 +8 -2
- 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 +8 -2
- package/esm/cli/admin/admin-list-static-user-mappings.js.map +1 -1
- package/esm/cli/admin/admin-remove-static-user-mapping.js +8 -2
- package/esm/cli/admin/admin-remove-static-user-mapping.js.map +1 -1
- package/esm/cli/admin/admin-repair-org-model.js +8 -2
- package/esm/cli/admin/admin-repair-org-model.js.map +1 -1
- package/esm/cli/admin/admin-revoke-oauth2-client-admin-privileges.js +8 -2
- package/esm/cli/admin/admin-revoke-oauth2-client-admin-privileges.js.map +1 -1
- package/esm/cli/admin/admin-show-generic-extension-attributes.js +8 -2
- package/esm/cli/admin/admin-show-generic-extension-attributes.js.map +1 -1
- package/esm/cli/admin/admin.js +1 -0
- package/esm/cli/admin/admin.js.map +1 -1
- package/esm/cli/agent/agent-delete.js +10 -3
- package/esm/cli/agent/agent-delete.js.map +1 -1
- package/esm/cli/agent/agent-describe.js +4 -1
- package/esm/cli/agent/agent-describe.js.map +1 -1
- package/esm/cli/agent/agent-export.js +4 -1
- package/esm/cli/agent/agent-export.js.map +1 -1
- package/esm/cli/agent/agent-gateway-delete.js +10 -3
- package/esm/cli/agent/agent-gateway-delete.js.map +1 -1
- package/esm/cli/agent/agent-gateway-describe.js +4 -1
- package/esm/cli/agent/agent-gateway-describe.js.map +1 -1
- package/esm/cli/agent/agent-gateway-export.js +4 -1
- package/esm/cli/agent/agent-gateway-export.js.map +1 -1
- package/esm/cli/agent/agent-gateway-import.js +4 -1
- package/esm/cli/agent/agent-gateway-import.js.map +1 -1
- package/esm/cli/agent/agent-gateway-list.js +4 -1
- package/esm/cli/agent/agent-gateway-list.js.map +1 -1
- package/esm/cli/agent/agent-import.js +4 -1
- package/esm/cli/agent/agent-import.js.map +1 -1
- package/esm/cli/agent/agent-java-delete.js +10 -3
- package/esm/cli/agent/agent-java-delete.js.map +1 -1
- package/esm/cli/agent/agent-java-describe.js +4 -1
- package/esm/cli/agent/agent-java-describe.js.map +1 -1
- package/esm/cli/agent/agent-java-export.js +4 -1
- package/esm/cli/agent/agent-java-export.js.map +1 -1
- package/esm/cli/agent/agent-java-import.js +4 -1
- package/esm/cli/agent/agent-java-import.js.map +1 -1
- package/esm/cli/agent/agent-java-list.js +4 -1
- package/esm/cli/agent/agent-java-list.js.map +1 -1
- package/esm/cli/agent/agent-list.js +4 -1
- package/esm/cli/agent/agent-list.js.map +1 -1
- package/esm/cli/agent/agent-web-delete.js +10 -3
- package/esm/cli/agent/agent-web-delete.js.map +1 -1
- package/esm/cli/agent/agent-web-describe.js +4 -1
- package/esm/cli/agent/agent-web-describe.js.map +1 -1
- package/esm/cli/agent/agent-web-export.js +4 -1
- package/esm/cli/agent/agent-web-export.js.map +1 -1
- package/esm/cli/agent/agent-web-import.js +4 -1
- package/esm/cli/agent/agent-web-import.js.map +1 -1
- package/esm/cli/agent/agent-web-list.js +4 -1
- package/esm/cli/agent/agent-web-list.js.map +1 -1
- package/esm/cli/app/app-delete.js +4 -1
- package/esm/cli/app/app-delete.js.map +1 -1
- package/esm/cli/app/app-describe.js +4 -1
- package/esm/cli/app/app-describe.js.map +1 -1
- package/esm/cli/app/app-export.js +6 -3
- package/esm/cli/app/app-export.js.map +1 -1
- package/esm/cli/app/app-import.js +7 -4
- package/esm/cli/app/app-import.js.map +1 -1
- package/esm/cli/app/app-list.js +4 -1
- package/esm/cli/app/app-list.js.map +1 -1
- package/esm/cli/authz/authz-policy-delete.js +6 -3
- package/esm/cli/authz/authz-policy-delete.js.map +1 -1
- package/esm/cli/authz/authz-policy-describe.js +4 -1
- package/esm/cli/authz/authz-policy-describe.js.map +1 -1
- package/esm/cli/authz/authz-policy-export.js +8 -5
- package/esm/cli/authz/authz-policy-export.js.map +1 -1
- package/esm/cli/authz/authz-policy-import.js +7 -4
- package/esm/cli/authz/authz-policy-import.js.map +1 -1
- package/esm/cli/authz/authz-policy-list.js +5 -2
- package/esm/cli/authz/authz-policy-list.js.map +1 -1
- package/esm/cli/authz/authz-set-delete.js +5 -2
- package/esm/cli/authz/authz-set-delete.js.map +1 -1
- package/esm/cli/authz/authz-set-describe.js +4 -1
- package/esm/cli/authz/authz-set-describe.js.map +1 -1
- package/esm/cli/authz/authz-set-export.js +6 -3
- package/esm/cli/authz/authz-set-export.js.map +1 -1
- package/esm/cli/authz/authz-set-import.js +7 -4
- package/esm/cli/authz/authz-set-import.js.map +1 -1
- package/esm/cli/authz/authz-set-list.js +4 -1
- package/esm/cli/authz/authz-set-list.js.map +1 -1
- package/esm/cli/authz/authz-type-delete.js +6 -3
- package/esm/cli/authz/authz-type-delete.js.map +1 -1
- package/esm/cli/authz/authz-type-describe.js +5 -2
- package/esm/cli/authz/authz-type-describe.js.map +1 -1
- package/esm/cli/authz/authz-type-export.js +7 -4
- package/esm/cli/authz/authz-type-export.js.map +1 -1
- package/esm/cli/authz/authz-type-import.js +8 -5
- package/esm/cli/authz/authz-type-import.js.map +1 -1
- package/esm/cli/authz/authz-type-list.js +4 -1
- package/esm/cli/authz/authz-type-list.js.map +1 -1
- package/esm/cli/conn/conn-save.js +18 -5
- package/esm/cli/conn/conn-save.js.map +1 -1
- package/esm/cli/email/email-template-export.js +6 -3
- package/esm/cli/email/email-template-export.js.map +1 -1
- package/esm/cli/email/email-template-import.js +7 -4
- package/esm/cli/email/email-template-import.js.map +1 -1
- package/esm/cli/email/email-template-list.js +4 -1
- package/esm/cli/email/email-template-list.js.map +1 -1
- package/esm/cli/esv/esv-apply.js +15 -5
- package/esm/cli/esv/esv-apply.js.map +1 -1
- package/esm/cli/esv/esv-secret-create.js +4 -1
- package/esm/cli/esv/esv-secret-create.js.map +1 -1
- package/esm/cli/esv/esv-secret-delete.js +5 -2
- package/esm/cli/esv/esv-secret-delete.js.map +1 -1
- package/esm/cli/esv/esv-secret-describe.js +4 -1
- package/esm/cli/esv/esv-secret-describe.js.map +1 -1
- package/esm/cli/esv/esv-secret-export.js +4 -1
- package/esm/cli/esv/esv-secret-export.js.map +1 -1
- package/esm/cli/esv/esv-secret-import.js +4 -1
- package/esm/cli/esv/esv-secret-import.js.map +1 -1
- package/esm/cli/esv/esv-secret-list.js +4 -1
- package/esm/cli/esv/esv-secret-list.js.map +1 -1
- package/esm/cli/esv/esv-secret-set.js +4 -1
- package/esm/cli/esv/esv-secret-set.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-activate.js +4 -1
- package/esm/cli/esv/esv-secret-version-activate.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-create.js +4 -1
- package/esm/cli/esv/esv-secret-version-create.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-deactivate.js +4 -1
- package/esm/cli/esv/esv-secret-version-deactivate.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-delete.js +5 -2
- package/esm/cli/esv/esv-secret-version-delete.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-list.js +4 -1
- package/esm/cli/esv/esv-secret-version-list.js.map +1 -1
- package/esm/cli/esv/esv-variable-create.js +4 -1
- package/esm/cli/esv/esv-variable-create.js.map +1 -1
- package/esm/cli/esv/esv-variable-delete.js +5 -2
- package/esm/cli/esv/esv-variable-delete.js.map +1 -1
- package/esm/cli/esv/esv-variable-describe.js +4 -1
- package/esm/cli/esv/esv-variable-describe.js.map +1 -1
- package/esm/cli/esv/esv-variable-export.js +4 -1
- package/esm/cli/esv/esv-variable-export.js.map +1 -1
- package/esm/cli/esv/esv-variable-import.js +4 -1
- package/esm/cli/esv/esv-variable-import.js.map +1 -1
- package/esm/cli/esv/esv-variable-list.js +4 -1
- package/esm/cli/esv/esv-variable-list.js.map +1 -1
- package/esm/cli/esv/esv-variable-set.js +5 -2
- package/esm/cli/esv/esv-variable-set.js.map +1 -1
- package/esm/cli/idm/idm-count.js +4 -1
- package/esm/cli/idm/idm-count.js.map +1 -1
- package/esm/cli/idm/idm-export.js +6 -3
- package/esm/cli/idm/idm-export.js.map +1 -1
- package/esm/cli/idm/idm-import.js +7 -4
- package/esm/cli/idm/idm-import.js.map +1 -1
- package/esm/cli/idm/idm-list.js +4 -1
- package/esm/cli/idm/idm-list.js.map +1 -1
- package/esm/cli/idp/idp-export.js +4 -1
- package/esm/cli/idp/idp-export.js.map +1 -1
- package/esm/cli/idp/idp-import.js +7 -4
- package/esm/cli/idp/idp-import.js.map +1 -1
- package/esm/cli/idp/idp-list.js +4 -1
- package/esm/cli/idp/idp-list.js.map +1 -1
- package/esm/cli/info/info.js +8 -2
- package/esm/cli/info/info.js.map +1 -1
- package/esm/cli/journey/journey-delete.js +5 -2
- package/esm/cli/journey/journey-delete.js.map +1 -1
- package/esm/cli/journey/journey-describe.js +14 -6
- package/esm/cli/journey/journey-describe.js.map +1 -1
- package/esm/cli/journey/journey-disable.js +8 -2
- package/esm/cli/journey/journey-disable.js.map +1 -1
- package/esm/cli/journey/journey-enable.js +8 -2
- package/esm/cli/journey/journey-enable.js.map +1 -1
- package/esm/cli/journey/journey-export.js +6 -3
- package/esm/cli/journey/journey-export.js.map +1 -1
- package/esm/cli/journey/journey-import.js +7 -4
- package/esm/cli/journey/journey-import.js.map +1 -1
- package/esm/cli/journey/journey-list.js +4 -1
- package/esm/cli/journey/journey-list.js.map +1 -1
- package/esm/cli/journey/journey-prune.js +10 -3
- package/esm/cli/journey/journey-prune.js.map +1 -1
- package/esm/cli/log/log-fetch.js +16 -6
- package/esm/cli/log/log-fetch.js.map +1 -1
- package/esm/cli/log/log-key-delete.js +5 -2
- package/esm/cli/log/log-key-delete.js.map +1 -1
- package/esm/cli/log/log-key-describe.js +4 -1
- package/esm/cli/log/log-key-describe.js.map +1 -1
- package/esm/cli/log/log-key-list.js +4 -1
- package/esm/cli/log/log-key-list.js.map +1 -1
- package/esm/cli/log/log-list.js +14 -4
- package/esm/cli/log/log-list.js.map +1 -1
- package/esm/cli/log/log-tail.js +16 -6
- package/esm/cli/log/log-tail.js.map +1 -1
- package/esm/cli/realm/realm-add-custom-domain.js +4 -1
- package/esm/cli/realm/realm-add-custom-domain.js.map +1 -1
- package/esm/cli/realm/realm-describe.js +4 -1
- package/esm/cli/realm/realm-describe.js.map +1 -1
- package/esm/cli/realm/realm-list.js +4 -1
- package/esm/cli/realm/realm-list.js.map +1 -1
- package/esm/cli/realm/realm-remove-custom-domain.js +8 -2
- package/esm/cli/realm/realm-remove-custom-domain.js.map +1 -1
- package/esm/cli/saml/saml-cot-export.js +6 -3
- package/esm/cli/saml/saml-cot-export.js.map +1 -1
- package/esm/cli/saml/saml-cot-import.js +7 -4
- package/esm/cli/saml/saml-cot-import.js.map +1 -1
- package/esm/cli/saml/saml-cot-list.js +4 -1
- package/esm/cli/saml/saml-cot-list.js.map +1 -1
- package/esm/cli/saml/saml-delete.js +11 -4
- package/esm/cli/saml/saml-delete.js.map +1 -1
- package/esm/cli/saml/saml-describe.js +4 -1
- package/esm/cli/saml/saml-describe.js.map +1 -1
- package/esm/cli/saml/saml-export.js +6 -3
- package/esm/cli/saml/saml-export.js.map +1 -1
- package/esm/cli/saml/saml-import.js +7 -4
- package/esm/cli/saml/saml-import.js.map +1 -1
- package/esm/cli/saml/saml-list.js +4 -1
- package/esm/cli/saml/saml-list.js.map +1 -1
- package/esm/cli/saml/saml-metadata-export.js +5 -2
- package/esm/cli/saml/saml-metadata-export.js.map +1 -1
- package/esm/cli/script/script-delete.js +4 -1
- package/esm/cli/script/script-delete.js.map +1 -1
- package/esm/cli/script/script-describe.js +4 -1
- package/esm/cli/script/script-describe.js.map +1 -1
- package/esm/cli/script/script-export.js +4 -1
- package/esm/cli/script/script-export.js.map +1 -1
- package/esm/cli/script/script-import.js +4 -1
- package/esm/cli/script/script-import.js.map +1 -1
- package/esm/cli/script/script-list.js +4 -1
- package/esm/cli/script/script-list.js.map +1 -1
- package/esm/cli/service/service-delete.js +5 -2
- package/esm/cli/service/service-delete.js.map +1 -1
- package/esm/cli/service/service-export.js +6 -3
- package/esm/cli/service/service-export.js.map +1 -1
- package/esm/cli/service/service-import.js +7 -4
- package/esm/cli/service/service-import.js.map +1 -1
- package/esm/cli/service/service-list.js +4 -1
- package/esm/cli/service/service-list.js.map +1 -1
- package/esm/cli/theme/theme-delete.js +6 -3
- package/esm/cli/theme/theme-delete.js.map +1 -1
- package/esm/cli/theme/theme-export.js +7 -4
- package/esm/cli/theme/theme-export.js.map +1 -1
- package/esm/cli/theme/theme-import.js +8 -5
- package/esm/cli/theme/theme-import.js.map +1 -1
- package/esm/cli/theme/theme-list.js +4 -1
- package/esm/cli/theme/theme-list.js.map +1 -1
- package/esm/ops/AdminFederationOps.js +216 -0
- package/esm/ops/AdminFederationOps.js.map +1 -0
- package/esm/ops/AgentOps.js +62 -36
- package/esm/ops/AgentOps.js.map +1 -1
- package/esm/ops/CirclesOfTrustOps.js +22 -10
- package/esm/ops/CirclesOfTrustOps.js.map +1 -1
- package/esm/ops/ConnectionProfileOps.js +10 -3
- package/esm/ops/ConnectionProfileOps.js.map +1 -1
- package/esm/ops/EmailTemplateOps.js +23 -15
- package/esm/ops/EmailTemplateOps.js.map +1 -1
- package/esm/ops/IdmOps.js +34 -21
- package/esm/ops/IdmOps.js.map +1 -1
- package/esm/ops/IdpOps.js +17 -9
- package/esm/ops/IdpOps.js.map +1 -1
- package/esm/ops/JourneyOps.js +46 -30
- package/esm/ops/JourneyOps.js.map +1 -1
- package/esm/ops/LogOps.js +21 -11
- package/esm/ops/LogOps.js.map +1 -1
- package/esm/ops/NodeOps.js +5 -2
- package/esm/ops/NodeOps.js.map +1 -1
- package/esm/ops/OAuth2ClientOps.js +26 -13
- package/esm/ops/OAuth2ClientOps.js.map +1 -1
- package/esm/ops/OrganizationOps.js +8 -2
- package/esm/ops/OrganizationOps.js.map +1 -1
- package/esm/ops/PolicyOps.js +36 -21
- package/esm/ops/PolicyOps.js.map +1 -1
- package/esm/ops/PolicySetOps.js +35 -18
- package/esm/ops/PolicySetOps.js.map +1 -1
- package/esm/ops/RealmOps.js +11 -6
- package/esm/ops/RealmOps.js.map +1 -1
- package/esm/ops/ResourceTypeOps.js +34 -18
- package/esm/ops/ResourceTypeOps.js.map +1 -1
- package/esm/ops/Saml2Ops.js +43 -23
- package/esm/ops/Saml2Ops.js.map +1 -1
- package/esm/ops/ScriptOps.js +18 -10
- package/esm/ops/ScriptOps.js.map +1 -1
- package/esm/ops/SecretsOps.js +28 -14
- package/esm/ops/SecretsOps.js.map +1 -1
- package/esm/ops/ServiceOps.js +38 -17
- package/esm/ops/ServiceOps.js.map +1 -1
- package/esm/ops/ThemeOps.js +35 -19
- package/esm/ops/ThemeOps.js.map +1 -1
- package/esm/ops/VariablesOps.js +23 -12
- package/esm/ops/VariablesOps.js.map +1 -1
- package/esm/utils/Config.js +6 -3
- package/esm/utils/Config.js.map +1 -1
- package/esm/utils/Console.js +5 -2
- package/esm/utils/Console.js.map +1 -1
- package/esm/utils/ExportImportUtils.js +6 -3
- package/esm/utils/ExportImportUtils.js.map +1 -1
- package/esm/utils/Version.js +7 -3
- package/esm/utils/Version.js.map +1 -1
- package/package.json +2 -2
package/esm/ops/AgentOps.js
CHANGED
|
@@ -2,6 +2,32 @@ import { frodo, state } from '@rockcarver/frodo-lib';
|
|
|
2
2
|
import fs from 'fs';
|
|
3
3
|
import { printMessage, createTable, debugMessage, showSpinner, succeedSpinner, failSpinner } from '../utils/Console';
|
|
4
4
|
import { getTypedFilename, saveJsonToFile, titleCase } from '../utils/ExportImportUtils';
|
|
5
|
+
const {
|
|
6
|
+
getRealmName
|
|
7
|
+
} = frodo.helper.utils;
|
|
8
|
+
const {
|
|
9
|
+
createAgentExportTemplate,
|
|
10
|
+
getAgents,
|
|
11
|
+
getIdentityGatewayAgents,
|
|
12
|
+
getJavaAgents,
|
|
13
|
+
getWebAgents,
|
|
14
|
+
exportAgents,
|
|
15
|
+
exportIdentityGatewayAgents,
|
|
16
|
+
exportJavaAgents,
|
|
17
|
+
exportWebAgents,
|
|
18
|
+
exportAgent,
|
|
19
|
+
exportIdentityGatewayAgent,
|
|
20
|
+
exportJavaAgent,
|
|
21
|
+
exportWebAgent,
|
|
22
|
+
importAgent,
|
|
23
|
+
importIdentityGatewayAgent,
|
|
24
|
+
importJavaAgent,
|
|
25
|
+
importWebAgent,
|
|
26
|
+
importAgents,
|
|
27
|
+
importIdentityGatewayAgents,
|
|
28
|
+
importJavaAgents,
|
|
29
|
+
importWebAgents
|
|
30
|
+
} = frodo.agent;
|
|
5
31
|
const agentTypeToFileIdMap = {
|
|
6
32
|
IdentityGatewayAgent: 'gateway.agent',
|
|
7
33
|
J2EEAgent: 'java.agent',
|
|
@@ -13,7 +39,7 @@ const agentTypeToFileIdMap = {
|
|
|
13
39
|
*/
|
|
14
40
|
export async function listAgents(long = false) {
|
|
15
41
|
try {
|
|
16
|
-
const agents = await
|
|
42
|
+
const agents = await getAgents();
|
|
17
43
|
if (long) {
|
|
18
44
|
const table = createTable(['Agent Id', 'Status', 'Agent Type']);
|
|
19
45
|
for (const agent of agents) {
|
|
@@ -48,7 +74,7 @@ export async function listAgents(long = false) {
|
|
|
48
74
|
*/
|
|
49
75
|
export async function listIdentityGatewayAgents(long = false) {
|
|
50
76
|
try {
|
|
51
|
-
const agents = await
|
|
77
|
+
const agents = await getIdentityGatewayAgents();
|
|
52
78
|
if (long) {
|
|
53
79
|
const table = createTable(['Gateway Agent Id', 'Status']);
|
|
54
80
|
for (const agent of agents) {
|
|
@@ -71,7 +97,7 @@ export async function listIdentityGatewayAgents(long = false) {
|
|
|
71
97
|
*/
|
|
72
98
|
export async function listJavaAgents(long = false) {
|
|
73
99
|
try {
|
|
74
|
-
const agents = await
|
|
100
|
+
const agents = await getJavaAgents();
|
|
75
101
|
if (long) {
|
|
76
102
|
const table = createTable(['Java Agent Id', 'Status']);
|
|
77
103
|
for (const agent of agents) {
|
|
@@ -94,7 +120,7 @@ export async function listJavaAgents(long = false) {
|
|
|
94
120
|
*/
|
|
95
121
|
export async function listWebAgents(long = false) {
|
|
96
122
|
try {
|
|
97
|
-
const agents = await
|
|
123
|
+
const agents = await getWebAgents();
|
|
98
124
|
if (long) {
|
|
99
125
|
const table = createTable(['Web Agent Id', 'Status']);
|
|
100
126
|
for (const agent of agents) {
|
|
@@ -117,8 +143,8 @@ export async function listWebAgents(long = false) {
|
|
|
117
143
|
* @param {string} file file name
|
|
118
144
|
*/
|
|
119
145
|
export async function exportAgentsToFile(file) {
|
|
120
|
-
const exportData = await
|
|
121
|
-
let fileName = getTypedFilename(`all${titleCase(
|
|
146
|
+
const exportData = await exportAgents();
|
|
147
|
+
let fileName = getTypedFilename(`all${titleCase(getRealmName(state.getRealm()))}Agents`, 'agent');
|
|
122
148
|
if (file) {
|
|
123
149
|
fileName = file;
|
|
124
150
|
}
|
|
@@ -130,8 +156,8 @@ export async function exportAgentsToFile(file) {
|
|
|
130
156
|
* @param {string} file file name
|
|
131
157
|
*/
|
|
132
158
|
export async function exportIdentityGatewayAgentsToFile(file) {
|
|
133
|
-
const exportData = await
|
|
134
|
-
let fileName = getTypedFilename(`all${titleCase(
|
|
159
|
+
const exportData = await exportIdentityGatewayAgents();
|
|
160
|
+
let fileName = getTypedFilename(`all${titleCase(getRealmName(state.getRealm()))}Agents`, agentTypeToFileIdMap['IdentityGatewayAgent']);
|
|
135
161
|
if (file) {
|
|
136
162
|
fileName = file;
|
|
137
163
|
}
|
|
@@ -143,8 +169,8 @@ export async function exportIdentityGatewayAgentsToFile(file) {
|
|
|
143
169
|
* @param {string} file file name
|
|
144
170
|
*/
|
|
145
171
|
export async function exportJavaAgentsToFile(file) {
|
|
146
|
-
const exportData = await
|
|
147
|
-
let fileName = getTypedFilename(`all${titleCase(
|
|
172
|
+
const exportData = await exportJavaAgents();
|
|
173
|
+
let fileName = getTypedFilename(`all${titleCase(getRealmName(state.getRealm()))}Agents`, agentTypeToFileIdMap['J2EEAgent']);
|
|
148
174
|
if (file) {
|
|
149
175
|
fileName = file;
|
|
150
176
|
}
|
|
@@ -156,8 +182,8 @@ export async function exportJavaAgentsToFile(file) {
|
|
|
156
182
|
* @param {string} file file name
|
|
157
183
|
*/
|
|
158
184
|
export async function exportWebAgentsToFile(file) {
|
|
159
|
-
const exportData = await
|
|
160
|
-
let fileName = getTypedFilename(`all${titleCase(
|
|
185
|
+
const exportData = await exportWebAgents();
|
|
186
|
+
let fileName = getTypedFilename(`all${titleCase(getRealmName(state.getRealm()))}Agents`, agentTypeToFileIdMap['WebAgent']);
|
|
161
187
|
if (file) {
|
|
162
188
|
fileName = file;
|
|
163
189
|
}
|
|
@@ -170,7 +196,7 @@ export async function exportWebAgentsToFile(file) {
|
|
|
170
196
|
* @param {string} file file name
|
|
171
197
|
*/
|
|
172
198
|
export async function exportAgentToFile(agentId, file) {
|
|
173
|
-
const exportData = await
|
|
199
|
+
const exportData = await exportAgent(agentId);
|
|
174
200
|
let fileName = getTypedFilename(agentId, agentTypeToFileIdMap[exportData.agents[agentId]._type._id]);
|
|
175
201
|
if (file) {
|
|
176
202
|
fileName = file;
|
|
@@ -184,7 +210,7 @@ export async function exportAgentToFile(agentId, file) {
|
|
|
184
210
|
* @param {string} file file name
|
|
185
211
|
*/
|
|
186
212
|
export async function exportIdentityGatewayAgentToFile(agentId, file) {
|
|
187
|
-
const exportData = await
|
|
213
|
+
const exportData = await exportIdentityGatewayAgent(agentId);
|
|
188
214
|
let fileName = getTypedFilename(agentId, agentTypeToFileIdMap[exportData.agents[agentId]._type._id]);
|
|
189
215
|
if (file) {
|
|
190
216
|
fileName = file;
|
|
@@ -198,7 +224,7 @@ export async function exportIdentityGatewayAgentToFile(agentId, file) {
|
|
|
198
224
|
* @param {string} file file name
|
|
199
225
|
*/
|
|
200
226
|
export async function exportJavaAgentToFile(agentId, file) {
|
|
201
|
-
const exportData = await
|
|
227
|
+
const exportData = await exportJavaAgent(agentId);
|
|
202
228
|
let fileName = getTypedFilename(agentId, agentTypeToFileIdMap[exportData.agents[agentId]._type._id]);
|
|
203
229
|
if (file) {
|
|
204
230
|
fileName = file;
|
|
@@ -212,7 +238,7 @@ export async function exportJavaAgentToFile(agentId, file) {
|
|
|
212
238
|
* @param {string} file file name
|
|
213
239
|
*/
|
|
214
240
|
export async function exportWebAgentToFile(agentId, file) {
|
|
215
|
-
const exportData = await
|
|
241
|
+
const exportData = await exportWebAgent(agentId);
|
|
216
242
|
let fileName = getTypedFilename(agentId, agentTypeToFileIdMap[exportData.agents[agentId]._type._id]);
|
|
217
243
|
if (file) {
|
|
218
244
|
fileName = file;
|
|
@@ -224,11 +250,11 @@ export async function exportWebAgentToFile(agentId, file) {
|
|
|
224
250
|
* Export all agents to separate files
|
|
225
251
|
*/
|
|
226
252
|
export async function exportAgentsToFiles() {
|
|
227
|
-
const agents = await
|
|
253
|
+
const agents = await getAgents();
|
|
228
254
|
debugMessage(`exportAgentsToFiles: ${agents.length} agents`);
|
|
229
255
|
for (const agent of agents) {
|
|
230
256
|
const fileName = getTypedFilename(agent._id, agentTypeToFileIdMap[agent._type._id]);
|
|
231
|
-
const exportData =
|
|
257
|
+
const exportData = createAgentExportTemplate();
|
|
232
258
|
exportData.agents[agent._id] = agent;
|
|
233
259
|
debugMessage(`exportAgentsToFiles: exporting ${agent._id} to ${fileName}`);
|
|
234
260
|
saveJsonToFile(exportData, fileName);
|
|
@@ -240,10 +266,10 @@ export async function exportAgentsToFiles() {
|
|
|
240
266
|
* Export all identity gateway agents to separate files
|
|
241
267
|
*/
|
|
242
268
|
export async function exportIdentityGatewayAgentsToFiles() {
|
|
243
|
-
const agents = await
|
|
269
|
+
const agents = await getIdentityGatewayAgents();
|
|
244
270
|
for (const agent of agents) {
|
|
245
271
|
const fileName = getTypedFilename(agent._id, agentTypeToFileIdMap[agent._type._id]);
|
|
246
|
-
const exportData =
|
|
272
|
+
const exportData = createAgentExportTemplate();
|
|
247
273
|
exportData.agents[agent._id] = agent;
|
|
248
274
|
saveJsonToFile(exportData, fileName);
|
|
249
275
|
}
|
|
@@ -253,10 +279,10 @@ export async function exportIdentityGatewayAgentsToFiles() {
|
|
|
253
279
|
* Export all java agents to separate files
|
|
254
280
|
*/
|
|
255
281
|
export async function exportJavaAgentsToFiles() {
|
|
256
|
-
const agents = await
|
|
282
|
+
const agents = await getJavaAgents();
|
|
257
283
|
for (const agent of agents) {
|
|
258
284
|
const fileName = getTypedFilename(agent._id, agentTypeToFileIdMap[agent._type._id]);
|
|
259
|
-
const exportData =
|
|
285
|
+
const exportData = createAgentExportTemplate();
|
|
260
286
|
exportData.agents[agent._id] = agent;
|
|
261
287
|
saveJsonToFile(exportData, fileName);
|
|
262
288
|
}
|
|
@@ -266,10 +292,10 @@ export async function exportJavaAgentsToFiles() {
|
|
|
266
292
|
* Export all web agents to separate files
|
|
267
293
|
*/
|
|
268
294
|
export async function exportWebAgentsToFiles() {
|
|
269
|
-
const agents = await
|
|
295
|
+
const agents = await getWebAgents();
|
|
270
296
|
for (const agent of agents) {
|
|
271
297
|
const fileName = getTypedFilename(agent._id, agentTypeToFileIdMap[agent._type._id]);
|
|
272
|
-
const exportData =
|
|
298
|
+
const exportData = createAgentExportTemplate();
|
|
273
299
|
exportData.agents[agent._id] = agent;
|
|
274
300
|
saveJsonToFile(exportData, fileName);
|
|
275
301
|
}
|
|
@@ -296,7 +322,7 @@ export async function importAgentFromFile(agentId, file) {
|
|
|
296
322
|
if (!verbose) showSpinner(`Importing ${agentId}...`);
|
|
297
323
|
try {
|
|
298
324
|
if (verbose) showSpinner(`Importing ${agentId}...`);
|
|
299
|
-
await
|
|
325
|
+
await importAgent(agentId, importData);
|
|
300
326
|
succeedSpinner(`Imported ${agentId}.`);
|
|
301
327
|
} catch (importError) {
|
|
302
328
|
if (verbose) showSpinner(`Importing ${agentId}...`);
|
|
@@ -323,7 +349,7 @@ export async function importFirstAgentFromFile(file) {
|
|
|
323
349
|
if (!verbose) showSpinner(`Importing ${agent['_id']}...`);
|
|
324
350
|
try {
|
|
325
351
|
if (verbose) showSpinner(`Importing ${agent['_id']}...`);
|
|
326
|
-
await
|
|
352
|
+
await importAgent(agent['_id'], importData);
|
|
327
353
|
succeedSpinner(`Imported ${agent['_id']}.`);
|
|
328
354
|
} catch (importError) {
|
|
329
355
|
if (verbose) showSpinner(`Importing ${agent['_id']}...`);
|
|
@@ -349,7 +375,7 @@ export async function importAgentsFromFile(file) {
|
|
|
349
375
|
debugMessage(`importAgentsFromFile: importing ${file}`);
|
|
350
376
|
const importData = JSON.parse(data);
|
|
351
377
|
try {
|
|
352
|
-
await
|
|
378
|
+
await importAgents(importData);
|
|
353
379
|
} catch (error) {
|
|
354
380
|
printMessage(`${error.message}`, 'error');
|
|
355
381
|
printMessage(error.response.status, 'error');
|
|
@@ -391,7 +417,7 @@ export async function importIdentityGatewayAgentFromFile(agentId, file) {
|
|
|
391
417
|
if (!verbose) showSpinner(`Importing ${agentId}...`);
|
|
392
418
|
try {
|
|
393
419
|
if (verbose) showSpinner(`Importing ${agentId}...`);
|
|
394
|
-
await
|
|
420
|
+
await importIdentityGatewayAgent(agentId, importData);
|
|
395
421
|
succeedSpinner(`Imported ${agentId}.`);
|
|
396
422
|
} catch (importError) {
|
|
397
423
|
failSpinner(`${importError}`);
|
|
@@ -419,7 +445,7 @@ export async function importFirstIdentityGatewayAgentFromFile(file) {
|
|
|
419
445
|
if (!verbose) showSpinner(`Importing ${agent['_id']}...`);
|
|
420
446
|
try {
|
|
421
447
|
if (verbose) showSpinner(`Importing ${agent['_id']}...`);
|
|
422
|
-
await
|
|
448
|
+
await importIdentityGatewayAgent(agent['_id'], importData);
|
|
423
449
|
succeedSpinner(`Imported ${agent['_id']}.`);
|
|
424
450
|
} catch (importError) {
|
|
425
451
|
failSpinner(`${importError}`);
|
|
@@ -445,7 +471,7 @@ export async function importIdentityGatewayAgentsFromFile(file) {
|
|
|
445
471
|
debugMessage(`cli.AgentOps.importIdentityGatewayAgentsFromFile: importing ${file}`);
|
|
446
472
|
const importData = JSON.parse(data);
|
|
447
473
|
try {
|
|
448
|
-
await
|
|
474
|
+
await importIdentityGatewayAgents(importData);
|
|
449
475
|
} catch (error) {
|
|
450
476
|
printMessage(`${error.message}`, 'error');
|
|
451
477
|
printMessage(error.response.status, 'error');
|
|
@@ -489,7 +515,7 @@ export async function importJavaAgentFromFile(agentId, file) {
|
|
|
489
515
|
if (!verbose) showSpinner(`Importing ${agentId}...`);
|
|
490
516
|
try {
|
|
491
517
|
if (verbose) showSpinner(`Importing ${agentId}...`);
|
|
492
|
-
await
|
|
518
|
+
await importJavaAgent(agentId, importData);
|
|
493
519
|
succeedSpinner(`Imported ${agentId}.`);
|
|
494
520
|
} catch (importError) {
|
|
495
521
|
failSpinner(`${importError}`);
|
|
@@ -517,7 +543,7 @@ export async function importFirstJavaAgentFromFile(file) {
|
|
|
517
543
|
if (!verbose) showSpinner(`Importing ${agent['_id']}...`);
|
|
518
544
|
try {
|
|
519
545
|
if (verbose) showSpinner(`Importing ${agent['_id']}...`);
|
|
520
|
-
await
|
|
546
|
+
await importJavaAgent(agent['_id'], importData);
|
|
521
547
|
succeedSpinner(`Imported ${agent['_id']}.`);
|
|
522
548
|
} catch (importError) {
|
|
523
549
|
failSpinner(`${importError}`);
|
|
@@ -543,7 +569,7 @@ export async function importJavaAgentsFromFile(file) {
|
|
|
543
569
|
debugMessage(`cli.AgentOps.importJavaAgentsFromFile: importing ${file}`);
|
|
544
570
|
const importData = JSON.parse(data);
|
|
545
571
|
try {
|
|
546
|
-
await
|
|
572
|
+
await importJavaAgents(importData);
|
|
547
573
|
} catch (error) {
|
|
548
574
|
printMessage(`${error.message}`, 'error');
|
|
549
575
|
printMessage(error.response.status, 'error');
|
|
@@ -587,7 +613,7 @@ export async function importWebAgentFromFile(agentId, file) {
|
|
|
587
613
|
if (!verbose) showSpinner(`Importing ${agentId}...`);
|
|
588
614
|
try {
|
|
589
615
|
if (verbose) showSpinner(`Importing ${agentId}...`);
|
|
590
|
-
await
|
|
616
|
+
await importWebAgent(agentId, importData);
|
|
591
617
|
succeedSpinner(`Imported ${agentId}.`);
|
|
592
618
|
} catch (importError) {
|
|
593
619
|
failSpinner(`${importError}`);
|
|
@@ -615,7 +641,7 @@ export async function importFirstWebAgentFromFile(file) {
|
|
|
615
641
|
if (!verbose) showSpinner(`Importing ${agent['_id']}...`);
|
|
616
642
|
try {
|
|
617
643
|
if (verbose) showSpinner(`Importing ${agent['_id']}...`);
|
|
618
|
-
await
|
|
644
|
+
await importWebAgent(agent['_id'], importData);
|
|
619
645
|
succeedSpinner(`Imported ${agent['_id']}.`);
|
|
620
646
|
} catch (importError) {
|
|
621
647
|
failSpinner(`caught it here ${importError}`);
|
|
@@ -641,7 +667,7 @@ export async function importWebAgentsFromFile(file) {
|
|
|
641
667
|
debugMessage(`cli.AgentOps.importWebAgentsFromFile: importing ${file}`);
|
|
642
668
|
const importData = JSON.parse(data);
|
|
643
669
|
try {
|
|
644
|
-
await
|
|
670
|
+
await importWebAgents(importData);
|
|
645
671
|
} catch (error) {
|
|
646
672
|
printMessage(`${error.message}`, 'error');
|
|
647
673
|
printMessage(error.response.status, 'error');
|
package/esm/ops/AgentOps.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentOps.js","names":["frodo","state","fs","printMessage","createTable","debugMessage","showSpinner","succeedSpinner","failSpinner","getTypedFilename","saveJsonToFile","titleCase","agentTypeToFileIdMap","IdentityGatewayAgent","J2EEAgent","WebAgent","listAgents","long","agents","agent","getAgents","table","status","_type","_id","push","name","toString","forEach","error","stack","listIdentityGatewayAgents","getIdentityGatewayAgents","listJavaAgents","getJavaAgents","listWebAgents","getWebAgents","exportAgentsToFile","file","exportData","exportAgents","fileName","helper","utils","getRealmName","getRealm","exportIdentityGatewayAgentsToFile","exportIdentityGatewayAgents","exportJavaAgentsToFile","exportJavaAgents","exportWebAgentsToFile","exportWebAgents","exportAgentToFile","agentId","exportAgent","exportIdentityGatewayAgentToFile","exportIdentityGatewayAgent","exportJavaAgentToFile","exportJavaAgent","exportWebAgentToFile","exportWebAgent","exportAgentsToFiles","length","createAgentExportTemplate","exportIdentityGatewayAgentsToFiles","exportJavaAgentsToFiles","exportWebAgentsToFiles","importAgentFromFile","verbose","getVerbose","readFile","err","data","importData","JSON","parse","importAgent","importError","importFirstAgentFromFile","Object","keys","values","importAgentsFromFile","importAgents","message","response","importAgentsFromFiles","names","readdirSync","agentFiles","filter","toLowerCase","endsWith","importIdentityGatewayAgentFromFile","importIdentityGatewayAgent","importFirstIdentityGatewayAgentFromFile","importIdentityGatewayAgentsFromFile","importIdentityGatewayAgents","importIdentityGatewayAgentsFromFiles","importJavaAgentFromFile","importJavaAgent","importFirstJavaAgentFromFile","importJavaAgentsFromFile","importJavaAgents","importJavaAgentsFromFiles","importWebAgentFromFile","importWebAgent","importFirstWebAgentFromFile","importWebAgentsFromFile","importWebAgents","importWebAgentsFromFiles"],"sources":["ops/AgentOps.ts"],"sourcesContent":["import { frodo, state } from '@rockcarver/frodo-lib';\nimport fs from 'fs';\nimport {\n printMessage,\n createTable,\n debugMessage,\n showSpinner,\n succeedSpinner,\n failSpinner,\n} from '../utils/Console';\nimport type { AgentExportInterface } from '@rockcarver/frodo-lib/types/ops/OpsTypes';\nimport {\n getTypedFilename,\n saveJsonToFile,\n titleCase,\n} from '../utils/ExportImportUtils';\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 frodo.agent.getAgents();\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 frodo.agent.getIdentityGatewayAgents();\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 frodo.agent.getJavaAgents();\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 frodo.agent.getWebAgents();\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 */\nexport async function exportAgentsToFile(file) {\n const exportData = await frodo.agent.exportAgents();\n let fileName = getTypedFilename(\n `all${titleCase(frodo.helper.utils.getRealmName(state.getRealm()))}Agents`,\n 'agent'\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, fileName);\n}\n\n/**\n * Export all identity gateway agents to file\n * @param {string} file file name\n */\nexport async function exportIdentityGatewayAgentsToFile(file) {\n const exportData = await frodo.agent.exportIdentityGatewayAgents();\n let fileName = getTypedFilename(\n `all${titleCase(frodo.helper.utils.getRealmName(state.getRealm()))}Agents`,\n agentTypeToFileIdMap['IdentityGatewayAgent']\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, fileName);\n}\n\n/**\n * Export all java agents to file\n * @param {string} file file name\n */\nexport async function exportJavaAgentsToFile(file) {\n const exportData = await frodo.agent.exportJavaAgents();\n let fileName = getTypedFilename(\n `all${titleCase(frodo.helper.utils.getRealmName(state.getRealm()))}Agents`,\n agentTypeToFileIdMap['J2EEAgent']\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, fileName);\n}\n\n/**\n * Export all web agents to file\n * @param {string} file file name\n */\nexport async function exportWebAgentsToFile(file) {\n const exportData = await frodo.agent.exportWebAgents();\n let fileName = getTypedFilename(\n `all${titleCase(frodo.helper.utils.getRealmName(state.getRealm()))}Agents`,\n agentTypeToFileIdMap['WebAgent']\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, fileName);\n}\n\n/**\n * Export agent to file\n * @param {string} agentId agent id\n * @param {string} file file name\n */\nexport async function exportAgentToFile(agentId, file) {\n const exportData = await frodo.agent.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, fileName);\n}\n\n/**\n * Export identity gateway agent to file\n * @param {string} agentId agent id\n * @param {string} file file name\n */\nexport async function exportIdentityGatewayAgentToFile(agentId, file) {\n const exportData = await frodo.agent.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, fileName);\n}\n\n/**\n * Export java agent to file\n * @param {string} agentId agent id\n * @param {string} file file name\n */\nexport async function exportJavaAgentToFile(agentId, file) {\n const exportData = await frodo.agent.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, fileName);\n}\n\n/**\n * Export web agent to file\n * @param {string} agentId agent id\n * @param {string} file file name\n */\nexport async function exportWebAgentToFile(agentId, file) {\n const exportData = await frodo.agent.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, fileName);\n}\n\n/**\n * Export all agents to separate files\n */\nexport async function exportAgentsToFiles() {\n const agents = await frodo.agent.getAgents();\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 exportData = frodo.agent.createAgentExportTemplate();\n exportData.agents[agent._id] = agent;\n debugMessage(`exportAgentsToFiles: exporting ${agent._id} to ${fileName}`);\n saveJsonToFile(exportData, fileName);\n }\n debugMessage(`exportAgentsToFiles: done.`);\n}\n\n/**\n * Export all identity gateway agents to separate files\n */\nexport async function exportIdentityGatewayAgentsToFiles() {\n const agents = await frodo.agent.getIdentityGatewayAgents();\n for (const agent of agents) {\n const fileName = getTypedFilename(\n agent._id,\n agentTypeToFileIdMap[agent._type._id]\n );\n const exportData = frodo.agent.createAgentExportTemplate();\n exportData.agents[agent._id] = agent;\n saveJsonToFile(exportData, fileName);\n }\n}\n\n/**\n * Export all java agents to separate files\n */\nexport async function exportJavaAgentsToFiles() {\n const agents = await frodo.agent.getJavaAgents();\n for (const agent of agents) {\n const fileName = getTypedFilename(\n agent._id,\n agentTypeToFileIdMap[agent._type._id]\n );\n const exportData = frodo.agent.createAgentExportTemplate();\n exportData.agents[agent._id] = agent;\n saveJsonToFile(exportData, fileName);\n }\n}\n\n/**\n * Export all web agents to separate files\n */\nexport async function exportWebAgentsToFiles() {\n const agents = await frodo.agent.getWebAgents();\n for (const agent of agents) {\n const fileName = getTypedFilename(\n agent._id,\n agentTypeToFileIdMap[agent._type._id]\n );\n const exportData = frodo.agent.createAgentExportTemplate();\n exportData.agents[agent._id] = agent;\n saveJsonToFile(exportData, fileName);\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(file, 'utf8', async (err, data) => {\n if (err) throw err;\n let 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 importData = importData.agents[agentId];\n } else if (importData.agents) {\n importData = null;\n }\n // if an agentId was specified, only import the matching agent\n if (importData && agentId === importData.agents._id) {\n if (!verbose) showSpinner(`Importing ${agentId}...`);\n try {\n if (verbose) showSpinner(`Importing ${agentId}...`);\n await frodo.agent.importAgent(agentId, importData);\n succeedSpinner(`Imported ${agentId}.`);\n } catch (importError) {\n if (verbose) showSpinner(`Importing ${agentId}...`);\n failSpinner(`${importError}`);\n }\n } else {\n showSpinner(`Importing ${agentId}...`);\n failSpinner(`${agentId} not found!`);\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(file, 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n if (Object.keys(importData.agents).length > 0) {\n for (const agent of Object.values(importData.agents)) {\n if (!verbose) showSpinner(`Importing ${agent['_id']}...`);\n try {\n if (verbose) showSpinner(`Importing ${agent['_id']}...`);\n await frodo.agent.importAgent(agent['_id'], importData);\n succeedSpinner(`Imported ${agent['_id']}.`);\n } catch (importError) {\n if (verbose) showSpinner(`Importing ${agent['_id']}...`);\n failSpinner(`${importError}`);\n }\n return;\n }\n } else {\n showSpinner(`Importing...`);\n failSpinner(`No agents found!`);\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 fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n debugMessage(`importAgentsFromFile: importing ${file}`);\n const importData = JSON.parse(data) as AgentExportInterface;\n try {\n await frodo.agent.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('.');\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(file, 'utf8', async (err, data) => {\n if (err) throw err;\n let 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 importData = importData.agents[agentId];\n } else if (importData.agents) {\n importData = null;\n }\n // if an agentId was specified, only import the matching agent\n if (importData && agentId === importData.agents._id) {\n if (!verbose) showSpinner(`Importing ${agentId}...`);\n try {\n if (verbose) showSpinner(`Importing ${agentId}...`);\n await frodo.agent.importIdentityGatewayAgent(agentId, importData);\n succeedSpinner(`Imported ${agentId}.`);\n } catch (importError) {\n failSpinner(`${importError}`);\n }\n } else {\n showSpinner(`Importing ${agentId}...`);\n failSpinner(`${agentId} not found!`);\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(file, 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n if (Object.keys(importData.agents).length > 0) {\n for (const agent of Object.values(importData.agents)) {\n if (!verbose) showSpinner(`Importing ${agent['_id']}...`);\n try {\n if (verbose) showSpinner(`Importing ${agent['_id']}...`);\n await frodo.agent.importIdentityGatewayAgent(\n agent['_id'],\n importData\n );\n succeedSpinner(`Imported ${agent['_id']}.`);\n } catch (importError) {\n failSpinner(`${importError}`);\n }\n return;\n }\n } else {\n showSpinner(`Importing...`);\n failSpinner(`No agents found!`);\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 fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n debugMessage(\n `cli.AgentOps.importIdentityGatewayAgentsFromFile: importing ${file}`\n );\n const importData = JSON.parse(data) as AgentExportInterface;\n try {\n await frodo.agent.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('.');\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(file, 'utf8', async (err, data) => {\n if (err) throw err;\n let 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 importData = importData.agents[agentId];\n } else if (importData.agents) {\n importData = null;\n }\n // if an agentId was specified, only import the matching agent\n if (importData && agentId === importData.agents._id) {\n if (!verbose) showSpinner(`Importing ${agentId}...`);\n try {\n if (verbose) showSpinner(`Importing ${agentId}...`);\n await frodo.agent.importJavaAgent(agentId, importData);\n succeedSpinner(`Imported ${agentId}.`);\n } catch (importError) {\n failSpinner(`${importError}`);\n }\n } else {\n showSpinner(`Importing ${agentId}...`);\n failSpinner(`${agentId} not found!`);\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(file, 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n if (Object.keys(importData.agents).length > 0) {\n for (const agent of Object.values(importData.agents)) {\n if (!verbose) showSpinner(`Importing ${agent['_id']}...`);\n try {\n if (verbose) showSpinner(`Importing ${agent['_id']}...`);\n await frodo.agent.importJavaAgent(agent['_id'], importData);\n succeedSpinner(`Imported ${agent['_id']}.`);\n } catch (importError) {\n failSpinner(`${importError}`);\n }\n return;\n }\n } else {\n showSpinner(`Importing...`);\n failSpinner(`No agents found!`);\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 fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n debugMessage(`cli.AgentOps.importJavaAgentsFromFile: importing ${file}`);\n const importData = JSON.parse(data) as AgentExportInterface;\n try {\n await frodo.agent.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('.');\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(file, 'utf8', async (err, data) => {\n if (err) throw err;\n let 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 importData = importData.agents[agentId];\n } else if (importData.agents) {\n importData = null;\n }\n // if an agentId was specified, only import the matching agent\n if (importData && agentId === importData.agents._id) {\n if (!verbose) showSpinner(`Importing ${agentId}...`);\n try {\n if (verbose) showSpinner(`Importing ${agentId}...`);\n await frodo.agent.importWebAgent(agentId, importData);\n succeedSpinner(`Imported ${agentId}.`);\n } catch (importError) {\n failSpinner(`${importError}`);\n }\n } else {\n showSpinner(`Importing ${agentId}...`);\n failSpinner(`${agentId} not found!`);\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(file, 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n if (Object.keys(importData.agents).length > 0) {\n for (const agent of Object.values(importData.agents)) {\n if (!verbose) showSpinner(`Importing ${agent['_id']}...`);\n try {\n if (verbose) showSpinner(`Importing ${agent['_id']}...`);\n await frodo.agent.importWebAgent(agent['_id'], importData);\n succeedSpinner(`Imported ${agent['_id']}.`);\n } catch (importError) {\n failSpinner(`caught it here ${importError}`);\n }\n break;\n }\n } else {\n showSpinner(`Importing...`);\n failSpinner(`No agents found!`);\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 fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n debugMessage(`cli.AgentOps.importWebAgentsFromFile: importing ${file}`);\n const importData = JSON.parse(data) as AgentExportInterface;\n try {\n await frodo.agent.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('.');\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","state","fs","printMessage","createTable","debugMessage","showSpinner","succeedSpinner","failSpinner","getTypedFilename","saveJsonToFile","titleCase","getRealmName","helper","utils","createAgentExportTemplate","getAgents","getIdentityGatewayAgents","getJavaAgents","getWebAgents","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","exportData","fileName","getRealm","exportIdentityGatewayAgentsToFile","exportJavaAgentsToFile","exportWebAgentsToFile","exportAgentToFile","agentId","exportIdentityGatewayAgentToFile","exportJavaAgentToFile","exportWebAgentToFile","exportAgentsToFiles","length","exportIdentityGatewayAgentsToFiles","exportJavaAgentsToFiles","exportWebAgentsToFiles","importAgentFromFile","verbose","getVerbose","readFile","err","data","importData","JSON","parse","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":["ops/AgentOps.ts"],"sourcesContent":["import { frodo, state } from '@rockcarver/frodo-lib';\nimport fs from 'fs';\nimport {\n printMessage,\n createTable,\n debugMessage,\n showSpinner,\n succeedSpinner,\n failSpinner,\n} from '../utils/Console';\nimport type { AgentExportInterface } from '@rockcarver/frodo-lib/types/ops/OpsTypes';\nimport {\n getTypedFilename,\n saveJsonToFile,\n titleCase,\n} from '../utils/ExportImportUtils';\n\nconst { getRealmName } = frodo.helper.utils;\nconst {\n createAgentExportTemplate,\n getAgents,\n getIdentityGatewayAgents,\n getJavaAgents,\n getWebAgents,\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 getAgents();\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 getIdentityGatewayAgents();\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 getJavaAgents();\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 getWebAgents();\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 */\nexport async function exportAgentsToFile(file) {\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, fileName);\n}\n\n/**\n * Export all identity gateway agents to file\n * @param {string} file file name\n */\nexport async function exportIdentityGatewayAgentsToFile(file) {\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, fileName);\n}\n\n/**\n * Export all java agents to file\n * @param {string} file file name\n */\nexport async function exportJavaAgentsToFile(file) {\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, fileName);\n}\n\n/**\n * Export all web agents to file\n * @param {string} file file name\n */\nexport async function exportWebAgentsToFile(file) {\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, fileName);\n}\n\n/**\n * Export agent to file\n * @param {string} agentId agent id\n * @param {string} file file name\n */\nexport async function exportAgentToFile(agentId, file) {\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, fileName);\n}\n\n/**\n * Export identity gateway agent to file\n * @param {string} agentId agent id\n * @param {string} file file name\n */\nexport async function exportIdentityGatewayAgentToFile(agentId, file) {\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, fileName);\n}\n\n/**\n * Export java agent to file\n * @param {string} agentId agent id\n * @param {string} file file name\n */\nexport async function exportJavaAgentToFile(agentId, file) {\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, fileName);\n}\n\n/**\n * Export web agent to file\n * @param {string} agentId agent id\n * @param {string} file file name\n */\nexport async function exportWebAgentToFile(agentId, file) {\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, fileName);\n}\n\n/**\n * Export all agents to separate files\n */\nexport async function exportAgentsToFiles() {\n const agents = await getAgents();\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 exportData = createAgentExportTemplate();\n exportData.agents[agent._id] = agent;\n debugMessage(`exportAgentsToFiles: exporting ${agent._id} to ${fileName}`);\n saveJsonToFile(exportData, fileName);\n }\n debugMessage(`exportAgentsToFiles: done.`);\n}\n\n/**\n * Export all identity gateway agents to separate files\n */\nexport async function exportIdentityGatewayAgentsToFiles() {\n const agents = await getIdentityGatewayAgents();\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, fileName);\n }\n}\n\n/**\n * Export all java agents to separate files\n */\nexport async function exportJavaAgentsToFiles() {\n const agents = await getJavaAgents();\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, fileName);\n }\n}\n\n/**\n * Export all web agents to separate files\n */\nexport async function exportWebAgentsToFiles() {\n const agents = await getWebAgents();\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, fileName);\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(file, 'utf8', async (err, data) => {\n if (err) throw err;\n let 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 importData = importData.agents[agentId];\n } else if (importData.agents) {\n importData = null;\n }\n // if an agentId was specified, only import the matching agent\n if (importData && agentId === importData.agents._id) {\n if (!verbose) showSpinner(`Importing ${agentId}...`);\n try {\n if (verbose) showSpinner(`Importing ${agentId}...`);\n await importAgent(agentId, importData);\n succeedSpinner(`Imported ${agentId}.`);\n } catch (importError) {\n if (verbose) showSpinner(`Importing ${agentId}...`);\n failSpinner(`${importError}`);\n }\n } else {\n showSpinner(`Importing ${agentId}...`);\n failSpinner(`${agentId} not found!`);\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(file, 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n if (Object.keys(importData.agents).length > 0) {\n for (const agent of Object.values(importData.agents)) {\n if (!verbose) showSpinner(`Importing ${agent['_id']}...`);\n try {\n if (verbose) showSpinner(`Importing ${agent['_id']}...`);\n await importAgent(agent['_id'], importData);\n succeedSpinner(`Imported ${agent['_id']}.`);\n } catch (importError) {\n if (verbose) showSpinner(`Importing ${agent['_id']}...`);\n failSpinner(`${importError}`);\n }\n return;\n }\n } else {\n showSpinner(`Importing...`);\n failSpinner(`No agents found!`);\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 fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n debugMessage(`importAgentsFromFile: importing ${file}`);\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('.');\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(file, 'utf8', async (err, data) => {\n if (err) throw err;\n let 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 importData = importData.agents[agentId];\n } else if (importData.agents) {\n importData = null;\n }\n // if an agentId was specified, only import the matching agent\n if (importData && agentId === importData.agents._id) {\n if (!verbose) showSpinner(`Importing ${agentId}...`);\n try {\n if (verbose) showSpinner(`Importing ${agentId}...`);\n await importIdentityGatewayAgent(agentId, importData);\n succeedSpinner(`Imported ${agentId}.`);\n } catch (importError) {\n failSpinner(`${importError}`);\n }\n } else {\n showSpinner(`Importing ${agentId}...`);\n failSpinner(`${agentId} not found!`);\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(file, 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n if (Object.keys(importData.agents).length > 0) {\n for (const agent of Object.values(importData.agents)) {\n if (!verbose) showSpinner(`Importing ${agent['_id']}...`);\n try {\n if (verbose) showSpinner(`Importing ${agent['_id']}...`);\n await importIdentityGatewayAgent(agent['_id'], importData);\n succeedSpinner(`Imported ${agent['_id']}.`);\n } catch (importError) {\n failSpinner(`${importError}`);\n }\n return;\n }\n } else {\n showSpinner(`Importing...`);\n failSpinner(`No agents found!`);\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 fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n debugMessage(\n `cli.AgentOps.importIdentityGatewayAgentsFromFile: importing ${file}`\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('.');\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(file, 'utf8', async (err, data) => {\n if (err) throw err;\n let 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 importData = importData.agents[agentId];\n } else if (importData.agents) {\n importData = null;\n }\n // if an agentId was specified, only import the matching agent\n if (importData && agentId === importData.agents._id) {\n if (!verbose) showSpinner(`Importing ${agentId}...`);\n try {\n if (verbose) showSpinner(`Importing ${agentId}...`);\n await importJavaAgent(agentId, importData);\n succeedSpinner(`Imported ${agentId}.`);\n } catch (importError) {\n failSpinner(`${importError}`);\n }\n } else {\n showSpinner(`Importing ${agentId}...`);\n failSpinner(`${agentId} not found!`);\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(file, 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n if (Object.keys(importData.agents).length > 0) {\n for (const agent of Object.values(importData.agents)) {\n if (!verbose) showSpinner(`Importing ${agent['_id']}...`);\n try {\n if (verbose) showSpinner(`Importing ${agent['_id']}...`);\n await importJavaAgent(agent['_id'], importData);\n succeedSpinner(`Imported ${agent['_id']}.`);\n } catch (importError) {\n failSpinner(`${importError}`);\n }\n return;\n }\n } else {\n showSpinner(`Importing...`);\n failSpinner(`No agents found!`);\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 fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n debugMessage(`cli.AgentOps.importJavaAgentsFromFile: importing ${file}`);\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('.');\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(file, 'utf8', async (err, data) => {\n if (err) throw err;\n let 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 importData = importData.agents[agentId];\n } else if (importData.agents) {\n importData = null;\n }\n // if an agentId was specified, only import the matching agent\n if (importData && agentId === importData.agents._id) {\n if (!verbose) showSpinner(`Importing ${agentId}...`);\n try {\n if (verbose) showSpinner(`Importing ${agentId}...`);\n await importWebAgent(agentId, importData);\n succeedSpinner(`Imported ${agentId}.`);\n } catch (importError) {\n failSpinner(`${importError}`);\n }\n } else {\n showSpinner(`Importing ${agentId}...`);\n failSpinner(`${agentId} not found!`);\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(file, 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n if (Object.keys(importData.agents).length > 0) {\n for (const agent of Object.values(importData.agents)) {\n if (!verbose) showSpinner(`Importing ${agent['_id']}...`);\n try {\n if (verbose) showSpinner(`Importing ${agent['_id']}...`);\n await importWebAgent(agent['_id'], importData);\n succeedSpinner(`Imported ${agent['_id']}.`);\n } catch (importError) {\n failSpinner(`caught it here ${importError}`);\n }\n break;\n }\n } else {\n showSpinner(`Importing...`);\n failSpinner(`No agents found!`);\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 fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n debugMessage(`cli.AgentOps.importWebAgentsFromFile: importing ${file}`);\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('.');\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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"}
|
|
@@ -2,6 +2,18 @@ import { frodo, state } from '@rockcarver/frodo-lib';
|
|
|
2
2
|
import fs from 'fs';
|
|
3
3
|
import { createProgressBar, createTable, debugMessage, failSpinner, printMessage, showSpinner, stopProgressBar, succeedSpinner, updateProgressBar } from '../utils/Console';
|
|
4
4
|
import { getTypedFilename, saveJsonToFile, titleCase } from '../utils/ExportImportUtils';
|
|
5
|
+
const {
|
|
6
|
+
getRealmName
|
|
7
|
+
} = frodo.helper.utils;
|
|
8
|
+
const {
|
|
9
|
+
getCirclesOfTrust,
|
|
10
|
+
exportCircleOfTrust,
|
|
11
|
+
exportCirclesOfTrust,
|
|
12
|
+
importCircleOfTrust,
|
|
13
|
+
importCirclesOfTrust,
|
|
14
|
+
importFirstCircleOfTrust
|
|
15
|
+
} = frodo.saml2.circlesOfTrust;
|
|
16
|
+
|
|
5
17
|
/**
|
|
6
18
|
* Get a one-line description of the circle of trust object
|
|
7
19
|
* @param {CircleOfTrustSkeleton} cotObj circle of trust object to describe
|
|
@@ -41,7 +53,7 @@ export async function listCirclesOfTrust(long = false) {
|
|
|
41
53
|
let outcome = false;
|
|
42
54
|
let cotList = [];
|
|
43
55
|
try {
|
|
44
|
-
cotList = await
|
|
56
|
+
cotList = await getCirclesOfTrust();
|
|
45
57
|
} catch (error) {
|
|
46
58
|
printMessage(`getCirclesOfTrust ERROR: ${error}`, 'error');
|
|
47
59
|
printMessage(error, 'data');
|
|
@@ -77,7 +89,7 @@ export async function exportCircleOfTrustToFile(cotId, file = null) {
|
|
|
77
89
|
if (file) {
|
|
78
90
|
fileName = file;
|
|
79
91
|
}
|
|
80
|
-
const exportData = await
|
|
92
|
+
const exportData = await exportCircleOfTrust(cotId);
|
|
81
93
|
saveJsonToFile(exportData, fileName);
|
|
82
94
|
succeedSpinner(`Exported ${cotId} to ${fileName}.`);
|
|
83
95
|
outcome = true;
|
|
@@ -97,11 +109,11 @@ export async function exportCirclesOfTrustToFile(file = null) {
|
|
|
97
109
|
debugMessage(`cli.CirclesOfTrustOps.exportCirclesOfTrustToFile: begin`);
|
|
98
110
|
showSpinner(`Exporting all circles of trust...`);
|
|
99
111
|
try {
|
|
100
|
-
let fileName = getTypedFilename(`all${titleCase(
|
|
112
|
+
let fileName = getTypedFilename(`all${titleCase(getRealmName(state.getRealm()))}CirclesOfTrust`, 'cot.saml');
|
|
101
113
|
if (file) {
|
|
102
114
|
fileName = file;
|
|
103
115
|
}
|
|
104
|
-
const exportData = await
|
|
116
|
+
const exportData = await exportCirclesOfTrust();
|
|
105
117
|
saveJsonToFile(exportData, fileName);
|
|
106
118
|
succeedSpinner(`Exported all circles of trust to ${fileName}.`);
|
|
107
119
|
outcome = true;
|
|
@@ -119,12 +131,12 @@ export async function exportCirclesOfTrustToFiles() {
|
|
|
119
131
|
debugMessage(`cli.CirclesOfTrustOps.exportCirclesOfTrustToFiles: begin`);
|
|
120
132
|
const errors = [];
|
|
121
133
|
try {
|
|
122
|
-
const cots = await
|
|
134
|
+
const cots = await getCirclesOfTrust();
|
|
123
135
|
createProgressBar(cots.length, 'Exporting circles of trust...');
|
|
124
136
|
for (const cot of cots) {
|
|
125
137
|
const file = getTypedFilename(cot._id, 'cot.saml');
|
|
126
138
|
try {
|
|
127
|
-
const exportData = await
|
|
139
|
+
const exportData = await exportCircleOfTrust(cot._id);
|
|
128
140
|
saveJsonToFile(exportData, file);
|
|
129
141
|
updateProgressBar(`Exported ${cot.name}.`);
|
|
130
142
|
} catch (error) {
|
|
@@ -153,7 +165,7 @@ export async function importCircleOfTrustFromFile(cotId, file) {
|
|
|
153
165
|
if (err) throw err;
|
|
154
166
|
try {
|
|
155
167
|
const fileData = JSON.parse(data);
|
|
156
|
-
await
|
|
168
|
+
await importCircleOfTrust(cotId, fileData);
|
|
157
169
|
outcome = true;
|
|
158
170
|
succeedSpinner(`Imported circle of trust ${cotId} from ${file}.`);
|
|
159
171
|
} catch (error) {
|
|
@@ -176,7 +188,7 @@ export async function importFirstCircleOfTrustFromFile(file) {
|
|
|
176
188
|
if (err) throw err;
|
|
177
189
|
try {
|
|
178
190
|
const fileData = JSON.parse(data);
|
|
179
|
-
await
|
|
191
|
+
await importFirstCircleOfTrust(fileData);
|
|
180
192
|
outcome = true;
|
|
181
193
|
succeedSpinner(`Imported first circle of trust from ${file}.`);
|
|
182
194
|
} catch (error) {
|
|
@@ -199,7 +211,7 @@ export async function importCirclesOfTrustFromFile(file) {
|
|
|
199
211
|
if (err) throw err;
|
|
200
212
|
try {
|
|
201
213
|
const fileData = JSON.parse(data);
|
|
202
|
-
await
|
|
214
|
+
await importCirclesOfTrust(fileData);
|
|
203
215
|
outcome = true;
|
|
204
216
|
succeedSpinner(`Imported circles of trust from ${file}.`);
|
|
205
217
|
} catch (error) {
|
|
@@ -228,7 +240,7 @@ export async function importCirclesOfTrustFromFiles() {
|
|
|
228
240
|
const fileData = JSON.parse(data);
|
|
229
241
|
const count = Object.keys(fileData.saml.cot).length;
|
|
230
242
|
total += count;
|
|
231
|
-
await
|
|
243
|
+
await importCirclesOfTrust(fileData);
|
|
232
244
|
updateProgressBar(`Imported ${count} circles of trust from ${file}`);
|
|
233
245
|
} catch (error) {
|
|
234
246
|
errors.push(error);
|