@rockcarver/frodo-lib 1.1.0 → 1.1.2-0
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/build.zip +0 -0
- package/cjs/api/AgentApi.js +4 -4
- package/cjs/api/AgentApi.js.map +1 -1
- package/cjs/api/AgentApi.test.js +3 -3
- package/cjs/api/AgentApi.test.js.map +1 -1
- package/cjs/api/AuthenticateApi.js +3 -3
- package/cjs/api/AuthenticateApi.js.map +1 -1
- package/cjs/api/AuthenticateApi.test.js +2 -2
- package/cjs/api/AuthenticateApi.test.js.map +1 -1
- package/cjs/api/BaseApi.js +4 -4
- package/cjs/api/BaseApi.js.map +1 -1
- package/cjs/api/CirclesOfTrustApi.js +3 -3
- package/cjs/api/CirclesOfTrustApi.js.map +1 -1
- package/cjs/api/IdmConfigApi.js +3 -3
- package/cjs/api/IdmConfigApi.js.map +1 -1
- package/cjs/api/IdmSystemApi.js +3 -3
- package/cjs/api/IdmSystemApi.js.map +1 -1
- package/cjs/api/ManagedObjectApi.js +3 -3
- package/cjs/api/ManagedObjectApi.js.map +1 -1
- package/cjs/api/NodeApi.js +3 -3
- package/cjs/api/NodeApi.js.map +1 -1
- package/cjs/api/NodeApi.test.js +2 -2
- package/cjs/api/NodeApi.test.js.map +1 -1
- package/cjs/api/OAuth2ClientApi.js +3 -3
- package/cjs/api/OAuth2ClientApi.js.map +1 -1
- package/cjs/api/OAuth2OIDCApi.js +4 -4
- package/cjs/api/OAuth2OIDCApi.js.map +1 -1
- package/cjs/api/OAuth2OIDCApi.test.js +4 -4
- package/cjs/api/OAuth2OIDCApi.test.js.map +1 -1
- package/cjs/api/OAuth2ProviderApi.js +3 -3
- package/cjs/api/OAuth2ProviderApi.js.map +1 -1
- package/cjs/api/PoliciesApi.js +3 -3
- package/cjs/api/PoliciesApi.js.map +1 -1
- package/cjs/api/PoliciesApi.test.js +4 -4
- package/cjs/api/PoliciesApi.test.js.map +1 -1
- package/cjs/api/PolicySetApi.js +4 -4
- package/cjs/api/PolicySetApi.js.map +1 -1
- package/cjs/api/PolicySetApi.test.js +3 -3
- package/cjs/api/PolicySetApi.test.js.map +1 -1
- package/cjs/api/RealmApi.js +3 -3
- package/cjs/api/RealmApi.js.map +1 -1
- package/cjs/api/ResourceTypesApi.js +3 -3
- package/cjs/api/ResourceTypesApi.js.map +1 -1
- package/cjs/api/ResourceTypesApi.test.js +2 -2
- package/cjs/api/ResourceTypesApi.test.js.map +1 -1
- package/cjs/api/Saml2Api.js +3 -3
- package/cjs/api/Saml2Api.js.map +1 -1
- package/cjs/api/ScriptApi.js +3 -3
- package/cjs/api/ScriptApi.js.map +1 -1
- package/cjs/api/ServerInfoApi.js +2 -2
- package/cjs/api/ServerInfoApi.js.map +1 -1
- package/cjs/api/ServiceApi.js +3 -3
- package/cjs/api/ServiceApi.js.map +1 -1
- package/cjs/api/SocialIdentityProvidersApi.js +3 -3
- package/cjs/api/SocialIdentityProvidersApi.js.map +1 -1
- package/cjs/api/TreeApi.js +3 -3
- package/cjs/api/TreeApi.js.map +1 -1
- package/cjs/api/TreeApi.test.js +2 -2
- package/cjs/api/TreeApi.test.js.map +1 -1
- package/cjs/api/cloud/AdminFederationProvidersApi.js +3 -3
- package/cjs/api/cloud/AdminFederationProvidersApi.js.map +1 -1
- package/cjs/api/cloud/EnvInfoApi.js +3 -3
- package/cjs/api/cloud/EnvInfoApi.js.map +1 -1
- package/cjs/api/cloud/FeatureApi.js +3 -3
- package/cjs/api/cloud/FeatureApi.js.map +1 -1
- package/cjs/api/cloud/LogApi.js +3 -3
- package/cjs/api/cloud/LogApi.js.map +1 -1
- package/cjs/api/cloud/SecretsApi.js +4 -4
- package/cjs/api/cloud/SecretsApi.js.map +1 -1
- package/cjs/api/cloud/SecretsApi.test.js +2 -2
- package/cjs/api/cloud/SecretsApi.test.js.map +1 -1
- package/cjs/api/cloud/StartupApi.js +3 -3
- package/cjs/api/cloud/StartupApi.js.map +1 -1
- package/cjs/api/cloud/StartupApi.test.js +1 -1
- package/cjs/api/cloud/StartupApi.test.js.map +1 -1
- package/cjs/api/cloud/VariablesApi.js +4 -4
- package/cjs/api/cloud/VariablesApi.js.map +1 -1
- package/cjs/api/cloud/VariablesApi.test.js +2 -2
- package/cjs/api/cloud/VariablesApi.test.js.map +1 -1
- package/cjs/api/utils/ApiUtils.js +1 -1
- package/cjs/api/utils/ApiUtils.js.map +1 -1
- package/cjs/api/utils/ApiUtils.test.js +2 -2
- package/cjs/api/utils/ApiUtils.test.js.map +1 -1
- package/cjs/ext/axios-curlirize/curlirize.js +1 -1
- package/cjs/ext/axios-curlirize/curlirize.js.map +1 -1
- package/cjs/index.js +49 -49
- package/cjs/ops/AdminOps.js +8 -8
- package/cjs/ops/AdminOps.js.map +1 -1
- package/cjs/ops/AgentOps.js +3 -3
- package/cjs/ops/AgentOps.js.map +1 -1
- package/cjs/ops/AgentOps.test.js +3 -3
- package/cjs/ops/AgentOps.test.js.map +1 -1
- package/cjs/ops/AuthenticateOps.js +12 -12
- package/cjs/ops/AuthenticateOps.js.map +1 -1
- package/cjs/ops/AuthenticateOps.test.js +2 -2
- package/cjs/ops/AuthenticateOps.test.js.map +1 -1
- package/cjs/ops/CirclesOfTrustOps.js +3 -3
- package/cjs/ops/CirclesOfTrustOps.js.map +1 -1
- package/cjs/ops/ConnectionProfileOps.js +8 -8
- package/cjs/ops/ConnectionProfileOps.js.map +1 -1
- package/cjs/ops/ConnectionProfileOps.test.js +2 -2
- package/cjs/ops/ConnectionProfileOps.test.js.map +1 -1
- package/cjs/ops/EmailTemplateOps.js +1 -1
- package/cjs/ops/EmailTemplateOps.js.map +1 -1
- package/cjs/ops/EmailTemplateOps.test.js +2 -2
- package/cjs/ops/EmailTemplateOps.test.js.map +1 -1
- package/cjs/ops/IdmOps.js +2 -2
- package/cjs/ops/IdmOps.js.map +1 -1
- package/cjs/ops/IdmOps.test.js +2 -2
- package/cjs/ops/IdmOps.test.js.map +1 -1
- package/cjs/ops/IdpOps.js +6 -6
- package/cjs/ops/IdpOps.js.map +1 -1
- package/cjs/ops/IdpOps.test.js +2 -2
- package/cjs/ops/IdpOps.test.js.map +1 -1
- package/cjs/ops/InfoOps.js +6 -6
- package/cjs/ops/InfoOps.js.map +1 -1
- package/cjs/ops/JoseOps.test.js +4 -4
- package/cjs/ops/JoseOps.test.js.map +1 -1
- package/cjs/ops/JourneyOps.js +17 -17
- package/cjs/ops/JourneyOps.js.map +1 -1
- package/cjs/ops/JourneyOps.test.js +4 -4
- package/cjs/ops/JourneyOps.test.js.map +1 -1
- package/cjs/ops/ManagedObjectOps.js +1 -1
- package/cjs/ops/ManagedObjectOps.js.map +1 -1
- package/cjs/ops/NodeOps.js +7 -7
- package/cjs/ops/NodeOps.js.map +1 -1
- package/cjs/ops/OAuth2ClientOps.js +6 -6
- package/cjs/ops/OAuth2ClientOps.js.map +1 -1
- package/cjs/ops/OAuth2ClientOps.test.js +3 -3
- package/cjs/ops/OAuth2ClientOps.test.js.map +1 -1
- package/cjs/ops/OAuth2ProviderOps.js +1 -1
- package/cjs/ops/OAuth2ProviderOps.js.map +1 -1
- package/cjs/ops/OrganizationOps.js +3 -3
- package/cjs/ops/OrganizationOps.js.map +1 -1
- package/cjs/ops/PolicyOps.js +8 -8
- package/cjs/ops/PolicyOps.js.map +1 -1
- package/cjs/ops/PolicyOps.test.js +6 -6
- package/cjs/ops/PolicyOps.test.js.map +1 -1
- package/cjs/ops/PolicySetOps.js +6 -6
- package/cjs/ops/PolicySetOps.js.map +1 -1
- package/cjs/ops/PolicySetOps.test.js +4 -4
- package/cjs/ops/PolicySetOps.test.js.map +1 -1
- package/cjs/ops/RealmOps.js +2 -2
- package/cjs/ops/RealmOps.js.map +1 -1
- package/cjs/ops/ResourceTypeOps.js +6 -6
- package/cjs/ops/ResourceTypeOps.js.map +1 -1
- package/cjs/ops/ResourceTypeOps.test.js +2 -2
- package/cjs/ops/ResourceTypeOps.test.js.map +1 -1
- package/cjs/ops/Saml2Ops.js +7 -7
- package/cjs/ops/Saml2Ops.js.map +1 -1
- package/cjs/ops/Saml2Ops.test.js +6 -6
- package/cjs/ops/Saml2Ops.test.js.map +1 -1
- package/cjs/ops/ScriptOps.js +5 -5
- package/cjs/ops/ScriptOps.js.map +1 -1
- package/cjs/ops/ScriptOps.test.js +2 -2
- package/cjs/ops/ScriptOps.test.js.map +1 -1
- package/cjs/ops/ServiceOps.js +2 -2
- package/cjs/ops/ServiceOps.js.map +1 -1
- package/cjs/ops/ThemeOps.js +3 -3
- package/cjs/ops/ThemeOps.js.map +1 -1
- package/cjs/ops/ThemeOps.test.js +3 -3
- package/cjs/ops/ThemeOps.test.js.map +1 -1
- package/cjs/ops/cloud/AdminFederationOps.js +4 -4
- package/cjs/ops/cloud/AdminFederationOps.js.map +1 -1
- package/cjs/ops/cloud/FeatureOps.js +2 -2
- package/cjs/ops/cloud/FeatureOps.js.map +1 -1
- package/cjs/ops/cloud/LogOps.js +1 -1
- package/cjs/ops/cloud/LogOps.js.map +1 -1
- package/cjs/ops/cloud/SecretsOps.js +4 -4
- package/cjs/ops/cloud/SecretsOps.js.map +1 -1
- package/cjs/ops/cloud/ServiceAccountOps.js +3 -3
- package/cjs/ops/cloud/ServiceAccountOps.js.map +1 -1
- package/cjs/ops/cloud/ServiceAccountOps.test.js +3 -3
- package/cjs/ops/cloud/ServiceAccountOps.test.js.map +1 -1
- package/cjs/ops/cloud/StartupOps.js +4 -4
- package/cjs/ops/cloud/StartupOps.js.map +1 -1
- package/cjs/ops/cloud/VariablesOps.js +5 -5
- package/cjs/ops/cloud/VariablesOps.js.map +1 -1
- package/cjs/ops/utils/Console.js +1 -1
- package/cjs/ops/utils/Console.js.map +1 -1
- package/cjs/ops/utils/DataProtection.js +3 -3
- package/cjs/ops/utils/DataProtection.js.map +1 -1
- package/cjs/ops/utils/DataProtection.test.js +1 -1
- package/cjs/ops/utils/DataProtection.test.js.map +1 -1
- package/cjs/ops/utils/ExportImportUtils.js +4 -4
- package/cjs/ops/utils/ExportImportUtils.js.map +1 -1
- package/cjs/ops/utils/ExportImportUtils.test.js +1 -1
- package/cjs/ops/utils/ExportImportUtils.test.js.map +1 -1
- package/cjs/ops/utils/OpsUtils.js +3 -3
- package/cjs/ops/utils/OpsUtils.js.map +1 -1
- package/cjs/ops/utils/OpsUtils.test.js +3 -3
- package/cjs/ops/utils/OpsUtils.test.js.map +1 -1
- package/cjs/ops/utils/ValidationUtils.js +2 -2
- package/cjs/ops/utils/ValidationUtils.js.map +1 -1
- package/cjs/ops/utils/ValidationUtils.test.js +1 -1
- package/cjs/ops/utils/ValidationUtils.test.js.map +1 -1
- package/cjs/ops/utils/Version.js +1 -1
- package/cjs/ops/utils/Version.js.map +1 -1
- package/cjs/ops/utils/Version.test.js +1 -1
- package/cjs/ops/utils/Version.test.js.map +1 -1
- package/cjs/ops/utils/Wordwrap.test.js +1 -1
- package/cjs/ops/utils/Wordwrap.test.js.map +1 -1
- package/cjs/shared/State.test.js +1 -1
- package/cjs/shared/State.test.js.map +1 -1
- package/cjs/test/mocks/ForgeRockApiMockEngine.js +2 -2
- package/cjs/test/mocks/ForgeRockApiMockEngine.js.map +1 -1
- package/cjs/utils/AutoSetupPolly.js +2 -2
- package/cjs/utils/AutoSetupPolly.js.map +1 -1
- package/cjs/utils/SetupPollyForFrodoLib.js +1 -1
- package/cjs/utils/SetupPollyForFrodoLib.js.map +1 -1
- package/esm/api/AgentApi.js +4 -4
- package/esm/api/AgentApi.js.map +1 -1
- package/esm/api/AgentApi.test.js +3 -3
- package/esm/api/AgentApi.test.js.map +1 -1
- package/esm/api/AuthenticateApi.js +3 -3
- package/esm/api/AuthenticateApi.js.map +1 -1
- package/esm/api/AuthenticateApi.test.js +2 -4
- package/esm/api/AuthenticateApi.test.js.map +1 -1
- package/esm/api/BaseApi.js +4 -4
- package/esm/api/BaseApi.js.map +1 -1
- package/esm/api/CirclesOfTrustApi.js +3 -3
- package/esm/api/CirclesOfTrustApi.js.map +1 -1
- package/esm/api/IdmConfigApi.js +3 -3
- package/esm/api/IdmConfigApi.js.map +1 -1
- package/esm/api/IdmSystemApi.js +3 -3
- package/esm/api/IdmSystemApi.js.map +1 -1
- package/esm/api/ManagedObjectApi.js +3 -3
- package/esm/api/ManagedObjectApi.js.map +1 -1
- package/esm/api/NodeApi.js +3 -3
- package/esm/api/NodeApi.js.map +1 -1
- package/esm/api/NodeApi.test.js +2 -2
- package/esm/api/NodeApi.test.js.map +1 -1
- package/esm/api/OAuth2ClientApi.js +3 -3
- package/esm/api/OAuth2ClientApi.js.map +1 -1
- package/esm/api/OAuth2OIDCApi.js +4 -4
- package/esm/api/OAuth2OIDCApi.js.map +1 -1
- package/esm/api/OAuth2OIDCApi.test.js +4 -4
- package/esm/api/OAuth2OIDCApi.test.js.map +1 -1
- package/esm/api/OAuth2ProviderApi.js +3 -3
- package/esm/api/OAuth2ProviderApi.js.map +1 -1
- package/esm/api/PoliciesApi.js +3 -3
- package/esm/api/PoliciesApi.js.map +1 -1
- package/esm/api/PoliciesApi.test.js +4 -4
- package/esm/api/PoliciesApi.test.js.map +1 -1
- package/esm/api/PolicySetApi.js +4 -4
- package/esm/api/PolicySetApi.js.map +1 -1
- package/esm/api/PolicySetApi.test.js +3 -3
- package/esm/api/PolicySetApi.test.js.map +1 -1
- package/esm/api/RealmApi.js +3 -3
- package/esm/api/RealmApi.js.map +1 -1
- package/esm/api/ResourceTypesApi.js +3 -3
- package/esm/api/ResourceTypesApi.js.map +1 -1
- package/esm/api/ResourceTypesApi.test.js +2 -2
- package/esm/api/ResourceTypesApi.test.js.map +1 -1
- package/esm/api/Saml2Api.js +3 -3
- package/esm/api/Saml2Api.js.map +1 -1
- package/esm/api/ScriptApi.js +3 -3
- package/esm/api/ScriptApi.js.map +1 -1
- package/esm/api/ServerInfoApi.js +2 -2
- package/esm/api/ServerInfoApi.js.map +1 -1
- package/esm/api/ServiceApi.js +3 -3
- package/esm/api/ServiceApi.js.map +1 -1
- package/esm/api/SocialIdentityProvidersApi.js +3 -3
- package/esm/api/SocialIdentityProvidersApi.js.map +1 -1
- package/esm/api/TreeApi.js +3 -3
- package/esm/api/TreeApi.js.map +1 -1
- package/esm/api/TreeApi.test.js +2 -2
- package/esm/api/TreeApi.test.js.map +1 -1
- package/esm/api/cloud/AdminFederationProvidersApi.js +3 -3
- package/esm/api/cloud/AdminFederationProvidersApi.js.map +1 -1
- package/esm/api/cloud/EnvInfoApi.js +3 -3
- package/esm/api/cloud/EnvInfoApi.js.map +1 -1
- package/esm/api/cloud/FeatureApi.js +3 -3
- package/esm/api/cloud/FeatureApi.js.map +1 -1
- package/esm/api/cloud/LogApi.js +3 -3
- package/esm/api/cloud/LogApi.js.map +1 -1
- package/esm/api/cloud/SecretsApi.js +4 -4
- package/esm/api/cloud/SecretsApi.js.map +1 -1
- package/esm/api/cloud/SecretsApi.test.js +2 -2
- package/esm/api/cloud/SecretsApi.test.js.map +1 -1
- package/esm/api/cloud/StartupApi.js +3 -3
- package/esm/api/cloud/StartupApi.js.map +1 -1
- package/esm/api/cloud/StartupApi.test.js +1 -1
- package/esm/api/cloud/StartupApi.test.js.map +1 -1
- package/esm/api/cloud/VariablesApi.js +4 -4
- package/esm/api/cloud/VariablesApi.js.map +1 -1
- package/esm/api/cloud/VariablesApi.test.js +2 -2
- package/esm/api/cloud/VariablesApi.test.js.map +1 -1
- package/esm/api/utils/ApiUtils.js +1 -2
- package/esm/api/utils/ApiUtils.js.map +1 -1
- package/esm/api/utils/ApiUtils.test.js +2 -2
- package/esm/api/utils/ApiUtils.test.js.map +1 -1
- package/esm/ext/axios-curlirize/curlirize.js +1 -1
- package/esm/ext/axios-curlirize/curlirize.js.map +1 -1
- package/esm/index.js +49 -54
- package/esm/index.js.map +1 -1
- package/esm/ops/AdminOps.js +8 -8
- package/esm/ops/AdminOps.js.map +1 -1
- package/esm/ops/AgentOps.js +3 -3
- package/esm/ops/AgentOps.js.map +1 -1
- package/esm/ops/AgentOps.test.js +3 -3
- package/esm/ops/AgentOps.test.js.map +1 -1
- package/esm/ops/AuthenticateOps.js +12 -12
- package/esm/ops/AuthenticateOps.js.map +1 -1
- package/esm/ops/AuthenticateOps.test.js +2 -4
- package/esm/ops/AuthenticateOps.test.js.map +1 -1
- package/esm/ops/CirclesOfTrustOps.js +3 -5
- package/esm/ops/CirclesOfTrustOps.js.map +1 -1
- package/esm/ops/ConnectionProfileOps.js +8 -8
- package/esm/ops/ConnectionProfileOps.js.map +1 -1
- package/esm/ops/ConnectionProfileOps.test.js +2 -2
- package/esm/ops/ConnectionProfileOps.test.js.map +1 -1
- package/esm/ops/EmailTemplateOps.js +1 -2
- package/esm/ops/EmailTemplateOps.js.map +1 -1
- package/esm/ops/EmailTemplateOps.test.js +2 -2
- package/esm/ops/EmailTemplateOps.test.js.map +1 -1
- package/esm/ops/IdmOps.js +2 -3
- package/esm/ops/IdmOps.js.map +1 -1
- package/esm/ops/IdmOps.test.js +2 -2
- package/esm/ops/IdmOps.test.js.map +1 -1
- package/esm/ops/IdpOps.js +8 -8
- package/esm/ops/IdpOps.js.map +1 -1
- package/esm/ops/IdpOps.test.js +2 -2
- package/esm/ops/IdpOps.test.js.map +1 -1
- package/esm/ops/InfoOps.js +6 -6
- package/esm/ops/InfoOps.js.map +1 -1
- package/esm/ops/JoseOps.test.js +4 -4
- package/esm/ops/JoseOps.test.js.map +1 -1
- package/esm/ops/JourneyOps.js +17 -17
- package/esm/ops/JourneyOps.js.map +1 -1
- package/esm/ops/JourneyOps.test.js +4 -4
- package/esm/ops/JourneyOps.test.js.map +1 -1
- package/esm/ops/ManagedObjectOps.js +1 -2
- package/esm/ops/ManagedObjectOps.js.map +1 -1
- package/esm/ops/NodeOps.js +7 -7
- package/esm/ops/NodeOps.js.map +1 -1
- package/esm/ops/OAuth2ClientOps.js +7 -10
- package/esm/ops/OAuth2ClientOps.js.map +1 -1
- package/esm/ops/OAuth2ClientOps.test.js +3 -3
- package/esm/ops/OAuth2ClientOps.test.js.map +1 -1
- package/esm/ops/OAuth2ProviderOps.js +1 -2
- package/esm/ops/OAuth2ProviderOps.js.map +1 -1
- package/esm/ops/OrganizationOps.js +3 -4
- package/esm/ops/OrganizationOps.js.map +1 -1
- package/esm/ops/PolicyOps.js +9 -12
- package/esm/ops/PolicyOps.js.map +1 -1
- package/esm/ops/PolicyOps.test.js +6 -6
- package/esm/ops/PolicyOps.test.js.map +1 -1
- package/esm/ops/PolicySetOps.js +7 -10
- package/esm/ops/PolicySetOps.js.map +1 -1
- package/esm/ops/PolicySetOps.test.js +4 -4
- package/esm/ops/PolicySetOps.test.js.map +1 -1
- package/esm/ops/RealmOps.js +2 -3
- package/esm/ops/RealmOps.js.map +1 -1
- package/esm/ops/ResourceTypeOps.js +4 -4
- package/esm/ops/ResourceTypeOps.js.map +1 -1
- package/esm/ops/ResourceTypeOps.test.js +2 -2
- package/esm/ops/ResourceTypeOps.test.js.map +1 -1
- package/esm/ops/Saml2Ops.js +7 -7
- package/esm/ops/Saml2Ops.js.map +1 -1
- package/esm/ops/Saml2Ops.test.js +6 -6
- package/esm/ops/Saml2Ops.test.js.map +1 -1
- package/esm/ops/ScriptOps.js +5 -5
- package/esm/ops/ScriptOps.js.map +1 -1
- package/esm/ops/ScriptOps.test.js +2 -2
- package/esm/ops/ScriptOps.test.js.map +1 -1
- package/esm/ops/ServiceOps.js +2 -2
- package/esm/ops/ServiceOps.js.map +1 -1
- package/esm/ops/ThemeOps.js +3 -3
- package/esm/ops/ThemeOps.js.map +1 -1
- package/esm/ops/ThemeOps.test.js +3 -3
- package/esm/ops/ThemeOps.test.js.map +1 -1
- package/esm/ops/cloud/AdminFederationOps.js +4 -4
- package/esm/ops/cloud/AdminFederationOps.js.map +1 -1
- package/esm/ops/cloud/FeatureOps.js +2 -2
- package/esm/ops/cloud/FeatureOps.js.map +1 -1
- package/esm/ops/cloud/LogOps.js +1 -3
- package/esm/ops/cloud/LogOps.js.map +1 -1
- package/esm/ops/cloud/SecretsOps.js +4 -5
- package/esm/ops/cloud/SecretsOps.js.map +1 -1
- package/esm/ops/cloud/ServiceAccountOps.js +3 -3
- package/esm/ops/cloud/ServiceAccountOps.js.map +1 -1
- package/esm/ops/cloud/ServiceAccountOps.test.js +3 -5
- package/esm/ops/cloud/ServiceAccountOps.test.js.map +1 -1
- package/esm/ops/cloud/StartupOps.js +4 -6
- package/esm/ops/cloud/StartupOps.js.map +1 -1
- package/esm/ops/cloud/VariablesOps.js +5 -6
- package/esm/ops/cloud/VariablesOps.js.map +1 -1
- package/esm/ops/utils/Console.js +1 -2
- package/esm/ops/utils/Console.js.map +1 -1
- package/esm/ops/utils/DataProtection.js +3 -3
- package/esm/ops/utils/DataProtection.js.map +1 -1
- package/esm/ops/utils/DataProtection.test.js +1 -1
- package/esm/ops/utils/DataProtection.test.js.map +1 -1
- package/esm/ops/utils/ExportImportUtils.js +4 -4
- package/esm/ops/utils/ExportImportUtils.js.map +1 -1
- package/esm/ops/utils/ExportImportUtils.test.js +1 -3
- package/esm/ops/utils/ExportImportUtils.test.js.map +1 -1
- package/esm/ops/utils/OpsUtils.js +3 -3
- package/esm/ops/utils/OpsUtils.js.map +1 -1
- package/esm/ops/utils/OpsUtils.test.js +3 -3
- package/esm/ops/utils/OpsUtils.test.js.map +1 -1
- package/esm/ops/utils/ValidationUtils.js +2 -2
- package/esm/ops/utils/ValidationUtils.js.map +1 -1
- package/esm/ops/utils/ValidationUtils.test.js +1 -1
- package/esm/ops/utils/ValidationUtils.test.js.map +1 -1
- package/esm/ops/utils/Version.js +1 -1
- package/esm/ops/utils/Version.js.map +1 -1
- package/esm/ops/utils/Version.test.js +1 -1
- package/esm/ops/utils/Version.test.js.map +1 -1
- package/esm/ops/utils/Wordwrap.test.js +1 -1
- package/esm/ops/utils/Wordwrap.test.js.map +1 -1
- package/esm/shared/State.test.js +1 -1
- package/esm/shared/State.test.js.map +1 -1
- package/esm/test/mocks/ForgeRockApiMockEngine.js +2 -2
- package/esm/test/mocks/ForgeRockApiMockEngine.js.map +1 -1
- package/esm/utils/AutoSetupPolly.js +2 -2
- package/esm/utils/AutoSetupPolly.js.map +1 -1
- package/esm/utils/SetupPollyForFrodoLib.js +1 -1
- package/esm/utils/SetupPollyForFrodoLib.js.map +1 -1
- package/package.json +2 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApiUtils.js","names":["state","getRealmPath","realm","startsWith","substring","elements","concat","split","filter","element","realmPath","join","getCurrentRealmPath","getRealm","getCurrentRealmName","components","realmName","length","getRealmName","getTenantURL","tenant","parsedUrl","URL","protocol","host","deleteDeepByKey","object","obj","keys","Object","key","indexOf","parseUrl","href","m","match","r","hash","hostname","origin","pathname","port","search","username","password","searchParam","toUpperCase","query","substr","vars","i","pair","decodeURIComponent","parseQueryString"],"sources":["../../../src/api/utils/ApiUtils.ts"],"sourcesContent":["import * as state from '../../shared/State';\n\n/**\n * Get realm path\n * @param {string} realm realm\n * @returns {string} a CREST-compliant realm path, e.g. /realms/root/realms/alpha\n */\nexport function getRealmPath(realm: string) {\n if (realm.startsWith('/')) {\n realm = realm.substring(1);\n }\n const elements = ['root'].concat(\n realm.split('/').filter((element) => element !== '')\n );\n const realmPath = `/realms/${elements.join('/realms/')}`;\n return realmPath;\n}\n\n/**\n * Get current realm path\n * @returns {string} a CREST-compliant realm path, e.g. /realms/root/realms/alpha\n */\nexport function getCurrentRealmPath() {\n return getRealmPath(state.getRealm());\n}\n\n/**\n * Get current realm name\n * @returns {String} name of the current realm. /alpha -> alpha\n */\nexport function getCurrentRealmName() {\n const realm = state.getRealm();\n const components = realm.split('/');\n let realmName = '/';\n if (components.length > 0 && realmName !== realm) {\n realmName = components[components.length - 1];\n }\n return realmName;\n}\n\n/**\n * Get current realm name\n * @param {String} realm realm\n * @returns {String} name of the realm. /alpha -> alpha\n */\nexport function getRealmName(realm) {\n const components = realm.split('/');\n let realmName = '/';\n if (components.length > 0 && realmName !== realm) {\n realmName = components[components.length - 1];\n }\n return realmName;\n}\n\n/**\n * Get tenant base URL\n * @param {String} tenant tenant URL with path and query params\n * @returns {String} tenant base URL without path and query params\n */\nexport function getTenantURL(tenant) {\n const parsedUrl = new URL(tenant);\n return `${parsedUrl.protocol}//${parsedUrl.host}`;\n}\n\n/**\n * Deep delete keys and their values from an input object. If a key in object contains substring, the key an its value is deleted.\n * @param {Object} object input object that needs keys removed\n * @param {String} substring substring to search for in key\n * @returns the modified object without the matching keys and their values\n */\nexport function deleteDeepByKey(object, substring) {\n const obj = object;\n const keys = Object.keys(obj);\n for (const key of keys) {\n if (key.indexOf(substring) > 0) {\n delete obj[key];\n } else if (Object(obj[key]) === obj[key]) {\n obj[key] = deleteDeepByKey(obj[key], substring);\n }\n }\n return obj;\n}\n\n/*\n * Parse a URL into its components and make them easily accessible by name\n *\n * Use in a Scripte Decision Node Script as follows:\n * var referer = parseUrl(requestHeaders.get(\"referer\").get(0));\n * var origin = referer.origin;\n *\n * e.g.: https://openam-volker-dev.forgeblocks.com/am/XUI/?realm=/bravo&authIndexType=service&authIndexValue=InitiateOwnerClaim#/\n * {\n * hash: '#/',\n * host: 'openam-volker-dev.forgeblocks.com',\n * hostname: 'openam-volker-dev.forgeblocks.com',\n * href: 'https://openam-volker-dev.forgeblocks.com/am/XUI/?realm=/bravo&authIndexType=service&authIndexValue=InitiateOwnerClaim#/',\n * origin: 'https://openam-volker-dev.forgeblocks.com',\n * pathname: '/am/XUI/',\n * port: '',\n * protocol: 'https',\n * search: '?realm=/bravo&authIndexType=service&authIndexValue=InitiateOwnerClaim',\n * username: '',\n * password: '',\n * searchParam: {\n * realm: '/bravo',\n * authIndexType: 'service',\n * authIndexValue: 'InitiateOwnerClaim'\n * }\n * }\n */\nexport function parseUrl(href) {\n const m = href.match(\n /^(([^:/?#]+):?(?:\\/\\/((?:([^/?#:]*):([^/?#:]*)@)?([^/?#:]*)(?::([^/?#:]*))?)))?([^?#]*)(\\?[^#]*)?(#.*)?$/\n ),\n r = {\n hash: m[10] || '', // #/\n host: m[3] || '', // openam-volker-dev.forgeblocks.com\n hostname: m[6] || '', // openam-volker-dev.forgeblocks.com\n href: m[0] || '', // https://openam-volker-dev.forgeblocks.com/am/XUI/?realm=/bravo&authIndexType=service&authIndexValue=InitiateOwnerClaim#/\n origin: m[1] || '', // https://openam-volker-dev.forgeblocks.com\n pathname: m[8] || (m[1] ? '/' : ''), // /am/XUI/\n port: m[7] || '', //\n protocol: m[2] || '', // https\n search: m[9] || '', // ?realm=/bravo&authIndexType=service&authIndexValue=InitiateOwnerClaim\n username: m[4] || '', //\n password: m[5] || '', //\n searchParam: {}, // { realm: '/bravo',\n // authIndexType: 'service',\n // authIndexValue: 'InitiateOwnerClaim' }\n };\n if (r.protocol.length == 2) {\n r.protocol = 'file:///' + r.protocol.toUpperCase();\n r.origin = r.protocol + '//' + r.host;\n }\n if (r.search.length > 2) {\n const query = r.search.indexOf('?') === 0 ? r.search.substr(1) : r.search;\n const vars = query.split('&');\n for (let i = 0; i < vars.length; i++) {\n const pair = vars[i].split('=');\n r.searchParam[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n }\n }\n r.href = r.origin + r.pathname + r.search + r.hash;\n return r;\n}\n\nexport function parseQueryString(query: string) {\n const vars = query.split('&');\n const searchParam = {};\n for (let i = 0; i < vars.length; i++) {\n const pair = vars[i].split('=');\n searchParam[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n }\n return searchParam;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ApiUtils.js","names":["state","getRealmPath","realm","startsWith","substring","elements","concat","split","filter","element","realmPath","join","getCurrentRealmPath","getRealm","getCurrentRealmName","components","realmName","length","getRealmName","getTenantURL","tenant","parsedUrl","URL","protocol","host","deleteDeepByKey","object","obj","keys","Object","key","indexOf","parseUrl","href","m","match","r","hash","hostname","origin","pathname","port","search","username","password","searchParam","toUpperCase","query","substr","vars","i","pair","decodeURIComponent","parseQueryString"],"sources":["../../../src/api/utils/ApiUtils.ts"],"sourcesContent":["import * as state from '../../shared/State';\n\n/**\n * Get realm path\n * @param {string} realm realm\n * @returns {string} a CREST-compliant realm path, e.g. /realms/root/realms/alpha\n */\nexport function getRealmPath(realm: string) {\n if (realm.startsWith('/')) {\n realm = realm.substring(1);\n }\n const elements = ['root'].concat(\n realm.split('/').filter((element) => element !== '')\n );\n const realmPath = `/realms/${elements.join('/realms/')}`;\n return realmPath;\n}\n\n/**\n * Get current realm path\n * @returns {string} a CREST-compliant realm path, e.g. /realms/root/realms/alpha\n */\nexport function getCurrentRealmPath() {\n return getRealmPath(state.getRealm());\n}\n\n/**\n * Get current realm name\n * @returns {String} name of the current realm. /alpha -> alpha\n */\nexport function getCurrentRealmName() {\n const realm = state.getRealm();\n const components = realm.split('/');\n let realmName = '/';\n if (components.length > 0 && realmName !== realm) {\n realmName = components[components.length - 1];\n }\n return realmName;\n}\n\n/**\n * Get current realm name\n * @param {String} realm realm\n * @returns {String} name of the realm. /alpha -> alpha\n */\nexport function getRealmName(realm) {\n const components = realm.split('/');\n let realmName = '/';\n if (components.length > 0 && realmName !== realm) {\n realmName = components[components.length - 1];\n }\n return realmName;\n}\n\n/**\n * Get tenant base URL\n * @param {String} tenant tenant URL with path and query params\n * @returns {String} tenant base URL without path and query params\n */\nexport function getTenantURL(tenant) {\n const parsedUrl = new URL(tenant);\n return `${parsedUrl.protocol}//${parsedUrl.host}`;\n}\n\n/**\n * Deep delete keys and their values from an input object. If a key in object contains substring, the key an its value is deleted.\n * @param {Object} object input object that needs keys removed\n * @param {String} substring substring to search for in key\n * @returns the modified object without the matching keys and their values\n */\nexport function deleteDeepByKey(object, substring) {\n const obj = object;\n const keys = Object.keys(obj);\n for (const key of keys) {\n if (key.indexOf(substring) > 0) {\n delete obj[key];\n } else if (Object(obj[key]) === obj[key]) {\n obj[key] = deleteDeepByKey(obj[key], substring);\n }\n }\n return obj;\n}\n\n/*\n * Parse a URL into its components and make them easily accessible by name\n *\n * Use in a Scripte Decision Node Script as follows:\n * var referer = parseUrl(requestHeaders.get(\"referer\").get(0));\n * var origin = referer.origin;\n *\n * e.g.: https://openam-volker-dev.forgeblocks.com/am/XUI/?realm=/bravo&authIndexType=service&authIndexValue=InitiateOwnerClaim#/\n * {\n * hash: '#/',\n * host: 'openam-volker-dev.forgeblocks.com',\n * hostname: 'openam-volker-dev.forgeblocks.com',\n * href: 'https://openam-volker-dev.forgeblocks.com/am/XUI/?realm=/bravo&authIndexType=service&authIndexValue=InitiateOwnerClaim#/',\n * origin: 'https://openam-volker-dev.forgeblocks.com',\n * pathname: '/am/XUI/',\n * port: '',\n * protocol: 'https',\n * search: '?realm=/bravo&authIndexType=service&authIndexValue=InitiateOwnerClaim',\n * username: '',\n * password: '',\n * searchParam: {\n * realm: '/bravo',\n * authIndexType: 'service',\n * authIndexValue: 'InitiateOwnerClaim'\n * }\n * }\n */\nexport function parseUrl(href) {\n const m = href.match(\n /^(([^:/?#]+):?(?:\\/\\/((?:([^/?#:]*):([^/?#:]*)@)?([^/?#:]*)(?::([^/?#:]*))?)))?([^?#]*)(\\?[^#]*)?(#.*)?$/\n ),\n r = {\n hash: m[10] || '', // #/\n host: m[3] || '', // openam-volker-dev.forgeblocks.com\n hostname: m[6] || '', // openam-volker-dev.forgeblocks.com\n href: m[0] || '', // https://openam-volker-dev.forgeblocks.com/am/XUI/?realm=/bravo&authIndexType=service&authIndexValue=InitiateOwnerClaim#/\n origin: m[1] || '', // https://openam-volker-dev.forgeblocks.com\n pathname: m[8] || (m[1] ? '/' : ''), // /am/XUI/\n port: m[7] || '', //\n protocol: m[2] || '', // https\n search: m[9] || '', // ?realm=/bravo&authIndexType=service&authIndexValue=InitiateOwnerClaim\n username: m[4] || '', //\n password: m[5] || '', //\n searchParam: {}, // { realm: '/bravo',\n // authIndexType: 'service',\n // authIndexValue: 'InitiateOwnerClaim' }\n };\n if (r.protocol.length == 2) {\n r.protocol = 'file:///' + r.protocol.toUpperCase();\n r.origin = r.protocol + '//' + r.host;\n }\n if (r.search.length > 2) {\n const query = r.search.indexOf('?') === 0 ? r.search.substr(1) : r.search;\n const vars = query.split('&');\n for (let i = 0; i < vars.length; i++) {\n const pair = vars[i].split('=');\n r.searchParam[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n }\n }\n r.href = r.origin + r.pathname + r.search + r.hash;\n return r;\n}\n\nexport function parseQueryString(query: string) {\n const vars = query.split('&');\n const searchParam = {};\n for (let i = 0; i < vars.length; i++) {\n const pair = vars[i].split('=');\n searchParam[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n }\n return searchParam;\n}\n"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { getRealmPath, getCurrentRealmPath, getTenantURL } from
|
|
2
|
-
import * as state from
|
|
1
|
+
import { getRealmPath, getCurrentRealmPath, getTenantURL } from "./ApiUtils.js";
|
|
2
|
+
import * as state from "../../shared/State.js";
|
|
3
3
|
describe.only('ApiUtils', () => {
|
|
4
4
|
describe.only('getRealmPath()', () => {
|
|
5
5
|
test("Should prepend realm path to specified realm 'alpha'", () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApiUtils.test.js","names":["getRealmPath","getCurrentRealmPath","getTenantURL","state","describe","only","test","realm","testString","expect","toBe","setRealm","URL_WITH_TENANT","parsed","trap","toThrow"],"sources":["../../../src/api/utils/ApiUtils.test.ts"],"sourcesContent":["import { getRealmPath, getCurrentRealmPath, getTenantURL } from './ApiUtils';\nimport * as state from '../../shared/State';\n\ndescribe.only('ApiUtils', () => {\n describe.only('getRealmPath()', () => {\n test(\"Should prepend realm path to specified realm 'alpha'\", () => {\n const realm = 'alpha';\n const testString = getRealmPath(realm);\n expect(testString).toBe('/realms/root/realms/alpha');\n });\n\n test('Should prepend realmPath to specified realm with leading slash', () => {\n const realm = '/alpha';\n const testString = getRealmPath(realm);\n expect(testString).toBe('/realms/root/realms/alpha');\n });\n\n test(\"'/' should resolve to root\", () => {\n const realm = '/';\n const testString = getRealmPath(realm);\n expect(testString).toBe('/realms/root');\n });\n\n test('Should handle multiple leading slashes', () => {\n const realm = '//alpha';\n const testString = getRealmPath(realm);\n expect(testString).toBe('/realms/root/realms/alpha');\n });\n\n test('Should handle nested realms', () => {\n const realm = '/parent/child';\n const testString = getRealmPath(realm);\n expect(testString).toBe('/realms/root/realms/parent/realms/child');\n });\n });\n\n describe.only('getCurrentRealmPath()', () => {\n test(\"Should prepend realm path to specified realm 'alpha'\", () => {\n const realm = 'alpha';\n state.setRealm(realm);\n const testString = getCurrentRealmPath();\n expect(testString).toBe('/realms/root/realms/alpha');\n });\n\n test('Should prepend realmPath to specified realm with leading slash', () => {\n const realm = '/alpha';\n state.setRealm(realm);\n const testString = getCurrentRealmPath();\n expect(testString).toBe('/realms/root/realms/alpha');\n });\n\n test(\"'/' should resolve to root\", () => {\n const realm = '/';\n state.setRealm(realm);\n const testString = getCurrentRealmPath();\n expect(testString).toBe('/realms/root');\n });\n\n test('Should handle multiple leading slashes', () => {\n const realm = '//alpha';\n state.setRealm(realm);\n const testString = getCurrentRealmPath();\n expect(testString).toBe('/realms/root/realms/alpha');\n });\n\n test('Should handle nested realms', () => {\n const realm = '/parent/child';\n state.setRealm(realm);\n const testString = getCurrentRealmPath();\n expect(testString).toBe('/realms/root/realms/parent/realms/child');\n });\n });\n\n describe.only('getTenantURL()', () => {\n test('Should parse the https protocol and the hostname', () => {\n const URL_WITH_TENANT =\n 'https://example.frodo.com/am/ui-admin/#realms/%2Falpha/dashboard';\n\n const parsed = getTenantURL(URL_WITH_TENANT);\n\n expect(parsed).toBe('https://example.frodo.com');\n });\n\n test('Should not validate protocol', () => {\n const URL_WITH_TENANT =\n 'ftp://example.frodo.com/am/ui-admin/#realms/%2Falpha/dashboard';\n const parsed = getTenantURL(URL_WITH_TENANT);\n expect(parsed).toBe('ftp://example.frodo.com');\n });\n\n test('Invalid URL should throw', () => {\n const URL_WITH_TENANT =\n '//:example.frodo.com/am/ui-admin/#realms/%2Falpha/dashboard';\n const trap = () => {\n getTenantURL(URL_WITH_TENANT);\n };\n expect(trap).toThrow('Invalid URL');\n });\n });\n});\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"ApiUtils.test.js","names":["getRealmPath","getCurrentRealmPath","getTenantURL","state","describe","only","test","realm","testString","expect","toBe","setRealm","URL_WITH_TENANT","parsed","trap","toThrow"],"sources":["../../../src/api/utils/ApiUtils.test.ts"],"sourcesContent":["import { getRealmPath, getCurrentRealmPath, getTenantURL } from './ApiUtils';\nimport * as state from '../../shared/State';\n\ndescribe.only('ApiUtils', () => {\n describe.only('getRealmPath()', () => {\n test(\"Should prepend realm path to specified realm 'alpha'\", () => {\n const realm = 'alpha';\n const testString = getRealmPath(realm);\n expect(testString).toBe('/realms/root/realms/alpha');\n });\n\n test('Should prepend realmPath to specified realm with leading slash', () => {\n const realm = '/alpha';\n const testString = getRealmPath(realm);\n expect(testString).toBe('/realms/root/realms/alpha');\n });\n\n test(\"'/' should resolve to root\", () => {\n const realm = '/';\n const testString = getRealmPath(realm);\n expect(testString).toBe('/realms/root');\n });\n\n test('Should handle multiple leading slashes', () => {\n const realm = '//alpha';\n const testString = getRealmPath(realm);\n expect(testString).toBe('/realms/root/realms/alpha');\n });\n\n test('Should handle nested realms', () => {\n const realm = '/parent/child';\n const testString = getRealmPath(realm);\n expect(testString).toBe('/realms/root/realms/parent/realms/child');\n });\n });\n\n describe.only('getCurrentRealmPath()', () => {\n test(\"Should prepend realm path to specified realm 'alpha'\", () => {\n const realm = 'alpha';\n state.setRealm(realm);\n const testString = getCurrentRealmPath();\n expect(testString).toBe('/realms/root/realms/alpha');\n });\n\n test('Should prepend realmPath to specified realm with leading slash', () => {\n const realm = '/alpha';\n state.setRealm(realm);\n const testString = getCurrentRealmPath();\n expect(testString).toBe('/realms/root/realms/alpha');\n });\n\n test(\"'/' should resolve to root\", () => {\n const realm = '/';\n state.setRealm(realm);\n const testString = getCurrentRealmPath();\n expect(testString).toBe('/realms/root');\n });\n\n test('Should handle multiple leading slashes', () => {\n const realm = '//alpha';\n state.setRealm(realm);\n const testString = getCurrentRealmPath();\n expect(testString).toBe('/realms/root/realms/alpha');\n });\n\n test('Should handle nested realms', () => {\n const realm = '/parent/child';\n state.setRealm(realm);\n const testString = getCurrentRealmPath();\n expect(testString).toBe('/realms/root/realms/parent/realms/child');\n });\n });\n\n describe.only('getTenantURL()', () => {\n test('Should parse the https protocol and the hostname', () => {\n const URL_WITH_TENANT =\n 'https://example.frodo.com/am/ui-admin/#realms/%2Falpha/dashboard';\n\n const parsed = getTenantURL(URL_WITH_TENANT);\n\n expect(parsed).toBe('https://example.frodo.com');\n });\n\n test('Should not validate protocol', () => {\n const URL_WITH_TENANT =\n 'ftp://example.frodo.com/am/ui-admin/#realms/%2Falpha/dashboard';\n const parsed = getTenantURL(URL_WITH_TENANT);\n expect(parsed).toBe('ftp://example.frodo.com');\n });\n\n test('Invalid URL should throw', () => {\n const URL_WITH_TENANT =\n '//:example.frodo.com/am/ui-admin/#realms/%2Falpha/dashboard';\n const trap = () => {\n getTenantURL(URL_WITH_TENANT);\n };\n expect(trap).toThrow('Invalid URL');\n });\n });\n});\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"curlirize.js","names":["CurlHelper","defaultLogCallback","curlResult","err","undefined","command","console","error","info","instance","callback","interceptors","request","use","req","curl","curlObject","curlCommand","generateCommand","clearCurl","curlirize","object"],"sources":["../../../src/ext/axios-curlirize/curlirize.ts"],"sourcesContent":["import { CurlHelper } from './lib/CurlHelper';\n\nfunction defaultLogCallback(curlResult, err = undefined) {\n const { command } = curlResult;\n if (err) {\n console.error(err);\n } else {\n console.info(command);\n }\n}\n\nexport default (instance, callback = defaultLogCallback) => {\n instance.interceptors.request.use((req) => {\n try {\n const curl = new CurlHelper(req);\n req.curlObject = curl;\n req.curlCommand = curl.generateCommand();\n req.clearCurl = () => {\n delete req.curlObject;\n delete req.curlCommand;\n delete req.clearCurl;\n };\n } catch (err) {\n // Even if the axios middleware is stopped, no error should occur outside.\n callback(null, err);\n } finally {\n if (req.curlirize !== false) {\n callback({\n command: req.curlCommand,\n object: req.curlObject,\n });\n }\n // eslint-disable-next-line no-unsafe-finally\n return req;\n }\n });\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"curlirize.js","names":["CurlHelper","defaultLogCallback","curlResult","err","undefined","command","console","error","info","instance","callback","interceptors","request","use","req","curl","curlObject","curlCommand","generateCommand","clearCurl","curlirize","object"],"sources":["../../../src/ext/axios-curlirize/curlirize.ts"],"sourcesContent":["import { CurlHelper } from './lib/CurlHelper';\n\nfunction defaultLogCallback(curlResult, err = undefined) {\n const { command } = curlResult;\n if (err) {\n console.error(err);\n } else {\n console.info(command);\n }\n}\n\nexport default (instance, callback = defaultLogCallback) => {\n instance.interceptors.request.use((req) => {\n try {\n const curl = new CurlHelper(req);\n req.curlObject = curl;\n req.curlCommand = curl.generateCommand();\n req.clearCurl = () => {\n delete req.curlObject;\n delete req.curlCommand;\n delete req.clearCurl;\n };\n } catch (err) {\n // Even if the axios middleware is stopped, no error should occur outside.\n callback(null, err);\n } finally {\n if (req.curlirize !== false) {\n callback({\n command: req.curlCommand,\n object: req.curlObject,\n });\n }\n // eslint-disable-next-line no-unsafe-finally\n return req;\n }\n });\n};\n"],"mappings":"SAASA,UAAU;AAEnB,SAASC,kBAAkBA,CAACC,UAAU,EAAEC,GAAG,GAAGC,SAAS,EAAE;EACvD,MAAM;IAAEC;EAAQ,CAAC,GAAGH,UAAU;EAC9B,IAAIC,GAAG,EAAE;IACPG,OAAO,CAACC,KAAK,CAACJ,GAAG,CAAC;EACpB,CAAC,MAAM;IACLG,OAAO,CAACE,IAAI,CAACH,OAAO,CAAC;EACvB;AACF;AAEA,gBAAe,CAACI,QAAQ,EAAEC,QAAQ,GAAGT,kBAAkB,KAAK;EAC1DQ,QAAQ,CAACE,YAAY,CAACC,OAAO,CAACC,GAAG,CAAEC,GAAG,IAAK;IACzC,IAAI;MACF,MAAMC,IAAI,GAAG,IAAIf,UAAU,CAACc,GAAG,CAAC;MAChCA,GAAG,CAACE,UAAU,GAAGD,IAAI;MACrBD,GAAG,CAACG,WAAW,GAAGF,IAAI,CAACG,eAAe,CAAC,CAAC;MACxCJ,GAAG,CAACK,SAAS,GAAG,MAAM;QACpB,OAAOL,GAAG,CAACE,UAAU;QACrB,OAAOF,GAAG,CAACG,WAAW;QACtB,OAAOH,GAAG,CAACK,SAAS;MACtB,CAAC;IACH,CAAC,CAAC,OAAOhB,GAAG,EAAE;MACZ;MACAO,QAAQ,CAAC,IAAI,EAAEP,GAAG,CAAC;IACrB,CAAC,SAAS;MACR,IAAIW,GAAG,CAACM,SAAS,KAAK,KAAK,EAAE;QAC3BV,QAAQ,CAAC;UACPL,OAAO,EAAES,GAAG,CAACG,WAAW;UACxBI,MAAM,EAAEP,GAAG,CAACE;QACd,CAAC,CAAC;MACJ;MACA;MACA,OAAOF,GAAG;IACZ;EACF,CAAC,CAAC;AACJ,CAAC"}
|
package/esm/index.js
CHANGED
|
@@ -2,61 +2,56 @@ import Color from 'colors';
|
|
|
2
2
|
Color.enable();
|
|
3
3
|
|
|
4
4
|
// Api Layer
|
|
5
|
-
export * as AgentRaw from
|
|
6
|
-
export * as AuthenticateRaw from
|
|
7
|
-
export * as NodeRaw from
|
|
8
|
-
// TODO: need to figure out if this is the right approach or if we should even
|
|
5
|
+
export * as AgentRaw from "./api/AgentApi.js";
|
|
6
|
+
export * as AuthenticateRaw from "./api/AuthenticateApi.js";
|
|
7
|
+
export * as NodeRaw from "./api/NodeApi.js"; // TODO: need to figure out if this is the right approach or if we should even
|
|
9
8
|
// use a public oauth2/oidc library. might be ok for now since there is only
|
|
10
9
|
// one place where the cli needs to execute an oauth flow.
|
|
11
|
-
export * as OAuth2OIDCApi from
|
|
12
|
-
export * as SecretsRaw from
|
|
13
|
-
export * as SocialIdentityProvidersRaw from
|
|
14
|
-
export * as StartupRaw from
|
|
15
|
-
export * as TreeRaw from
|
|
16
|
-
export * as TypesRaw from
|
|
17
|
-
export * as VariablesRaw from
|
|
18
|
-
export * as IdmConfigRaw from
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
export * as
|
|
22
|
-
export * as
|
|
23
|
-
export * as
|
|
24
|
-
export * as
|
|
25
|
-
export * as
|
|
26
|
-
export * as
|
|
27
|
-
export * as
|
|
28
|
-
export * as
|
|
29
|
-
export * as
|
|
30
|
-
export * as
|
|
31
|
-
export * as
|
|
32
|
-
export * as
|
|
33
|
-
export * as
|
|
34
|
-
export * as
|
|
35
|
-
export * as
|
|
36
|
-
export * as
|
|
37
|
-
export * as
|
|
38
|
-
export * as
|
|
39
|
-
export * as
|
|
40
|
-
export * as
|
|
41
|
-
export * as
|
|
42
|
-
export * as
|
|
43
|
-
export * as
|
|
44
|
-
export * as
|
|
45
|
-
export * as
|
|
46
|
-
export * as
|
|
47
|
-
export * as
|
|
48
|
-
export * as
|
|
49
|
-
export * as
|
|
50
|
-
export * as
|
|
51
|
-
export * as
|
|
52
|
-
|
|
53
|
-
export * as
|
|
54
|
-
export * as
|
|
55
|
-
export * as ValidationUtils from './ops/utils/ValidationUtils';
|
|
56
|
-
export * as LibVersion from './ops/utils/Version';
|
|
57
|
-
export * as ExportImportUtils from './ops/utils/ExportImportUtils';
|
|
58
|
-
// TODO: reconsider the aproach to pass in state from client
|
|
10
|
+
export * as OAuth2OIDCApi from "./api/OAuth2OIDCApi.js";
|
|
11
|
+
export * as SecretsRaw from "./api/cloud/SecretsApi.js";
|
|
12
|
+
export * as SocialIdentityProvidersRaw from "./api/SocialIdentityProvidersApi.js";
|
|
13
|
+
export * as StartupRaw from "./api/cloud/StartupApi.js";
|
|
14
|
+
export * as TreeRaw from "./api/TreeApi.js";
|
|
15
|
+
export * as TypesRaw from "./api/ApiTypes.js";
|
|
16
|
+
export * as VariablesRaw from "./api/cloud/VariablesApi.js";
|
|
17
|
+
export * as IdmConfigRaw from "./api/IdmConfigApi.js"; // Ops Layer
|
|
18
|
+
export * as Admin from "./ops/AdminOps.js";
|
|
19
|
+
export * as AdminFederation from "./ops/cloud/AdminFederationOps.js";
|
|
20
|
+
export * as Agent from "./ops/AgentOps.js";
|
|
21
|
+
export * as Authenticate from "./ops/AuthenticateOps.js";
|
|
22
|
+
export * as CirclesOfTrust from "./ops/CirclesOfTrustOps.js";
|
|
23
|
+
export * as ConnectionProfile from "./ops/ConnectionProfileOps.js";
|
|
24
|
+
export * as EmailTemplate from "./ops/EmailTemplateOps.js";
|
|
25
|
+
export * as Idp from "./ops/IdpOps.js";
|
|
26
|
+
export * as Idm from "./ops/IdmOps.js";
|
|
27
|
+
export * as Info from "./ops/InfoOps.js";
|
|
28
|
+
export * as Journey from "./ops/JourneyOps.js";
|
|
29
|
+
export * as Jose from "./ops/JoseOps.js";
|
|
30
|
+
export * as Log from "./ops/cloud/LogOps.js";
|
|
31
|
+
export * as ManagedObject from "./ops/ManagedObjectOps.js";
|
|
32
|
+
export * as Node from "./ops/NodeOps.js";
|
|
33
|
+
export * as OAuth2Client from "./ops/OAuth2ClientOps.js";
|
|
34
|
+
export * as OAuth2Provider from "./ops/OAuth2ProviderOps.js";
|
|
35
|
+
export * as Organization from "./ops/OrganizationOps.js";
|
|
36
|
+
export * as Policy from "./ops/PolicyOps.js";
|
|
37
|
+
export * as PolicySet from "./ops/PolicySetOps.js";
|
|
38
|
+
export * as Realm from "./ops/RealmOps.js";
|
|
39
|
+
export * as ResourceType from "./ops/ResourceTypeOps.js";
|
|
40
|
+
export * as Saml2 from "./ops/Saml2Ops.js";
|
|
41
|
+
export * as Script from "./ops/ScriptOps.js";
|
|
42
|
+
export * as Service from "./ops/ServiceOps.js";
|
|
43
|
+
export * as Secrets from "./ops/cloud/SecretsOps.js";
|
|
44
|
+
export * as ServiceAccount from "./ops/cloud/ServiceAccountOps.js";
|
|
45
|
+
export * as Startup from "./ops/cloud/StartupOps.js";
|
|
46
|
+
export * as Theme from "./ops/ThemeOps.js";
|
|
47
|
+
export * as Types from "./ops/OpsTypes.js";
|
|
48
|
+
export * as Variables from "./ops/cloud/VariablesOps.js"; // TODO: revisit if there are better ways
|
|
49
|
+
export * as Utils from "./ops/utils/OpsUtils.js";
|
|
50
|
+
export * as Base64 from "./api/utils/Base64.js";
|
|
51
|
+
export * as ValidationUtils from "./ops/utils/ValidationUtils.js";
|
|
52
|
+
export * as LibVersion from "./ops/utils/Version.js";
|
|
53
|
+
export * as ExportImportUtils from "./ops/utils/ExportImportUtils.js"; // TODO: reconsider the aproach to pass in state from client
|
|
59
54
|
// lib should be stateless, an aplication should own its state
|
|
60
|
-
export * as state from
|
|
61
|
-
export * as constants from
|
|
55
|
+
export * as state from "./shared/State.js";
|
|
56
|
+
export * as constants from "./storage/StaticStorage.js";
|
|
62
57
|
//# sourceMappingURL=index.js.map
|
package/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["Color","enable","AgentRaw","AuthenticateRaw","NodeRaw","OAuth2OIDCApi","SecretsRaw","SocialIdentityProvidersRaw","StartupRaw","TreeRaw","TypesRaw","VariablesRaw","IdmConfigRaw","Admin","AdminFederation","Agent","Authenticate","CirclesOfTrust","ConnectionProfile","EmailTemplate","Idp","Idm","Info","Journey","Jose","Log","ManagedObject","Node","OAuth2Client","OAuth2Provider","Organization","Policy","PolicySet","Realm","ResourceType","Saml2","Script","Service","Secrets","ServiceAccount","Startup","Theme","Types","Variables","Utils","Base64","ValidationUtils","LibVersion","ExportImportUtils","state","constants"],"sources":["../src/index.ts"],"sourcesContent":["import Color from 'colors';\n\nColor.enable();\n\n// Api Layer\nexport * as AgentRaw from './api/AgentApi';\nexport * as AuthenticateRaw from './api/AuthenticateApi';\nexport * as NodeRaw from './api/NodeApi';\n// TODO: need to figure out if this is the right approach or if we should even\n// use a public oauth2/oidc library. might be ok for now since there is only\n// one place where the cli needs to execute an oauth flow.\nexport * as OAuth2OIDCApi from './api/OAuth2OIDCApi';\nexport * as SecretsRaw from './api/cloud/SecretsApi';\nexport * as SocialIdentityProvidersRaw from './api/SocialIdentityProvidersApi';\nexport * as StartupRaw from './api/cloud/StartupApi';\nexport * as TreeRaw from './api/TreeApi';\nexport * as TypesRaw from './api/ApiTypes';\nexport * as VariablesRaw from './api/cloud/VariablesApi';\nexport * as IdmConfigRaw from './api/IdmConfigApi';\n\n// Ops Layer\nexport * as Admin from './ops/AdminOps';\nexport * as AdminFederation from './ops/cloud/AdminFederationOps';\nexport * as Agent from './ops/AgentOps';\nexport * as Authenticate from './ops/AuthenticateOps';\nexport * as CirclesOfTrust from './ops/CirclesOfTrustOps';\nexport * as ConnectionProfile from './ops/ConnectionProfileOps';\nexport * as EmailTemplate from './ops/EmailTemplateOps';\nexport * as Idp from './ops/IdpOps';\nexport * as Idm from './ops/IdmOps';\nexport * as Info from './ops/InfoOps';\nexport * as Journey from './ops/JourneyOps';\nexport * as Jose from './ops/JoseOps';\nexport * as Log from './ops/cloud/LogOps';\nexport * as ManagedObject from './ops/ManagedObjectOps';\nexport * as Node from './ops/NodeOps';\nexport * as OAuth2Client from './ops/OAuth2ClientOps';\nexport * as OAuth2Provider from './ops/OAuth2ProviderOps';\nexport * as Organization from './ops/OrganizationOps';\nexport * as Policy from './ops/PolicyOps';\nexport * as PolicySet from './ops/PolicySetOps';\nexport * as Realm from './ops/RealmOps';\nexport * as ResourceType from './ops/ResourceTypeOps';\nexport * as Saml2 from './ops/Saml2Ops';\nexport * as Script from './ops/ScriptOps';\nexport * as Service from './ops/ServiceOps';\nexport * as Secrets from './ops/cloud/SecretsOps';\nexport * as ServiceAccount from './ops/cloud/ServiceAccountOps';\nexport * as Startup from './ops/cloud/StartupOps';\nexport * as Theme from './ops/ThemeOps';\nexport * as Types from './ops/OpsTypes';\nexport * as Variables from './ops/cloud/VariablesOps';\n// TODO: revisit if there are better ways\nexport * as Utils from './ops/utils/OpsUtils';\nexport * as Base64 from './api/utils/Base64';\nexport * as ValidationUtils from './ops/utils/ValidationUtils';\nexport * as LibVersion from './ops/utils/Version';\nexport * as ExportImportUtils from './ops/utils/ExportImportUtils';\n// TODO: reconsider the aproach to pass in state from client\n// lib should be stateless, an aplication should own its state\nexport * as state from './shared/State';\nexport * as constants from './storage/StaticStorage';\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,QAAQ;AAE1BA,KAAK,CAACC,MAAM,CAAC,CAAC;;AAEd;
|
|
1
|
+
{"version":3,"file":"index.js","names":["Color","enable","AgentRaw","AuthenticateRaw","NodeRaw","OAuth2OIDCApi","SecretsRaw","SocialIdentityProvidersRaw","StartupRaw","TreeRaw","TypesRaw","VariablesRaw","IdmConfigRaw","Admin","AdminFederation","Agent","Authenticate","CirclesOfTrust","ConnectionProfile","EmailTemplate","Idp","Idm","Info","Journey","Jose","Log","ManagedObject","Node","OAuth2Client","OAuth2Provider","Organization","Policy","PolicySet","Realm","ResourceType","Saml2","Script","Service","Secrets","ServiceAccount","Startup","Theme","Types","Variables","Utils","Base64","ValidationUtils","LibVersion","ExportImportUtils","state","constants"],"sources":["../src/index.ts"],"sourcesContent":["import Color from 'colors';\n\nColor.enable();\n\n// Api Layer\nexport * as AgentRaw from './api/AgentApi';\nexport * as AuthenticateRaw from './api/AuthenticateApi';\nexport * as NodeRaw from './api/NodeApi';\n// TODO: need to figure out if this is the right approach or if we should even\n// use a public oauth2/oidc library. might be ok for now since there is only\n// one place where the cli needs to execute an oauth flow.\nexport * as OAuth2OIDCApi from './api/OAuth2OIDCApi';\nexport * as SecretsRaw from './api/cloud/SecretsApi';\nexport * as SocialIdentityProvidersRaw from './api/SocialIdentityProvidersApi';\nexport * as StartupRaw from './api/cloud/StartupApi';\nexport * as TreeRaw from './api/TreeApi';\nexport * as TypesRaw from './api/ApiTypes';\nexport * as VariablesRaw from './api/cloud/VariablesApi';\nexport * as IdmConfigRaw from './api/IdmConfigApi';\n\n// Ops Layer\nexport * as Admin from './ops/AdminOps';\nexport * as AdminFederation from './ops/cloud/AdminFederationOps';\nexport * as Agent from './ops/AgentOps';\nexport * as Authenticate from './ops/AuthenticateOps';\nexport * as CirclesOfTrust from './ops/CirclesOfTrustOps';\nexport * as ConnectionProfile from './ops/ConnectionProfileOps';\nexport * as EmailTemplate from './ops/EmailTemplateOps';\nexport * as Idp from './ops/IdpOps';\nexport * as Idm from './ops/IdmOps';\nexport * as Info from './ops/InfoOps';\nexport * as Journey from './ops/JourneyOps';\nexport * as Jose from './ops/JoseOps';\nexport * as Log from './ops/cloud/LogOps';\nexport * as ManagedObject from './ops/ManagedObjectOps';\nexport * as Node from './ops/NodeOps';\nexport * as OAuth2Client from './ops/OAuth2ClientOps';\nexport * as OAuth2Provider from './ops/OAuth2ProviderOps';\nexport * as Organization from './ops/OrganizationOps';\nexport * as Policy from './ops/PolicyOps';\nexport * as PolicySet from './ops/PolicySetOps';\nexport * as Realm from './ops/RealmOps';\nexport * as ResourceType from './ops/ResourceTypeOps';\nexport * as Saml2 from './ops/Saml2Ops';\nexport * as Script from './ops/ScriptOps';\nexport * as Service from './ops/ServiceOps';\nexport * as Secrets from './ops/cloud/SecretsOps';\nexport * as ServiceAccount from './ops/cloud/ServiceAccountOps';\nexport * as Startup from './ops/cloud/StartupOps';\nexport * as Theme from './ops/ThemeOps';\nexport * as Types from './ops/OpsTypes';\nexport * as Variables from './ops/cloud/VariablesOps';\n// TODO: revisit if there are better ways\nexport * as Utils from './ops/utils/OpsUtils';\nexport * as Base64 from './api/utils/Base64';\nexport * as ValidationUtils from './ops/utils/ValidationUtils';\nexport * as LibVersion from './ops/utils/Version';\nexport * as ExportImportUtils from './ops/utils/ExportImportUtils';\n// TODO: reconsider the aproach to pass in state from client\n// lib should be stateless, an aplication should own its state\nexport * as state from './shared/State';\nexport * as constants from './storage/StaticStorage';\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,QAAQ;AAE1BA,KAAK,CAACC,MAAM,CAAC,CAAC;;AAEd;AAAA,OACO,KAAKC,QAAQ;AAAA,OACb,KAAKC,eAAe;AAAA,OACpB,KAAKC,OAAO,0BACnB;AACA;AACA;AAAA,OACO,KAAKC,aAAa;AAAA,OAClB,KAAKC,UAAU;AAAA,OACf,KAAKC,0BAA0B;AAAA,OAC/B,KAAKC,UAAU;AAAA,OACf,KAAKC,OAAO;AAAA,OACZ,KAAKC,QAAQ;AAAA,OACb,KAAKC,YAAY;AAAA,OACjB,KAAKC,YAAY,+BAExB;AAAA,OACO,KAAKC,KAAK;AAAA,OACV,KAAKC,eAAe;AAAA,OACpB,KAAKC,KAAK;AAAA,OACV,KAAKC,YAAY;AAAA,OACjB,KAAKC,cAAc;AAAA,OACnB,KAAKC,iBAAiB;AAAA,OACtB,KAAKC,aAAa;AAAA,OAClB,KAAKC,GAAG;AAAA,OACR,KAAKC,GAAG;AAAA,OACR,KAAKC,IAAI;AAAA,OACT,KAAKC,OAAO;AAAA,OACZ,KAAKC,IAAI;AAAA,OACT,KAAKC,GAAG;AAAA,OACR,KAAKC,aAAa;AAAA,OAClB,KAAKC,IAAI;AAAA,OACT,KAAKC,YAAY;AAAA,OACjB,KAAKC,cAAc;AAAA,OACnB,KAAKC,YAAY;AAAA,OACjB,KAAKC,MAAM;AAAA,OACX,KAAKC,SAAS;AAAA,OACd,KAAKC,KAAK;AAAA,OACV,KAAKC,YAAY;AAAA,OACjB,KAAKC,KAAK;AAAA,OACV,KAAKC,MAAM;AAAA,OACX,KAAKC,OAAO;AAAA,OACZ,KAAKC,OAAO;AAAA,OACZ,KAAKC,cAAc;AAAA,OACnB,KAAKC,OAAO;AAAA,OACZ,KAAKC,KAAK;AAAA,OACV,KAAKC,KAAK;AAAA,OACV,KAAKC,SAAS,qCACrB;AAAA,OACO,KAAKC,KAAK;AAAA,OACV,KAAKC,MAAM;AAAA,OACX,KAAKC,eAAe;AAAA,OACpB,KAAKC,UAAU;AAAA,OACf,KAAKC,iBAAiB,0CAC7B;AACA;AAAA,OACO,KAAKC,KAAK;AAAA,OACV,KAAKC,SAAS"}
|
package/esm/ops/AdminOps.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import fs from 'fs';
|
|
2
2
|
import _ from 'lodash';
|
|
3
|
-
import { getOAuth2Clients, getOAuth2Client, putOAuth2Client } from
|
|
4
|
-
import { getConfigEntity, putConfigEntity } from
|
|
5
|
-
import { isEqualJson, getRealmManagedUser } from
|
|
6
|
-
import { getRealmManagedOrganization } from
|
|
7
|
-
import { getOAuth2Provider } from
|
|
8
|
-
import { putSecret } from
|
|
9
|
-
import { clientCredentialsGrant } from
|
|
10
|
-
import { printMessage } from
|
|
3
|
+
import { getOAuth2Clients, getOAuth2Client, putOAuth2Client } from "../ops/OAuth2ClientOps.js";
|
|
4
|
+
import { getConfigEntity, putConfigEntity } from "../api/IdmConfigApi.js";
|
|
5
|
+
import { isEqualJson, getRealmManagedUser } from "./utils/OpsUtils.js";
|
|
6
|
+
import { getRealmManagedOrganization } from "./OrganizationOps.js";
|
|
7
|
+
import { getOAuth2Provider } from "../ops/OAuth2ProviderOps.js";
|
|
8
|
+
import { putSecret } from "../api/cloud/SecretsApi.js";
|
|
9
|
+
import { clientCredentialsGrant } from "../api/OAuth2OIDCApi.js";
|
|
10
|
+
import { printMessage } from "./utils/Console.js";
|
|
11
11
|
import path from 'path';
|
|
12
12
|
import { fileURLToPath } from 'url';
|
|
13
13
|
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
package/esm/ops/AdminOps.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AdminOps.js","names":["fs","_","getOAuth2Clients","getOAuth2Client","putOAuth2Client","getConfigEntity","putConfigEntity","isEqualJson","getRealmManagedUser","getRealmManagedOrganization","getOAuth2Provider","putSecret","clientCredentialsGrant","printMessage","path","fileURLToPath","__dirname","dirname","import","meta","url","OAUTH2_CLIENT","JSON","parse","readFileSync","resolve","GENERIC_EXTENSION_ATTRIBUTES","protectedClients","protectedSubjects","privilegedScopes","privilegedRoles","adminScopes","adminDefaultScopes","adminRoles","autoIdRoles","listOAuth2CustomClients","clients","map","client","_id","filter","includes","authentication","subjects","rsFilter","staticUserMapping","mapping","subject","adminClients","listOAuth2AdminClients","isPrivileged","coreOAuth2ClientConfig","scopes","forEach","scope","roles","role","listNonOAuth2AdminStaticUserMappings","showProtected","adminSubjects","getDynamicClientRegistrationScope","provider","clientDynamicRegistrationConfig","dynamicClientRegistrationScope","addAdminScopes","clientId","modClient","allAdminScopes","concat","addScopes","value","add","addDefaultScope","defaultScopes","length","addClientCredentialsGrantType","modified","advancedOAuth2ClientConfig","grantTypes","push","inherited","addAdminStaticUserMapping","name","error","message","needsAdminMapping","addRoles","mappings","newMapping","localUser","userRoles","putConfigEntityError","addAutoIdStaticUserMapping","grantOAuth2ClientAdminPrivileges","clientName","descriptions","startsWith","Date","toLocaleString","removeAdminScopes","finalScopes","finalDefaultScopes","removeClientCredentialsGrantType","finalGrantTypes","grantType","removeAdminStaticUserMapping","finalRoles","removeMapping","revokeOAuth2ClientAdminPrivileges","createOAuth2ClientWithAdminPrivileges","clientSecret","userpassword","createLongLivedToken","secret","lifetime","rememberedLifetime","accessTokenLifetime","response","expires","getTime","expires_in","expires_on","description","access_token","get","newSecret","removeStaticUserMapping","hideGenericExtensionAttributes","includeCustomized","dryRun","managed","propertyNames","Object","keys","updatedObjects","objects","object","schema","properties","viewable","showGenericExtensionAttributes","repairOrgModelUser","RDVPs","repairData","queryConfig","flattenProperties","repairOrgModelOrg","repairOrgModelData","extendOrgModelPermissins","repairOrgModel","excludeCustomized","extendPermissions"],"sources":["../../src/ops/AdminOps.ts"],"sourcesContent":["import fs from 'fs';\nimport _ from 'lodash';\nimport {\n getOAuth2Clients,\n getOAuth2Client,\n putOAuth2Client,\n} from '../ops/OAuth2ClientOps';\nimport { getConfigEntity, putConfigEntity } from '../api/IdmConfigApi';\nimport { isEqualJson, getRealmManagedUser } from './utils/OpsUtils';\nimport { getRealmManagedOrganization } from './OrganizationOps';\nimport { getOAuth2Provider } from '../ops/OAuth2ProviderOps';\nimport { putSecret } from '../api/cloud/SecretsApi';\nimport { clientCredentialsGrant } from '../api/OAuth2OIDCApi';\nimport { printMessage } from './utils/Console';\nimport path from 'path';\nimport { fileURLToPath } from 'url';\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\n\nconst OAUTH2_CLIENT = JSON.parse(\n fs.readFileSync(\n path.resolve(__dirname, './templates/OAuth2ClientTemplate.json'),\n 'utf8'\n )\n);\nconst GENERIC_EXTENSION_ATTRIBUTES = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n './templates/cloud/GenericExtensionAttributesTemplate.json'\n ),\n 'utf8'\n )\n);\n\nconst protectedClients = ['ui', 'idm-provisioning'];\nconst protectedSubjects = ['amadmin', 'autoid-resource-server'];\n\nconst privilegedScopes = [\n 'am-introspect-all-tokens',\n 'fr:idm:*',\n 'fr:idc:esv:*',\n];\n// const privilegedUsers = ['openidm-admin'];\nconst privilegedRoles = [\n 'internal/role/openidm-authorized',\n 'internal/role/openidm-admin',\n];\n\nconst adminScopes = ['fr:idm:*', 'fr:idc:esv:*'];\nconst adminDefaultScopes = ['fr:idm:*'];\nconst adminRoles = [\n 'internal/role/openidm-authorized',\n 'internal/role/openidm-admin',\n];\nconst autoIdRoles = [\n 'internal/role/platform-provisioning',\n 'internal/role/openidm-authorized',\n 'internal/role/openidm-admin',\n];\n\n/*\n * List all oauth2 clients, which have a corresponding staticUserMapping\n * in the IDM authentication.json:\n {\n \"_id\": \"authentication\",\n \"rsFilter\": {\n ...\n \"staticUserMapping\": [\n {\n \"subject\": \"someOauth2ClientID\",\n \"localUser\": \"internal/user/openidm-admin\",\n \"userRoles\": \"authzRoles/*\",\n \"roles\": [\n \"internal/role/openidm-authorized\",\n \"internal/role/openidm-admin\"\n ]\n },\n {\n \"subject\": \"RCSClient\",\n \"localUser\": \"internal/user/idm-provisioning\"\n }\n ]\n }\n }\n */\nexport async function listOAuth2CustomClients() {\n let clients = await getOAuth2Clients();\n clients = clients\n .map((client) => client._id)\n .filter((client) => !protectedClients.includes(client));\n const authentication = await getConfigEntity('authentication');\n const subjects = authentication.rsFilter.staticUserMapping\n .map((mapping) => mapping.subject)\n .filter((subject) => !protectedSubjects.includes(subject));\n const adminClients = subjects.filter((subject) => clients.includes(subject));\n return adminClients;\n}\n\n/*\n * List all oauth2 clients, which have the fr:idm:* scope and a \n * corresponding staticUserMapping in the IDM authentication.json\n * and are assigned admin privileges:\n {\n \"_id\": \"authentication\",\n \"rsFilter\": {\n ...\n \"staticUserMapping\": [\n {\n \"subject\": \"someOauth2ClientID\",\n \"localUser\": \"internal/user/openidm-admin\",\n \"userRoles\": \"authzRoles/*\",\n \"roles\": [\n \"internal/role/openidm-authorized\",\n \"internal/role/openidm-admin\"\n ]\n }\n ]\n }\n }\n */\nexport async function listOAuth2AdminClients() {\n let clients = await getOAuth2Clients();\n clients = clients\n .filter((client) => {\n let isPrivileged = false;\n if (client.coreOAuth2ClientConfig.scopes) {\n client.coreOAuth2ClientConfig.scopes.forEach((scope) => {\n if (privilegedScopes.includes(scope)) {\n isPrivileged = true;\n }\n });\n }\n return isPrivileged;\n })\n .map((client) => client._id)\n .filter((client) => !protectedClients.includes(client));\n const authentication = await getConfigEntity('authentication');\n const subjects = authentication.rsFilter.staticUserMapping\n .filter((mapping) => {\n let isPrivileged = false;\n if (mapping.roles) {\n mapping.roles.forEach((role) => {\n if (privilegedRoles.includes(role)) {\n isPrivileged = true;\n }\n });\n }\n return isPrivileged;\n })\n .map((mapping) => mapping.subject)\n .filter((subject) => !protectedSubjects.includes(subject));\n const adminClients = subjects.filter((subject) => clients.includes(subject));\n return adminClients;\n}\n\n/*\n * List all static user mappings that are not oauth2 clients in authentication.json\n * and are assigned admin privileges:\n {\n \"_id\": \"authentication\",\n \"rsFilter\": {\n ...\n \"staticUserMapping\": [\n {\n \"subject\": \"amadmin\",\n \"localUser\": \"internal/user/openidm-admin\",\n \"userRoles\": \"authzRoles/*\",\n \"roles\": [\n \"internal/role/openidm-authorized\",\n \"internal/role/openidm-admin\"\n ]\n },\n {\n \"subject\": \"idm-provisioning\",\n \"localUser\": \"internal/user/idm-provisioning\",\n \"roles\": [\n \"internal/role/platform-provisioning\"\n ]\n },\n {\n \"subject\": \"RCSClient\",\n \"localUser\": \"internal/user/idm-provisioning\"\n },\n {\n \"subject\": \"autoid-resource-server\",\n \"localUser\": \"internal/user/idm-provisioning\",\n \"roles\": [\n \"internal/role/platform-provisioning\",\n \"internal/role/openidm-authorized\",\n \"internal/role/openidm-admin\"\n ]\n }\n ]\n }\n }\n */\nexport async function listNonOAuth2AdminStaticUserMappings(showProtected) {\n let clients = await getOAuth2Clients();\n clients = clients\n .map((client) => client._id)\n .filter((client) => !protectedClients.includes(client));\n const authentication = await getConfigEntity('authentication');\n let subjects = authentication.rsFilter.staticUserMapping\n .filter((mapping) => {\n let isPrivileged = false;\n if (mapping.roles) {\n mapping.roles.forEach((role) => {\n if (privilegedRoles.includes(role)) {\n isPrivileged = true;\n }\n });\n }\n return isPrivileged;\n })\n .map((mapping) => mapping.subject);\n if (!showProtected) {\n subjects = subjects.filter(\n (subject) => !protectedSubjects.includes(subject)\n );\n }\n const adminSubjects = subjects.filter(\n (subject) => !clients.includes(subject)\n );\n return adminSubjects;\n}\n\nasync function getDynamicClientRegistrationScope() {\n const provider = await getOAuth2Provider();\n return provider.clientDynamicRegistrationConfig\n .dynamicClientRegistrationScope;\n}\n\nasync function addAdminScopes(clientId, client) {\n const modClient = client;\n const allAdminScopes = adminScopes.concat([\n await getDynamicClientRegistrationScope(),\n ]);\n let addScopes = [];\n if (\n modClient.coreOAuth2ClientConfig.scopes &&\n modClient.coreOAuth2ClientConfig.scopes.value\n ) {\n addScopes = allAdminScopes.filter((scope) => {\n let add = false;\n if (!modClient.coreOAuth2ClientConfig.scopes.value.includes(scope)) {\n add = true;\n }\n return add;\n });\n modClient.coreOAuth2ClientConfig.scopes.value =\n modClient.coreOAuth2ClientConfig.scopes.value.concat(addScopes);\n } else {\n modClient.coreOAuth2ClientConfig.scopes.value = allAdminScopes;\n }\n let addDefaultScope = false;\n if (\n modClient.coreOAuth2ClientConfig.defaultScopes &&\n modClient.coreOAuth2ClientConfig.defaultScopes.value\n ) {\n if (modClient.coreOAuth2ClientConfig.defaultScopes.value.length === 0) {\n addDefaultScope = true;\n modClient.coreOAuth2ClientConfig.defaultScopes.value = adminDefaultScopes;\n } else {\n printMessage(\n `Client \"${clientId}\" already has default scopes configured, not adding admin default scope.`\n );\n }\n }\n if (addScopes.length > 0 || addDefaultScope) {\n printMessage(`Adding admin scopes to client \"${clientId}\"...`);\n } else {\n printMessage(`Client \"${clientId}\" already has admin scopes.`);\n }\n return modClient;\n}\n\nfunction addClientCredentialsGrantType(clientId, client) {\n const modClient = client;\n let modified = false;\n if (\n modClient.advancedOAuth2ClientConfig.grantTypes &&\n modClient.advancedOAuth2ClientConfig.grantTypes.value\n ) {\n if (\n !modClient.advancedOAuth2ClientConfig.grantTypes.value.includes(\n 'client_credentials'\n )\n ) {\n modified = true;\n modClient.advancedOAuth2ClientConfig.grantTypes.value.push(\n 'client_credentials'\n );\n }\n } else {\n modClient.advancedOAuth2ClientConfig.grantTypes.value = [\n 'client_credentials',\n ];\n }\n modClient.advancedOAuth2ClientConfig.grantTypes.inherited = false;\n if (modified) {\n printMessage(\n `Adding client credentials grant type to client \"${clientId}\"...`\n );\n } else {\n printMessage(\n `Client \"${clientId}\" already has client credentials grant type.`\n );\n }\n return modClient;\n}\n\nasync function addAdminStaticUserMapping(name) {\n let authentication = {};\n try {\n authentication = await getConfigEntity('authentication');\n } catch (error) {\n printMessage(\n `Error reading IDM authentication configuration: ${error.message}`,\n 'error'\n );\n }\n let needsAdminMapping = true;\n let addRoles = [];\n const mappings = authentication['rsFilter']['staticUserMapping'].map(\n (mapping) => {\n // ignore mappings for other subjects\n if (mapping.subject !== name) {\n return mapping;\n }\n needsAdminMapping = false;\n addRoles = adminRoles.filter((role) => {\n let add = false;\n if (!mapping.roles.includes(role)) {\n add = true;\n }\n return add;\n });\n const newMapping = mapping;\n newMapping.roles = newMapping.roles.concat(addRoles);\n return newMapping;\n }\n );\n if (needsAdminMapping) {\n printMessage(`Creating static user mapping for client \"${name}\"...`);\n mappings.push({\n subject: name,\n localUser: 'internal/user/openidm-admin',\n userRoles: 'authzRoles/*',\n roles: adminRoles,\n });\n }\n authentication['rsFilter']['staticUserMapping'] = mappings;\n if (addRoles.length > 0 || needsAdminMapping) {\n printMessage(\n `Adding admin roles to static user mapping for client \"${name}\"...`\n );\n try {\n await putConfigEntity('authentication', authentication);\n } catch (putConfigEntityError) {\n printMessage(putConfigEntityError, 'error');\n printMessage(`Error: ${putConfigEntityError}`, 'error');\n }\n } else {\n printMessage(\n `Static user mapping for client \"${name}\" already has admin roles.`\n );\n }\n}\n\n/*\n * Add AutoId static user mapping to authentication.json to enable dashboards and other AutoId-based functionality.\n {\n \"_id\": \"authentication\",\n \"rsFilter\": {\n ...\n \"staticUserMapping\": [\n ...\n {\n \"subject\": \"autoid-resource-server\",\n \"localUser\": \"internal/user/idm-provisioning\",\n \"roles\": [\n \"internal/role/platform-provisioning\",\n \"internal/role/openidm-authorized\",\n \"internal/role/openidm-admin\"\n ]\n }\n ]\n }\n }\n */\nexport async function addAutoIdStaticUserMapping() {\n const name = 'autoid-resource-server';\n const authentication = await getConfigEntity('authentication');\n let needsAdminMapping = true;\n let addRoles = [];\n const mappings = authentication.rsFilter.staticUserMapping.map((mapping) => {\n // ignore mappings for other subjects\n if (mapping.subject !== name) {\n return mapping;\n }\n needsAdminMapping = false;\n addRoles = autoIdRoles.filter((role) => {\n let add = false;\n if (!mapping.roles.includes(role)) {\n add = true;\n }\n return add;\n });\n const newMapping = mapping;\n newMapping.roles = newMapping.roles.concat(addRoles);\n return newMapping;\n });\n if (needsAdminMapping) {\n printMessage(`Creating static user mapping for AutoId client \"${name}\"...`);\n mappings.push({\n subject: name,\n localUser: 'internal/user/idm-provisioning',\n userRoles: 'authzRoles/*',\n roles: autoIdRoles,\n });\n }\n authentication.rsFilter.staticUserMapping = mappings;\n if (addRoles.length > 0 || needsAdminMapping) {\n printMessage(\n `Adding required roles to static user mapping for AutoId client \"${name}\"...`\n );\n try {\n await putConfigEntity('authentication', authentication);\n } catch (putConfigEntityError) {\n printMessage(putConfigEntityError, 'error');\n printMessage(`Error: ${putConfigEntityError}`, 'error');\n }\n } else {\n printMessage(\n `Static user mapping for AutoId client \"${name}\" already has all required roles.`\n );\n }\n}\n\nexport async function grantOAuth2ClientAdminPrivileges(clientId) {\n let client = await getOAuth2Client(clientId);\n if (client.coreOAuth2ClientConfig.clientName.value.length === 0) {\n client.coreOAuth2ClientConfig.clientName.value = [clientId];\n }\n if (\n client.advancedOAuth2ClientConfig.descriptions.value.length === 0 ||\n client.advancedOAuth2ClientConfig.descriptions.value[0].startsWith(\n 'Modified by Frodo'\n ) ||\n client.advancedOAuth2ClientConfig.descriptions.value[0].startsWith(\n 'Created by Frodo'\n )\n ) {\n client.advancedOAuth2ClientConfig.descriptions.value = [\n `Modified by Frodo on ${new Date().toLocaleString()}`,\n ];\n }\n client = await addAdminScopes(clientId, client);\n client = addClientCredentialsGrantType(clientId, client);\n await putOAuth2Client(clientId, client);\n await addAdminStaticUserMapping(clientId);\n}\n\nasync function removeAdminScopes(name, client) {\n const modClient = client;\n const allAdminScopes = adminScopes.concat([\n await getDynamicClientRegistrationScope(),\n ]);\n let finalScopes = [];\n if (\n modClient.coreOAuth2ClientConfig.scopes &&\n modClient.coreOAuth2ClientConfig.scopes.value\n ) {\n finalScopes = modClient.coreOAuth2ClientConfig.scopes.value.filter(\n (scope) => !allAdminScopes.includes(scope)\n );\n }\n if (\n modClient.coreOAuth2ClientConfig.scopes.value.length > finalScopes.length\n ) {\n printMessage(`Removing admin scopes from client \"${name}\"...`);\n modClient.coreOAuth2ClientConfig.scopes.value = finalScopes;\n } else {\n printMessage(`Client \"${name}\" has no admin scopes.`);\n }\n let finalDefaultScopes = [];\n if (\n modClient.coreOAuth2ClientConfig.defaultScopes &&\n modClient.coreOAuth2ClientConfig.defaultScopes.value\n ) {\n finalDefaultScopes =\n modClient.coreOAuth2ClientConfig.defaultScopes.value.filter(\n (scope) => !adminDefaultScopes.includes(scope)\n );\n }\n if (\n modClient.coreOAuth2ClientConfig.defaultScopes.value.length >\n finalDefaultScopes.length\n ) {\n printMessage(`Removing admin default scopes from client \"${name}\"...`);\n modClient.coreOAuth2ClientConfig.defaultScopes.value = finalDefaultScopes;\n } else {\n printMessage(`Client \"${name}\" has no admin default scopes.`);\n }\n return modClient;\n}\n\nfunction removeClientCredentialsGrantType(clientId, client) {\n const modClient = client;\n let modified = false;\n let finalGrantTypes = [];\n if (\n modClient.advancedOAuth2ClientConfig.grantTypes &&\n modClient.advancedOAuth2ClientConfig.grantTypes.value\n ) {\n finalGrantTypes =\n modClient.advancedOAuth2ClientConfig.grantTypes.value.filter(\n (grantType) => grantType !== 'client_credentials'\n );\n modified =\n modClient.advancedOAuth2ClientConfig.grantTypes.value.length >\n finalGrantTypes.length;\n }\n if (modified) {\n printMessage(\n `Removing client credentials grant type from client \"${clientId}\"...`\n );\n modClient.advancedOAuth2ClientConfig.grantTypes.value = finalGrantTypes;\n } else {\n printMessage(\n `Client \"${clientId}\" does not allow client credentials grant type.`\n );\n }\n return modClient;\n}\n\nasync function removeAdminStaticUserMapping(name) {\n const authentication = await getConfigEntity('authentication');\n let finalRoles = [];\n let removeMapping = false;\n let modified = false;\n const mappings = authentication.rsFilter.staticUserMapping\n .map((mapping) => {\n // ignore mappings for other subjects\n if (mapping.subject !== name) {\n return mapping;\n }\n finalRoles = mapping.roles.filter((role) => !adminRoles.includes(role));\n const newMapping = mapping;\n removeMapping = finalRoles.length === 0; // if there are no more roles left on this mapping, flag it for removal\n modified = mapping.roles.length > finalRoles.length; // if there were roles removed, set modified flag\n newMapping.roles = finalRoles;\n return newMapping;\n })\n .filter((mapping) => mapping.subject !== name || !removeMapping);\n authentication.rsFilter.staticUserMapping = mappings;\n if (modified || removeMapping) {\n if (removeMapping) {\n printMessage(`Removing static user mapping for client \"${name}\"...`);\n } else {\n printMessage(\n `Removing admin roles from static user mapping for client \"${name}\"...`\n );\n }\n try {\n await putConfigEntity('authentication', authentication);\n } catch (putConfigEntityError) {\n printMessage(putConfigEntityError, 'error');\n printMessage(`Error: ${putConfigEntityError}`, 'error');\n }\n } else {\n printMessage(\n `Static user mapping for client \"${name}\" has no admin roles.`\n );\n }\n}\n\nexport async function revokeOAuth2ClientAdminPrivileges(clientId) {\n let client = await getOAuth2Client(clientId);\n if (client.coreOAuth2ClientConfig.clientName.value.length === 0) {\n client.coreOAuth2ClientConfig.clientName.value = [clientId];\n }\n if (\n client.advancedOAuth2ClientConfig.descriptions.value.length === 0 ||\n client.advancedOAuth2ClientConfig.descriptions.value[0].startsWith(\n 'Modified by Frodo'\n ) ||\n client.advancedOAuth2ClientConfig.descriptions.value[0].startsWith(\n 'Created by Frodo'\n )\n ) {\n client.advancedOAuth2ClientConfig.descriptions.value = [\n `Modified by Frodo on ${new Date().toLocaleString()}`,\n ];\n }\n client = await removeAdminScopes(clientId, client);\n client = removeClientCredentialsGrantType(clientId, client);\n await putOAuth2Client(clientId, client);\n await removeAdminStaticUserMapping(clientId);\n}\n\nexport async function createOAuth2ClientWithAdminPrivileges(\n clientId,\n clientSecret\n) {\n let client = OAUTH2_CLIENT;\n client.coreOAuth2ClientConfig.userpassword = clientSecret;\n client.coreOAuth2ClientConfig.clientName.value = [clientId];\n client.advancedOAuth2ClientConfig.descriptions.value = [\n `Created by Frodo on ${new Date().toLocaleString()}`,\n ];\n try {\n client = await addAdminScopes(clientId, client);\n await putOAuth2Client(clientId, client);\n await addAdminStaticUserMapping(clientId);\n } catch (error) {\n printMessage(`Error creating oauth2 client: ${error.message}`, 'error');\n }\n}\n\nexport async function createLongLivedToken(\n clientId: string,\n clientSecret: string,\n scope: string,\n secret: string | boolean,\n lifetime: number\n) {\n // get oauth2 client\n const client = await getOAuth2Client(clientId);\n client.userpassword = clientSecret;\n // remember current lifetime\n const rememberedLifetime =\n client.coreOAuth2ClientConfig.accessTokenLifetime.value || 3600;\n // set long token lifetime\n client.coreOAuth2ClientConfig.accessTokenLifetime.value = lifetime;\n await putOAuth2Client(clientId, client);\n const response = await clientCredentialsGrant(clientId, clientSecret, scope);\n const expires = new Date().getTime() + 1000 * response.expires_in;\n response.expires_on = new Date(expires).toLocaleString();\n // reset token lifetime\n client.coreOAuth2ClientConfig.accessTokenLifetime.value = rememberedLifetime;\n await putOAuth2Client(clientId, client);\n // create secret with token as value\n if (secret) {\n const description = 'Long-lived admin token';\n try {\n await putSecret(secret, response.access_token, description);\n response.secret = secret;\n } catch (error) {\n if (\n _.get(error, 'response.data.code') === 400 &&\n _.get(error, 'response.data.message') ===\n 'Failed to create secret, the secret already exists'\n ) {\n const newSecret = `${secret}-${expires}`;\n printMessage(\n `esv '${secret}' already exists, using ${newSecret}`,\n 'warn'\n );\n await putSecret(newSecret, response.access_token, description);\n response.secret = newSecret;\n }\n }\n delete response.access_token;\n }\n return response;\n}\n\nexport async function removeStaticUserMapping(subject) {\n const authentication = await getConfigEntity('authentication');\n let removeMapping = false;\n const mappings = authentication.rsFilter.staticUserMapping.filter(\n (mapping) => {\n // find the subject and flag it\n if (mapping.subject === subject) {\n removeMapping = true;\n }\n // ignore mappings for other subjects\n return mapping.subject !== subject;\n }\n );\n authentication.rsFilter.staticUserMapping = mappings;\n if (removeMapping) {\n printMessage(`Removing static user mapping for subject \"${subject}\"...`);\n try {\n await putConfigEntity('authentication', authentication);\n } catch (putConfigEntityError) {\n printMessage(putConfigEntityError, 'error');\n printMessage(`Error: ${putConfigEntityError}`, 'error');\n }\n } else {\n printMessage(`No static user mapping for subject \"${subject}\" found.`);\n }\n}\n\nexport async function hideGenericExtensionAttributes(\n includeCustomized,\n dryRun\n) {\n const managed = await getConfigEntity('managed');\n const propertyNames = Object.keys(GENERIC_EXTENSION_ATTRIBUTES);\n const updatedObjects = managed.objects.map((object) => {\n // ignore all other objects\n if (object.name !== getRealmManagedUser()) {\n return object;\n }\n propertyNames.forEach((name) => {\n if (\n isEqualJson(\n GENERIC_EXTENSION_ATTRIBUTES[name],\n object.schema.properties[name],\n ['viewable', 'usageDescription']\n ) ||\n includeCustomized\n ) {\n if (object.schema.properties[name].viewable) {\n printMessage(`${name}: hide`);\n // eslint-disable-next-line no-param-reassign\n object.schema.properties[name].viewable = false;\n } else {\n printMessage(`${name}: ignore (already hidden)`);\n }\n } else {\n printMessage(`${name}: skip (customized)`);\n }\n });\n return object;\n });\n managed.objects = updatedObjects;\n if (dryRun) {\n printMessage('Dry-run only. Changes are not saved.');\n } else {\n try {\n await putConfigEntity('managed', managed);\n } catch (putConfigEntityError) {\n printMessage(putConfigEntityError, 'error');\n printMessage(`Error: ${putConfigEntityError}`, 'error');\n }\n }\n}\n\nexport async function showGenericExtensionAttributes(\n includeCustomized,\n dryRun\n) {\n const managed = await getConfigEntity('managed');\n const propertyNames = Object.keys(GENERIC_EXTENSION_ATTRIBUTES);\n const updatedObjects = managed.objects.map((object) => {\n // ignore all other objects\n if (object.name !== getRealmManagedUser()) {\n return object;\n }\n propertyNames.forEach((name) => {\n if (\n isEqualJson(\n GENERIC_EXTENSION_ATTRIBUTES[name],\n object.schema.properties[name],\n ['viewable', 'usageDescription']\n ) ||\n includeCustomized\n ) {\n if (!object.schema.properties[name].viewable) {\n printMessage(`${name}: show`);\n // eslint-disable-next-line no-param-reassign\n object.schema.properties[name].viewable = true;\n } else {\n printMessage(`${name}: ignore (already showing)`);\n }\n } else {\n printMessage(`${name}: skip (customized)`);\n }\n });\n return object;\n });\n managed.objects = updatedObjects;\n if (dryRun) {\n printMessage('Dry-run only. Changes are not saved.');\n } else {\n try {\n await putConfigEntity('managed', managed);\n } catch (putConfigEntityError) {\n printMessage(putConfigEntityError, 'error');\n printMessage(`Error: ${putConfigEntityError}`, 'error');\n }\n }\n}\n\nasync function repairOrgModelUser(dryRun) {\n const managed = await getConfigEntity('managed');\n const RDVPs = ['memberOfOrgIDs'];\n let repairData = false;\n const updatedObjects = managed.objects.map((object) => {\n // ignore all other objects\n if (object.name !== getRealmManagedUser()) {\n return object;\n }\n printMessage(`${object.name}: checking...`);\n RDVPs.forEach((name) => {\n if (!object.schema.properties[name].queryConfig.flattenProperties) {\n printMessage(`- ${name}: repairing - needs flattening`, 'warn');\n // eslint-disable-next-line no-param-reassign\n object.schema.properties[name].queryConfig.flattenProperties = true;\n repairData = true;\n } else {\n printMessage(`- ${name}: OK`);\n }\n });\n return object;\n });\n managed.objects = updatedObjects;\n if (!dryRun) {\n try {\n await putConfigEntity('managed', managed);\n } catch (putConfigEntityError) {\n printMessage(putConfigEntityError, 'error');\n printMessage(`Error: ${putConfigEntityError}`, 'error');\n }\n }\n return repairData;\n}\n\nasync function repairOrgModelOrg(dryRun) {\n const managed = await getConfigEntity('managed');\n const RDVPs = [\n 'adminIDs',\n 'ownerIDs',\n 'parentAdminIDs',\n 'parentOwnerIDs',\n 'parentIDs',\n ];\n let repairData = false;\n const updatedObjects = managed.objects.map((object) => {\n // ignore all other objects\n if (object.name !== getRealmManagedOrganization()) {\n return object;\n }\n printMessage(`${object.name}: checking...`);\n RDVPs.forEach((name) => {\n if (!object.schema.properties[name].queryConfig.flattenProperties) {\n printMessage(`- ${name}: repairing - needs flattening`, 'warn');\n // eslint-disable-next-line no-param-reassign\n object.schema.properties[name].queryConfig.flattenProperties = true;\n repairData = true;\n } else {\n printMessage(`- ${name}: OK`);\n }\n });\n return object;\n });\n managed.objects = updatedObjects;\n if (!dryRun) {\n try {\n await putConfigEntity('managed', managed);\n } catch (putConfigEntityError) {\n printMessage(putConfigEntityError, 'error');\n printMessage(`Error: ${putConfigEntityError}`, 'error');\n }\n }\n return repairData;\n}\n\nasync function repairOrgModelData(dryRun = false) {\n if (!dryRun) {\n // const rootOrgs = await findRootOrganizations();\n }\n}\n\nasync function extendOrgModelPermissins(dryRun = false) {\n if (!dryRun) {\n // const rootOrgs = await findRootOrganizations();\n }\n}\n\nexport async function repairOrgModel(\n excludeCustomized,\n extendPermissions,\n dryRun\n) {\n let repairData = false;\n repairData = repairData || (await repairOrgModelUser(dryRun));\n repairData = repairData || (await repairOrgModelOrg(dryRun));\n if (excludeCustomized) {\n //\n }\n if (repairData) {\n await repairOrgModelData(dryRun);\n }\n if (extendPermissions) {\n await extendOrgModelPermissins(dryRun);\n }\n if (dryRun) {\n printMessage('Dry-run only. Changes are not saved.', 'warn');\n }\n}\n\n// suggested by John K.\n// export async function removeRealmNameFromManagedObjectLabels() {}\n// export async function addRealmNameToManagedObjectLabels() {}\n// export async function cleanUpPostmanArtifacts() {}\n// export async function createSampleThemes() {}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AdminOps.js","names":["fs","_","getOAuth2Clients","getOAuth2Client","putOAuth2Client","getConfigEntity","putConfigEntity","isEqualJson","getRealmManagedUser","getRealmManagedOrganization","getOAuth2Provider","putSecret","clientCredentialsGrant","printMessage","path","fileURLToPath","__dirname","dirname","import","meta","url","OAUTH2_CLIENT","JSON","parse","readFileSync","resolve","GENERIC_EXTENSION_ATTRIBUTES","protectedClients","protectedSubjects","privilegedScopes","privilegedRoles","adminScopes","adminDefaultScopes","adminRoles","autoIdRoles","listOAuth2CustomClients","clients","map","client","_id","filter","includes","authentication","subjects","rsFilter","staticUserMapping","mapping","subject","adminClients","listOAuth2AdminClients","isPrivileged","coreOAuth2ClientConfig","scopes","forEach","scope","roles","role","listNonOAuth2AdminStaticUserMappings","showProtected","adminSubjects","getDynamicClientRegistrationScope","provider","clientDynamicRegistrationConfig","dynamicClientRegistrationScope","addAdminScopes","clientId","modClient","allAdminScopes","concat","addScopes","value","add","addDefaultScope","defaultScopes","length","addClientCredentialsGrantType","modified","advancedOAuth2ClientConfig","grantTypes","push","inherited","addAdminStaticUserMapping","name","error","message","needsAdminMapping","addRoles","mappings","newMapping","localUser","userRoles","putConfigEntityError","addAutoIdStaticUserMapping","grantOAuth2ClientAdminPrivileges","clientName","descriptions","startsWith","Date","toLocaleString","removeAdminScopes","finalScopes","finalDefaultScopes","removeClientCredentialsGrantType","finalGrantTypes","grantType","removeAdminStaticUserMapping","finalRoles","removeMapping","revokeOAuth2ClientAdminPrivileges","createOAuth2ClientWithAdminPrivileges","clientSecret","userpassword","createLongLivedToken","secret","lifetime","rememberedLifetime","accessTokenLifetime","response","expires","getTime","expires_in","expires_on","description","access_token","get","newSecret","removeStaticUserMapping","hideGenericExtensionAttributes","includeCustomized","dryRun","managed","propertyNames","Object","keys","updatedObjects","objects","object","schema","properties","viewable","showGenericExtensionAttributes","repairOrgModelUser","RDVPs","repairData","queryConfig","flattenProperties","repairOrgModelOrg","repairOrgModelData","extendOrgModelPermissins","repairOrgModel","excludeCustomized","extendPermissions"],"sources":["../../src/ops/AdminOps.ts"],"sourcesContent":["import fs from 'fs';\nimport _ from 'lodash';\nimport {\n getOAuth2Clients,\n getOAuth2Client,\n putOAuth2Client,\n} from '../ops/OAuth2ClientOps';\nimport { getConfigEntity, putConfigEntity } from '../api/IdmConfigApi';\nimport { isEqualJson, getRealmManagedUser } from './utils/OpsUtils';\nimport { getRealmManagedOrganization } from './OrganizationOps';\nimport { getOAuth2Provider } from '../ops/OAuth2ProviderOps';\nimport { putSecret } from '../api/cloud/SecretsApi';\nimport { clientCredentialsGrant } from '../api/OAuth2OIDCApi';\nimport { printMessage } from './utils/Console';\nimport path from 'path';\nimport { fileURLToPath } from 'url';\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\n\nconst OAUTH2_CLIENT = JSON.parse(\n fs.readFileSync(\n path.resolve(__dirname, './templates/OAuth2ClientTemplate.json'),\n 'utf8'\n )\n);\nconst GENERIC_EXTENSION_ATTRIBUTES = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n './templates/cloud/GenericExtensionAttributesTemplate.json'\n ),\n 'utf8'\n )\n);\n\nconst protectedClients = ['ui', 'idm-provisioning'];\nconst protectedSubjects = ['amadmin', 'autoid-resource-server'];\n\nconst privilegedScopes = [\n 'am-introspect-all-tokens',\n 'fr:idm:*',\n 'fr:idc:esv:*',\n];\n// const privilegedUsers = ['openidm-admin'];\nconst privilegedRoles = [\n 'internal/role/openidm-authorized',\n 'internal/role/openidm-admin',\n];\n\nconst adminScopes = ['fr:idm:*', 'fr:idc:esv:*'];\nconst adminDefaultScopes = ['fr:idm:*'];\nconst adminRoles = [\n 'internal/role/openidm-authorized',\n 'internal/role/openidm-admin',\n];\nconst autoIdRoles = [\n 'internal/role/platform-provisioning',\n 'internal/role/openidm-authorized',\n 'internal/role/openidm-admin',\n];\n\n/*\n * List all oauth2 clients, which have a corresponding staticUserMapping\n * in the IDM authentication.json:\n {\n \"_id\": \"authentication\",\n \"rsFilter\": {\n ...\n \"staticUserMapping\": [\n {\n \"subject\": \"someOauth2ClientID\",\n \"localUser\": \"internal/user/openidm-admin\",\n \"userRoles\": \"authzRoles/*\",\n \"roles\": [\n \"internal/role/openidm-authorized\",\n \"internal/role/openidm-admin\"\n ]\n },\n {\n \"subject\": \"RCSClient\",\n \"localUser\": \"internal/user/idm-provisioning\"\n }\n ]\n }\n }\n */\nexport async function listOAuth2CustomClients() {\n let clients = await getOAuth2Clients();\n clients = clients\n .map((client) => client._id)\n .filter((client) => !protectedClients.includes(client));\n const authentication = await getConfigEntity('authentication');\n const subjects = authentication.rsFilter.staticUserMapping\n .map((mapping) => mapping.subject)\n .filter((subject) => !protectedSubjects.includes(subject));\n const adminClients = subjects.filter((subject) => clients.includes(subject));\n return adminClients;\n}\n\n/*\n * List all oauth2 clients, which have the fr:idm:* scope and a \n * corresponding staticUserMapping in the IDM authentication.json\n * and are assigned admin privileges:\n {\n \"_id\": \"authentication\",\n \"rsFilter\": {\n ...\n \"staticUserMapping\": [\n {\n \"subject\": \"someOauth2ClientID\",\n \"localUser\": \"internal/user/openidm-admin\",\n \"userRoles\": \"authzRoles/*\",\n \"roles\": [\n \"internal/role/openidm-authorized\",\n \"internal/role/openidm-admin\"\n ]\n }\n ]\n }\n }\n */\nexport async function listOAuth2AdminClients() {\n let clients = await getOAuth2Clients();\n clients = clients\n .filter((client) => {\n let isPrivileged = false;\n if (client.coreOAuth2ClientConfig.scopes) {\n client.coreOAuth2ClientConfig.scopes.forEach((scope) => {\n if (privilegedScopes.includes(scope)) {\n isPrivileged = true;\n }\n });\n }\n return isPrivileged;\n })\n .map((client) => client._id)\n .filter((client) => !protectedClients.includes(client));\n const authentication = await getConfigEntity('authentication');\n const subjects = authentication.rsFilter.staticUserMapping\n .filter((mapping) => {\n let isPrivileged = false;\n if (mapping.roles) {\n mapping.roles.forEach((role) => {\n if (privilegedRoles.includes(role)) {\n isPrivileged = true;\n }\n });\n }\n return isPrivileged;\n })\n .map((mapping) => mapping.subject)\n .filter((subject) => !protectedSubjects.includes(subject));\n const adminClients = subjects.filter((subject) => clients.includes(subject));\n return adminClients;\n}\n\n/*\n * List all static user mappings that are not oauth2 clients in authentication.json\n * and are assigned admin privileges:\n {\n \"_id\": \"authentication\",\n \"rsFilter\": {\n ...\n \"staticUserMapping\": [\n {\n \"subject\": \"amadmin\",\n \"localUser\": \"internal/user/openidm-admin\",\n \"userRoles\": \"authzRoles/*\",\n \"roles\": [\n \"internal/role/openidm-authorized\",\n \"internal/role/openidm-admin\"\n ]\n },\n {\n \"subject\": \"idm-provisioning\",\n \"localUser\": \"internal/user/idm-provisioning\",\n \"roles\": [\n \"internal/role/platform-provisioning\"\n ]\n },\n {\n \"subject\": \"RCSClient\",\n \"localUser\": \"internal/user/idm-provisioning\"\n },\n {\n \"subject\": \"autoid-resource-server\",\n \"localUser\": \"internal/user/idm-provisioning\",\n \"roles\": [\n \"internal/role/platform-provisioning\",\n \"internal/role/openidm-authorized\",\n \"internal/role/openidm-admin\"\n ]\n }\n ]\n }\n }\n */\nexport async function listNonOAuth2AdminStaticUserMappings(showProtected) {\n let clients = await getOAuth2Clients();\n clients = clients\n .map((client) => client._id)\n .filter((client) => !protectedClients.includes(client));\n const authentication = await getConfigEntity('authentication');\n let subjects = authentication.rsFilter.staticUserMapping\n .filter((mapping) => {\n let isPrivileged = false;\n if (mapping.roles) {\n mapping.roles.forEach((role) => {\n if (privilegedRoles.includes(role)) {\n isPrivileged = true;\n }\n });\n }\n return isPrivileged;\n })\n .map((mapping) => mapping.subject);\n if (!showProtected) {\n subjects = subjects.filter(\n (subject) => !protectedSubjects.includes(subject)\n );\n }\n const adminSubjects = subjects.filter(\n (subject) => !clients.includes(subject)\n );\n return adminSubjects;\n}\n\nasync function getDynamicClientRegistrationScope() {\n const provider = await getOAuth2Provider();\n return provider.clientDynamicRegistrationConfig\n .dynamicClientRegistrationScope;\n}\n\nasync function addAdminScopes(clientId, client) {\n const modClient = client;\n const allAdminScopes = adminScopes.concat([\n await getDynamicClientRegistrationScope(),\n ]);\n let addScopes = [];\n if (\n modClient.coreOAuth2ClientConfig.scopes &&\n modClient.coreOAuth2ClientConfig.scopes.value\n ) {\n addScopes = allAdminScopes.filter((scope) => {\n let add = false;\n if (!modClient.coreOAuth2ClientConfig.scopes.value.includes(scope)) {\n add = true;\n }\n return add;\n });\n modClient.coreOAuth2ClientConfig.scopes.value =\n modClient.coreOAuth2ClientConfig.scopes.value.concat(addScopes);\n } else {\n modClient.coreOAuth2ClientConfig.scopes.value = allAdminScopes;\n }\n let addDefaultScope = false;\n if (\n modClient.coreOAuth2ClientConfig.defaultScopes &&\n modClient.coreOAuth2ClientConfig.defaultScopes.value\n ) {\n if (modClient.coreOAuth2ClientConfig.defaultScopes.value.length === 0) {\n addDefaultScope = true;\n modClient.coreOAuth2ClientConfig.defaultScopes.value = adminDefaultScopes;\n } else {\n printMessage(\n `Client \"${clientId}\" already has default scopes configured, not adding admin default scope.`\n );\n }\n }\n if (addScopes.length > 0 || addDefaultScope) {\n printMessage(`Adding admin scopes to client \"${clientId}\"...`);\n } else {\n printMessage(`Client \"${clientId}\" already has admin scopes.`);\n }\n return modClient;\n}\n\nfunction addClientCredentialsGrantType(clientId, client) {\n const modClient = client;\n let modified = false;\n if (\n modClient.advancedOAuth2ClientConfig.grantTypes &&\n modClient.advancedOAuth2ClientConfig.grantTypes.value\n ) {\n if (\n !modClient.advancedOAuth2ClientConfig.grantTypes.value.includes(\n 'client_credentials'\n )\n ) {\n modified = true;\n modClient.advancedOAuth2ClientConfig.grantTypes.value.push(\n 'client_credentials'\n );\n }\n } else {\n modClient.advancedOAuth2ClientConfig.grantTypes.value = [\n 'client_credentials',\n ];\n }\n modClient.advancedOAuth2ClientConfig.grantTypes.inherited = false;\n if (modified) {\n printMessage(\n `Adding client credentials grant type to client \"${clientId}\"...`\n );\n } else {\n printMessage(\n `Client \"${clientId}\" already has client credentials grant type.`\n );\n }\n return modClient;\n}\n\nasync function addAdminStaticUserMapping(name) {\n let authentication = {};\n try {\n authentication = await getConfigEntity('authentication');\n } catch (error) {\n printMessage(\n `Error reading IDM authentication configuration: ${error.message}`,\n 'error'\n );\n }\n let needsAdminMapping = true;\n let addRoles = [];\n const mappings = authentication['rsFilter']['staticUserMapping'].map(\n (mapping) => {\n // ignore mappings for other subjects\n if (mapping.subject !== name) {\n return mapping;\n }\n needsAdminMapping = false;\n addRoles = adminRoles.filter((role) => {\n let add = false;\n if (!mapping.roles.includes(role)) {\n add = true;\n }\n return add;\n });\n const newMapping = mapping;\n newMapping.roles = newMapping.roles.concat(addRoles);\n return newMapping;\n }\n );\n if (needsAdminMapping) {\n printMessage(`Creating static user mapping for client \"${name}\"...`);\n mappings.push({\n subject: name,\n localUser: 'internal/user/openidm-admin',\n userRoles: 'authzRoles/*',\n roles: adminRoles,\n });\n }\n authentication['rsFilter']['staticUserMapping'] = mappings;\n if (addRoles.length > 0 || needsAdminMapping) {\n printMessage(\n `Adding admin roles to static user mapping for client \"${name}\"...`\n );\n try {\n await putConfigEntity('authentication', authentication);\n } catch (putConfigEntityError) {\n printMessage(putConfigEntityError, 'error');\n printMessage(`Error: ${putConfigEntityError}`, 'error');\n }\n } else {\n printMessage(\n `Static user mapping for client \"${name}\" already has admin roles.`\n );\n }\n}\n\n/*\n * Add AutoId static user mapping to authentication.json to enable dashboards and other AutoId-based functionality.\n {\n \"_id\": \"authentication\",\n \"rsFilter\": {\n ...\n \"staticUserMapping\": [\n ...\n {\n \"subject\": \"autoid-resource-server\",\n \"localUser\": \"internal/user/idm-provisioning\",\n \"roles\": [\n \"internal/role/platform-provisioning\",\n \"internal/role/openidm-authorized\",\n \"internal/role/openidm-admin\"\n ]\n }\n ]\n }\n }\n */\nexport async function addAutoIdStaticUserMapping() {\n const name = 'autoid-resource-server';\n const authentication = await getConfigEntity('authentication');\n let needsAdminMapping = true;\n let addRoles = [];\n const mappings = authentication.rsFilter.staticUserMapping.map((mapping) => {\n // ignore mappings for other subjects\n if (mapping.subject !== name) {\n return mapping;\n }\n needsAdminMapping = false;\n addRoles = autoIdRoles.filter((role) => {\n let add = false;\n if (!mapping.roles.includes(role)) {\n add = true;\n }\n return add;\n });\n const newMapping = mapping;\n newMapping.roles = newMapping.roles.concat(addRoles);\n return newMapping;\n });\n if (needsAdminMapping) {\n printMessage(`Creating static user mapping for AutoId client \"${name}\"...`);\n mappings.push({\n subject: name,\n localUser: 'internal/user/idm-provisioning',\n userRoles: 'authzRoles/*',\n roles: autoIdRoles,\n });\n }\n authentication.rsFilter.staticUserMapping = mappings;\n if (addRoles.length > 0 || needsAdminMapping) {\n printMessage(\n `Adding required roles to static user mapping for AutoId client \"${name}\"...`\n );\n try {\n await putConfigEntity('authentication', authentication);\n } catch (putConfigEntityError) {\n printMessage(putConfigEntityError, 'error');\n printMessage(`Error: ${putConfigEntityError}`, 'error');\n }\n } else {\n printMessage(\n `Static user mapping for AutoId client \"${name}\" already has all required roles.`\n );\n }\n}\n\nexport async function grantOAuth2ClientAdminPrivileges(clientId) {\n let client = await getOAuth2Client(clientId);\n if (client.coreOAuth2ClientConfig.clientName.value.length === 0) {\n client.coreOAuth2ClientConfig.clientName.value = [clientId];\n }\n if (\n client.advancedOAuth2ClientConfig.descriptions.value.length === 0 ||\n client.advancedOAuth2ClientConfig.descriptions.value[0].startsWith(\n 'Modified by Frodo'\n ) ||\n client.advancedOAuth2ClientConfig.descriptions.value[0].startsWith(\n 'Created by Frodo'\n )\n ) {\n client.advancedOAuth2ClientConfig.descriptions.value = [\n `Modified by Frodo on ${new Date().toLocaleString()}`,\n ];\n }\n client = await addAdminScopes(clientId, client);\n client = addClientCredentialsGrantType(clientId, client);\n await putOAuth2Client(clientId, client);\n await addAdminStaticUserMapping(clientId);\n}\n\nasync function removeAdminScopes(name, client) {\n const modClient = client;\n const allAdminScopes = adminScopes.concat([\n await getDynamicClientRegistrationScope(),\n ]);\n let finalScopes = [];\n if (\n modClient.coreOAuth2ClientConfig.scopes &&\n modClient.coreOAuth2ClientConfig.scopes.value\n ) {\n finalScopes = modClient.coreOAuth2ClientConfig.scopes.value.filter(\n (scope) => !allAdminScopes.includes(scope)\n );\n }\n if (\n modClient.coreOAuth2ClientConfig.scopes.value.length > finalScopes.length\n ) {\n printMessage(`Removing admin scopes from client \"${name}\"...`);\n modClient.coreOAuth2ClientConfig.scopes.value = finalScopes;\n } else {\n printMessage(`Client \"${name}\" has no admin scopes.`);\n }\n let finalDefaultScopes = [];\n if (\n modClient.coreOAuth2ClientConfig.defaultScopes &&\n modClient.coreOAuth2ClientConfig.defaultScopes.value\n ) {\n finalDefaultScopes =\n modClient.coreOAuth2ClientConfig.defaultScopes.value.filter(\n (scope) => !adminDefaultScopes.includes(scope)\n );\n }\n if (\n modClient.coreOAuth2ClientConfig.defaultScopes.value.length >\n finalDefaultScopes.length\n ) {\n printMessage(`Removing admin default scopes from client \"${name}\"...`);\n modClient.coreOAuth2ClientConfig.defaultScopes.value = finalDefaultScopes;\n } else {\n printMessage(`Client \"${name}\" has no admin default scopes.`);\n }\n return modClient;\n}\n\nfunction removeClientCredentialsGrantType(clientId, client) {\n const modClient = client;\n let modified = false;\n let finalGrantTypes = [];\n if (\n modClient.advancedOAuth2ClientConfig.grantTypes &&\n modClient.advancedOAuth2ClientConfig.grantTypes.value\n ) {\n finalGrantTypes =\n modClient.advancedOAuth2ClientConfig.grantTypes.value.filter(\n (grantType) => grantType !== 'client_credentials'\n );\n modified =\n modClient.advancedOAuth2ClientConfig.grantTypes.value.length >\n finalGrantTypes.length;\n }\n if (modified) {\n printMessage(\n `Removing client credentials grant type from client \"${clientId}\"...`\n );\n modClient.advancedOAuth2ClientConfig.grantTypes.value = finalGrantTypes;\n } else {\n printMessage(\n `Client \"${clientId}\" does not allow client credentials grant type.`\n );\n }\n return modClient;\n}\n\nasync function removeAdminStaticUserMapping(name) {\n const authentication = await getConfigEntity('authentication');\n let finalRoles = [];\n let removeMapping = false;\n let modified = false;\n const mappings = authentication.rsFilter.staticUserMapping\n .map((mapping) => {\n // ignore mappings for other subjects\n if (mapping.subject !== name) {\n return mapping;\n }\n finalRoles = mapping.roles.filter((role) => !adminRoles.includes(role));\n const newMapping = mapping;\n removeMapping = finalRoles.length === 0; // if there are no more roles left on this mapping, flag it for removal\n modified = mapping.roles.length > finalRoles.length; // if there were roles removed, set modified flag\n newMapping.roles = finalRoles;\n return newMapping;\n })\n .filter((mapping) => mapping.subject !== name || !removeMapping);\n authentication.rsFilter.staticUserMapping = mappings;\n if (modified || removeMapping) {\n if (removeMapping) {\n printMessage(`Removing static user mapping for client \"${name}\"...`);\n } else {\n printMessage(\n `Removing admin roles from static user mapping for client \"${name}\"...`\n );\n }\n try {\n await putConfigEntity('authentication', authentication);\n } catch (putConfigEntityError) {\n printMessage(putConfigEntityError, 'error');\n printMessage(`Error: ${putConfigEntityError}`, 'error');\n }\n } else {\n printMessage(\n `Static user mapping for client \"${name}\" has no admin roles.`\n );\n }\n}\n\nexport async function revokeOAuth2ClientAdminPrivileges(clientId) {\n let client = await getOAuth2Client(clientId);\n if (client.coreOAuth2ClientConfig.clientName.value.length === 0) {\n client.coreOAuth2ClientConfig.clientName.value = [clientId];\n }\n if (\n client.advancedOAuth2ClientConfig.descriptions.value.length === 0 ||\n client.advancedOAuth2ClientConfig.descriptions.value[0].startsWith(\n 'Modified by Frodo'\n ) ||\n client.advancedOAuth2ClientConfig.descriptions.value[0].startsWith(\n 'Created by Frodo'\n )\n ) {\n client.advancedOAuth2ClientConfig.descriptions.value = [\n `Modified by Frodo on ${new Date().toLocaleString()}`,\n ];\n }\n client = await removeAdminScopes(clientId, client);\n client = removeClientCredentialsGrantType(clientId, client);\n await putOAuth2Client(clientId, client);\n await removeAdminStaticUserMapping(clientId);\n}\n\nexport async function createOAuth2ClientWithAdminPrivileges(\n clientId,\n clientSecret\n) {\n let client = OAUTH2_CLIENT;\n client.coreOAuth2ClientConfig.userpassword = clientSecret;\n client.coreOAuth2ClientConfig.clientName.value = [clientId];\n client.advancedOAuth2ClientConfig.descriptions.value = [\n `Created by Frodo on ${new Date().toLocaleString()}`,\n ];\n try {\n client = await addAdminScopes(clientId, client);\n await putOAuth2Client(clientId, client);\n await addAdminStaticUserMapping(clientId);\n } catch (error) {\n printMessage(`Error creating oauth2 client: ${error.message}`, 'error');\n }\n}\n\nexport async function createLongLivedToken(\n clientId: string,\n clientSecret: string,\n scope: string,\n secret: string | boolean,\n lifetime: number\n) {\n // get oauth2 client\n const client = await getOAuth2Client(clientId);\n client.userpassword = clientSecret;\n // remember current lifetime\n const rememberedLifetime =\n client.coreOAuth2ClientConfig.accessTokenLifetime.value || 3600;\n // set long token lifetime\n client.coreOAuth2ClientConfig.accessTokenLifetime.value = lifetime;\n await putOAuth2Client(clientId, client);\n const response = await clientCredentialsGrant(clientId, clientSecret, scope);\n const expires = new Date().getTime() + 1000 * response.expires_in;\n response.expires_on = new Date(expires).toLocaleString();\n // reset token lifetime\n client.coreOAuth2ClientConfig.accessTokenLifetime.value = rememberedLifetime;\n await putOAuth2Client(clientId, client);\n // create secret with token as value\n if (secret) {\n const description = 'Long-lived admin token';\n try {\n await putSecret(secret, response.access_token, description);\n response.secret = secret;\n } catch (error) {\n if (\n _.get(error, 'response.data.code') === 400 &&\n _.get(error, 'response.data.message') ===\n 'Failed to create secret, the secret already exists'\n ) {\n const newSecret = `${secret}-${expires}`;\n printMessage(\n `esv '${secret}' already exists, using ${newSecret}`,\n 'warn'\n );\n await putSecret(newSecret, response.access_token, description);\n response.secret = newSecret;\n }\n }\n delete response.access_token;\n }\n return response;\n}\n\nexport async function removeStaticUserMapping(subject) {\n const authentication = await getConfigEntity('authentication');\n let removeMapping = false;\n const mappings = authentication.rsFilter.staticUserMapping.filter(\n (mapping) => {\n // find the subject and flag it\n if (mapping.subject === subject) {\n removeMapping = true;\n }\n // ignore mappings for other subjects\n return mapping.subject !== subject;\n }\n );\n authentication.rsFilter.staticUserMapping = mappings;\n if (removeMapping) {\n printMessage(`Removing static user mapping for subject \"${subject}\"...`);\n try {\n await putConfigEntity('authentication', authentication);\n } catch (putConfigEntityError) {\n printMessage(putConfigEntityError, 'error');\n printMessage(`Error: ${putConfigEntityError}`, 'error');\n }\n } else {\n printMessage(`No static user mapping for subject \"${subject}\" found.`);\n }\n}\n\nexport async function hideGenericExtensionAttributes(\n includeCustomized,\n dryRun\n) {\n const managed = await getConfigEntity('managed');\n const propertyNames = Object.keys(GENERIC_EXTENSION_ATTRIBUTES);\n const updatedObjects = managed.objects.map((object) => {\n // ignore all other objects\n if (object.name !== getRealmManagedUser()) {\n return object;\n }\n propertyNames.forEach((name) => {\n if (\n isEqualJson(\n GENERIC_EXTENSION_ATTRIBUTES[name],\n object.schema.properties[name],\n ['viewable', 'usageDescription']\n ) ||\n includeCustomized\n ) {\n if (object.schema.properties[name].viewable) {\n printMessage(`${name}: hide`);\n // eslint-disable-next-line no-param-reassign\n object.schema.properties[name].viewable = false;\n } else {\n printMessage(`${name}: ignore (already hidden)`);\n }\n } else {\n printMessage(`${name}: skip (customized)`);\n }\n });\n return object;\n });\n managed.objects = updatedObjects;\n if (dryRun) {\n printMessage('Dry-run only. Changes are not saved.');\n } else {\n try {\n await putConfigEntity('managed', managed);\n } catch (putConfigEntityError) {\n printMessage(putConfigEntityError, 'error');\n printMessage(`Error: ${putConfigEntityError}`, 'error');\n }\n }\n}\n\nexport async function showGenericExtensionAttributes(\n includeCustomized,\n dryRun\n) {\n const managed = await getConfigEntity('managed');\n const propertyNames = Object.keys(GENERIC_EXTENSION_ATTRIBUTES);\n const updatedObjects = managed.objects.map((object) => {\n // ignore all other objects\n if (object.name !== getRealmManagedUser()) {\n return object;\n }\n propertyNames.forEach((name) => {\n if (\n isEqualJson(\n GENERIC_EXTENSION_ATTRIBUTES[name],\n object.schema.properties[name],\n ['viewable', 'usageDescription']\n ) ||\n includeCustomized\n ) {\n if (!object.schema.properties[name].viewable) {\n printMessage(`${name}: show`);\n // eslint-disable-next-line no-param-reassign\n object.schema.properties[name].viewable = true;\n } else {\n printMessage(`${name}: ignore (already showing)`);\n }\n } else {\n printMessage(`${name}: skip (customized)`);\n }\n });\n return object;\n });\n managed.objects = updatedObjects;\n if (dryRun) {\n printMessage('Dry-run only. Changes are not saved.');\n } else {\n try {\n await putConfigEntity('managed', managed);\n } catch (putConfigEntityError) {\n printMessage(putConfigEntityError, 'error');\n printMessage(`Error: ${putConfigEntityError}`, 'error');\n }\n }\n}\n\nasync function repairOrgModelUser(dryRun) {\n const managed = await getConfigEntity('managed');\n const RDVPs = ['memberOfOrgIDs'];\n let repairData = false;\n const updatedObjects = managed.objects.map((object) => {\n // ignore all other objects\n if (object.name !== getRealmManagedUser()) {\n return object;\n }\n printMessage(`${object.name}: checking...`);\n RDVPs.forEach((name) => {\n if (!object.schema.properties[name].queryConfig.flattenProperties) {\n printMessage(`- ${name}: repairing - needs flattening`, 'warn');\n // eslint-disable-next-line no-param-reassign\n object.schema.properties[name].queryConfig.flattenProperties = true;\n repairData = true;\n } else {\n printMessage(`- ${name}: OK`);\n }\n });\n return object;\n });\n managed.objects = updatedObjects;\n if (!dryRun) {\n try {\n await putConfigEntity('managed', managed);\n } catch (putConfigEntityError) {\n printMessage(putConfigEntityError, 'error');\n printMessage(`Error: ${putConfigEntityError}`, 'error');\n }\n }\n return repairData;\n}\n\nasync function repairOrgModelOrg(dryRun) {\n const managed = await getConfigEntity('managed');\n const RDVPs = [\n 'adminIDs',\n 'ownerIDs',\n 'parentAdminIDs',\n 'parentOwnerIDs',\n 'parentIDs',\n ];\n let repairData = false;\n const updatedObjects = managed.objects.map((object) => {\n // ignore all other objects\n if (object.name !== getRealmManagedOrganization()) {\n return object;\n }\n printMessage(`${object.name}: checking...`);\n RDVPs.forEach((name) => {\n if (!object.schema.properties[name].queryConfig.flattenProperties) {\n printMessage(`- ${name}: repairing - needs flattening`, 'warn');\n // eslint-disable-next-line no-param-reassign\n object.schema.properties[name].queryConfig.flattenProperties = true;\n repairData = true;\n } else {\n printMessage(`- ${name}: OK`);\n }\n });\n return object;\n });\n managed.objects = updatedObjects;\n if (!dryRun) {\n try {\n await putConfigEntity('managed', managed);\n } catch (putConfigEntityError) {\n printMessage(putConfigEntityError, 'error');\n printMessage(`Error: ${putConfigEntityError}`, 'error');\n }\n }\n return repairData;\n}\n\nasync function repairOrgModelData(dryRun = false) {\n if (!dryRun) {\n // const rootOrgs = await findRootOrganizations();\n }\n}\n\nasync function extendOrgModelPermissins(dryRun = false) {\n if (!dryRun) {\n // const rootOrgs = await findRootOrganizations();\n }\n}\n\nexport async function repairOrgModel(\n excludeCustomized,\n extendPermissions,\n dryRun\n) {\n let repairData = false;\n repairData = repairData || (await repairOrgModelUser(dryRun));\n repairData = repairData || (await repairOrgModelOrg(dryRun));\n if (excludeCustomized) {\n //\n }\n if (repairData) {\n await repairOrgModelData(dryRun);\n }\n if (extendPermissions) {\n await extendOrgModelPermissins(dryRun);\n }\n if (dryRun) {\n printMessage('Dry-run only. Changes are not saved.', 'warn');\n }\n}\n\n// suggested by John K.\n// export async function removeRealmNameFromManagedObjectLabels() {}\n// export async function addRealmNameToManagedObjectLabels() {}\n// export async function cleanUpPostmanArtifacts() {}\n// export async function createSampleThemes() {}\n"],"mappings":"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"}
|
package/esm/ops/AgentOps.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { debugMessage, printMessage } from
|
|
2
|
-
import { getAgentsByType, getAgentByTypeAndId as _getAgentByTypeAndId, putAgentByTypeAndId, findAgentById, deleteAgentByTypeAndId, findAgentByTypeAndId } from
|
|
3
|
-
import { validateImport } from
|
|
1
|
+
import { debugMessage, printMessage } from "./utils/Console.js";
|
|
2
|
+
import { getAgentsByType, getAgentByTypeAndId as _getAgentByTypeAndId, putAgentByTypeAndId, findAgentById, deleteAgentByTypeAndId, findAgentByTypeAndId } from "../api/AgentApi.js";
|
|
3
|
+
import { validateImport } from "./utils/ExportImportUtils.js";
|
|
4
4
|
export const AGENT_TYPE_IG = 'IdentityGatewayAgent';
|
|
5
5
|
export const AGENT_TYPE_JAVA = 'J2EEAgent';
|
|
6
6
|
export const AGENT_TYPE_WEB = 'WebAgent';
|