@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/LogOps.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LogOps.js","names":["frodo","state","createTable","debugMessage","failSpinner","printMessage","showSpinner","succeedSpinner","verboseMessage","listLogApiKeys","long","outcome","keys","cloud","log","getLogApiKeys","table","key","push","api_key_id","name","created_at","toString","error","provisionCreds","keyName","getUsername","Date","toISOString","resp","createLogApiKey","getHost","e","deleteLogApiKey","keyId","message","deleteLogApiKeys","response","length","tailLogs","source","levels","txid","cookie","nf","logsObject","tail","filteredLogs","noiseFilter","getDefaultNoiseFilter","Array","isArray","result","filter","el","_transactionId","includes","payload","logger","type","resolvePayloadLevel","transactionId","forEach","JSON","stringify","setTimeout","pagedResultsCookie","fetchLogs","startTs","endTs","ffString","fetch","_transactionId2"],"sources":["ops/LogOps.ts"],"sourcesContent":["import { frodo, state } from '@rockcarver/frodo-lib';\nimport type { LogEventPayloadSkeleton } from '@rockcarver/frodo-lib/types/api/ApiTypes';\nimport {\n createTable,\n debugMessage,\n failSpinner,\n printMessage,\n showSpinner,\n succeedSpinner,\n verboseMessage,\n} from '../utils/Console';\n\nexport async function listLogApiKeys(long = false): Promise<boolean> {\n let outcome = false;\n try {\n const keys = await frodo.cloud.log.getLogApiKeys();\n if (long) {\n const table = createTable(['Key Id', 'Name', 'Created at']);\n for (const key of keys) {\n table.push([key.api_key_id, key.name, key.created_at]);\n }\n printMessage(table.toString(), 'data');\n } else {\n for (const key of keys) {\n printMessage(`${key.api_key_id}`, 'data');\n }\n }\n outcome = true;\n } catch (error) {\n printMessage(`Error listing log API keys: ${error}`, 'error');\n }\n return outcome;\n}\n\nexport async function provisionCreds() {\n try {\n let keyName = `frodo-${state.getUsername()}`;\n try {\n const keys = await frodo.cloud.log.getLogApiKeys();\n for (const key of keys) {\n if (key.name === keyName) {\n // append current timestamp to name if the named key already exists\n keyName = `${keyName}-${new Date().toISOString()}`;\n }\n }\n try {\n const resp = await frodo.cloud.log.createLogApiKey(keyName);\n // if (resp.name !== keyName) {\n // printMessage(\n // `create keys ERROR: could not create log API key ${keyName} [new key name: ${resp.name}]`,\n // 'error'\n // );\n // return null;\n // }\n verboseMessage(\n `Created a new log API key [${keyName}] in ${state.getHost()}`\n );\n return resp;\n } catch (error) {\n printMessage(\n `create keys ERROR: create keys call returned ${error}`,\n 'error'\n );\n return null;\n }\n } catch (error) {\n printMessage(`get keys ERROR: get keys call returned ${error}`, 'error');\n }\n } catch (e) {\n printMessage(`create keys ERROR: create keys data error - ${e}`, 'error');\n return null;\n }\n}\n\nexport async function deleteLogApiKey(keyId) {\n let outcome = false;\n debugMessage(`cli.LogOps.deleteKey: start`);\n showSpinner(`Deleting ${keyId}...`);\n try {\n await frodo.cloud.log.deleteLogApiKey(keyId);\n succeedSpinner(`Deleted ${keyId}.`);\n outcome = true;\n } catch (error) {\n failSpinner(`Error deleting ${keyId}: ${error.message}`);\n }\n debugMessage(`cli.LogOps.deleteKey: end [${outcome}]`);\n return outcome;\n}\n\nexport async function deleteLogApiKeys() {\n let outcome = false;\n debugMessage(`cli.LogOps.deleteKeys: start`);\n showSpinner(`Deleting all keys...`);\n try {\n const response = await frodo.cloud.log.deleteLogApiKeys();\n succeedSpinner(`Deleted ${response.length} keys.`);\n outcome = true;\n } catch (error) {\n failSpinner(`Error deleting keys: ${error.message}`);\n }\n debugMessage(`cli.LogOps.deleteKeys: end [${outcome}]`);\n return outcome;\n}\n\nexport async function tailLogs(\n source: string,\n levels: string[],\n txid: string,\n cookie: string,\n nf: string[]\n) {\n try {\n const logsObject = await frodo.cloud.log.tail(source, cookie);\n let filteredLogs = [];\n const noiseFilter =\n nf == null ? frodo.cloud.log.getDefaultNoiseFilter() : nf;\n if (Array.isArray(logsObject.result)) {\n filteredLogs = logsObject.result.filter(\n (el) =>\n !noiseFilter.includes(\n (el.payload as LogEventPayloadSkeleton).logger\n ) &&\n !noiseFilter.includes(el.type) &&\n (levels[0] === 'ALL' ||\n levels.includes(frodo.cloud.log.resolvePayloadLevel(el))) &&\n (typeof txid === 'undefined' ||\n txid === null ||\n (el.payload as LogEventPayloadSkeleton).transactionId?.includes(\n txid\n ))\n );\n }\n\n filteredLogs.forEach((e) => {\n printMessage(JSON.stringify(e), 'data');\n });\n\n setTimeout(() => {\n tailLogs(source, levels, txid, logsObject.pagedResultsCookie, nf);\n }, 5000);\n return null;\n } catch (e) {\n printMessage(`tail ERROR: tail data error - ${e}`, 'error');\n return `tail ERROR: tail data error - ${e}`;\n }\n}\n\nexport async function fetchLogs(\n source: string,\n startTs: string,\n endTs: string,\n levels: string[],\n txid: string,\n ffString: string,\n cookie: string,\n nf: string[]\n) {\n try {\n const logsObject = await frodo.cloud.log.fetch(\n source,\n startTs,\n endTs,\n cookie\n );\n let filteredLogs = [];\n const noiseFilter =\n nf == null ? frodo.cloud.log.getDefaultNoiseFilter() : nf;\n if (Array.isArray(logsObject.result)) {\n filteredLogs = logsObject.result.filter(\n (el) =>\n !noiseFilter.includes(\n (el.payload as LogEventPayloadSkeleton).logger\n ) &&\n !noiseFilter.includes(el.type) &&\n (levels[0] === 'ALL' ||\n levels.includes(frodo.cloud.log.resolvePayloadLevel(el))) &&\n (typeof txid === 'undefined' ||\n txid === null ||\n (el.payload as LogEventPayloadSkeleton).transactionId?.includes(\n txid\n ))\n );\n }\n\n filteredLogs.forEach((e) => {\n const log = JSON.stringify(e, null, 2);\n if (ffString) {\n if (log.includes(ffString)) {\n printMessage(log, 'data');\n }\n } else {\n printMessage(log, 'data');\n }\n });\n if (logsObject.pagedResultsCookie != null) {\n await fetchLogs(\n source,\n startTs,\n endTs,\n levels,\n txid,\n ffString,\n logsObject.pagedResultsCookie,\n nf\n );\n }\n return null;\n } catch (e) {\n printMessage(`fetch ERROR: fetch data error - ${e}`, 'error');\n return `fetch ERROR: fetch data error - ${e}`;\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"LogOps.js","names":["frodo","state","createTable","debugMessage","failSpinner","printMessage","showSpinner","succeedSpinner","verboseMessage","getLogApiKeys","createLogApiKey","fetch","tail","getDefaultNoiseFilter","resolvePayloadLevel","deleteLogApiKey","_deleteLogApiKey","deleteLogApiKeys","_deleteLogApiKeys","cloud","log","listLogApiKeys","long","outcome","keys","table","key","push","api_key_id","name","created_at","toString","error","provisionCreds","keyName","getUsername","Date","toISOString","resp","getHost","e","keyId","message","response","length","tailLogs","source","levels","txid","cookie","nf","logsObject","filteredLogs","noiseFilter","Array","isArray","result","filter","el","_transactionId","includes","payload","logger","type","transactionId","forEach","JSON","stringify","setTimeout","pagedResultsCookie","fetchLogs","startTs","endTs","ffString","_transactionId2"],"sources":["ops/LogOps.ts"],"sourcesContent":["import { frodo, state } from '@rockcarver/frodo-lib';\nimport type { LogEventPayloadSkeleton } from '@rockcarver/frodo-lib/types/api/ApiTypes';\nimport {\n createTable,\n debugMessage,\n failSpinner,\n printMessage,\n showSpinner,\n succeedSpinner,\n verboseMessage,\n} from '../utils/Console';\n\nconst {\n getLogApiKeys,\n createLogApiKey,\n fetch,\n tail,\n getDefaultNoiseFilter,\n resolvePayloadLevel,\n deleteLogApiKey: _deleteLogApiKey,\n deleteLogApiKeys: _deleteLogApiKeys,\n} = frodo.cloud.log;\n\nexport async function listLogApiKeys(long = false): Promise<boolean> {\n let outcome = false;\n try {\n const keys = await getLogApiKeys();\n if (long) {\n const table = createTable(['Key Id', 'Name', 'Created at']);\n for (const key of keys) {\n table.push([key.api_key_id, key.name, key.created_at]);\n }\n printMessage(table.toString(), 'data');\n } else {\n for (const key of keys) {\n printMessage(`${key.api_key_id}`, 'data');\n }\n }\n outcome = true;\n } catch (error) {\n printMessage(`Error listing log API keys: ${error}`, 'error');\n }\n return outcome;\n}\n\nexport async function provisionCreds() {\n try {\n let keyName = `frodo-${state.getUsername()}`;\n try {\n const keys = await getLogApiKeys();\n for (const key of keys) {\n if (key.name === keyName) {\n // append current timestamp to name if the named key already exists\n keyName = `${keyName}-${new Date().toISOString()}`;\n }\n }\n try {\n const resp = await createLogApiKey(keyName);\n // if (resp.name !== keyName) {\n // printMessage(\n // `create keys ERROR: could not create log API key ${keyName} [new key name: ${resp.name}]`,\n // 'error'\n // );\n // return null;\n // }\n verboseMessage(\n `Created a new log API key [${keyName}] in ${state.getHost()}`\n );\n return resp;\n } catch (error) {\n printMessage(\n `create keys ERROR: create keys call returned ${error}`,\n 'error'\n );\n return null;\n }\n } catch (error) {\n printMessage(`get keys ERROR: get keys call returned ${error}`, 'error');\n }\n } catch (e) {\n printMessage(`create keys ERROR: create keys data error - ${e}`, 'error');\n return null;\n }\n}\n\nexport async function deleteLogApiKey(keyId) {\n let outcome = false;\n debugMessage(`cli.LogOps.deleteKey: start`);\n showSpinner(`Deleting ${keyId}...`);\n try {\n await _deleteLogApiKey(keyId);\n succeedSpinner(`Deleted ${keyId}.`);\n outcome = true;\n } catch (error) {\n failSpinner(`Error deleting ${keyId}: ${error.message}`);\n }\n debugMessage(`cli.LogOps.deleteKey: end [${outcome}]`);\n return outcome;\n}\n\nexport async function deleteLogApiKeys() {\n let outcome = false;\n debugMessage(`cli.LogOps.deleteKeys: start`);\n showSpinner(`Deleting all keys...`);\n try {\n const response = await _deleteLogApiKeys();\n succeedSpinner(`Deleted ${response.length} keys.`);\n outcome = true;\n } catch (error) {\n failSpinner(`Error deleting keys: ${error.message}`);\n }\n debugMessage(`cli.LogOps.deleteKeys: end [${outcome}]`);\n return outcome;\n}\n\nexport async function tailLogs(\n source: string,\n levels: string[],\n txid: string,\n cookie: string,\n nf: string[]\n) {\n try {\n const logsObject = await tail(source, cookie);\n let filteredLogs = [];\n const noiseFilter = nf == null ? getDefaultNoiseFilter() : nf;\n if (Array.isArray(logsObject.result)) {\n filteredLogs = logsObject.result.filter(\n (el) =>\n !noiseFilter.includes(\n (el.payload as LogEventPayloadSkeleton).logger\n ) &&\n !noiseFilter.includes(el.type) &&\n (levels[0] === 'ALL' || levels.includes(resolvePayloadLevel(el))) &&\n (typeof txid === 'undefined' ||\n txid === null ||\n (el.payload as LogEventPayloadSkeleton).transactionId?.includes(\n txid\n ))\n );\n }\n\n filteredLogs.forEach((e) => {\n printMessage(JSON.stringify(e), 'data');\n });\n\n setTimeout(() => {\n tailLogs(source, levels, txid, logsObject.pagedResultsCookie, nf);\n }, 5000);\n return null;\n } catch (e) {\n printMessage(`tail ERROR: tail data error - ${e}`, 'error');\n return `tail ERROR: tail data error - ${e}`;\n }\n}\n\nexport async function fetchLogs(\n source: string,\n startTs: string,\n endTs: string,\n levels: string[],\n txid: string,\n ffString: string,\n cookie: string,\n nf: string[]\n) {\n try {\n const logsObject = await fetch(source, startTs, endTs, cookie);\n let filteredLogs = [];\n const noiseFilter = nf == null ? getDefaultNoiseFilter() : nf;\n if (Array.isArray(logsObject.result)) {\n filteredLogs = logsObject.result.filter(\n (el) =>\n !noiseFilter.includes(\n (el.payload as LogEventPayloadSkeleton).logger\n ) &&\n !noiseFilter.includes(el.type) &&\n (levels[0] === 'ALL' || levels.includes(resolvePayloadLevel(el))) &&\n (typeof txid === 'undefined' ||\n txid === null ||\n (el.payload as LogEventPayloadSkeleton).transactionId?.includes(\n txid\n ))\n );\n }\n\n filteredLogs.forEach((e) => {\n const log = JSON.stringify(e, null, 2);\n if (ffString) {\n if (log.includes(ffString)) {\n printMessage(log, 'data');\n }\n } else {\n printMessage(log, 'data');\n }\n });\n if (logsObject.pagedResultsCookie != null) {\n await fetchLogs(\n source,\n startTs,\n endTs,\n levels,\n txid,\n ffString,\n logsObject.pagedResultsCookie,\n nf\n );\n }\n return null;\n } catch (e) {\n printMessage(`fetch ERROR: fetch data error - ${e}`, 'error');\n return `fetch ERROR: fetch data error - ${e}`;\n }\n}\n"],"mappings":"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"}
|
package/esm/ops/NodeOps.js
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import { frodo } from '@rockcarver/frodo-lib';
|
|
2
|
+
const {
|
|
3
|
+
getNodeClassification: _getNodeClassification
|
|
4
|
+
} = frodo.authn.node;
|
|
2
5
|
|
|
3
6
|
/**
|
|
4
7
|
* Get node classification
|
|
@@ -6,7 +9,7 @@ import { frodo } from '@rockcarver/frodo-lib';
|
|
|
6
9
|
* @returns {stringp[]} Colored string array of classifications
|
|
7
10
|
*/
|
|
8
11
|
export function getNodeClassification(nodeType) {
|
|
9
|
-
return
|
|
12
|
+
return _getNodeClassification(nodeType).map(it => {
|
|
10
13
|
switch (it) {
|
|
11
14
|
case 'standard':
|
|
12
15
|
return it.toString()['brightGreen'];
|
|
@@ -26,7 +29,7 @@ export function getNodeClassification(nodeType) {
|
|
|
26
29
|
* @returns {stringp[]} Colored string array of classifications
|
|
27
30
|
*/
|
|
28
31
|
export function getNodeClassificationMd(nodeType) {
|
|
29
|
-
return
|
|
32
|
+
return _getNodeClassification(nodeType).map(it => {
|
|
30
33
|
switch (it) {
|
|
31
34
|
case 'standard':
|
|
32
35
|
return `:green_circle: \`${it.toString()}\``;
|
package/esm/ops/NodeOps.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeOps.js","names":["frodo","getNodeClassification","
|
|
1
|
+
{"version":3,"file":"NodeOps.js","names":["frodo","getNodeClassification","_getNodeClassification","authn","node","nodeType","map","it","toString","getNodeClassificationMd","getOneLineDescription","nodeObj","nodeRef","description","_id","_type","join","displayName","getOneLineDescriptionMd","getTableHeaderMd","markdown","getTableRowMd","row"],"sources":["ops/NodeOps.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\nimport type {\n InnerNodeRefSkeletonInterface,\n NodeRefSkeletonInterface,\n NodeSkeleton,\n} from '@rockcarver/frodo-lib/types/api/ApiTypes';\n\nconst { getNodeClassification: _getNodeClassification } = frodo.authn.node;\n\n/**\n * Get node classification\n * @param {string} nodeType node type\n * @returns {stringp[]} Colored string array of classifications\n */\nexport function getNodeClassification(nodeType: string): string[] {\n return _getNodeClassification(nodeType).map((it) => {\n switch (it) {\n case 'standard':\n return it.toString()['brightGreen'];\n\n case 'cloud':\n return it.toString()['brightMagenta'];\n\n case 'custom':\n return it.toString()['brightRed'];\n\n case 'premium':\n return it.toString()['brightYellow'];\n }\n });\n}\n\n/**\n * Get node classification in markdown\n * @param {string} nodeType node type\n * @returns {stringp[]} Colored string array of classifications\n */\nexport function getNodeClassificationMd(nodeType: string): string[] {\n return _getNodeClassification(nodeType).map((it) => {\n switch (it) {\n case 'standard':\n return `:green_circle: \\`${it.toString()}\\``;\n\n case 'cloud':\n return `:purple_circle: \\`${it.toString()}\\``;\n\n case 'custom':\n return `:red_circle: \\`${it.toString()}\\``;\n\n case 'premium':\n return `:yellow_circle: \\`${it.toString()}\\``;\n }\n });\n}\n\n/**\n * Get a one-line description of the node\n * @param {NodeSkeleton} nodeObj node object to describe\n * @param {NodeRefSkeletonInterface | InnerNodeRefSkeletonInterface} nodeRef node reference object\n * @returns {string} a one-line description\n */\nexport function getOneLineDescription(\n nodeObj: NodeSkeleton,\n nodeRef?: NodeRefSkeletonInterface | InnerNodeRefSkeletonInterface\n): string {\n const description = `[${nodeObj._id['brightCyan']}] (${getNodeClassification(\n nodeObj._type._id\n ).join(', ')}) ${nodeObj._type._id}${\n nodeRef ? ' - ' + nodeRef?.displayName : ''\n }`;\n return description;\n}\n\n/**\n * Get a one-line description of the node in markdown\n * @param {NodeSkeleton} nodeObj node object to describe\n * @param {NodeRefSkeletonInterface | InnerNodeRefSkeletonInterface} nodeRef node reference object\n * @returns {string} a one-line description in markdown\n */\nexport function getOneLineDescriptionMd(\n nodeObj: NodeSkeleton,\n nodeRef?: NodeRefSkeletonInterface | InnerNodeRefSkeletonInterface\n): string {\n const description = `${nodeObj._id} (${getNodeClassificationMd(\n nodeObj._type._id\n ).join(', ')}) ${nodeObj._type._id}${\n nodeRef ? ' - ' + nodeRef?.displayName : ''\n }`;\n return description;\n}\n\n/**\n * Get markdown table header\n * @returns {string} markdown table header\n */\nexport function getTableHeaderMd(): string {\n let markdown = '';\n markdown += '| Display Name | Type | Classification | Id |\\n';\n markdown += '| ------------ | ---- | -------------- | ---|';\n return markdown;\n}\n\n/**\n * Get a table-row of the node in markdown\n * @param {NodeSkeleton} nodeObj node object to describe\n * @param {NodeRefSkeletonInterface | InnerNodeRefSkeletonInterface} nodeRef node reference object\n * @returns {string} a table-row of the node in markdown\n */\nexport function getTableRowMd(\n nodeObj: NodeSkeleton,\n nodeRef?: NodeRefSkeletonInterface | InnerNodeRefSkeletonInterface\n): string {\n const row = `| ${nodeRef ? nodeRef.displayName : ''} | ${\n nodeObj._type._id\n } | ${getNodeClassificationMd(nodeObj._type._id).join('<br>')} | \\`${\n nodeObj._id\n }\\` |`;\n return row;\n}\n"],"mappings":"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"}
|
|
@@ -2,12 +2,25 @@ 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 { saveJsonToFile } from '../utils/ExportImportUtils';
|
|
5
|
+
const {
|
|
6
|
+
getTypedFilename,
|
|
7
|
+
titleCase
|
|
8
|
+
} = frodo.utils.impex;
|
|
9
|
+
const {
|
|
10
|
+
getOAuth2Clients,
|
|
11
|
+
exportOAuth2Client,
|
|
12
|
+
exportOAuth2Clients,
|
|
13
|
+
importOAuth2Client,
|
|
14
|
+
importFirstOAuth2Client,
|
|
15
|
+
importOAuth2Clients
|
|
16
|
+
} = frodo.oauth2oidc.client;
|
|
17
|
+
|
|
5
18
|
/**
|
|
6
19
|
* List OAuth2 clients
|
|
7
20
|
*/
|
|
8
21
|
export async function listOAuth2Clients(long = false) {
|
|
9
22
|
try {
|
|
10
|
-
const clients = await
|
|
23
|
+
const clients = await getOAuth2Clients();
|
|
11
24
|
clients.sort((a, b) => a._id.localeCompare(b._id));
|
|
12
25
|
if (long) {
|
|
13
26
|
const table = createTable(['Client Id', 'Status', 'Client Type', 'Grant Types', 'Scopes', 'Redirect URIs'
|
|
@@ -28,7 +41,7 @@ export async function listOAuth2Clients(long = false) {
|
|
|
28
41
|
'urn:ietf:params:oauth:grant-type:jwt-bearer': 'JWT Bearer'
|
|
29
42
|
};
|
|
30
43
|
clients.forEach(client => {
|
|
31
|
-
table.push([client._id, client.coreOAuth2ClientConfig.status === 'Active' ? 'Active'['brightGreen'] : client.coreOAuth2ClientConfig.status
|
|
44
|
+
table.push([client._id, client.coreOAuth2ClientConfig.status === 'Active' ? 'Active'['brightGreen'] : client.coreOAuth2ClientConfig.status['brightRed'], client.coreOAuth2ClientConfig.clientType, client.advancedOAuth2ClientConfig.grantTypes.map(type => grantTypesMap[type]).join('\n'), client.coreOAuth2ClientConfig.scopes.join('\n'), client.coreOAuth2ClientConfig.redirectionUris.join('\n')
|
|
32
45
|
// wordwrap(client.description, 30),
|
|
33
46
|
]);
|
|
34
47
|
});
|
|
@@ -59,11 +72,11 @@ export async function exportOAuth2ClientToFile(clientId, file, options = {
|
|
|
59
72
|
debugMessage(`cli.OAuth2ClientOps.exportOAuth2ClientToFile: begin`);
|
|
60
73
|
showSpinner(`Exporting ${clientId}...`);
|
|
61
74
|
try {
|
|
62
|
-
let fileName =
|
|
75
|
+
let fileName = getTypedFilename(clientId, 'oauth2.app');
|
|
63
76
|
if (file) {
|
|
64
77
|
fileName = file;
|
|
65
78
|
}
|
|
66
|
-
const exportData = await
|
|
79
|
+
const exportData = await exportOAuth2Client(clientId, options);
|
|
67
80
|
saveJsonToFile(exportData, fileName);
|
|
68
81
|
succeedSpinner(`Exported ${clientId} to ${fileName}.`);
|
|
69
82
|
outcome = true;
|
|
@@ -88,11 +101,11 @@ export async function exportOAuth2ClientsToFile(file, options = {
|
|
|
88
101
|
debugMessage(`cli.OAuth2ClientOps.exportOAuth2ClientsToFile: begin`);
|
|
89
102
|
showSpinner(`Exporting all clients...`);
|
|
90
103
|
try {
|
|
91
|
-
let fileName =
|
|
104
|
+
let fileName = getTypedFilename(`all${titleCase(frodo.helper.utils.getRealmName(state.getRealm()))}Applications`, 'oauth2.app');
|
|
92
105
|
if (file) {
|
|
93
106
|
fileName = file;
|
|
94
107
|
}
|
|
95
|
-
const exportData = await
|
|
108
|
+
const exportData = await exportOAuth2Clients(options);
|
|
96
109
|
saveJsonToFile(exportData, fileName);
|
|
97
110
|
succeedSpinner(`Exported all clients to ${fileName}.`);
|
|
98
111
|
outcome = true;
|
|
@@ -116,12 +129,12 @@ export async function exportOAuth2ClientsToFiles(options = {
|
|
|
116
129
|
debugMessage(`cli.OAuth2ClientOps.exportOAuth2ClientsToFiles: begin`);
|
|
117
130
|
const errors = [];
|
|
118
131
|
try {
|
|
119
|
-
const clients = await
|
|
132
|
+
const clients = await getOAuth2Clients();
|
|
120
133
|
createProgressBar(clients.length, 'Exporting clients...');
|
|
121
134
|
for (const client of clients) {
|
|
122
|
-
const file =
|
|
135
|
+
const file = getTypedFilename(client._id, 'oauth2.app');
|
|
123
136
|
try {
|
|
124
|
-
const exportData = await
|
|
137
|
+
const exportData = await exportOAuth2Client(client._id, options);
|
|
125
138
|
saveJsonToFile(exportData, file);
|
|
126
139
|
updateProgressBar(`Exported ${client._id}.`);
|
|
127
140
|
} catch (error) {
|
|
@@ -154,7 +167,7 @@ export async function importOAuth2ClientFromFile(clientId, file, options = {
|
|
|
154
167
|
try {
|
|
155
168
|
const data = fs.readFileSync(file, 'utf8');
|
|
156
169
|
const fileData = JSON.parse(data);
|
|
157
|
-
await
|
|
170
|
+
await importOAuth2Client(clientId, fileData, options);
|
|
158
171
|
outcome = true;
|
|
159
172
|
succeedSpinner(`Imported ${clientId}.`);
|
|
160
173
|
} catch (error) {
|
|
@@ -180,7 +193,7 @@ export async function importFirstOAuth2ClientFromFile(file, options = {
|
|
|
180
193
|
try {
|
|
181
194
|
const data = fs.readFileSync(file, 'utf8');
|
|
182
195
|
const fileData = JSON.parse(data);
|
|
183
|
-
await
|
|
196
|
+
await importFirstOAuth2Client(fileData, options);
|
|
184
197
|
outcome = true;
|
|
185
198
|
succeedSpinner(`Imported ${file}.`);
|
|
186
199
|
} catch (error) {
|
|
@@ -206,7 +219,7 @@ export async function importOAuth2ClientsFromFile(file, options = {
|
|
|
206
219
|
try {
|
|
207
220
|
const data = fs.readFileSync(file, 'utf8');
|
|
208
221
|
const applicationData = JSON.parse(data);
|
|
209
|
-
await
|
|
222
|
+
await importOAuth2Clients(applicationData, options);
|
|
210
223
|
outcome = true;
|
|
211
224
|
succeedSpinner(`Imported ${file}.`);
|
|
212
225
|
} catch (error) {
|
|
@@ -238,7 +251,7 @@ export async function importOAuth2ClientsFromFiles(options = {
|
|
|
238
251
|
const fileData = JSON.parse(data);
|
|
239
252
|
const count = Object.keys(fileData.application).length;
|
|
240
253
|
total += count;
|
|
241
|
-
await
|
|
254
|
+
await importOAuth2Clients(fileData, options);
|
|
242
255
|
updateProgressBar(`Imported ${count} client(s) from ${file}`);
|
|
243
256
|
} catch (error) {
|
|
244
257
|
errors.push(error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OAuth2ClientOps.js","names":["frodo","state","fs","createProgressBar","createTable","debugMessage","failSpinner","printMessage","showSpinner","stopProgressBar","succeedSpinner","updateProgressBar","saveJsonToFile","listOAuth2Clients","long","clients","oauth2oidc","client","getOAuth2Clients","sort","a","b","_id","localeCompare","table","grantTypesMap","authorization_code","client_credentials","refresh_token","password","implicit","forEach","push","coreOAuth2ClientConfig","status","brightRed","clientType","advancedOAuth2ClientConfig","grantTypes","map","type","join","scopes","redirectionUris","toString","error","exportOAuth2ClientToFile","clientId","file","options","useStringArrays","deps","outcome","fileName","utils","impex","getTypedFilename","exportData","exportOAuth2Client","message","exportOAuth2ClientsToFile","titleCase","helper","getRealmName","getRealm","exportOAuth2Clients","exportOAuth2ClientsToFiles","errors","length","importOAuth2ClientFromFile","data","readFileSync","fileData","JSON","parse","importOAuth2Client","importFirstOAuth2ClientFromFile","importFirstOAuth2Client","importOAuth2ClientsFromFile","applicationData","importOAuth2Clients","importOAuth2ClientsFromFiles","names","readdirSync","files","filter","name","toLowerCase","endsWith","total","count","Object","keys","application"],"sources":["ops/OAuth2ClientOps.ts"],"sourcesContent":["import { frodo, state } from '@rockcarver/frodo-lib';\nimport fs from 'fs';\nimport {\n createProgressBar,\n createTable,\n debugMessage,\n failSpinner,\n printMessage,\n showSpinner,\n stopProgressBar,\n succeedSpinner,\n updateProgressBar,\n} from '../utils/Console';\nimport { saveJsonToFile } from '../utils/ExportImportUtils';\nimport type {\n OAuth2ClientExportInterface,\n OAuth2ClientExportOptions,\n OAuth2ClientImportOptions,\n} from '@rockcarver/frodo-lib/types/ops/OAuth2ClientOps';\n\n/**\n * List OAuth2 clients\n */\nexport async function listOAuth2Clients(long = false) {\n try {\n const clients = await frodo.oauth2oidc.client.getOAuth2Clients();\n clients.sort((a, b) => a._id.localeCompare(b._id));\n if (long) {\n const table = createTable([\n 'Client Id',\n 'Status',\n 'Client Type',\n 'Grant Types',\n 'Scopes',\n 'Redirect URIs',\n // 'Description',\n ]);\n const grantTypesMap = {\n authorization_code: 'Authz Code',\n client_credentials: 'Client Creds',\n refresh_token: 'Refresh Token',\n password: 'ROPC',\n 'urn:ietf:params:oauth:grant-type:uma-ticket': 'UMA',\n implicit: 'Implicit',\n 'urn:ietf:params:oauth:grant-type:device_code': 'Device Code',\n 'urn:ietf:params:oauth:grant-type:saml2-bearer': 'SAML2 Bearer',\n 'urn:openid:params:grant-type:ciba': 'CIBA',\n 'urn:ietf:params:oauth:grant-type:token-exchange': 'Token Exchange',\n 'urn:ietf:params:oauth:grant-type:jwt-bearer': 'JWT Bearer',\n };\n clients.forEach((client) => {\n table.push([\n client._id,\n client.coreOAuth2ClientConfig.status === 'Active'\n ? 'Active'['brightGreen']\n : client.coreOAuth2ClientConfig.status.brightRed,\n client.coreOAuth2ClientConfig.clientType,\n client.advancedOAuth2ClientConfig.grantTypes\n .map((type) => grantTypesMap[type])\n .join('\\n'),\n client.coreOAuth2ClientConfig.scopes.join('\\n'),\n client.coreOAuth2ClientConfig.redirectionUris.join('\\n'),\n // wordwrap(client.description, 30),\n ]);\n });\n printMessage(table.toString(), 'data');\n } else {\n clients.forEach((client) => {\n printMessage(`${client._id}`, 'data');\n });\n }\n } catch (error) {\n printMessage(`Error listing applications - ${error}`, 'error');\n }\n}\n\n/**\n * Export OAuth2 client to file\n * @param {string} clientId client id\n * @param {string} file file name\n * @param {OAuth2ClientExportOptions} options export options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportOAuth2ClientToFile(\n clientId: string,\n file: string,\n options: OAuth2ClientExportOptions = { useStringArrays: true, deps: true }\n) {\n let outcome = false;\n debugMessage(`cli.OAuth2ClientOps.exportOAuth2ClientToFile: begin`);\n showSpinner(`Exporting ${clientId}...`);\n try {\n let fileName = frodo.utils.impex.getTypedFilename(clientId, 'oauth2.app');\n if (file) {\n fileName = file;\n }\n const exportData = await frodo.oauth2oidc.client.exportOAuth2Client(\n clientId,\n options\n );\n saveJsonToFile(exportData, fileName);\n succeedSpinner(`Exported ${clientId} to ${fileName}.`);\n outcome = true;\n } catch (error) {\n failSpinner(`Error exporting ${clientId}: ${error.message}`);\n }\n debugMessage(`cli.OAuth2ClientOps.exportOAuth2ClientToFile: end`);\n return outcome;\n}\n\n/**\n * Export all OAuth2 clients to file\n * @param {string} file file name\n * @param {OAuth2ClientExportOptions} options export options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportOAuth2ClientsToFile(\n file: string,\n options: OAuth2ClientExportOptions = { useStringArrays: true, deps: true }\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.OAuth2ClientOps.exportOAuth2ClientsToFile: begin`);\n showSpinner(`Exporting all clients...`);\n try {\n let fileName = frodo.utils.impex.getTypedFilename(\n `all${frodo.utils.impex.titleCase(\n frodo.helper.utils.getRealmName(state.getRealm())\n )}Applications`,\n 'oauth2.app'\n );\n if (file) {\n fileName = file;\n }\n const exportData = await frodo.oauth2oidc.client.exportOAuth2Clients(\n options\n );\n saveJsonToFile(exportData, fileName);\n succeedSpinner(`Exported all clients to ${fileName}.`);\n outcome = true;\n } catch (error) {\n failSpinner(`Error exporting all clients`);\n printMessage(`${error.message}`, 'error');\n }\n debugMessage(\n `cli.OAuth2ClientOps.exportOAuth2ClientsToFile: end [${outcome}]`\n );\n return outcome;\n}\n\n/**\n * Export all OAuth2 clients to separate files\n * @param {OAuth2ClientExportOptions} options export options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportOAuth2ClientsToFiles(\n options: OAuth2ClientExportOptions = { useStringArrays: true, deps: true }\n) {\n debugMessage(`cli.OAuth2ClientOps.exportOAuth2ClientsToFiles: begin`);\n const errors = [];\n try {\n const clients = await frodo.oauth2oidc.client.getOAuth2Clients();\n createProgressBar(clients.length, 'Exporting clients...');\n for (const client of clients) {\n const file = frodo.utils.impex.getTypedFilename(client._id, 'oauth2.app');\n try {\n const exportData: OAuth2ClientExportInterface =\n await frodo.oauth2oidc.client.exportOAuth2Client(client._id, options);\n saveJsonToFile(exportData, file);\n updateProgressBar(`Exported ${client._id}.`);\n } catch (error) {\n errors.push(error);\n updateProgressBar(`Error exporting ${client._id}.`);\n }\n }\n stopProgressBar(`Export complete.`);\n } catch (error) {\n errors.push(error);\n stopProgressBar(`Error exporting client(s) to file(s)`);\n }\n debugMessage(`cli.OAuth2ClientOps.exportOAuth2ClientsToFiles: end`);\n return 0 === errors.length;\n}\n\n/**\n * Import first OAuth2 client from file\n * @param {string} clientId client id\n * @param {string} file file name\n * @param {OAuth2ClientImportOptions} options import options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importOAuth2ClientFromFile(\n clientId: string,\n file: string,\n options: OAuth2ClientImportOptions = { deps: true }\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.OAuth2ClientOps.importOAuth2ClientFromFile: begin`);\n showSpinner(`Importing ${clientId}...`);\n try {\n const data = fs.readFileSync(file, 'utf8');\n const fileData = JSON.parse(data);\n await frodo.oauth2oidc.client.importOAuth2Client(\n clientId,\n fileData,\n options\n );\n outcome = true;\n succeedSpinner(`Imported ${clientId}.`);\n } catch (error) {\n failSpinner(`Error importing ${clientId}.`);\n printMessage(error, 'error');\n }\n debugMessage(`cli.OAuth2ClientOps.importOAuth2ClientFromFile: end`);\n return outcome;\n}\n\n/**\n * Import first OAuth2 client from file\n * @param {string} file file name\n * @param {OAuth2ClientImportOptions} options import options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importFirstOAuth2ClientFromFile(\n file: string,\n options: OAuth2ClientImportOptions = { deps: true }\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.OAuth2ClientOps.importFirstOAuth2ClientFromFile: begin`);\n showSpinner(`Importing ${file}...`);\n try {\n const data = fs.readFileSync(file, 'utf8');\n const fileData = JSON.parse(data);\n await frodo.oauth2oidc.client.importFirstOAuth2Client(fileData, options);\n outcome = true;\n succeedSpinner(`Imported ${file}.`);\n } catch (error) {\n failSpinner(`Error importing ${file}.`);\n printMessage(error, 'error');\n }\n debugMessage(`cli.OAuth2ClientOps.importFirstOAuth2ClientFromFile: end`);\n return outcome;\n}\n\n/**\n * Import OAuth2 clients from file\n * @param {string} file file name\n * @param {OAuth2ClientImportOptions} options import options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importOAuth2ClientsFromFile(\n file: string,\n options: OAuth2ClientImportOptions = { deps: true }\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.OAuth2ClientOps.importOAuth2ClientsFromFile: begin`);\n showSpinner(`Importing ${file}...`);\n try {\n const data = fs.readFileSync(file, 'utf8');\n const applicationData = JSON.parse(data);\n await frodo.oauth2oidc.client.importOAuth2Clients(applicationData, options);\n outcome = true;\n succeedSpinner(`Imported ${file}.`);\n } catch (error) {\n failSpinner(`Error importing ${file}.`);\n printMessage(error, 'error');\n }\n debugMessage(`cli.OAuth2ClientOps.importOAuth2ClientsFromFile: end`);\n return outcome;\n}\n\n/**\n * Import OAuth2 clients from files\n * @param {OAuth2ClientImportOptions} options import options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importOAuth2ClientsFromFiles(\n options: OAuth2ClientImportOptions = { deps: true }\n): Promise<boolean> {\n const errors = [];\n try {\n debugMessage(`cli.OAuth2ClientOps.importOAuth2ClientsFromFiles: begin`);\n const names = fs.readdirSync('.');\n const files = names.filter((name) =>\n name.toLowerCase().endsWith('.oauth2.app.json')\n );\n createProgressBar(files.length, 'Importing clients...');\n let total = 0;\n for (const file of files) {\n try {\n const data = fs.readFileSync(file, 'utf8');\n const fileData: OAuth2ClientExportInterface = JSON.parse(data);\n const count = Object.keys(fileData.application).length;\n total += count;\n await frodo.oauth2oidc.client.importOAuth2Clients(fileData, options);\n updateProgressBar(`Imported ${count} client(s) from ${file}`);\n } catch (error) {\n errors.push(error);\n updateProgressBar(`Error importing client(s) from ${file}`);\n printMessage(error, 'error');\n }\n }\n stopProgressBar(\n `Finished importing ${total} client(s) from ${files.length} file(s).`\n );\n } catch (error) {\n errors.push(error);\n stopProgressBar(`Error importing client(s) from file(s).`);\n printMessage(error, 'error');\n }\n debugMessage(`cli.OAuth2ClientOps.importOAuth2ClientsFromFiles: end`);\n return 0 === errors.length;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"OAuth2ClientOps.js","names":["frodo","state","fs","createProgressBar","createTable","debugMessage","failSpinner","printMessage","showSpinner","stopProgressBar","succeedSpinner","updateProgressBar","saveJsonToFile","getTypedFilename","titleCase","utils","impex","getOAuth2Clients","exportOAuth2Client","exportOAuth2Clients","importOAuth2Client","importFirstOAuth2Client","importOAuth2Clients","oauth2oidc","client","listOAuth2Clients","long","clients","sort","a","b","_id","localeCompare","table","grantTypesMap","authorization_code","client_credentials","refresh_token","password","implicit","forEach","push","coreOAuth2ClientConfig","status","clientType","advancedOAuth2ClientConfig","grantTypes","map","type","join","scopes","redirectionUris","toString","error","exportOAuth2ClientToFile","clientId","file","options","useStringArrays","deps","outcome","fileName","exportData","message","exportOAuth2ClientsToFile","helper","getRealmName","getRealm","exportOAuth2ClientsToFiles","errors","length","importOAuth2ClientFromFile","data","readFileSync","fileData","JSON","parse","importFirstOAuth2ClientFromFile","importOAuth2ClientsFromFile","applicationData","importOAuth2ClientsFromFiles","names","readdirSync","files","filter","name","toLowerCase","endsWith","total","count","Object","keys","application"],"sources":["ops/OAuth2ClientOps.ts"],"sourcesContent":["import { frodo, state } from '@rockcarver/frodo-lib';\nimport fs from 'fs';\nimport {\n createProgressBar,\n createTable,\n debugMessage,\n failSpinner,\n printMessage,\n showSpinner,\n stopProgressBar,\n succeedSpinner,\n updateProgressBar,\n} from '../utils/Console';\nimport { saveJsonToFile } from '../utils/ExportImportUtils';\nimport type {\n OAuth2ClientExportInterface,\n OAuth2ClientExportOptions,\n OAuth2ClientImportOptions,\n} from '@rockcarver/frodo-lib/types/ops/OAuth2ClientOps';\nimport { ReadableStrings } from '@rockcarver/frodo-lib/types/api/ApiTypes';\n\nconst { getTypedFilename, titleCase } = frodo.utils.impex;\nconst {\n getOAuth2Clients,\n exportOAuth2Client,\n exportOAuth2Clients,\n importOAuth2Client,\n importFirstOAuth2Client,\n importOAuth2Clients,\n} = frodo.oauth2oidc.client;\n\n/**\n * List OAuth2 clients\n */\nexport async function listOAuth2Clients(long = false) {\n try {\n const clients = await getOAuth2Clients();\n clients.sort((a, b) => a._id.localeCompare(b._id));\n if (long) {\n const table = createTable([\n 'Client Id',\n 'Status',\n 'Client Type',\n 'Grant Types',\n 'Scopes',\n 'Redirect URIs',\n // 'Description',\n ]);\n const grantTypesMap = {\n authorization_code: 'Authz Code',\n client_credentials: 'Client Creds',\n refresh_token: 'Refresh Token',\n password: 'ROPC',\n 'urn:ietf:params:oauth:grant-type:uma-ticket': 'UMA',\n implicit: 'Implicit',\n 'urn:ietf:params:oauth:grant-type:device_code': 'Device Code',\n 'urn:ietf:params:oauth:grant-type:saml2-bearer': 'SAML2 Bearer',\n 'urn:openid:params:grant-type:ciba': 'CIBA',\n 'urn:ietf:params:oauth:grant-type:token-exchange': 'Token Exchange',\n 'urn:ietf:params:oauth:grant-type:jwt-bearer': 'JWT Bearer',\n };\n clients.forEach((client) => {\n table.push([\n client._id,\n client.coreOAuth2ClientConfig.status === 'Active'\n ? 'Active'['brightGreen']\n : (client.coreOAuth2ClientConfig.status as string)['brightRed'],\n client.coreOAuth2ClientConfig.clientType,\n (client.advancedOAuth2ClientConfig.grantTypes as ReadableStrings)\n .map((type) => grantTypesMap[type])\n .join('\\n'),\n (client.coreOAuth2ClientConfig.scopes as ReadableStrings).join('\\n'),\n (client.coreOAuth2ClientConfig.redirectionUris as string[]).join(\n '\\n'\n ),\n // wordwrap(client.description, 30),\n ]);\n });\n printMessage(table.toString(), 'data');\n } else {\n clients.forEach((client) => {\n printMessage(`${client._id}`, 'data');\n });\n }\n } catch (error) {\n printMessage(`Error listing applications - ${error}`, 'error');\n }\n}\n\n/**\n * Export OAuth2 client to file\n * @param {string} clientId client id\n * @param {string} file file name\n * @param {OAuth2ClientExportOptions} options export options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportOAuth2ClientToFile(\n clientId: string,\n file: string,\n options: OAuth2ClientExportOptions = { useStringArrays: true, deps: true }\n) {\n let outcome = false;\n debugMessage(`cli.OAuth2ClientOps.exportOAuth2ClientToFile: begin`);\n showSpinner(`Exporting ${clientId}...`);\n try {\n let fileName = getTypedFilename(clientId, 'oauth2.app');\n if (file) {\n fileName = file;\n }\n const exportData = await exportOAuth2Client(clientId, options);\n saveJsonToFile(exportData, fileName);\n succeedSpinner(`Exported ${clientId} to ${fileName}.`);\n outcome = true;\n } catch (error) {\n failSpinner(`Error exporting ${clientId}: ${error.message}`);\n }\n debugMessage(`cli.OAuth2ClientOps.exportOAuth2ClientToFile: end`);\n return outcome;\n}\n\n/**\n * Export all OAuth2 clients to file\n * @param {string} file file name\n * @param {OAuth2ClientExportOptions} options export options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportOAuth2ClientsToFile(\n file: string,\n options: OAuth2ClientExportOptions = { useStringArrays: true, deps: true }\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.OAuth2ClientOps.exportOAuth2ClientsToFile: begin`);\n showSpinner(`Exporting all clients...`);\n try {\n let fileName = getTypedFilename(\n `all${titleCase(\n frodo.helper.utils.getRealmName(state.getRealm())\n )}Applications`,\n 'oauth2.app'\n );\n if (file) {\n fileName = file;\n }\n const exportData = await exportOAuth2Clients(options);\n saveJsonToFile(exportData, fileName);\n succeedSpinner(`Exported all clients to ${fileName}.`);\n outcome = true;\n } catch (error) {\n failSpinner(`Error exporting all clients`);\n printMessage(`${error.message}`, 'error');\n }\n debugMessage(\n `cli.OAuth2ClientOps.exportOAuth2ClientsToFile: end [${outcome}]`\n );\n return outcome;\n}\n\n/**\n * Export all OAuth2 clients to separate files\n * @param {OAuth2ClientExportOptions} options export options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportOAuth2ClientsToFiles(\n options: OAuth2ClientExportOptions = { useStringArrays: true, deps: true }\n) {\n debugMessage(`cli.OAuth2ClientOps.exportOAuth2ClientsToFiles: begin`);\n const errors = [];\n try {\n const clients = await getOAuth2Clients();\n createProgressBar(clients.length, 'Exporting clients...');\n for (const client of clients) {\n const file = getTypedFilename(client._id, 'oauth2.app');\n try {\n const exportData: OAuth2ClientExportInterface =\n await exportOAuth2Client(client._id, options);\n saveJsonToFile(exportData, file);\n updateProgressBar(`Exported ${client._id}.`);\n } catch (error) {\n errors.push(error);\n updateProgressBar(`Error exporting ${client._id}.`);\n }\n }\n stopProgressBar(`Export complete.`);\n } catch (error) {\n errors.push(error);\n stopProgressBar(`Error exporting client(s) to file(s)`);\n }\n debugMessage(`cli.OAuth2ClientOps.exportOAuth2ClientsToFiles: end`);\n return 0 === errors.length;\n}\n\n/**\n * Import first OAuth2 client from file\n * @param {string} clientId client id\n * @param {string} file file name\n * @param {OAuth2ClientImportOptions} options import options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importOAuth2ClientFromFile(\n clientId: string,\n file: string,\n options: OAuth2ClientImportOptions = { deps: true }\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.OAuth2ClientOps.importOAuth2ClientFromFile: begin`);\n showSpinner(`Importing ${clientId}...`);\n try {\n const data = fs.readFileSync(file, 'utf8');\n const fileData = JSON.parse(data);\n await importOAuth2Client(clientId, fileData, options);\n outcome = true;\n succeedSpinner(`Imported ${clientId}.`);\n } catch (error) {\n failSpinner(`Error importing ${clientId}.`);\n printMessage(error, 'error');\n }\n debugMessage(`cli.OAuth2ClientOps.importOAuth2ClientFromFile: end`);\n return outcome;\n}\n\n/**\n * Import first OAuth2 client from file\n * @param {string} file file name\n * @param {OAuth2ClientImportOptions} options import options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importFirstOAuth2ClientFromFile(\n file: string,\n options: OAuth2ClientImportOptions = { deps: true }\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.OAuth2ClientOps.importFirstOAuth2ClientFromFile: begin`);\n showSpinner(`Importing ${file}...`);\n try {\n const data = fs.readFileSync(file, 'utf8');\n const fileData = JSON.parse(data);\n await importFirstOAuth2Client(fileData, options);\n outcome = true;\n succeedSpinner(`Imported ${file}.`);\n } catch (error) {\n failSpinner(`Error importing ${file}.`);\n printMessage(error, 'error');\n }\n debugMessage(`cli.OAuth2ClientOps.importFirstOAuth2ClientFromFile: end`);\n return outcome;\n}\n\n/**\n * Import OAuth2 clients from file\n * @param {string} file file name\n * @param {OAuth2ClientImportOptions} options import options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importOAuth2ClientsFromFile(\n file: string,\n options: OAuth2ClientImportOptions = { deps: true }\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.OAuth2ClientOps.importOAuth2ClientsFromFile: begin`);\n showSpinner(`Importing ${file}...`);\n try {\n const data = fs.readFileSync(file, 'utf8');\n const applicationData = JSON.parse(data);\n await importOAuth2Clients(applicationData, options);\n outcome = true;\n succeedSpinner(`Imported ${file}.`);\n } catch (error) {\n failSpinner(`Error importing ${file}.`);\n printMessage(error, 'error');\n }\n debugMessage(`cli.OAuth2ClientOps.importOAuth2ClientsFromFile: end`);\n return outcome;\n}\n\n/**\n * Import OAuth2 clients from files\n * @param {OAuth2ClientImportOptions} options import options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importOAuth2ClientsFromFiles(\n options: OAuth2ClientImportOptions = { deps: true }\n): Promise<boolean> {\n const errors = [];\n try {\n debugMessage(`cli.OAuth2ClientOps.importOAuth2ClientsFromFiles: begin`);\n const names = fs.readdirSync('.');\n const files = names.filter((name) =>\n name.toLowerCase().endsWith('.oauth2.app.json')\n );\n createProgressBar(files.length, 'Importing clients...');\n let total = 0;\n for (const file of files) {\n try {\n const data = fs.readFileSync(file, 'utf8');\n const fileData: OAuth2ClientExportInterface = JSON.parse(data);\n const count = Object.keys(fileData.application).length;\n total += count;\n await importOAuth2Clients(fileData, options);\n updateProgressBar(`Imported ${count} client(s) from ${file}`);\n } catch (error) {\n errors.push(error);\n updateProgressBar(`Error importing client(s) from ${file}`);\n printMessage(error, 'error');\n }\n }\n stopProgressBar(\n `Finished importing ${total} client(s) from ${files.length} file(s).`\n );\n } catch (error) {\n errors.push(error);\n stopProgressBar(`Error importing client(s) from file(s).`);\n printMessage(error, 'error');\n }\n debugMessage(`cli.OAuth2ClientOps.importOAuth2ClientsFromFiles: end`);\n return 0 === errors.length;\n}\n"],"mappings":"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"}
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import { frodo } from '@rockcarver/frodo-lib';
|
|
2
2
|
import { printMessage } from '../utils/Console';
|
|
3
|
+
const {
|
|
4
|
+
queryAllManagedObjectsByType
|
|
5
|
+
} = frodo.idm.config;
|
|
6
|
+
const {
|
|
7
|
+
getRealmManagedOrganization
|
|
8
|
+
} = frodo.idm.organization;
|
|
3
9
|
|
|
4
10
|
// unfinished work
|
|
5
11
|
export async function listOrganizationsTopDown() {
|
|
@@ -15,10 +21,10 @@ export async function listOrganizationsTopDown() {
|
|
|
15
21
|
do {
|
|
16
22
|
try {
|
|
17
23
|
// eslint-disable-next-line no-await-in-loop
|
|
18
|
-
result = await
|
|
24
|
+
result = await queryAllManagedObjectsByType(getRealmManagedOrganization(), ['name', 'parent/*/name', 'children/*/name'], result.pagedResultsCookie);
|
|
19
25
|
} catch (queryAllManagedObjectsByTypeError) {
|
|
20
26
|
printMessage(queryAllManagedObjectsByTypeError, 'error');
|
|
21
|
-
printMessage(`Error querying ${
|
|
27
|
+
printMessage(`Error querying ${getRealmManagedOrganization()} objects: ${queryAllManagedObjectsByTypeError}`, 'error');
|
|
22
28
|
}
|
|
23
29
|
orgs.concat(result.result);
|
|
24
30
|
printMessage('.', 'text', false);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OrganizationOps.js","names":["frodo","printMessage","
|
|
1
|
+
{"version":3,"file":"OrganizationOps.js","names":["frodo","printMessage","queryAllManagedObjectsByType","idm","config","getRealmManagedOrganization","organization","listOrganizationsTopDown","orgs","result","resultCount","pagedResultsCookie","totalPagedResultsPolicy","totalPagedResults","remainingPagedResults","queryAllManagedObjectsByTypeError","concat"],"sources":["ops/OrganizationOps.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\nimport { printMessage } from '../utils/Console';\n\nconst { queryAllManagedObjectsByType } = frodo.idm.config;\nconst { getRealmManagedOrganization } = frodo.idm.organization;\n\n// unfinished work\nexport async function listOrganizationsTopDown() {\n const orgs = [];\n let result = {\n result: [],\n resultCount: 0,\n pagedResultsCookie: null,\n totalPagedResultsPolicy: 'NONE',\n totalPagedResults: -1,\n remainingPagedResults: -1,\n };\n do {\n try {\n // eslint-disable-next-line no-await-in-loop\n result = await queryAllManagedObjectsByType(\n getRealmManagedOrganization(),\n ['name', 'parent/*/name', 'children/*/name'],\n result.pagedResultsCookie\n );\n } catch (queryAllManagedObjectsByTypeError) {\n printMessage(queryAllManagedObjectsByTypeError, 'error');\n printMessage(\n `Error querying ${getRealmManagedOrganization()} objects: ${queryAllManagedObjectsByTypeError}`,\n 'error'\n );\n }\n orgs.concat(result.result);\n printMessage('.', 'text', false);\n } while (result.pagedResultsCookie);\n return orgs;\n}\n"],"mappings":"AAAA,SAASA,KAAK,QAAQ,uBAAuB;AAC7C,SAASC,YAAY,QAAQ,kBAAkB;AAE/C,MAAM;EAAEC;AAA6B,CAAC,GAAGF,KAAK,CAACG,GAAG,CAACC,MAAM;AACzD,MAAM;EAAEC;AAA4B,CAAC,GAAGL,KAAK,CAACG,GAAG,CAACG,YAAY;;AAE9D;AACA,OAAO,eAAeC,wBAAwBA,CAAA,EAAG;EAC/C,MAAMC,IAAI,GAAG,EAAE;EACf,IAAIC,MAAM,GAAG;IACXA,MAAM,EAAE,EAAE;IACVC,WAAW,EAAE,CAAC;IACdC,kBAAkB,EAAE,IAAI;IACxBC,uBAAuB,EAAE,MAAM;IAC/BC,iBAAiB,EAAE,CAAC,CAAC;IACrBC,qBAAqB,EAAE,CAAC;EAC1B,CAAC;EACD,GAAG;IACD,IAAI;MACF;MACAL,MAAM,GAAG,MAAMP,4BAA4B,CACzCG,2BAA2B,CAAC,CAAC,EAC7B,CAAC,MAAM,EAAE,eAAe,EAAE,iBAAiB,CAAC,EAC5CI,MAAM,CAACE,kBACT,CAAC;IACH,CAAC,CAAC,OAAOI,iCAAiC,EAAE;MAC1Cd,YAAY,CAACc,iCAAiC,EAAE,OAAO,CAAC;MACxDd,YAAY,CACT,kBAAiBI,2BAA2B,CAAC,CAAE,aAAYU,iCAAkC,EAAC,EAC/F,OACF,CAAC;IACH;IACAP,IAAI,CAACQ,MAAM,CAACP,MAAM,CAACA,MAAM,CAAC;IAC1BR,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC;EAClC,CAAC,QAAQQ,MAAM,CAACE,kBAAkB;EAClC,OAAOH,IAAI;AACb"}
|
package/esm/ops/PolicyOps.js
CHANGED
|
@@ -2,6 +2,21 @@ import { frodo, state } from '@rockcarver/frodo-lib';
|
|
|
2
2
|
import fs from 'fs';
|
|
3
3
|
import { createObjectTable, createProgressBar, debugMessage, failSpinner, printMessage, showSpinner, stopProgressBar, succeedSpinner, updateProgressBar } from '../utils/Console';
|
|
4
4
|
import { getTypedFilename, saveJsonToFile, titleCase } from '../utils/ExportImportUtils';
|
|
5
|
+
const {
|
|
6
|
+
getRealmName
|
|
7
|
+
} = frodo.helper.utils;
|
|
8
|
+
const {
|
|
9
|
+
getPolicies,
|
|
10
|
+
getPoliciesByPolicySet,
|
|
11
|
+
getPolicy,
|
|
12
|
+
exportPolicy,
|
|
13
|
+
exportPolicies,
|
|
14
|
+
exportPoliciesByPolicySet,
|
|
15
|
+
importPolicy,
|
|
16
|
+
importFirstPolicy,
|
|
17
|
+
importPolicies
|
|
18
|
+
} = frodo.authz.policy;
|
|
19
|
+
|
|
5
20
|
/**
|
|
6
21
|
* List policies
|
|
7
22
|
* @param {boolean} long list with details
|
|
@@ -10,7 +25,7 @@ import { getTypedFilename, saveJsonToFile, titleCase } from '../utils/ExportImpo
|
|
|
10
25
|
export async function listPolicies(long = false) {
|
|
11
26
|
let outcome = false;
|
|
12
27
|
try {
|
|
13
|
-
const policies = await
|
|
28
|
+
const policies = await getPolicies();
|
|
14
29
|
policies.sort((a, b) => a._id.localeCompare(b._id));
|
|
15
30
|
for (const policy of policies) {
|
|
16
31
|
if (!long) {
|
|
@@ -34,7 +49,7 @@ export async function listPolicies(long = false) {
|
|
|
34
49
|
export async function listPoliciesByPolicySet(policySetId, long = false) {
|
|
35
50
|
let outcome = false;
|
|
36
51
|
try {
|
|
37
|
-
const policies = await
|
|
52
|
+
const policies = await getPoliciesByPolicySet(policySetId);
|
|
38
53
|
policies.sort((a, b) => a._id.localeCompare(b._id));
|
|
39
54
|
for (const policy of policies) {
|
|
40
55
|
if (!long) {
|
|
@@ -57,7 +72,7 @@ export async function listPoliciesByPolicySet(policySetId, long = false) {
|
|
|
57
72
|
*/
|
|
58
73
|
export async function describePolicy(policyId, json = false) {
|
|
59
74
|
let outcome = false;
|
|
60
|
-
const policySet = await
|
|
75
|
+
const policySet = await getPolicy(policyId);
|
|
61
76
|
outcome = true;
|
|
62
77
|
if (json) {
|
|
63
78
|
printMessage(policySet, 'data');
|
|
@@ -80,7 +95,7 @@ export async function deletePolicy(policyId) {
|
|
|
80
95
|
const errors = [];
|
|
81
96
|
try {
|
|
82
97
|
debugMessage(`Deleting policy ${policyId}`);
|
|
83
|
-
await
|
|
98
|
+
await deletePolicy(policyId);
|
|
84
99
|
} catch (error) {
|
|
85
100
|
printMessage(`Error deleting policy ${policyId}: ${error}`, 'error');
|
|
86
101
|
}
|
|
@@ -107,7 +122,7 @@ export async function deletePolicies() {
|
|
|
107
122
|
try {
|
|
108
123
|
showSpinner(`Retrieving all policies...`);
|
|
109
124
|
try {
|
|
110
|
-
policies = await
|
|
125
|
+
policies = await getPolicies();
|
|
111
126
|
succeedSpinner(`Found ${policies.length} policies.`);
|
|
112
127
|
} catch (error) {
|
|
113
128
|
error.message = `Error retrieving all policies: ${error.message}`;
|
|
@@ -119,7 +134,7 @@ export async function deletePolicies() {
|
|
|
119
134
|
const policyId = policy._id;
|
|
120
135
|
try {
|
|
121
136
|
debugMessage(`Deleting policy ${policyId}`);
|
|
122
|
-
await
|
|
137
|
+
await deletePolicy(policyId);
|
|
123
138
|
updateProgressBar(`Deleted ${policyId}`);
|
|
124
139
|
} catch (error) {
|
|
125
140
|
error.message = `Error deleting policy ${policyId}: ${error}`;
|
|
@@ -156,7 +171,7 @@ export async function deletePoliciesByPolicySet(policySetId) {
|
|
|
156
171
|
try {
|
|
157
172
|
showSpinner(`Retrieving all policies from policy set ${policySetId}...`);
|
|
158
173
|
try {
|
|
159
|
-
policies = await
|
|
174
|
+
policies = await getPoliciesByPolicySet(policySetId);
|
|
160
175
|
succeedSpinner(`Found ${policies.length} policies in policy set ${policySetId}.`);
|
|
161
176
|
} catch (error) {
|
|
162
177
|
error.message = `Error retrieving all policies from policy set ${policySetId}: ${error.message}`;
|
|
@@ -168,7 +183,7 @@ export async function deletePoliciesByPolicySet(policySetId) {
|
|
|
168
183
|
const policyId = policy._id;
|
|
169
184
|
try {
|
|
170
185
|
debugMessage(`Deleting policy ${policyId}`);
|
|
171
|
-
await
|
|
186
|
+
await deletePolicy(policyId);
|
|
172
187
|
updateProgressBar(`Deleted ${policyId}`);
|
|
173
188
|
} catch (error) {
|
|
174
189
|
error.message = `Error deleting policy ${policyId} from policy set ${policySetId}: ${error}`;
|
|
@@ -212,7 +227,7 @@ export async function exportPolicyToFile(policyId, file, options = {
|
|
|
212
227
|
if (file) {
|
|
213
228
|
fileName = file;
|
|
214
229
|
}
|
|
215
|
-
const exportData = await
|
|
230
|
+
const exportData = await exportPolicy(policyId, options);
|
|
216
231
|
saveJsonToFile(exportData, fileName);
|
|
217
232
|
succeedSpinner(`Exported ${policyId} to ${fileName}.`);
|
|
218
233
|
outcome = true;
|
|
@@ -238,11 +253,11 @@ export async function exportPoliciesToFile(file, options = {
|
|
|
238
253
|
debugMessage(`cli.PolicyOps.exportPoliciesToFile: begin`);
|
|
239
254
|
showSpinner(`Exporting all policy sets...`);
|
|
240
255
|
try {
|
|
241
|
-
let fileName = getTypedFilename(`all${titleCase(
|
|
256
|
+
let fileName = getTypedFilename(`all${titleCase(getRealmName(state.getRealm()))}Policies`, 'policy.authz');
|
|
242
257
|
if (file) {
|
|
243
258
|
fileName = file;
|
|
244
259
|
}
|
|
245
|
-
const exportData = await
|
|
260
|
+
const exportData = await exportPolicies(options);
|
|
246
261
|
saveJsonToFile(exportData, fileName);
|
|
247
262
|
succeedSpinner(`Exported all policy sets to ${fileName}.`);
|
|
248
263
|
outcome = true;
|
|
@@ -269,11 +284,11 @@ export async function exportPoliciesByPolicySetToFile(policySetId, file, options
|
|
|
269
284
|
debugMessage(`cli.PolicyOps.exportPoliciesToFile: begin`);
|
|
270
285
|
showSpinner(`Exporting all policy sets...`);
|
|
271
286
|
try {
|
|
272
|
-
let fileName = getTypedFilename(`all${titleCase(
|
|
287
|
+
let fileName = getTypedFilename(`all${titleCase(getRealmName(state.getRealm())) + titleCase(policySetId)}Policies`, 'policy.authz');
|
|
273
288
|
if (file) {
|
|
274
289
|
fileName = file;
|
|
275
290
|
}
|
|
276
|
-
const exportData = await
|
|
291
|
+
const exportData = await exportPoliciesByPolicySet(policySetId, options);
|
|
277
292
|
saveJsonToFile(exportData, fileName);
|
|
278
293
|
succeedSpinner(`Exported all policy sets to ${fileName}.`);
|
|
279
294
|
outcome = true;
|
|
@@ -297,12 +312,12 @@ export async function exportPoliciesToFiles(options = {
|
|
|
297
312
|
debugMessage(`cli.PolicyOps.exportPoliciesToFiles: begin`);
|
|
298
313
|
const errors = [];
|
|
299
314
|
try {
|
|
300
|
-
const policies = await
|
|
315
|
+
const policies = await getPolicies();
|
|
301
316
|
createProgressBar(policies.length, 'Exporting policy sets...');
|
|
302
317
|
for (const policy of policies) {
|
|
303
318
|
const file = getTypedFilename(policy._id, 'policy.authz');
|
|
304
319
|
try {
|
|
305
|
-
const exportData = await
|
|
320
|
+
const exportData = await exportPolicy(policy._id, options);
|
|
306
321
|
saveJsonToFile(exportData, file);
|
|
307
322
|
updateProgressBar(`Exported ${policy._id}.`);
|
|
308
323
|
} catch (error) {
|
|
@@ -332,12 +347,12 @@ export async function exportPoliciesByPolicySetToFiles(policySetId, options = {
|
|
|
332
347
|
debugMessage(`cli.PolicyOps.exportPoliciesToFiles: begin`);
|
|
333
348
|
const errors = [];
|
|
334
349
|
try {
|
|
335
|
-
const policies = await
|
|
350
|
+
const policies = await getPoliciesByPolicySet(policySetId);
|
|
336
351
|
createProgressBar(policies.length, `Exporting policies in policy set ${policySetId}...`);
|
|
337
352
|
for (const policy of policies) {
|
|
338
353
|
const file = getTypedFilename(policy._id, 'policy.authz');
|
|
339
354
|
try {
|
|
340
|
-
const exportData = await
|
|
355
|
+
const exportData = await exportPolicy(policy._id, options);
|
|
341
356
|
saveJsonToFile(exportData, file);
|
|
342
357
|
updateProgressBar(`Exported ${policy._id}.`);
|
|
343
358
|
} catch (error) {
|
|
@@ -371,7 +386,7 @@ export async function importPolicyFromFile(policyId, file, options = {
|
|
|
371
386
|
try {
|
|
372
387
|
const data = fs.readFileSync(file, 'utf8');
|
|
373
388
|
const fileData = JSON.parse(data);
|
|
374
|
-
await
|
|
389
|
+
await importPolicy(policyId, fileData, options);
|
|
375
390
|
outcome = true;
|
|
376
391
|
succeedSpinner(`Imported ${policyId}.`);
|
|
377
392
|
} catch (error) {
|
|
@@ -398,7 +413,7 @@ export async function importFirstPolicyFromFile(file, options = {
|
|
|
398
413
|
try {
|
|
399
414
|
const data = fs.readFileSync(file, 'utf8');
|
|
400
415
|
const fileData = JSON.parse(data);
|
|
401
|
-
await
|
|
416
|
+
await importFirstPolicy(fileData, options);
|
|
402
417
|
outcome = true;
|
|
403
418
|
succeedSpinner(`Imported ${file}.`);
|
|
404
419
|
} catch (error) {
|
|
@@ -425,7 +440,7 @@ export async function importPoliciesFromFile(file, options = {
|
|
|
425
440
|
try {
|
|
426
441
|
const data = fs.readFileSync(file, 'utf8');
|
|
427
442
|
const fileData = JSON.parse(data);
|
|
428
|
-
await
|
|
443
|
+
await importPolicies(fileData, options);
|
|
429
444
|
outcome = true;
|
|
430
445
|
succeedSpinner(`Imported ${file}${options.policySetName ? ' into policy set ' + options.policySetName : '.'}`);
|
|
431
446
|
} catch (error) {
|
|
@@ -458,7 +473,7 @@ export async function importPoliciesFromFiles(options = {
|
|
|
458
473
|
const fileData = JSON.parse(data);
|
|
459
474
|
const count = Object.keys(fileData.policyset).length;
|
|
460
475
|
total += count;
|
|
461
|
-
await
|
|
476
|
+
await importPolicies(fileData, options);
|
|
462
477
|
updateProgressBar(`Imported ${count} policies from ${file}`);
|
|
463
478
|
} catch (error) {
|
|
464
479
|
errors.push(error);
|