@rockcarver/frodo-cli 2.0.0-2 → 2.0.0-21
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 +186 -3
- package/esm/app.js +14 -5
- package/esm/app.js.map +1 -1
- package/esm/cli/FrodoCommand.js +18 -4
- package/esm/cli/FrodoCommand.js.map +1 -1
- package/esm/cli/_template/something-delete.js +7 -4
- package/esm/cli/_template/something-delete.js.map +1 -1
- package/esm/cli/_template/something-describe.js +7 -4
- package/esm/cli/_template/something-describe.js.map +1 -1
- package/esm/cli/_template/something-else-delete.js +7 -4
- package/esm/cli/_template/something-else-delete.js.map +1 -1
- package/esm/cli/_template/something-else-describe.js +7 -4
- package/esm/cli/_template/something-else-describe.js.map +1 -1
- package/esm/cli/_template/something-else-export.js +7 -4
- package/esm/cli/_template/something-else-export.js.map +1 -1
- package/esm/cli/_template/something-else-import.js +7 -4
- package/esm/cli/_template/something-else-import.js.map +1 -1
- package/esm/cli/_template/something-else-list.js +7 -4
- package/esm/cli/_template/something-else-list.js.map +1 -1
- package/esm/cli/_template/something-else.js +1 -1
- package/esm/cli/_template/something-else.js.map +1 -1
- package/esm/cli/_template/something-export.js +7 -4
- package/esm/cli/_template/something-export.js.map +1 -1
- package/esm/cli/_template/something-import.js +7 -4
- package/esm/cli/_template/something-import.js.map +1 -1
- package/esm/cli/_template/something-list.js +7 -4
- package/esm/cli/_template/something-list.js.map +1 -1
- package/esm/cli/_template/something-other-delete.js +7 -4
- package/esm/cli/_template/something-other-delete.js.map +1 -1
- package/esm/cli/_template/something-other-describe.js +7 -4
- package/esm/cli/_template/something-other-describe.js.map +1 -1
- package/esm/cli/_template/something-other-export.js +7 -4
- package/esm/cli/_template/something-other-export.js.map +1 -1
- package/esm/cli/_template/something-other-import.js +7 -4
- package/esm/cli/_template/something-other-import.js.map +1 -1
- package/esm/cli/_template/something-other-list.js +7 -4
- package/esm/cli/_template/something-other-list.js.map +1 -1
- package/esm/cli/_template/something-other.js +1 -1
- package/esm/cli/_template/something-other.js.map +1 -1
- package/esm/cli/_template/something.js +2 -2
- package/esm/cli/_template/something.js.map +1 -1
- package/esm/cli/admin/admin-add-autoid-static-user-mapping.js +10 -4
- package/esm/cli/admin/admin-add-autoid-static-user-mapping.js.map +1 -1
- package/esm/cli/admin/admin-create-oauth2-client-with-admin-privileges.js +14 -7
- package/esm/cli/admin/admin-create-oauth2-client-with-admin-privileges.js.map +1 -1
- package/esm/cli/admin/admin-federation-export.js +45 -0
- package/esm/cli/admin/admin-federation-export.js.map +1 -0
- package/esm/cli/admin/admin-federation-import.js +49 -0
- package/esm/cli/admin/admin-federation-import.js.map +1 -0
- package/esm/cli/admin/admin-federation-list.js +29 -0
- package/esm/cli/admin/admin-federation-list.js.map +1 -0
- package/esm/cli/admin/admin-federation.js +13 -0
- package/esm/cli/admin/admin-federation.js.map +1 -0
- package/esm/cli/admin/admin-get-access-token.js +12 -6
- package/esm/cli/admin/admin-get-access-token.js.map +1 -1
- package/esm/cli/admin/admin-grant-oauth2-client-admin-privileges.js +12 -6
- package/esm/cli/admin/admin-grant-oauth2-client-admin-privileges.js.map +1 -1
- package/esm/cli/admin/admin-hide-generic-extension-attributes.js +11 -5
- package/esm/cli/admin/admin-hide-generic-extension-attributes.js.map +1 -1
- package/esm/cli/admin/admin-list-oauth2-clients-with-admin-privileges.js +10 -4
- 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 +10 -4
- 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 +11 -5
- package/esm/cli/admin/admin-list-static-user-mappings.js.map +1 -1
- package/esm/cli/admin/admin-remove-static-user-mapping.js +12 -5
- package/esm/cli/admin/admin-remove-static-user-mapping.js.map +1 -1
- package/esm/cli/admin/admin-repair-org-model.js +11 -5
- package/esm/cli/admin/admin-repair-org-model.js.map +1 -1
- package/esm/cli/admin/admin-revoke-oauth2-client-admin-privileges.js +12 -6
- package/esm/cli/admin/admin-revoke-oauth2-client-admin-privileges.js.map +1 -1
- package/esm/cli/admin/admin-show-generic-extension-attributes.js +11 -5
- package/esm/cli/admin/admin-show-generic-extension-attributes.js.map +1 -1
- package/esm/cli/admin/admin.js +3 -2
- package/esm/cli/admin/admin.js.map +1 -1
- package/esm/cli/agent/agent-delete.js +13 -6
- package/esm/cli/agent/agent-delete.js.map +1 -1
- package/esm/cli/agent/agent-describe.js +7 -4
- package/esm/cli/agent/agent-describe.js.map +1 -1
- package/esm/cli/agent/agent-export.js +8 -5
- package/esm/cli/agent/agent-export.js.map +1 -1
- package/esm/cli/agent/agent-gateway-delete.js +13 -6
- package/esm/cli/agent/agent-gateway-delete.js.map +1 -1
- package/esm/cli/agent/agent-gateway-describe.js +7 -4
- package/esm/cli/agent/agent-gateway-describe.js.map +1 -1
- package/esm/cli/agent/agent-gateway-export.js +8 -5
- package/esm/cli/agent/agent-gateway-export.js.map +1 -1
- package/esm/cli/agent/agent-gateway-import.js +8 -5
- package/esm/cli/agent/agent-gateway-import.js.map +1 -1
- package/esm/cli/agent/agent-gateway-list.js +7 -4
- package/esm/cli/agent/agent-gateway-list.js.map +1 -1
- package/esm/cli/agent/agent-gateway.js +1 -1
- package/esm/cli/agent/agent-gateway.js.map +1 -1
- package/esm/cli/agent/agent-import.js +8 -5
- package/esm/cli/agent/agent-import.js.map +1 -1
- package/esm/cli/agent/agent-java-delete.js +13 -6
- package/esm/cli/agent/agent-java-delete.js.map +1 -1
- package/esm/cli/agent/agent-java-describe.js +7 -4
- package/esm/cli/agent/agent-java-describe.js.map +1 -1
- package/esm/cli/agent/agent-java-export.js +8 -5
- package/esm/cli/agent/agent-java-export.js.map +1 -1
- package/esm/cli/agent/agent-java-import.js +8 -5
- package/esm/cli/agent/agent-java-import.js.map +1 -1
- package/esm/cli/agent/agent-java-list.js +7 -4
- package/esm/cli/agent/agent-java-list.js.map +1 -1
- package/esm/cli/agent/agent-java.js +1 -1
- package/esm/cli/agent/agent-java.js.map +1 -1
- package/esm/cli/agent/agent-list.js +7 -4
- package/esm/cli/agent/agent-list.js.map +1 -1
- package/esm/cli/agent/agent-web-delete.js +13 -6
- package/esm/cli/agent/agent-web-delete.js.map +1 -1
- package/esm/cli/agent/agent-web-describe.js +7 -4
- package/esm/cli/agent/agent-web-describe.js.map +1 -1
- package/esm/cli/agent/agent-web-export.js +8 -5
- package/esm/cli/agent/agent-web-export.js.map +1 -1
- package/esm/cli/agent/agent-web-import.js +8 -5
- package/esm/cli/agent/agent-web-import.js.map +1 -1
- package/esm/cli/agent/agent-web-list.js +7 -4
- package/esm/cli/agent/agent-web-list.js.map +1 -1
- package/esm/cli/agent/agent-web.js +1 -1
- package/esm/cli/agent/agent-web.js.map +1 -1
- package/esm/cli/agent/agent.js +2 -2
- package/esm/cli/agent/agent.js.map +1 -1
- package/esm/cli/app/app-delete.js +27 -8
- package/esm/cli/app/app-delete.js.map +1 -1
- package/esm/cli/app/app-describe.js +9 -5
- package/esm/cli/app/app-describe.js.map +1 -1
- package/esm/cli/app/app-export.js +17 -13
- package/esm/cli/app/app-export.js.map +1 -1
- package/esm/cli/app/app-import.js +21 -17
- package/esm/cli/app/app-import.js.map +1 -1
- package/esm/cli/app/app-list.js +12 -8
- package/esm/cli/app/app-list.js.map +1 -1
- package/esm/cli/app/app.js +8 -12
- package/esm/cli/app/app.js.map +1 -1
- package/esm/cli/authz/authz-policy-delete.js +10 -7
- package/esm/cli/authz/authz-policy-delete.js.map +1 -1
- package/esm/cli/authz/authz-policy-describe.js +8 -5
- package/esm/cli/authz/authz-policy-describe.js.map +1 -1
- package/esm/cli/authz/authz-policy-export.js +12 -9
- package/esm/cli/authz/authz-policy-export.js.map +1 -1
- package/esm/cli/authz/authz-policy-import.js +10 -7
- package/esm/cli/authz/authz-policy-import.js.map +1 -1
- package/esm/cli/authz/authz-policy-list.js +9 -6
- package/esm/cli/authz/authz-policy-list.js.map +1 -1
- package/esm/cli/authz/authz-policy.js +1 -1
- package/esm/cli/authz/authz-policy.js.map +1 -1
- package/esm/cli/authz/authz-set-delete.js +9 -6
- package/esm/cli/authz/authz-set-delete.js.map +1 -1
- package/esm/cli/authz/authz-set-describe.js +8 -5
- package/esm/cli/authz/authz-set-describe.js.map +1 -1
- package/esm/cli/authz/authz-set-export.js +10 -7
- package/esm/cli/authz/authz-set-export.js.map +1 -1
- package/esm/cli/authz/authz-set-import.js +10 -7
- package/esm/cli/authz/authz-set-import.js.map +1 -1
- package/esm/cli/authz/authz-set-list.js +7 -4
- package/esm/cli/authz/authz-set-list.js.map +1 -1
- package/esm/cli/authz/authz-set.js +1 -1
- package/esm/cli/authz/authz-set.js.map +1 -1
- package/esm/cli/authz/authz-type-delete.js +10 -7
- package/esm/cli/authz/authz-type-delete.js.map +1 -1
- package/esm/cli/authz/authz-type-describe.js +9 -6
- package/esm/cli/authz/authz-type-describe.js.map +1 -1
- package/esm/cli/authz/authz-type-export.js +11 -8
- package/esm/cli/authz/authz-type-export.js.map +1 -1
- package/esm/cli/authz/authz-type-import.js +12 -9
- package/esm/cli/authz/authz-type-import.js.map +1 -1
- package/esm/cli/authz/authz-type-list.js +8 -5
- package/esm/cli/authz/authz-type-list.js.map +1 -1
- package/esm/cli/authz/authz-type.js +1 -1
- package/esm/cli/authz/authz-type.js.map +1 -1
- package/esm/cli/authz/authz.js +2 -2
- package/esm/cli/authz/authz.js.map +1 -1
- package/esm/cli/conn/conn-delete.js +2 -2
- package/esm/cli/conn/conn-delete.js.map +1 -1
- package/esm/cli/conn/conn-describe.js +2 -2
- package/esm/cli/conn/conn-describe.js.map +1 -1
- package/esm/cli/conn/conn-list.js +2 -2
- package/esm/cli/conn/conn-list.js.map +1 -1
- package/esm/cli/conn/conn-save.js +31 -15
- package/esm/cli/conn/conn-save.js.map +1 -1
- package/esm/cli/conn/conn.js +2 -2
- package/esm/cli/conn/conn.js.map +1 -1
- package/esm/cli/email/email-template-export.js +10 -7
- package/esm/cli/email/email-template-export.js.map +1 -1
- package/esm/cli/email/email-template-import.js +11 -8
- package/esm/cli/email/email-template-import.js.map +1 -1
- package/esm/cli/email/email-template-list.js +8 -5
- package/esm/cli/email/email-template-list.js.map +1 -1
- package/esm/cli/email/email-template.js +1 -1
- package/esm/cli/email/email-template.js.map +1 -1
- package/esm/cli/email/email.js +2 -2
- package/esm/cli/email/email.js.map +1 -1
- package/esm/cli/esv/esv-apply.js +18 -8
- package/esm/cli/esv/esv-apply.js.map +1 -1
- package/esm/cli/esv/esv-secret-create.js +8 -5
- package/esm/cli/esv/esv-secret-create.js.map +1 -1
- package/esm/cli/esv/esv-secret-delete.js +9 -6
- package/esm/cli/esv/esv-secret-delete.js.map +1 -1
- package/esm/cli/esv/esv-secret-describe.js +8 -5
- package/esm/cli/esv/esv-secret-describe.js.map +1 -1
- package/esm/cli/esv/esv-secret-export.js +7 -4
- package/esm/cli/esv/esv-secret-export.js.map +1 -1
- package/esm/cli/esv/esv-secret-import.js +7 -4
- package/esm/cli/esv/esv-secret-import.js.map +1 -1
- package/esm/cli/esv/esv-secret-list.js +8 -5
- package/esm/cli/esv/esv-secret-list.js.map +1 -1
- package/esm/cli/esv/esv-secret-set.js +8 -5
- package/esm/cli/esv/esv-secret-set.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-activate.js +8 -5
- package/esm/cli/esv/esv-secret-version-activate.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-create.js +9 -6
- package/esm/cli/esv/esv-secret-version-create.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-deactivate.js +8 -5
- package/esm/cli/esv/esv-secret-version-deactivate.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-delete.js +9 -6
- package/esm/cli/esv/esv-secret-version-delete.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-list.js +8 -5
- package/esm/cli/esv/esv-secret-version-list.js.map +1 -1
- package/esm/cli/esv/esv-secret-version.js +1 -1
- package/esm/cli/esv/esv-secret-version.js.map +1 -1
- package/esm/cli/esv/esv-secret.js +1 -1
- package/esm/cli/esv/esv-secret.js.map +1 -1
- package/esm/cli/esv/esv-variable-create.js +10 -6
- package/esm/cli/esv/esv-variable-create.js.map +1 -1
- package/esm/cli/esv/esv-variable-delete.js +9 -6
- package/esm/cli/esv/esv-variable-delete.js.map +1 -1
- package/esm/cli/esv/esv-variable-describe.js +8 -5
- package/esm/cli/esv/esv-variable-describe.js.map +1 -1
- package/esm/cli/esv/esv-variable-export.js +7 -4
- package/esm/cli/esv/esv-variable-export.js.map +1 -1
- package/esm/cli/esv/esv-variable-import.js +7 -4
- package/esm/cli/esv/esv-variable-import.js.map +1 -1
- package/esm/cli/esv/esv-variable-list.js +8 -5
- package/esm/cli/esv/esv-variable-list.js.map +1 -1
- package/esm/cli/esv/esv-variable-set.js +8 -5
- package/esm/cli/esv/esv-variable-set.js.map +1 -1
- package/esm/cli/esv/esv-variable.js +1 -1
- package/esm/cli/esv/esv-variable.js.map +1 -1
- package/esm/cli/esv/esv.js +2 -2
- package/esm/cli/esv/esv.js.map +1 -1
- package/esm/cli/idm/idm-count.js +9 -6
- package/esm/cli/idm/idm-count.js.map +1 -1
- package/esm/cli/idm/idm-export.js +10 -7
- package/esm/cli/idm/idm-export.js.map +1 -1
- package/esm/cli/idm/idm-import.js +11 -8
- package/esm/cli/idm/idm-import.js.map +1 -1
- package/esm/cli/idm/idm-list.js +7 -4
- package/esm/cli/idm/idm-list.js.map +1 -1
- package/esm/cli/idm/idm.js +2 -2
- package/esm/cli/idm/idm.js.map +1 -1
- package/esm/cli/idp/idp-export.js +11 -8
- package/esm/cli/idp/idp-export.js.map +1 -1
- package/esm/cli/idp/idp-import.js +15 -12
- package/esm/cli/idp/idp-import.js.map +1 -1
- package/esm/cli/idp/idp-list.js +7 -4
- package/esm/cli/idp/idp-list.js.map +1 -1
- package/esm/cli/idp/idp.js +2 -2
- package/esm/cli/idp/idp.js.map +1 -1
- package/esm/cli/info/info.js +16 -10
- package/esm/cli/info/info.js.map +1 -1
- package/esm/cli/journey/journey-delete.js +8 -5
- package/esm/cli/journey/journey-delete.js.map +1 -1
- package/esm/cli/journey/journey-describe.js +18 -10
- package/esm/cli/journey/journey-describe.js.map +1 -1
- package/esm/cli/journey/journey-disable.js +12 -6
- package/esm/cli/journey/journey-disable.js.map +1 -1
- package/esm/cli/journey/journey-enable.js +12 -6
- package/esm/cli/journey/journey-enable.js.map +1 -1
- package/esm/cli/journey/journey-export.js +10 -7
- package/esm/cli/journey/journey-export.js.map +1 -1
- package/esm/cli/journey/journey-import.js +11 -8
- package/esm/cli/journey/journey-import.js.map +1 -1
- package/esm/cli/journey/journey-list.js +6 -3
- package/esm/cli/journey/journey-list.js.map +1 -1
- package/esm/cli/journey/journey-prune.js +23 -12
- package/esm/cli/journey/journey-prune.js.map +1 -1
- package/esm/cli/journey/journey.js +2 -2
- package/esm/cli/journey/journey.js.map +1 -1
- package/esm/cli/{logging/logs-fetch.js → log/log-fetch.js} +68 -36
- package/esm/cli/log/log-fetch.js.map +1 -0
- package/esm/cli/log/log-key-delete.js +35 -0
- package/esm/cli/log/log-key-delete.js.map +1 -0
- package/esm/cli/log/log-key-describe.js +22 -0
- package/esm/cli/log/log-key-describe.js.map +1 -0
- package/esm/cli/log/log-key-list.js +26 -0
- package/esm/cli/log/log-key-list.js.map +1 -0
- package/esm/cli/log/log-key.js +8 -0
- package/esm/cli/log/log-key.js.map +1 -0
- package/esm/cli/log/log-list.js +80 -0
- package/esm/cli/log/log-list.js.map +1 -0
- package/esm/cli/log/log-tail.js +77 -0
- package/esm/cli/log/log-tail.js.map +1 -0
- package/esm/cli/{logging/logs.js → log/log.js} +6 -3
- package/esm/cli/log/log.js.map +1 -0
- package/esm/cli/oauth/oauth-client-delete.js +22 -0
- package/esm/cli/oauth/oauth-client-delete.js.map +1 -0
- package/esm/cli/oauth/oauth-client-describe.js +22 -0
- package/esm/cli/oauth/oauth-client-describe.js.map +1 -0
- package/esm/cli/oauth/oauth-client-export.js +52 -0
- package/esm/cli/oauth/oauth-client-export.js.map +1 -0
- package/esm/cli/oauth/oauth-client-import.js +57 -0
- package/esm/cli/oauth/oauth-client-import.js.map +1 -0
- package/esm/cli/oauth/oauth-client-list.js +25 -0
- package/esm/cli/oauth/oauth-client-list.js.map +1 -0
- package/esm/cli/oauth/oauth-client.js +14 -0
- package/esm/cli/oauth/oauth-client.js.map +1 -0
- package/esm/cli/oauth/oauth.js +13 -0
- package/esm/cli/oauth/oauth.js.map +1 -0
- package/esm/cli/realm/realm-add-custom-domain.js +8 -5
- package/esm/cli/realm/realm-add-custom-domain.js.map +1 -1
- package/esm/cli/realm/realm-describe.js +8 -5
- package/esm/cli/realm/realm-describe.js.map +1 -1
- package/esm/cli/realm/realm-list.js +8 -5
- package/esm/cli/realm/realm-list.js.map +1 -1
- package/esm/cli/realm/realm-remove-custom-domain.js +11 -5
- package/esm/cli/realm/realm-remove-custom-domain.js.map +1 -1
- package/esm/cli/realm/realm.js +2 -2
- package/esm/cli/realm/realm.js.map +1 -1
- package/esm/cli/saml/saml-cot-export.js +10 -7
- package/esm/cli/saml/saml-cot-export.js.map +1 -1
- package/esm/cli/saml/saml-cot-import.js +11 -8
- package/esm/cli/saml/saml-cot-import.js.map +1 -1
- package/esm/cli/saml/saml-cot-list.js +8 -5
- package/esm/cli/saml/saml-cot-list.js.map +1 -1
- package/esm/cli/saml/saml-cot.js +1 -1
- package/esm/cli/saml/saml-cot.js.map +1 -1
- package/esm/cli/saml/saml-delete.js +14 -7
- package/esm/cli/saml/saml-delete.js.map +1 -1
- package/esm/cli/saml/saml-describe.js +8 -5
- package/esm/cli/saml/saml-describe.js.map +1 -1
- package/esm/cli/saml/saml-export.js +10 -7
- package/esm/cli/saml/saml-export.js.map +1 -1
- package/esm/cli/saml/saml-import.js +11 -8
- package/esm/cli/saml/saml-import.js.map +1 -1
- package/esm/cli/saml/saml-list.js +8 -5
- package/esm/cli/saml/saml-list.js.map +1 -1
- package/esm/cli/saml/saml-metadata-export.js +9 -6
- package/esm/cli/saml/saml-metadata-export.js.map +1 -1
- package/esm/cli/saml/saml-metadata.js +1 -1
- package/esm/cli/saml/saml-metadata.js.map +1 -1
- package/esm/cli/saml/saml.js +2 -2
- package/esm/cli/saml/saml.js.map +1 -1
- package/esm/cli/script/script-delete.js +7 -4
- package/esm/cli/script/script-delete.js.map +1 -1
- package/esm/cli/script/script-describe.js +7 -4
- package/esm/cli/script/script-describe.js.map +1 -1
- package/esm/cli/script/script-export.js +8 -5
- package/esm/cli/script/script-export.js.map +1 -1
- package/esm/cli/script/script-import.js +9 -6
- package/esm/cli/script/script-import.js.map +1 -1
- package/esm/cli/script/script-list.js +8 -5
- package/esm/cli/script/script-list.js.map +1 -1
- package/esm/cli/script/script.js +2 -2
- package/esm/cli/script/script.js.map +1 -1
- package/esm/cli/service/service-delete.js +8 -5
- package/esm/cli/service/service-delete.js.map +1 -1
- package/esm/cli/service/service-export.js +9 -6
- package/esm/cli/service/service-export.js.map +1 -1
- package/esm/cli/service/service-import.js +10 -7
- package/esm/cli/service/service-import.js.map +1 -1
- package/esm/cli/service/service-list.js +7 -4
- package/esm/cli/service/service-list.js.map +1 -1
- package/esm/cli/service/service.js +2 -2
- package/esm/cli/service/service.js.map +1 -1
- package/esm/cli/shell/shell.js +57 -0
- package/esm/cli/shell/shell.js.map +1 -0
- package/esm/cli/theme/theme-delete.js +10 -7
- package/esm/cli/theme/theme-delete.js.map +1 -1
- package/esm/cli/theme/theme-export.js +11 -8
- package/esm/cli/theme/theme-export.js.map +1 -1
- package/esm/cli/theme/theme-import.js +12 -9
- package/esm/cli/theme/theme-import.js.map +1 -1
- package/esm/cli/theme/theme-list.js +7 -4
- package/esm/cli/theme/theme-list.js.map +1 -1
- package/esm/cli/theme/theme.js +2 -2
- package/esm/cli/theme/theme.js.map +1 -1
- package/esm/help/SampleData.js +7 -0
- package/esm/help/SampleData.js.map +1 -0
- package/esm/launch.js +1 -1
- package/esm/launch.js.map +1 -1
- package/esm/loader.js +2 -2
- package/esm/loader.js.map +1 -1
- package/esm/ops/AdminFederationOps.js +216 -0
- package/esm/ops/AdminFederationOps.js.map +1 -0
- package/esm/ops/AgentOps.js +88 -54
- package/esm/ops/AgentOps.js.map +1 -1
- package/esm/ops/ApplicationOps.js +309 -0
- package/esm/ops/ApplicationOps.js.map +1 -0
- package/esm/ops/CirclesOfTrustOps.js +25 -13
- package/esm/ops/CirclesOfTrustOps.js.map +1 -1
- package/esm/ops/ConnectionProfileOps.js +13 -6
- package/esm/ops/ConnectionProfileOps.js.map +1 -1
- package/esm/ops/EmailTemplateOps.js +53 -47
- package/esm/ops/EmailTemplateOps.js.map +1 -1
- package/esm/ops/IdmOps.js +58 -64
- package/esm/ops/IdmOps.js.map +1 -1
- package/esm/ops/IdpOps.js +48 -25
- package/esm/ops/IdpOps.js.map +1 -1
- package/esm/ops/JourneyOps.js +108 -43
- package/esm/ops/JourneyOps.js.map +1 -1
- package/esm/ops/LogOps.js +92 -30
- package/esm/ops/LogOps.js.map +1 -1
- package/esm/ops/NodeOps.js +6 -3
- package/esm/ops/NodeOps.js.map +1 -1
- package/esm/ops/OAuth2ClientOps.js +29 -16
- package/esm/ops/OAuth2ClientOps.js.map +1 -1
- package/esm/ops/OrganizationOps.js +14 -22
- package/esm/ops/OrganizationOps.js.map +1 -1
- package/esm/ops/PolicyOps.js +60 -28
- package/esm/ops/PolicyOps.js.map +1 -1
- package/esm/ops/PolicySetOps.js +39 -22
- package/esm/ops/PolicySetOps.js.map +1 -1
- package/esm/ops/RealmOps.js +15 -8
- package/esm/ops/RealmOps.js.map +1 -1
- package/esm/ops/ResourceTypeOps.js +43 -27
- package/esm/ops/ResourceTypeOps.js.map +1 -1
- package/esm/ops/Saml2Ops.js +56 -42
- package/esm/ops/Saml2Ops.js.map +1 -1
- package/esm/ops/Saml2Ops.test_.js.map +1 -1
- package/esm/ops/ScriptOps.js +72 -18
- package/esm/ops/ScriptOps.js.map +1 -1
- package/esm/ops/SecretsOps.js +33 -18
- package/esm/ops/SecretsOps.js.map +1 -1
- package/esm/ops/ServiceOps.js +49 -28
- package/esm/ops/ServiceOps.js.map +1 -1
- package/esm/ops/ThemeOps.js +42 -22
- package/esm/ops/ThemeOps.js.map +1 -1
- package/esm/ops/VariablesOps.js +37 -28
- package/esm/ops/VariablesOps.js.map +1 -1
- package/esm/ops/utils/OpsUtils.js +1 -1
- package/esm/ops/utils/OpsUtils.js.map +1 -1
- package/esm/ops/utils/Wordwrap.js +1 -1
- package/esm/ops/utils/Wordwrap.js.map +1 -1
- package/esm/storage/StaticStorage.js +1 -1
- package/esm/storage/StaticStorage.js.map +1 -1
- package/esm/utils/Config.js +7 -4
- package/esm/utils/Config.js.map +1 -1
- package/esm/utils/Console.js +9 -5
- package/esm/utils/Console.js.map +1 -1
- package/esm/utils/ExportImportUtils.js +32 -66
- package/esm/utils/ExportImportUtils.js.map +1 -1
- package/esm/utils/Version.js +19 -16
- package/esm/utils/Version.js.map +1 -1
- package/package.json +45 -35
- package/esm/cli/logging/logs-fetch.js.map +0 -1
- package/esm/cli/logging/logs-list.js +0 -49
- package/esm/cli/logging/logs-list.js.map +0 -1
- package/esm/cli/logging/logs-tail.js +0 -46
- package/esm/cli/logging/logs-tail.js.map +0 -1
- package/esm/cli/logging/logs.js.map +0 -1
- package/esm/cli/theme/theme-delete.e2e.test_.js.map +0 -1
- package/esm/cli/theme/theme-list.e2e.test_.js.map +0 -1
package/esm/ops/AgentOps.js
CHANGED
|
@@ -1,7 +1,33 @@
|
|
|
1
1
|
import { frodo, state } from '@rockcarver/frodo-lib';
|
|
2
2
|
import fs from 'fs';
|
|
3
|
-
import {
|
|
3
|
+
import { createTable, debugMessage, failSpinner, printMessage, showSpinner, succeedSpinner } from '../utils/Console';
|
|
4
4
|
import { getTypedFilename, saveJsonToFile, titleCase } from '../utils/ExportImportUtils';
|
|
5
|
+
const {
|
|
6
|
+
getRealmName
|
|
7
|
+
} = frodo.utils;
|
|
8
|
+
const {
|
|
9
|
+
createAgentExportTemplate,
|
|
10
|
+
readAgents,
|
|
11
|
+
readIdentityGatewayAgents,
|
|
12
|
+
readJavaAgents,
|
|
13
|
+
readWebAgents,
|
|
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 readAgents();
|
|
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 readIdentityGatewayAgents();
|
|
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 readJavaAgents();
|
|
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 readWebAgents();
|
|
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 readAgents();
|
|
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 readIdentityGatewayAgents();
|
|
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 readJavaAgents();
|
|
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 readWebAgents();
|
|
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
|
}
|
|
@@ -284,19 +310,21 @@ export async function importAgentFromFile(agentId, file) {
|
|
|
284
310
|
const verbose = state.getVerbose();
|
|
285
311
|
fs.readFile(file, 'utf8', async (err, data) => {
|
|
286
312
|
if (err) throw err;
|
|
287
|
-
|
|
313
|
+
const importData = JSON.parse(data);
|
|
288
314
|
// check if this is a file with multiple agents and get agent by id
|
|
289
315
|
if (importData.agents && importData.agents[agentId]) {
|
|
290
|
-
|
|
316
|
+
const agent = importData.agents[agentId];
|
|
317
|
+
importData.agents = {};
|
|
318
|
+
importData.agents[agentId] = agent;
|
|
291
319
|
} else if (importData.agents) {
|
|
292
|
-
importData = null;
|
|
320
|
+
importData.agents = null;
|
|
293
321
|
}
|
|
294
322
|
// if an agentId was specified, only import the matching agent
|
|
295
|
-
if (importData
|
|
323
|
+
if (importData.agents) {
|
|
296
324
|
if (!verbose) showSpinner(`Importing ${agentId}...`);
|
|
297
325
|
try {
|
|
298
326
|
if (verbose) showSpinner(`Importing ${agentId}...`);
|
|
299
|
-
await
|
|
327
|
+
await importAgent(agentId, importData);
|
|
300
328
|
succeedSpinner(`Imported ${agentId}.`);
|
|
301
329
|
} catch (importError) {
|
|
302
330
|
if (verbose) showSpinner(`Importing ${agentId}...`);
|
|
@@ -323,7 +351,7 @@ export async function importFirstAgentFromFile(file) {
|
|
|
323
351
|
if (!verbose) showSpinner(`Importing ${agent['_id']}...`);
|
|
324
352
|
try {
|
|
325
353
|
if (verbose) showSpinner(`Importing ${agent['_id']}...`);
|
|
326
|
-
await
|
|
354
|
+
await importAgent(agent['_id'], importData);
|
|
327
355
|
succeedSpinner(`Imported ${agent['_id']}.`);
|
|
328
356
|
} catch (importError) {
|
|
329
357
|
if (verbose) showSpinner(`Importing ${agent['_id']}...`);
|
|
@@ -349,7 +377,7 @@ export async function importAgentsFromFile(file) {
|
|
|
349
377
|
debugMessage(`importAgentsFromFile: importing ${file}`);
|
|
350
378
|
const importData = JSON.parse(data);
|
|
351
379
|
try {
|
|
352
|
-
await
|
|
380
|
+
await importAgents(importData);
|
|
353
381
|
} catch (error) {
|
|
354
382
|
printMessage(`${error.message}`, 'error');
|
|
355
383
|
printMessage(error.response.status, 'error');
|
|
@@ -379,19 +407,21 @@ export async function importIdentityGatewayAgentFromFile(agentId, file) {
|
|
|
379
407
|
const verbose = state.getVerbose();
|
|
380
408
|
fs.readFile(file, 'utf8', async (err, data) => {
|
|
381
409
|
if (err) throw err;
|
|
382
|
-
|
|
410
|
+
const importData = JSON.parse(data);
|
|
383
411
|
// check if this is a file with multiple agents and get agent by id
|
|
384
412
|
if (importData.agents && importData.agents[agentId]) {
|
|
385
|
-
|
|
413
|
+
const agent = importData.agents[agentId];
|
|
414
|
+
importData.agents = {};
|
|
415
|
+
importData.agents[agentId] = agent;
|
|
386
416
|
} else if (importData.agents) {
|
|
387
|
-
importData = null;
|
|
417
|
+
importData.agents = null;
|
|
388
418
|
}
|
|
389
419
|
// if an agentId was specified, only import the matching agent
|
|
390
|
-
if (importData
|
|
420
|
+
if (importData.agents) {
|
|
391
421
|
if (!verbose) showSpinner(`Importing ${agentId}...`);
|
|
392
422
|
try {
|
|
393
423
|
if (verbose) showSpinner(`Importing ${agentId}...`);
|
|
394
|
-
await
|
|
424
|
+
await importIdentityGatewayAgent(agentId, importData);
|
|
395
425
|
succeedSpinner(`Imported ${agentId}.`);
|
|
396
426
|
} catch (importError) {
|
|
397
427
|
failSpinner(`${importError}`);
|
|
@@ -419,7 +449,7 @@ export async function importFirstIdentityGatewayAgentFromFile(file) {
|
|
|
419
449
|
if (!verbose) showSpinner(`Importing ${agent['_id']}...`);
|
|
420
450
|
try {
|
|
421
451
|
if (verbose) showSpinner(`Importing ${agent['_id']}...`);
|
|
422
|
-
await
|
|
452
|
+
await importIdentityGatewayAgent(agent['_id'], importData);
|
|
423
453
|
succeedSpinner(`Imported ${agent['_id']}.`);
|
|
424
454
|
} catch (importError) {
|
|
425
455
|
failSpinner(`${importError}`);
|
|
@@ -445,7 +475,7 @@ export async function importIdentityGatewayAgentsFromFile(file) {
|
|
|
445
475
|
debugMessage(`cli.AgentOps.importIdentityGatewayAgentsFromFile: importing ${file}`);
|
|
446
476
|
const importData = JSON.parse(data);
|
|
447
477
|
try {
|
|
448
|
-
await
|
|
478
|
+
await importIdentityGatewayAgents(importData);
|
|
449
479
|
} catch (error) {
|
|
450
480
|
printMessage(`${error.message}`, 'error');
|
|
451
481
|
printMessage(error.response.status, 'error');
|
|
@@ -477,19 +507,21 @@ export async function importJavaAgentFromFile(agentId, file) {
|
|
|
477
507
|
const verbose = state.getVerbose();
|
|
478
508
|
fs.readFile(file, 'utf8', async (err, data) => {
|
|
479
509
|
if (err) throw err;
|
|
480
|
-
|
|
510
|
+
const importData = JSON.parse(data);
|
|
481
511
|
// check if this is a file with multiple agents and get agent by id
|
|
482
512
|
if (importData.agents && importData.agents[agentId]) {
|
|
483
|
-
|
|
513
|
+
const agent = importData.agents[agentId];
|
|
514
|
+
importData.agents = {};
|
|
515
|
+
importData.agents[agentId] = agent;
|
|
484
516
|
} else if (importData.agents) {
|
|
485
|
-
importData = null;
|
|
517
|
+
importData.agents = null;
|
|
486
518
|
}
|
|
487
519
|
// if an agentId was specified, only import the matching agent
|
|
488
|
-
if (importData
|
|
520
|
+
if (importData.agents) {
|
|
489
521
|
if (!verbose) showSpinner(`Importing ${agentId}...`);
|
|
490
522
|
try {
|
|
491
523
|
if (verbose) showSpinner(`Importing ${agentId}...`);
|
|
492
|
-
await
|
|
524
|
+
await importJavaAgent(agentId, importData);
|
|
493
525
|
succeedSpinner(`Imported ${agentId}.`);
|
|
494
526
|
} catch (importError) {
|
|
495
527
|
failSpinner(`${importError}`);
|
|
@@ -517,7 +549,7 @@ export async function importFirstJavaAgentFromFile(file) {
|
|
|
517
549
|
if (!verbose) showSpinner(`Importing ${agent['_id']}...`);
|
|
518
550
|
try {
|
|
519
551
|
if (verbose) showSpinner(`Importing ${agent['_id']}...`);
|
|
520
|
-
await
|
|
552
|
+
await importJavaAgent(agent['_id'], importData);
|
|
521
553
|
succeedSpinner(`Imported ${agent['_id']}.`);
|
|
522
554
|
} catch (importError) {
|
|
523
555
|
failSpinner(`${importError}`);
|
|
@@ -543,7 +575,7 @@ export async function importJavaAgentsFromFile(file) {
|
|
|
543
575
|
debugMessage(`cli.AgentOps.importJavaAgentsFromFile: importing ${file}`);
|
|
544
576
|
const importData = JSON.parse(data);
|
|
545
577
|
try {
|
|
546
|
-
await
|
|
578
|
+
await importJavaAgents(importData);
|
|
547
579
|
} catch (error) {
|
|
548
580
|
printMessage(`${error.message}`, 'error');
|
|
549
581
|
printMessage(error.response.status, 'error');
|
|
@@ -575,19 +607,21 @@ export async function importWebAgentFromFile(agentId, file) {
|
|
|
575
607
|
const verbose = state.getVerbose();
|
|
576
608
|
fs.readFile(file, 'utf8', async (err, data) => {
|
|
577
609
|
if (err) throw err;
|
|
578
|
-
|
|
610
|
+
const importData = JSON.parse(data);
|
|
579
611
|
// check if this is a file with multiple agents and get agent by id
|
|
580
612
|
if (importData.agents && importData.agents[agentId]) {
|
|
581
|
-
|
|
613
|
+
const agent = importData.agents[agentId];
|
|
614
|
+
importData.agents = {};
|
|
615
|
+
importData.agents[agentId] = agent;
|
|
582
616
|
} else if (importData.agents) {
|
|
583
|
-
importData = null;
|
|
617
|
+
importData.agents = null;
|
|
584
618
|
}
|
|
585
619
|
// if an agentId was specified, only import the matching agent
|
|
586
|
-
if (importData
|
|
620
|
+
if (importData.agents) {
|
|
587
621
|
if (!verbose) showSpinner(`Importing ${agentId}...`);
|
|
588
622
|
try {
|
|
589
623
|
if (verbose) showSpinner(`Importing ${agentId}...`);
|
|
590
|
-
await
|
|
624
|
+
await importWebAgent(agentId, importData);
|
|
591
625
|
succeedSpinner(`Imported ${agentId}.`);
|
|
592
626
|
} catch (importError) {
|
|
593
627
|
failSpinner(`${importError}`);
|
|
@@ -615,7 +649,7 @@ export async function importFirstWebAgentFromFile(file) {
|
|
|
615
649
|
if (!verbose) showSpinner(`Importing ${agent['_id']}...`);
|
|
616
650
|
try {
|
|
617
651
|
if (verbose) showSpinner(`Importing ${agent['_id']}...`);
|
|
618
|
-
await
|
|
652
|
+
await importWebAgent(agent['_id'], importData);
|
|
619
653
|
succeedSpinner(`Imported ${agent['_id']}.`);
|
|
620
654
|
} catch (importError) {
|
|
621
655
|
failSpinner(`caught it here ${importError}`);
|
|
@@ -641,7 +675,7 @@ export async function importWebAgentsFromFile(file) {
|
|
|
641
675
|
debugMessage(`cli.AgentOps.importWebAgentsFromFile: importing ${file}`);
|
|
642
676
|
const importData = JSON.parse(data);
|
|
643
677
|
try {
|
|
644
|
-
await
|
|
678
|
+
await importWebAgents(importData);
|
|
645
679
|
} catch (error) {
|
|
646
680
|
printMessage(`${error.message}`, 'error');
|
|
647
681
|
printMessage(error.response.status, 'error');
|
|
@@ -662,4 +696,4 @@ export async function importWebAgentsFromFiles() {
|
|
|
662
696
|
}
|
|
663
697
|
debugMessage(`cli.AgentOps.importWebAgentsFromFiles: end`);
|
|
664
698
|
}
|
|
665
|
-
//# sourceMappingURL=AgentOps.js.map
|
|
699
|
+
//# sourceMappingURL=AgentOps.js.map
|
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","createTable","debugMessage","failSpinner","printMessage","showSpinner","succeedSpinner","getTypedFilename","saveJsonToFile","titleCase","getRealmName","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","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":["../../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 createTable,\n debugMessage,\n failSpinner,\n printMessage,\n showSpinner,\n succeedSpinner,\n} from '../utils/Console';\nimport {\n getTypedFilename,\n saveJsonToFile,\n titleCase,\n} from '../utils/ExportImportUtils';\n\nconst { getRealmName } = 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 */\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 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 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 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, fileName);\n }\n}\n\n/**\n * Export all java agents to separate files\n */\nexport async function exportJavaAgentsToFiles() {\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, fileName);\n }\n}\n\n/**\n * Export all web agents to separate files\n */\nexport async function exportWebAgentsToFiles() {\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, 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 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 if (importData.agents) {\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 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 if (importData.agents) {\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 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 if (importData.agents) {\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 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 if (importData.agents) {\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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"}
|