@rockcarver/frodo-lib 0.16.2-8 → 0.17.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/CHANGELOG.md +221 -1
- package/cjs/api/AgentApi.js +14 -61
- package/cjs/api/AgentApi.js.map +1 -1
- package/cjs/api/AgentApi.test.js.map +1 -1
- package/cjs/api/ApiTypes.js +0 -5
- package/cjs/api/ApiTypes.js.map +1 -1
- package/cjs/api/AuthenticateApi.js +9 -20
- package/cjs/api/AuthenticateApi.js.map +1 -1
- package/cjs/api/AuthenticateApi.test.js.map +1 -0
- package/cjs/api/BaseApi.js +82 -124
- package/cjs/api/BaseApi.js.map +1 -1
- package/cjs/api/CirclesOfTrustApi.js +8 -32
- package/cjs/api/CirclesOfTrustApi.js.map +1 -1
- package/cjs/api/IdmConfigApi.js +9 -34
- package/cjs/api/IdmConfigApi.js.map +1 -1
- package/cjs/api/LogApi.js +8 -31
- package/cjs/api/LogApi.js.map +1 -1
- package/cjs/api/ManagedObjectApi.js +34 -31
- package/cjs/api/ManagedObjectApi.js.map +1 -1
- package/cjs/api/NodeApi.js +10 -41
- package/cjs/api/NodeApi.js.map +1 -1
- package/cjs/api/NodeApi.test.js.map +1 -1
- package/cjs/api/OAuth2ClientApi.js +7 -26
- package/cjs/api/OAuth2ClientApi.js.map +1 -1
- package/cjs/api/OAuth2OIDCApi.js +28 -34
- package/cjs/api/OAuth2OIDCApi.js.map +1 -1
- package/cjs/api/OAuth2OIDCApi.test.js.map +1 -0
- package/cjs/api/OAuth2ProviderApi.js +5 -15
- package/cjs/api/OAuth2ProviderApi.js.map +1 -1
- package/cjs/api/RealmApi.js +8 -34
- package/cjs/api/RealmApi.js.map +1 -1
- package/cjs/api/Saml2Api.js +32 -118
- package/cjs/api/Saml2Api.js.map +1 -1
- package/cjs/api/ScriptApi.js +8 -30
- package/cjs/api/ScriptApi.js.map +1 -1
- package/cjs/api/SecretsApi.js +14 -64
- package/cjs/api/SecretsApi.js.map +1 -1
- package/cjs/api/SecretsApi.test.js.map +1 -1
- package/cjs/api/ServerInfoApi.js +6 -21
- package/cjs/api/ServerInfoApi.js.map +1 -1
- package/cjs/api/ServiceApi.js +49 -47
- package/cjs/api/ServiceApi.js.map +1 -1
- package/cjs/api/SocialIdentityProvidersApi.js +9 -36
- package/cjs/api/SocialIdentityProvidersApi.js.map +1 -1
- package/cjs/api/StartupApi.js +5 -24
- package/cjs/api/StartupApi.js.map +1 -1
- package/cjs/api/StartupApi.test.js.map +1 -1
- package/cjs/api/TreeApi.js +8 -30
- package/cjs/api/TreeApi.js.map +1 -1
- package/cjs/api/TreeApi.test.js.map +1 -1
- package/cjs/api/VariablesApi.js +9 -37
- package/cjs/api/VariablesApi.js.map +1 -1
- package/cjs/api/VariablesApi.test.js.map +1 -1
- package/cjs/api/utils/ApiUtils.js +47 -57
- package/cjs/api/utils/ApiUtils.js.map +1 -1
- package/cjs/api/utils/ApiUtils.test.js.map +1 -1
- package/cjs/api/utils/Base64.js +6 -15
- package/cjs/api/utils/Base64.js.map +1 -1
- package/cjs/ext/axios-curlirize/curlirize.js +2 -9
- package/cjs/ext/axios-curlirize/curlirize.js.map +1 -1
- package/cjs/ext/axios-curlirize/lib/CurlHelper.js +7 -22
- package/cjs/ext/axios-curlirize/lib/CurlHelper.js.map +1 -1
- package/cjs/index.js +30 -89
- package/cjs/index.js.map +1 -1
- package/cjs/ops/AdminOps.js +27 -165
- package/cjs/ops/AdminOps.js.map +1 -1
- package/cjs/ops/AgentOps.js +3 -160
- package/cjs/ops/AgentOps.js.map +1 -1
- package/cjs/ops/AgentOps.test.js.map +1 -1
- package/cjs/ops/AuthenticateOps.js +265 -226
- package/cjs/ops/AuthenticateOps.js.map +1 -1
- package/cjs/ops/AuthenticateOps.test.js.map +1 -1
- package/cjs/ops/CirclesOfTrustOps.js +13 -91
- package/cjs/ops/CirclesOfTrustOps.js.map +1 -1
- package/cjs/ops/ConnectionProfileOps.js +220 -136
- package/cjs/ops/ConnectionProfileOps.js.map +1 -1
- package/cjs/ops/ConnectionProfileOps.test.js.map +1 -1
- package/cjs/ops/EmailTemplateOps.js +35 -379
- package/cjs/ops/EmailTemplateOps.js.map +1 -1
- package/cjs/ops/EmailTemplateOps.test.js.map +1 -1
- package/cjs/ops/IdmOps.js +52 -426
- package/cjs/ops/IdmOps.js.map +1 -1
- package/cjs/ops/IdmOps.test.js.map +1 -1
- package/cjs/ops/IdpOps.js +11 -94
- package/cjs/ops/IdpOps.js.map +1 -1
- package/cjs/ops/IdpOps.test.js.map +1 -1
- package/cjs/ops/JoseOps.js +81 -0
- package/cjs/ops/JoseOps.js.map +1 -0
- package/cjs/ops/JoseOps.test.js.map +1 -0
- package/cjs/ops/JourneyOps.js +140 -371
- package/cjs/ops/JourneyOps.js.map +1 -1
- package/cjs/ops/JourneyOps.test.js.map +1 -1
- package/cjs/ops/LogOps.js +14 -47
- package/cjs/ops/LogOps.js.map +1 -1
- package/cjs/ops/ManagedObjectOps.js +4 -12
- package/cjs/ops/ManagedObjectOps.js.map +1 -1
- package/cjs/ops/NodeOps.js +9 -67
- package/cjs/ops/NodeOps.js.map +1 -1
- package/cjs/ops/OAuth2ClientOps.js +10 -40
- package/cjs/ops/OAuth2ClientOps.js.map +1 -1
- package/cjs/ops/OpsTypes.js +0 -5
- package/cjs/ops/OpsTypes.js.map +1 -1
- package/cjs/ops/OrganizationOps.js +6 -25
- package/cjs/ops/OrganizationOps.js.map +1 -1
- package/cjs/ops/RealmOps.js +0 -19
- package/cjs/ops/RealmOps.js.map +1 -1
- package/cjs/ops/Saml2Ops.js +258 -802
- package/cjs/ops/Saml2Ops.js.map +1 -1
- package/cjs/ops/Saml2Ops.test.js.map +1 -1
- package/cjs/ops/ScriptOps.js +28 -73
- package/cjs/ops/ScriptOps.js.map +1 -1
- package/cjs/ops/SecretsOps.js +2 -58
- package/cjs/ops/SecretsOps.js.map +1 -1
- package/cjs/ops/ServiceAccountOps.js +61 -0
- package/cjs/ops/ServiceAccountOps.js.map +1 -0
- package/cjs/ops/ServiceAccountOps.test.js.map +1 -0
- package/cjs/ops/ServiceOps.js +55 -101
- package/cjs/ops/ServiceOps.js.map +1 -1
- package/cjs/ops/StartupOps.js +2 -23
- package/cjs/ops/StartupOps.js.map +1 -1
- package/cjs/ops/ThemeOps.js +230 -436
- package/cjs/ops/ThemeOps.js.map +1 -1
- package/cjs/ops/ThemeOps.test.js.map +1 -0
- package/cjs/ops/VariablesOps.js +0 -38
- package/cjs/ops/VariablesOps.js.map +1 -1
- package/cjs/ops/utils/Console.js +29 -62
- package/cjs/ops/utils/Console.js.map +1 -1
- package/cjs/ops/utils/DataProtection.js +13 -47
- package/cjs/ops/utils/DataProtection.js.map +1 -1
- package/cjs/ops/utils/DataProtection.test.js.map +1 -1
- package/cjs/ops/utils/ExportImportUtils.js +36 -74
- package/cjs/ops/utils/ExportImportUtils.js.map +1 -1
- package/cjs/ops/utils/ExportImportUtils.test.js.map +1 -1
- package/cjs/ops/utils/OpsUtils.js +27 -43
- package/cjs/ops/utils/OpsUtils.js.map +1 -1
- package/cjs/ops/utils/OpsUtils.test.js.map +1 -1
- package/cjs/ops/utils/ValidationUtils.js +0 -13
- package/cjs/ops/utils/ValidationUtils.js.map +1 -1
- package/cjs/ops/utils/ValidationUtils.test.js.map +1 -1
- package/cjs/ops/utils/Version.js +2 -12
- package/cjs/ops/utils/Version.js.map +1 -1
- package/cjs/ops/utils/Version.test.js.map +1 -1
- package/cjs/ops/utils/Wordwrap.js +1 -2
- package/cjs/ops/utils/Wordwrap.js.map +1 -1
- package/cjs/ops/utils/Wordwrap.test.js.map +1 -0
- package/cjs/shared/State.js +239 -0
- package/cjs/shared/State.js.map +1 -0
- package/cjs/shared/State.test.js.map +1 -0
- package/cjs/storage/StaticStorage.js.map +1 -1
- package/cjs/test/mocks/AuthenticateApi/step/default_steps.json +88 -0
- package/cjs/test/mocks/ForgeRockApiMockEngine.js +184 -80
- package/cjs/test/mocks/ForgeRockApiMockEngine.js.map +1 -1
- package/cjs/test/mocks/IdmConfigApi/getConfigEntity/managed.json +4420 -0
- package/cjs/test/mocks/OAuth2OIDCApi/accessToken/body.json +6 -0
- package/cjs/test/mocks/OAuth2OIDCApi/accessToken/headers.json +19 -0
- package/cjs/test/mocks/OAuth2OIDCApi/authorize/headers.json +38 -0
- package/cjs/test/mocks/Saml2Api/findSaml2Providers/https:sts.windows.net711ffa9c-5972-4713-ace3-688c9732614a_stub.json +18 -0
- package/cjs/test/mocks/Saml2Api/findSaml2Providers/iSPAzure_stub.json +18 -0
- package/cjs/test/mocks/Saml2Api/getProvider/aVNQQXp1cmU.json +1 -2
- package/cjs/test/mocks/Saml2Api/getProvider/dXJuOmZlZGVyYXRpb246TWljcm9zb2Z0T25saW5l.json +1 -3
- package/cjs/test/mocks/Saml2Api/getProviderByLocationAndId/hosted/U1BBenVyZQ.json +147 -0
- package/cjs/test/mocks/Saml2Api/getProviderByLocationAndId/hosted/aHR0cHM6Ly9pZGMuc2NoZXViZXIuaW8vYW0vc2FtbDIvSURQQXp1cmU.json +182 -0
- package/cjs/test/mocks/Saml2Api/getProviderByLocationAndId/hosted/aHR0cHM6Ly9pZGMuc2NoZXViZXIuaW8vYW0vc2FtbDIvSURQQnJvYWRjb20.json +149 -0
- package/cjs/test/mocks/Saml2Api/getProviderByLocationAndId/hosted/aHR0cHM6Ly9pZGMuc2NoZXViZXIuaW8vYW0vc2FtbDIvSURQRmVkbGV0.json +141 -0
- package/cjs/test/mocks/Saml2Api/getProviderByLocationAndId/hosted/aVNQQXp1cmU.json +1 -2
- package/cjs/test/mocks/Saml2Api/getProviderByLocationAndId/hosted/dm9sa2VyRGV2U1A.json +118 -0
- package/cjs/test/mocks/Saml2Api/getProviderByLocationAndId/remote/aHR0cHM6Ly9zYW1sLm15dGVzdHJ1bi5jb20vc3A.json +66 -0
- package/cjs/test/mocks/Saml2Api/getProviderByLocationAndId/remote/aHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzExZmZhOWMtNTk3Mi00NzEzLWFjZTMtNjg4Yzk3MzI2MTRhLw.json +35 -0
- package/cjs/test/mocks/Saml2Api/getProviderByLocationAndId/remote/aWRw.json +83 -0
- package/cjs/test/mocks/Saml2Api/getProviderByLocationAndId/remote/dXJuOmZlZGVyYXRpb246TWljcm9zb2Z0T25saW5l.json +1 -3
- package/cjs/test/mocks/Saml2Api/getProviderMetadata/alpha/SPAzure.xml +74 -0
- package/cjs/test/mocks/Saml2Api/getProviderMetadata/alpha/https%3A%2F%2Fidc.scheuber.io%2Fam%2Fsaml2%2FIDPAzure.xml +78 -0
- package/cjs/test/mocks/Saml2Api/getProviderMetadata/alpha/https%3A%2F%2Fidc.scheuber.io%2Fam%2Fsaml2%2FIDPBroadcom.xml +78 -0
- package/cjs/test/mocks/Saml2Api/getProviderMetadata/alpha/https%3A%2F%2Fidc.scheuber.io%2Fam%2Fsaml2%2FIDPFedlet.xml +78 -0
- package/cjs/test/mocks/Saml2Api/getProviderMetadata/alpha/https%3A%2F%2Fsaml.mytestrun.com%2Fsp.xml +13 -0
- package/cjs/test/mocks/Saml2Api/getProviderMetadata/alpha/{dXJuOmZlZGVyYXRpb246TWljcm9zb2Z0T25saW5l.xml → https%3A%2F%2Fsts.windows.net%2F711ffa9c-5972-4713-ace3-688c9732614a%2F.xml} +0 -0
- package/cjs/test/mocks/Saml2Api/getProviderMetadata/alpha/{aVNQQXp1cmU.xml → iSPAzure.xml} +0 -0
- package/cjs/test/mocks/Saml2Api/getProviderMetadata/alpha/urn%3Afederation%3AMicrosoftOnline.xml +84 -0
- package/cjs/test/mocks/Saml2Ops/importSaml2Provider/SPAzure.saml.json +243 -0
- package/cjs/test/mocks/Saml2Ops/importSaml2Provider/iSPAzure.saml.json +242 -0
- package/cjs/test/mocks/Saml2Ops/importSaml2Provider/idc.scheuber.ioamsaml2IDPAzure.saml.json +454 -0
- package/cjs/test/mocks/Saml2Ops/importSaml2Provider/idc.scheuber.ioamsaml2IDPBroadcom.saml.json +586 -0
- package/cjs/test/mocks/Saml2Ops/importSaml2Provider/idc.scheuber.ioamsaml2IDPFedlet.saml.json +241 -0
- package/cjs/test/mocks/Saml2Ops/importSaml2Provider/idp.saml.json +185 -0
- package/cjs/test/mocks/Saml2Ops/importSaml2Provider/saml.mytestrun.comsp.saml.json +101 -0
- package/cjs/test/mocks/Saml2Ops/importSaml2Provider/sts.windows.net711ffa9c-5972-4713-ace3-688c9732614a.saml.json +113 -0
- package/cjs/test/mocks/Saml2Ops/importSaml2Provider/urn:federation:MicrosoftOnline.saml.json +199 -0
- package/cjs/test/mocks/Saml2Ops/importSaml2Provider/volkerDevSP.saml.json +212 -0
- package/cjs/test/mocks/Saml2Ops/importSaml2Providers/allAlphaProviders.saml.json +2414 -0
- package/cjs/test/mocks/ScriptApi/getScript/5b29c5b7-b161-4a42-a41f-d6c85316b951.json +13 -0
- package/cjs/test/mocks/ScriptApi/getScript/85523e71-2d77-4577-b078-6f9674cc54e2.json +13 -0
- package/cjs/test/mocks/ScriptApi/getScript/90c4eca5-05f0-42f5-b9bf-88b693eabbbd.json +13 -0
- package/cjs/test/mocks/ServerInfoApi/getServerInfo/info.json +25 -0
- package/cjs/test/mocks/ServerInfoApi/getServerVersionInfo/version.json +8 -0
- package/cjs/utils/AutoSetupPolly.js +79 -0
- package/cjs/utils/AutoSetupPolly.js.map +1 -0
- package/cjs/utils/SetupJest.js +6 -0
- package/cjs/utils/SetupJest.js.map +1 -0
- package/cjs/{test/mocks → utils}/snapshotResolve.js +10 -12
- package/cjs/utils/snapshotResolve.js.map +1 -0
- package/esm/api/AgentApi.mjs +19 -21
- package/esm/api/AgentApi.test.mjs +6 -15
- package/esm/api/ApiTypes.mjs +0 -5
- package/esm/api/AuthenticateApi.mjs +7 -10
- package/esm/api/AuthenticateApi.test.mjs +39 -0
- package/esm/api/BaseApi.mjs +96 -81
- package/esm/api/CirclesOfTrustApi.mjs +9 -12
- package/esm/api/IdmConfigApi.mjs +11 -12
- package/esm/api/LogApi.mjs +6 -10
- package/esm/api/ManagedObjectApi.mjs +23 -8
- package/esm/api/NodeApi.mjs +13 -15
- package/esm/api/NodeApi.test.mjs +13 -17
- package/esm/api/OAuth2ClientApi.mjs +7 -9
- package/esm/api/OAuth2OIDCApi.mjs +15 -9
- package/esm/api/OAuth2OIDCApi.test.mjs +53 -0
- package/esm/api/OAuth2ProviderApi.mjs +3 -5
- package/esm/api/RealmApi.mjs +10 -13
- package/esm/api/Saml2Api.mjs +31 -61
- package/esm/api/ScriptApi.mjs +9 -11
- package/esm/api/SecretsApi.mjs +21 -24
- package/esm/api/SecretsApi.test.mjs +9 -31
- package/esm/api/ServerInfoApi.mjs +5 -9
- package/esm/api/ServiceApi.mjs +53 -26
- package/esm/api/SocialIdentityProvidersApi.mjs +11 -13
- package/esm/api/StartupApi.mjs +5 -10
- package/esm/api/StartupApi.test.mjs +4 -7
- package/esm/api/TreeApi.mjs +9 -11
- package/esm/api/TreeApi.test.mjs +24 -61
- package/esm/api/VariablesApi.mjs +11 -13
- package/esm/api/VariablesApi.test.mjs +80 -222
- package/esm/api/utils/ApiUtils.mjs +45 -48
- package/esm/api/utils/ApiUtils.test.mjs +33 -32
- package/esm/api/utils/Base64.mjs +6 -9
- package/esm/ext/axios-curlirize/curlirize.mjs +2 -7
- package/esm/ext/axios-curlirize/lib/CurlHelper.mjs +7 -20
- package/esm/index.mjs +23 -13
- package/esm/ops/AdminOps.mjs +33 -119
- package/esm/ops/AgentOps.mjs +38 -81
- package/esm/ops/AgentOps.test.mjs +5 -45
- package/esm/ops/AuthenticateOps.mjs +241 -175
- package/esm/ops/AuthenticateOps.test.mjs +7 -9
- package/esm/ops/CirclesOfTrustOps.mjs +24 -61
- package/esm/ops/ConnectionProfileOps.mjs +192 -82
- package/esm/ops/ConnectionProfileOps.test.mjs +19 -19
- package/esm/ops/EmailTemplateOps.mjs +18 -276
- package/esm/ops/EmailTemplateOps.test.mjs +19 -44
- package/esm/ops/IdmOps.mjs +30 -327
- package/esm/ops/IdmOps.test.mjs +47 -54
- package/esm/ops/IdpOps.mjs +21 -59
- package/esm/ops/IdpOps.test.mjs +5 -5
- package/esm/ops/JoseOps.mjs +41 -0
- package/esm/ops/JoseOps.test.mjs +137 -0
- package/esm/ops/JourneyOps.mjs +147 -290
- package/esm/ops/JourneyOps.test.mjs +30 -28
- package/esm/ops/LogOps.mjs +15 -25
- package/esm/ops/ManagedObjectOps.mjs +6 -6
- package/esm/ops/NodeOps.mjs +9 -47
- package/esm/ops/OAuth2ClientOps.mjs +13 -19
- package/esm/ops/OpsTypes.mjs +1 -3
- package/esm/ops/OrganizationOps.mjs +7 -14
- package/esm/ops/RealmOps.mjs +4 -7
- package/esm/ops/Saml2Ops.mjs +199 -587
- package/esm/ops/Saml2Ops.test.mjs +303 -84
- package/esm/ops/ScriptOps.mjs +31 -47
- package/esm/ops/SecretsOps.mjs +15 -31
- package/esm/ops/ServiceAccountOps.mjs +41 -0
- package/esm/ops/ServiceAccountOps.test.mjs +51 -0
- package/esm/ops/ServiceOps.mjs +66 -83
- package/esm/ops/StartupOps.mjs +4 -13
- package/esm/ops/ThemeOps.mjs +189 -298
- package/esm/{api/ThemeApi.test.mjs → ops/ThemeOps.test.mjs} +91 -96
- package/esm/ops/VariablesOps.mjs +9 -18
- package/esm/ops/utils/Console.mjs +28 -46
- package/esm/ops/utils/DataProtection.mjs +15 -28
- package/esm/ops/utils/DataProtection.test.mjs +8 -8
- package/esm/ops/utils/ExportImportUtils.mjs +34 -43
- package/esm/ops/utils/ExportImportUtils.test.mjs +20 -18
- package/esm/ops/utils/OpsUtils.mjs +27 -21
- package/esm/ops/utils/OpsUtils.test.mjs +155 -27
- package/esm/ops/utils/ValidationUtils.mjs +0 -9
- package/esm/ops/utils/Version.mjs +2 -3
- package/esm/ops/utils/Version.test.mjs +0 -2
- package/esm/ops/utils/Wordwrap.mjs +1 -1
- package/esm/ops/utils/Wordwrap.test.mjs +19 -0
- package/esm/shared/State.mjs +164 -0
- package/esm/shared/State.test.mjs +249 -0
- package/esm/test/mocks/AuthenticateApi/step/default_steps.json +88 -0
- package/esm/test/mocks/ForgeRockApiMockEngine.mjs +169 -33
- package/esm/test/mocks/IdmConfigApi/getConfigEntity/managed.json +4420 -0
- package/esm/test/mocks/OAuth2OIDCApi/accessToken/body.json +6 -0
- package/esm/test/mocks/OAuth2OIDCApi/accessToken/headers.json +19 -0
- package/esm/test/mocks/OAuth2OIDCApi/authorize/headers.json +38 -0
- package/esm/test/mocks/Saml2Api/findSaml2Providers/https:sts.windows.net711ffa9c-5972-4713-ace3-688c9732614a_stub.json +18 -0
- package/esm/test/mocks/Saml2Api/findSaml2Providers/iSPAzure_stub.json +18 -0
- package/esm/test/mocks/Saml2Api/getProvider/aVNQQXp1cmU.json +1 -2
- package/esm/test/mocks/Saml2Api/getProvider/dXJuOmZlZGVyYXRpb246TWljcm9zb2Z0T25saW5l.json +1 -3
- package/esm/test/mocks/Saml2Api/getProviderByLocationAndId/hosted/U1BBenVyZQ.json +147 -0
- package/esm/test/mocks/Saml2Api/getProviderByLocationAndId/hosted/aHR0cHM6Ly9pZGMuc2NoZXViZXIuaW8vYW0vc2FtbDIvSURQQXp1cmU.json +182 -0
- package/esm/test/mocks/Saml2Api/getProviderByLocationAndId/hosted/aHR0cHM6Ly9pZGMuc2NoZXViZXIuaW8vYW0vc2FtbDIvSURQQnJvYWRjb20.json +149 -0
- package/esm/test/mocks/Saml2Api/getProviderByLocationAndId/hosted/aHR0cHM6Ly9pZGMuc2NoZXViZXIuaW8vYW0vc2FtbDIvSURQRmVkbGV0.json +141 -0
- package/esm/test/mocks/Saml2Api/getProviderByLocationAndId/hosted/aVNQQXp1cmU.json +1 -2
- package/esm/test/mocks/Saml2Api/getProviderByLocationAndId/hosted/dm9sa2VyRGV2U1A.json +118 -0
- package/esm/test/mocks/Saml2Api/getProviderByLocationAndId/remote/aHR0cHM6Ly9zYW1sLm15dGVzdHJ1bi5jb20vc3A.json +66 -0
- package/esm/test/mocks/Saml2Api/getProviderByLocationAndId/remote/aHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzExZmZhOWMtNTk3Mi00NzEzLWFjZTMtNjg4Yzk3MzI2MTRhLw.json +35 -0
- package/esm/test/mocks/Saml2Api/getProviderByLocationAndId/remote/aWRw.json +83 -0
- package/esm/test/mocks/Saml2Api/getProviderByLocationAndId/remote/dXJuOmZlZGVyYXRpb246TWljcm9zb2Z0T25saW5l.json +1 -3
- package/esm/test/mocks/Saml2Api/getProviderMetadata/alpha/SPAzure.xml +74 -0
- package/esm/test/mocks/Saml2Api/getProviderMetadata/alpha/https%3A%2F%2Fidc.scheuber.io%2Fam%2Fsaml2%2FIDPAzure.xml +78 -0
- package/esm/test/mocks/Saml2Api/getProviderMetadata/alpha/https%3A%2F%2Fidc.scheuber.io%2Fam%2Fsaml2%2FIDPBroadcom.xml +78 -0
- package/esm/test/mocks/Saml2Api/getProviderMetadata/alpha/https%3A%2F%2Fidc.scheuber.io%2Fam%2Fsaml2%2FIDPFedlet.xml +78 -0
- package/esm/test/mocks/Saml2Api/getProviderMetadata/alpha/https%3A%2F%2Fsaml.mytestrun.com%2Fsp.xml +13 -0
- package/esm/test/mocks/Saml2Api/getProviderMetadata/alpha/{dXJuOmZlZGVyYXRpb246TWljcm9zb2Z0T25saW5l.xml → https%3A%2F%2Fsts.windows.net%2F711ffa9c-5972-4713-ace3-688c9732614a%2F.xml} +0 -0
- package/esm/test/mocks/Saml2Api/getProviderMetadata/alpha/{aVNQQXp1cmU.xml → iSPAzure.xml} +0 -0
- package/esm/test/mocks/Saml2Api/getProviderMetadata/alpha/urn%3Afederation%3AMicrosoftOnline.xml +84 -0
- package/esm/test/mocks/Saml2Ops/importSaml2Provider/SPAzure.saml.json +243 -0
- package/esm/test/mocks/Saml2Ops/importSaml2Provider/iSPAzure.saml.json +242 -0
- package/esm/test/mocks/Saml2Ops/importSaml2Provider/idc.scheuber.ioamsaml2IDPAzure.saml.json +454 -0
- package/esm/test/mocks/Saml2Ops/importSaml2Provider/idc.scheuber.ioamsaml2IDPBroadcom.saml.json +586 -0
- package/esm/test/mocks/Saml2Ops/importSaml2Provider/idc.scheuber.ioamsaml2IDPFedlet.saml.json +241 -0
- package/esm/test/mocks/Saml2Ops/importSaml2Provider/idp.saml.json +185 -0
- package/esm/test/mocks/Saml2Ops/importSaml2Provider/saml.mytestrun.comsp.saml.json +101 -0
- package/esm/test/mocks/Saml2Ops/importSaml2Provider/sts.windows.net711ffa9c-5972-4713-ace3-688c9732614a.saml.json +113 -0
- package/esm/test/mocks/Saml2Ops/importSaml2Provider/urn:federation:MicrosoftOnline.saml.json +199 -0
- package/esm/test/mocks/Saml2Ops/importSaml2Provider/volkerDevSP.saml.json +212 -0
- package/esm/test/mocks/Saml2Ops/importSaml2Providers/allAlphaProviders.saml.json +2414 -0
- package/esm/test/mocks/ScriptApi/getScript/5b29c5b7-b161-4a42-a41f-d6c85316b951.json +13 -0
- package/esm/test/mocks/ScriptApi/getScript/85523e71-2d77-4577-b078-6f9674cc54e2.json +13 -0
- package/esm/test/mocks/ScriptApi/getScript/90c4eca5-05f0-42f5-b9bf-88b693eabbbd.json +13 -0
- package/esm/test/mocks/ServerInfoApi/getServerInfo/info.json +25 -0
- package/esm/test/mocks/ServerInfoApi/getServerVersionInfo/version.json +8 -0
- package/esm/utils/AutoSetupPolly.mjs +72 -0
- package/esm/utils/SetupJest.mjs +3 -0
- package/esm/{test/mocks → utils}/snapshotResolve.mjs +10 -12
- package/package.json +38 -27
- package/types/api/AgentApi.d.ts.map +1 -1
- package/types/api/ApiTypes.d.ts +19 -15
- package/types/api/ApiTypes.d.ts.map +1 -1
- package/types/api/AuthenticateApi.d.ts +1 -1
- package/types/api/AuthenticateApi.d.ts.map +1 -1
- package/types/api/BaseApi.d.ts +2 -0
- package/types/api/BaseApi.d.ts.map +1 -1
- package/types/api/CirclesOfTrustApi.d.ts.map +1 -1
- package/types/api/IdmConfigApi.d.ts.map +1 -1
- package/types/api/LogApi.d.ts.map +1 -1
- package/types/api/ManagedObjectApi.d.ts +9 -1
- package/types/api/ManagedObjectApi.d.ts.map +1 -1
- package/types/api/NodeApi.d.ts.map +1 -1
- package/types/api/OAuth2ClientApi.d.ts.map +1 -1
- package/types/api/OAuth2OIDCApi.d.ts +4 -2
- package/types/api/OAuth2OIDCApi.d.ts.map +1 -1
- package/types/api/OAuth2ProviderApi.d.ts.map +1 -1
- package/types/api/RealmApi.d.ts.map +1 -1
- package/types/api/Saml2Api.d.ts +7 -13
- package/types/api/Saml2Api.d.ts.map +1 -1
- package/types/api/ScriptApi.d.ts.map +1 -1
- package/types/api/SecretsApi.d.ts.map +1 -1
- package/types/api/ServerInfoApi.d.ts.map +1 -1
- package/types/api/ServiceApi.d.ts +14 -7
- package/types/api/ServiceApi.d.ts.map +1 -1
- package/types/api/SocialIdentityProvidersApi.d.ts.map +1 -1
- package/types/api/StartupApi.d.ts.map +1 -1
- package/types/api/TreeApi.d.ts.map +1 -1
- package/types/api/VariablesApi.d.ts.map +1 -1
- package/types/api/utils/ApiUtils.d.ts +1 -0
- package/types/api/utils/ApiUtils.d.ts.map +1 -1
- package/types/api/utils/Base64.d.ts +1 -0
- package/types/api/utils/Base64.d.ts.map +1 -1
- package/types/index.d.ts +11 -5
- package/types/index.d.ts.map +1 -1
- package/types/ops/AgentOps.d.ts +1 -1
- package/types/ops/AgentOps.d.ts.map +1 -1
- package/types/ops/AuthenticateOps.d.ts +10 -2
- package/types/ops/AuthenticateOps.d.ts.map +1 -1
- package/types/ops/ConnectionProfileOps.d.ts +49 -21
- package/types/ops/ConnectionProfileOps.d.ts.map +1 -1
- package/types/ops/EmailTemplateOps.d.ts +14 -33
- package/types/ops/EmailTemplateOps.d.ts.map +1 -1
- package/types/ops/IdmOps.d.ts +29 -37
- package/types/ops/IdmOps.d.ts.map +1 -1
- package/types/ops/JoseOps.d.ts +33 -0
- package/types/ops/JoseOps.d.ts.map +1 -0
- package/types/ops/JourneyOps.d.ts.map +1 -1
- package/types/ops/LogOps.d.ts.map +1 -1
- package/types/ops/NodeOps.d.ts.map +1 -1
- package/types/ops/OAuth2ClientOps.d.ts.map +1 -1
- package/types/ops/OpsTypes.d.ts +17 -1
- package/types/ops/OpsTypes.d.ts.map +1 -1
- package/types/ops/OrganizationOps.d.ts.map +1 -1
- package/types/ops/Saml2Ops.d.ts +52 -55
- package/types/ops/Saml2Ops.d.ts.map +1 -1
- package/types/ops/ScriptOps.d.ts.map +1 -1
- package/types/ops/ServiceAccountOps.d.ts +20 -0
- package/types/ops/ServiceAccountOps.d.ts.map +1 -0
- package/types/ops/ServiceOps.d.ts +18 -10
- package/types/ops/ServiceOps.d.ts.map +1 -1
- package/types/ops/ThemeOps.d.ts +35 -50
- package/types/ops/ThemeOps.d.ts.map +1 -1
- package/types/ops/utils/Console.d.ts +1 -1
- package/types/ops/utils/Console.d.ts.map +1 -1
- package/types/ops/utils/DataProtection.d.ts.map +1 -1
- package/types/ops/utils/ExportImportUtils.d.ts +5 -2
- package/types/ops/utils/ExportImportUtils.d.ts.map +1 -1
- package/types/ops/utils/OpsUtils.d.ts +6 -0
- package/types/ops/utils/OpsUtils.d.ts.map +1 -1
- package/types/ops/utils/Wordwrap.d.ts.map +1 -1
- package/types/shared/State.d.ts +223 -0
- package/types/shared/State.d.ts.map +1 -0
- package/types/test/mocks/ForgeRockApiMockEngine.d.ts +21 -1
- package/types/test/mocks/ForgeRockApiMockEngine.d.ts.map +1 -1
- package/types/utils/AutoSetupPolly.d.ts +1 -0
- package/types/utils/AutoSetupPolly.d.ts.map +1 -0
- package/types/utils/SetupJest.d.ts +1 -0
- package/types/utils/SetupJest.d.ts.map +1 -0
- package/types/utils/snapshotResolve.d.ts +1 -0
- package/types/utils/snapshotResolve.d.ts.map +1 -0
- package/cjs/api/EmailTemplateApi.js +0 -73
- package/cjs/api/EmailTemplateApi.js.map +0 -1
- package/cjs/api/ThemeApi.js +0 -367
- package/cjs/api/ThemeApi.js.map +0 -1
- package/cjs/api/ThemeApi.test.js.map +0 -1
- package/cjs/storage/SessionStorage.js +0 -91
- package/cjs/storage/SessionStorage.js.map +0 -1
- package/cjs/test/mocks/snapshotResolve.js.map +0 -1
- package/esm/api/EmailTemplateApi.mjs +0 -34
- package/esm/api/ThemeApi.mjs +0 -271
- package/esm/storage/SessionStorage.mjs +0 -79
- package/types/api/EmailTemplateApi.d.ts +0 -22
- package/types/api/EmailTemplateApi.d.ts.map +0 -1
- package/types/api/ThemeApi.d.ts +0 -56
- package/types/api/ThemeApi.d.ts.map +0 -1
- package/types/storage/SessionStorage.d.ts +0 -71
- package/types/storage/SessionStorage.d.ts.map +0 -1
- package/types/test/mocks/snapshotResolve.d.ts +0 -1
- package/types/test/mocks/snapshotResolve.d.ts.map +0 -1
|
@@ -1,32 +1,48 @@
|
|
|
1
1
|
import util from 'util';
|
|
2
2
|
import { generateIdmApi } from './BaseApi';
|
|
3
3
|
import { getTenantURL } from './utils/ApiUtils';
|
|
4
|
-
import
|
|
4
|
+
import * as state from '../shared/State';
|
|
5
5
|
const managedObjectURLTemplate = '%s/openidm/managed/%s';
|
|
6
|
+
const createManagedObjectURLTemplate = '%s/openidm/managed/%s?_action=create';
|
|
6
7
|
const managedObjectByIdURLTemplate = '%s/openidm/managed/%s/%s';
|
|
7
8
|
const managedObjectQueryAllURLTemplate = `${managedObjectURLTemplate}?_queryFilter=true&_pageSize=10000`;
|
|
9
|
+
|
|
8
10
|
/**
|
|
9
11
|
* Get managed object
|
|
10
12
|
* @param {String} id managed object id
|
|
11
13
|
* @returns {Promise} a promise that resolves to an object containing a managed object
|
|
12
14
|
*/
|
|
13
|
-
|
|
14
15
|
export async function getManagedObject(type, id, fields) {
|
|
15
16
|
const fieldsParam = fields.length > 0 ? `_fields=${fields.join(',')}` : '_fields=*';
|
|
16
|
-
const urlString = util.format(`${managedObjectByIdURLTemplate}?${fieldsParam}`, getTenantURL(
|
|
17
|
+
const urlString = util.format(`${managedObjectByIdURLTemplate}?${fieldsParam}`, getTenantURL(state.getHost()), type, id);
|
|
17
18
|
return generateIdmApi().get(urlString);
|
|
18
19
|
}
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Create managed object with server-generated id
|
|
23
|
+
* @param {string} moType managed object type
|
|
24
|
+
* @param {any} moData managed object data
|
|
25
|
+
* @returns {Promise<ObjectSkeletonInterface>} a promise that resolves to an object containing a managed object
|
|
26
|
+
*/
|
|
27
|
+
export async function createManagedObject(moType, moData) {
|
|
28
|
+
const urlString = util.format(createManagedObjectURLTemplate, getTenantURL(state.getHost()), moType);
|
|
29
|
+
const {
|
|
30
|
+
data
|
|
31
|
+
} = await generateIdmApi().post(urlString, moData);
|
|
32
|
+
return data;
|
|
33
|
+
}
|
|
34
|
+
|
|
19
35
|
/**
|
|
20
|
-
*
|
|
36
|
+
* Create or update managed object
|
|
21
37
|
* @param {String} id managed object id
|
|
22
38
|
* @param {String} data managed object
|
|
23
39
|
* @returns {Promise} a promise that resolves to an object containing a managed object
|
|
24
40
|
*/
|
|
25
|
-
|
|
26
41
|
export async function putManagedObject(type, id, data) {
|
|
27
|
-
const urlString = util.format(managedObjectByIdURLTemplate, getTenantURL(
|
|
42
|
+
const urlString = util.format(managedObjectByIdURLTemplate, getTenantURL(state.getHost()), type, id);
|
|
28
43
|
return generateIdmApi().put(urlString, data);
|
|
29
44
|
}
|
|
45
|
+
|
|
30
46
|
/**
|
|
31
47
|
* Query managed objects
|
|
32
48
|
* @param {String} type managed object type
|
|
@@ -34,11 +50,10 @@ export async function putManagedObject(type, id, data) {
|
|
|
34
50
|
* @param {String} pageCookie paged results cookie
|
|
35
51
|
* @returns {Promise} a promise that resolves to an object containing managed objects of the desired type
|
|
36
52
|
*/
|
|
37
|
-
|
|
38
53
|
export async function queryAllManagedObjectsByType(type, fields, pageCookie) {
|
|
39
54
|
const fieldsParam = fields.length > 0 ? `&_fields=${fields.join(',')}` : '&_fields=_id';
|
|
40
55
|
const urlTemplate = pageCookie ? `${managedObjectQueryAllURLTemplate}${fieldsParam}&_pagedResultsCookie=${pageCookie}` : `${managedObjectQueryAllURLTemplate}${fieldsParam}`;
|
|
41
|
-
const urlString = util.format(urlTemplate, getTenantURL(
|
|
56
|
+
const urlString = util.format(urlTemplate, getTenantURL(state.getHost()), type);
|
|
42
57
|
return generateIdmApi().get(urlString);
|
|
43
58
|
}
|
|
44
59
|
//# sourceMappingURL=ManagedObjectApi.js.map
|
package/esm/api/NodeApi.mjs
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import util from 'util';
|
|
2
2
|
import { deleteDeepByKey, getCurrentRealmPath } from './utils/ApiUtils';
|
|
3
3
|
import { generateAmApi } from './BaseApi';
|
|
4
|
-
import
|
|
4
|
+
import * as state from '../shared/State';
|
|
5
5
|
const queryAllNodeTypesURLTemplate = '%s/json%s/realm-config/authentication/authenticationtrees/nodes?_action=getAllTypes';
|
|
6
6
|
const queryAllNodesByTypeURLTemplate = '%s/json%s/realm-config/authentication/authenticationtrees/nodes/%s?_queryFilter=true';
|
|
7
7
|
const queryAllNodesURLTemplate = '%s/json%s/realm-config/authentication/authenticationtrees/nodes?_action=nextdescendents';
|
|
8
8
|
const nodeURLTemplate = '%s/json%s/realm-config/authentication/authenticationtrees/nodes/%s/%s';
|
|
9
9
|
const apiVersion = 'protocol=2.1,resource=1.0';
|
|
10
|
-
|
|
11
10
|
const getNodeApiConfig = () => {
|
|
12
11
|
const configPath = getCurrentRealmPath();
|
|
13
12
|
return {
|
|
@@ -15,14 +14,13 @@ const getNodeApiConfig = () => {
|
|
|
15
14
|
apiVersion
|
|
16
15
|
};
|
|
17
16
|
};
|
|
17
|
+
|
|
18
18
|
/**
|
|
19
19
|
* Get all node types
|
|
20
20
|
* @returns {Promise} a promise that resolves to an array of node type objects
|
|
21
21
|
*/
|
|
22
|
-
|
|
23
|
-
|
|
24
22
|
export async function getNodeTypes() {
|
|
25
|
-
const urlString = util.format(queryAllNodeTypesURLTemplate,
|
|
23
|
+
const urlString = util.format(queryAllNodeTypesURLTemplate, state.getHost(), getCurrentRealmPath());
|
|
26
24
|
const {
|
|
27
25
|
data
|
|
28
26
|
} = await generateAmApi(getNodeApiConfig()).post(urlString, {}, {
|
|
@@ -33,13 +31,13 @@ export async function getNodeTypes() {
|
|
|
33
31
|
});
|
|
34
32
|
return data;
|
|
35
33
|
}
|
|
34
|
+
|
|
36
35
|
/**
|
|
37
36
|
* Get all nodes
|
|
38
37
|
* @returns {Promise} a promise that resolves to an object containing an array of node objects
|
|
39
38
|
*/
|
|
40
|
-
|
|
41
39
|
export async function getNodes() {
|
|
42
|
-
const urlString = util.format(queryAllNodesURLTemplate,
|
|
40
|
+
const urlString = util.format(queryAllNodesURLTemplate, state.getHost(), getCurrentRealmPath());
|
|
43
41
|
const {
|
|
44
42
|
data
|
|
45
43
|
} = await generateAmApi(getNodeApiConfig()).post(urlString, {}, {
|
|
@@ -50,14 +48,14 @@ export async function getNodes() {
|
|
|
50
48
|
});
|
|
51
49
|
return data;
|
|
52
50
|
}
|
|
51
|
+
|
|
53
52
|
/**
|
|
54
53
|
* Get all nodes by type
|
|
55
54
|
* @param {string} nodeType node type
|
|
56
55
|
* @returns {Promise} a promise that resolves to an object containing an array of node objects of the requested type
|
|
57
56
|
*/
|
|
58
|
-
|
|
59
57
|
export async function getNodesByType(nodeType) {
|
|
60
|
-
const urlString = util.format(queryAllNodesByTypeURLTemplate,
|
|
58
|
+
const urlString = util.format(queryAllNodesByTypeURLTemplate, state.getHost(), getCurrentRealmPath(), nodeType);
|
|
61
59
|
const {
|
|
62
60
|
data
|
|
63
61
|
} = await generateAmApi(getNodeApiConfig()).get(urlString, {
|
|
@@ -65,15 +63,15 @@ export async function getNodesByType(nodeType) {
|
|
|
65
63
|
});
|
|
66
64
|
return data;
|
|
67
65
|
}
|
|
66
|
+
|
|
68
67
|
/**
|
|
69
68
|
* Get node by uuid and type
|
|
70
69
|
* @param {String} nodeId node uuid
|
|
71
70
|
* @param {String} nodeType node type
|
|
72
71
|
* @returns {Promise} a promise that resolves to a node object
|
|
73
72
|
*/
|
|
74
|
-
|
|
75
73
|
export async function getNode(nodeId, nodeType) {
|
|
76
|
-
const urlString = util.format(nodeURLTemplate,
|
|
74
|
+
const urlString = util.format(nodeURLTemplate, state.getHost(), getCurrentRealmPath(), nodeType, nodeId);
|
|
77
75
|
const {
|
|
78
76
|
data
|
|
79
77
|
} = await generateAmApi(getNodeApiConfig()).get(urlString, {
|
|
@@ -81,6 +79,7 @@ export async function getNode(nodeId, nodeType) {
|
|
|
81
79
|
});
|
|
82
80
|
return data;
|
|
83
81
|
}
|
|
82
|
+
|
|
84
83
|
/**
|
|
85
84
|
* Put node by uuid and type
|
|
86
85
|
* @param {String} nodeId node uuid
|
|
@@ -88,12 +87,11 @@ export async function getNode(nodeId, nodeType) {
|
|
|
88
87
|
* @param {Object} nodeData node object
|
|
89
88
|
* @returns {Promise} a promise that resolves to an object containing a node object
|
|
90
89
|
*/
|
|
91
|
-
|
|
92
90
|
export async function putNode(nodeId, nodeType, nodeData) {
|
|
93
91
|
// until we figure out a way to use transport keys in Frodo,
|
|
94
92
|
// we'll have to drop those encrypted attributes.
|
|
95
93
|
const cleanData = deleteDeepByKey(nodeData, '-encrypted');
|
|
96
|
-
const urlString = util.format(nodeURLTemplate,
|
|
94
|
+
const urlString = util.format(nodeURLTemplate, state.getHost(), getCurrentRealmPath(), nodeType, nodeId);
|
|
97
95
|
const {
|
|
98
96
|
data
|
|
99
97
|
} = await generateAmApi(getNodeApiConfig()).put(urlString, cleanData, {
|
|
@@ -101,15 +99,15 @@ export async function putNode(nodeId, nodeType, nodeData) {
|
|
|
101
99
|
});
|
|
102
100
|
return data;
|
|
103
101
|
}
|
|
102
|
+
|
|
104
103
|
/**
|
|
105
104
|
* Delete node by uuid and type
|
|
106
105
|
* @param {String} nodeId node uuid
|
|
107
106
|
* @param {String} nodeType node type
|
|
108
107
|
* @returns {Promise} a promise that resolves to an object containing a node object
|
|
109
108
|
*/
|
|
110
|
-
|
|
111
109
|
export async function deleteNode(nodeId, nodeType) {
|
|
112
|
-
const urlString = util.format(nodeURLTemplate,
|
|
110
|
+
const urlString = util.format(nodeURLTemplate, state.getHost(), getCurrentRealmPath(), nodeType, nodeId);
|
|
113
111
|
const {
|
|
114
112
|
data
|
|
115
113
|
} = await generateAmApi(getNodeApiConfig()).delete(urlString, {
|
package/esm/api/NodeApi.test.mjs
CHANGED
|
@@ -4,21 +4,19 @@ import { NodeRaw, state } from '../index';
|
|
|
4
4
|
import fs from 'fs';
|
|
5
5
|
import path from 'path';
|
|
6
6
|
import { fileURLToPath } from 'url';
|
|
7
|
-
|
|
8
7
|
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
9
|
-
|
|
10
8
|
const mock = new MockAdapter(axios);
|
|
11
|
-
state.
|
|
12
|
-
state.
|
|
13
|
-
state.
|
|
14
|
-
state.
|
|
9
|
+
state.setHost('');
|
|
10
|
+
state.setRealm('alpha');
|
|
11
|
+
state.setCookieName('cookieName');
|
|
12
|
+
state.setCookieValue('cookieValue');
|
|
15
13
|
describe('NodeApi - getNodeTypes()', () => {
|
|
16
14
|
test('getNodeTypes() 0: Method is implemented', async () => {
|
|
17
15
|
expect(NodeRaw.getNodeTypes).toBeDefined();
|
|
18
16
|
});
|
|
19
17
|
test('getNodeTypes() 1: Get all node types', async () => {
|
|
20
18
|
const response = JSON.parse(fs.readFileSync(path.resolve(__dirname, '../test/mocks/NodeApi/getNodeTypes/types.json'), 'utf8'));
|
|
21
|
-
mock.onPost(
|
|
19
|
+
mock.onPost(`${state.getHost()}/json/realms/root/realms/alpha/realm-config/authentication/authenticationtrees/nodes?_action=getAllTypes`).reply(200, response);
|
|
22
20
|
const types = await NodeRaw.getNodeTypes();
|
|
23
21
|
expect(types).toBeTruthy();
|
|
24
22
|
expect(types.result.length).toBe(99);
|
|
@@ -829,7 +827,7 @@ describe('NodeApi - getNodes()', () => {
|
|
|
829
827
|
}]
|
|
830
828
|
}]
|
|
831
829
|
};
|
|
832
|
-
mock.onPost(
|
|
830
|
+
mock.onPost(`${state.getHost()}/json/realms/root/realms/alpha/realm-config/authentication/authenticationtrees/nodes?_action=nextdescendents`).reply(200, response);
|
|
833
831
|
const nodes = await NodeRaw.getNodes();
|
|
834
832
|
expect(nodes).toBeTruthy();
|
|
835
833
|
expect(nodes.result.length).toBe(48);
|
|
@@ -841,7 +839,7 @@ describe('NodeApi - getNodesByType()', () => {
|
|
|
841
839
|
});
|
|
842
840
|
test('getNodesByType() 1: Get all page nodes', async () => {
|
|
843
841
|
const response = JSON.parse(fs.readFileSync(path.resolve(__dirname, '../test/mocks/NodeApi/getNodesByType/PageNode.json'), 'utf8'));
|
|
844
|
-
mock.onGet(
|
|
842
|
+
mock.onGet(`${state.getHost()}/json/realms/root/realms/alpha/realm-config/authentication/authenticationtrees/nodes/PageNode?_queryFilter=true`).reply(200, response);
|
|
845
843
|
const nodes = await NodeRaw.getNodesByType('PageNode');
|
|
846
844
|
expect(nodes).toBeTruthy();
|
|
847
845
|
expect(nodes.result.length).toBe(161);
|
|
@@ -853,19 +851,18 @@ describe('NodeApi - getNode()', () => {
|
|
|
853
851
|
});
|
|
854
852
|
test('getNode() 1: Get existing page node [1aea363f-d8d2-4711-b88d-d58fff92dbae]', async () => {
|
|
855
853
|
const response = JSON.parse(fs.readFileSync(path.resolve(__dirname, '../test/mocks/NodeApi/getNode/PageNode_1aea363f-d8d2-4711-b88d-d58fff92dbae.json'), 'utf8'));
|
|
856
|
-
mock.onGet(
|
|
854
|
+
mock.onGet(`${state.getHost()}/json/realms/root/realms/alpha/realm-config/authentication/authenticationtrees/nodes/PageNode/1aea363f-d8d2-4711-b88d-d58fff92dbae`).reply(200, response);
|
|
857
855
|
const node = await NodeRaw.getNode('1aea363f-d8d2-4711-b88d-d58fff92dbae', 'PageNode');
|
|
858
856
|
expect(node).toBeTruthy();
|
|
859
857
|
expect(node).toMatchObject(response);
|
|
860
858
|
});
|
|
861
859
|
test('getNode() 2: Get non-existing page node [00000000-0000-0000-0000-000000000000]', async () => {
|
|
862
|
-
mock.onGet(
|
|
860
|
+
mock.onGet(`${state.getHost()}/json/realms/root/realms/alpha/realm-config/authentication/authenticationtrees/nodes/PageNode/00000000-0000-0000-0000-000000000000`).reply(404, {
|
|
863
861
|
code: 404,
|
|
864
862
|
reason: 'Not Found',
|
|
865
863
|
message: 'Not Found'
|
|
866
864
|
});
|
|
867
865
|
expect.assertions(2);
|
|
868
|
-
|
|
869
866
|
try {
|
|
870
867
|
await NodeRaw.getNode('00000000-0000-0000-0000-000000000000', 'PageNode');
|
|
871
868
|
} catch (error) {
|
|
@@ -884,14 +881,14 @@ describe('NodeApi - putNode()', () => {
|
|
|
884
881
|
});
|
|
885
882
|
test('putNode() 1: Create page node [0ad90971-d08a-4af3-86f3-01729572dc8f]', async () => {
|
|
886
883
|
const nodeData = JSON.parse(fs.readFileSync(path.resolve(__dirname, '../test/mocks/NodeApi/putNode/PageNode_0ad90971-d08a-4af3-86f3-01729572dc8f.json'), 'utf8'));
|
|
887
|
-
mock.onPut(
|
|
884
|
+
mock.onPut(`${state.getHost()}/json/realms/root/realms/alpha/realm-config/authentication/authenticationtrees/nodes/PageNode/0ad90971-d08a-4af3-86f3-01729572dc8f`).reply(201, nodeData);
|
|
888
885
|
const node = await NodeRaw.putNode('0ad90971-d08a-4af3-86f3-01729572dc8f', 'PageNode', nodeData);
|
|
889
886
|
expect(node).toBeTruthy();
|
|
890
887
|
expect(node).toMatchObject(nodeData);
|
|
891
888
|
});
|
|
892
889
|
test('putNode() 1: Update existing page node [1aea363f-d8d2-4711-b88d-d58fff92dbae]', async () => {
|
|
893
890
|
const nodeData = JSON.parse(fs.readFileSync(path.resolve(__dirname, '../test/mocks/NodeApi/putNode/PageNode_1aea363f-d8d2-4711-b88d-d58fff92dbae.json'), 'utf8'));
|
|
894
|
-
mock.onPut(
|
|
891
|
+
mock.onPut(`${state.getHost()}/json/realms/root/realms/alpha/realm-config/authentication/authenticationtrees/nodes/PageNode/1aea363f-d8d2-4711-b88d-d58fff92dbae`).reply(200, nodeData);
|
|
895
892
|
const node = await NodeRaw.putNode('1aea363f-d8d2-4711-b88d-d58fff92dbae', 'PageNode', nodeData);
|
|
896
893
|
expect(node).toBeTruthy();
|
|
897
894
|
expect(node).toMatchObject(nodeData);
|
|
@@ -903,19 +900,18 @@ describe('NodeApi - deleteNode()', () => {
|
|
|
903
900
|
});
|
|
904
901
|
test('deleteNode() 1: Delete existing node [1aea363f-d8d2-4711-b88d-d58fff92dbae]', async () => {
|
|
905
902
|
const response = JSON.parse(fs.readFileSync(path.resolve(__dirname, '../test/mocks/NodeApi/deleteNode/PageNode_1aea363f-d8d2-4711-b88d-d58fff92dbae.json'), 'utf8'));
|
|
906
|
-
mock.onDelete(
|
|
903
|
+
mock.onDelete(`${state.getHost()}/json/realms/root/realms/alpha/realm-config/authentication/authenticationtrees/nodes/PageNode/1aea363f-d8d2-4711-b88d-d58fff92dbae`).reply(200, response);
|
|
907
904
|
const node = await NodeRaw.deleteNode('1aea363f-d8d2-4711-b88d-d58fff92dbae', 'PageNode');
|
|
908
905
|
expect(node).toBeTruthy();
|
|
909
906
|
expect(node._id).toEqual('1aea363f-d8d2-4711-b88d-d58fff92dbae');
|
|
910
907
|
});
|
|
911
908
|
test('deleteNode() 2: Delete non-existing node [00000000-0000-0000-0000-000000000000]', async () => {
|
|
912
|
-
mock.onDelete(
|
|
909
|
+
mock.onDelete(`${state.getHost()}/json/realms/root/realms/alpha/realm-config/authentication/authenticationtrees/nodes/PageNode/00000000-0000-0000-0000-000000000000`).reply(404, {
|
|
913
910
|
code: 404,
|
|
914
911
|
reason: 'Not Found',
|
|
915
912
|
message: 'Not Found'
|
|
916
913
|
});
|
|
917
914
|
expect.assertions(2);
|
|
918
|
-
|
|
919
915
|
try {
|
|
920
916
|
await NodeRaw.deleteNode('00000000-0000-0000-0000-000000000000', 'PageNode');
|
|
921
917
|
} catch (error) {
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import util from 'util';
|
|
2
2
|
import { generateAmApi } from './BaseApi';
|
|
3
3
|
import { deleteDeepByKey, getCurrentRealmPath } from './utils/ApiUtils';
|
|
4
|
-
import
|
|
4
|
+
import * as state from '../shared/State';
|
|
5
5
|
const oauth2ClientURLTemplate = '%s/json%s/realm-config/agents/OAuth2Client/%s';
|
|
6
6
|
const oauth2ClientListURLTemplate = '%s/json%s/realm-config/agents/OAuth2Client?_queryFilter=true';
|
|
7
7
|
const apiVersion = 'protocol=2.1,resource=1.0';
|
|
8
|
-
|
|
9
8
|
const getApiConfig = () => {
|
|
10
9
|
const configPath = getCurrentRealmPath();
|
|
11
10
|
return {
|
|
@@ -13,44 +12,43 @@ const getApiConfig = () => {
|
|
|
13
12
|
apiVersion
|
|
14
13
|
};
|
|
15
14
|
};
|
|
15
|
+
|
|
16
16
|
/**
|
|
17
17
|
* Get OAuth2 Clients
|
|
18
18
|
* @returns {Promise} a promise that resolves to an object containing an array of oauth2client objects
|
|
19
19
|
*/
|
|
20
|
-
|
|
21
|
-
|
|
22
20
|
export async function getOAuth2Clients() {
|
|
23
|
-
const urlString = util.format(oauth2ClientListURLTemplate,
|
|
21
|
+
const urlString = util.format(oauth2ClientListURLTemplate, state.getHost(), getCurrentRealmPath());
|
|
24
22
|
return generateAmApi(getApiConfig()).get(urlString, {
|
|
25
23
|
withCredentials: true
|
|
26
24
|
});
|
|
27
25
|
}
|
|
26
|
+
|
|
28
27
|
/**
|
|
29
28
|
* Get OAuth2 Client
|
|
30
29
|
* @param {String} id client id
|
|
31
30
|
* @returns {Promise} a promise that resolves to an object containing an oauth2client object
|
|
32
31
|
*/
|
|
33
|
-
|
|
34
32
|
export async function getOAuth2Client(id) {
|
|
35
|
-
const urlString = util.format(oauth2ClientURLTemplate,
|
|
33
|
+
const urlString = util.format(oauth2ClientURLTemplate, state.getHost(), getCurrentRealmPath(), id);
|
|
36
34
|
return generateAmApi(getApiConfig()).get(urlString, {
|
|
37
35
|
withCredentials: true
|
|
38
36
|
});
|
|
39
37
|
}
|
|
38
|
+
|
|
40
39
|
/**
|
|
41
40
|
* Put OAuth2 Client
|
|
42
41
|
* @param {String} id client id
|
|
43
42
|
* @param {Object} data oauth2client object
|
|
44
43
|
* @returns {Promise} a promise that resolves to an object containing an oauth2client object
|
|
45
44
|
*/
|
|
46
|
-
|
|
47
45
|
export async function putOAuth2Client(id, data) {
|
|
48
46
|
// until we figure out a way to use transport keys in Frodo,
|
|
49
47
|
// we'll have to drop those encrypted attributes.
|
|
50
48
|
const client = deleteDeepByKey(data, '-encrypted');
|
|
51
49
|
delete client._provider;
|
|
52
50
|
delete client._rev;
|
|
53
|
-
const urlString = util.format(oauth2ClientURLTemplate,
|
|
51
|
+
const urlString = util.format(oauth2ClientURLTemplate, state.getHost(), getCurrentRealmPath(), id);
|
|
54
52
|
return generateAmApi(getApiConfig()).put(urlString, client, {
|
|
55
53
|
withCredentials: true
|
|
56
54
|
});
|
|
@@ -2,38 +2,45 @@ import util from 'util';
|
|
|
2
2
|
import qs from 'qs';
|
|
3
3
|
import { generateOauth2Api } from './BaseApi';
|
|
4
4
|
import { getCurrentRealmPath } from './utils/ApiUtils';
|
|
5
|
-
import
|
|
5
|
+
import * as state from '../shared/State';
|
|
6
6
|
import { encode } from './utils/Base64';
|
|
7
7
|
const authorizeUrlTemplate = '%s/oauth2%s/authorize';
|
|
8
8
|
const accessTokenUrlTemplate = '%s/oauth2%s/access_token';
|
|
9
|
+
const tokenInfoUrlTemplate = '%s/oauth2%s/tokeninfo';
|
|
9
10
|
const apiVersion = 'protocol=2.1,resource=1.0';
|
|
10
|
-
|
|
11
11
|
const getApiConfig = () => ({
|
|
12
12
|
apiVersion
|
|
13
13
|
});
|
|
14
|
+
|
|
14
15
|
/**
|
|
15
16
|
* Perform the authorization step of the authorization code grant flow
|
|
16
17
|
* @param {String} data body form data
|
|
17
18
|
* @param {Object} config axios request config object
|
|
18
19
|
* @returns {Promise} a promise resolving to an object containing the authorization server response object
|
|
19
20
|
*/
|
|
20
|
-
|
|
21
|
-
|
|
22
21
|
export async function authorize(data, config = {}) {
|
|
23
|
-
const authorizeURL = util.format(authorizeUrlTemplate,
|
|
22
|
+
const authorizeURL = util.format(authorizeUrlTemplate, state.getHost(), '');
|
|
24
23
|
return generateOauth2Api(getApiConfig()).post(authorizeURL, data, config);
|
|
25
24
|
}
|
|
25
|
+
|
|
26
26
|
/**
|
|
27
27
|
* Perform access token request step of the authorization code grant flow
|
|
28
28
|
* @param {*} data body form data
|
|
29
29
|
* @param {*} config config axios request config object
|
|
30
30
|
* @returns {Promise} a promise resolving to an object containing the authorization server response object containing the access token
|
|
31
31
|
*/
|
|
32
|
-
|
|
33
32
|
export async function accessToken(data, config = {}) {
|
|
34
|
-
const accessTokenURL = util.format(accessTokenUrlTemplate,
|
|
33
|
+
const accessTokenURL = util.format(accessTokenUrlTemplate, state.getHost(), '');
|
|
35
34
|
return generateOauth2Api(getApiConfig()).post(accessTokenURL, data, config);
|
|
36
35
|
}
|
|
36
|
+
export async function getTokenInfo(config = {}) {
|
|
37
|
+
const accessTokenURL = util.format(tokenInfoUrlTemplate, state.getHost(), '');
|
|
38
|
+
const {
|
|
39
|
+
data
|
|
40
|
+
} = await generateOauth2Api(getApiConfig()).get(accessTokenURL, config);
|
|
41
|
+
return data;
|
|
42
|
+
}
|
|
43
|
+
|
|
37
44
|
/**
|
|
38
45
|
* Perform client credentials grant flow
|
|
39
46
|
* @param {String} clientId client id
|
|
@@ -41,9 +48,8 @@ export async function accessToken(data, config = {}) {
|
|
|
41
48
|
* @param {String} scope space-delimited scope list
|
|
42
49
|
* @returns {Promise} a promise resolving to an object containing the authorization server response object
|
|
43
50
|
*/
|
|
44
|
-
|
|
45
51
|
export async function clientCredentialsGrant(clientId, clientSecret, scope) {
|
|
46
|
-
const urlString = util.format(accessTokenUrlTemplate,
|
|
52
|
+
const urlString = util.format(accessTokenUrlTemplate, state.getHost(), getCurrentRealmPath());
|
|
47
53
|
const requestOverride = {
|
|
48
54
|
headers: {
|
|
49
55
|
Authorization: `Basic ${encode(`${clientId}:${clientSecret}`)}`,
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import axios from 'axios';
|
|
2
|
+
import MockAdapter from 'axios-mock-adapter';
|
|
3
|
+
import { OAuth2OIDCApi, state } from '../index';
|
|
4
|
+
import * as global from '../storage/StaticStorage';
|
|
5
|
+
import { mockAuthorize, mockAccessToken } from '../test/mocks/ForgeRockApiMockEngine';
|
|
6
|
+
import { parseUrl } from './utils/ApiUtils';
|
|
7
|
+
const mock = new MockAdapter(axios);
|
|
8
|
+
state.setHost('https://openam-frodo-dev.forgeblocks.com/am');
|
|
9
|
+
state.setRealm('alpha');
|
|
10
|
+
state.setCookieName('cookieName');
|
|
11
|
+
state.setCookieValue('cookieValue');
|
|
12
|
+
state.setDeploymentType(global.CLOUD_DEPLOYMENT_TYPE_KEY);
|
|
13
|
+
describe.only('OAuth2OIDCApi - authorize()', () => {
|
|
14
|
+
test('authorize() 0: Method is implemented', async () => {
|
|
15
|
+
expect(OAuth2OIDCApi.authorize).toBeDefined();
|
|
16
|
+
});
|
|
17
|
+
test('authorize() 1: Get authorization code', async () => {
|
|
18
|
+
mockAuthorize(mock);
|
|
19
|
+
const bodyFormData = 'redirect_uri=https://openam-volker-dev.forgeblocks.com/platform/appAuthHelperRedirect.html&scope=fr:idm:* openid&response_type=code&client_id=idmAdminClient&csrf=763l9tYj7oSimiLGWmlDWOXE0A0.*AAJTSQACMDIAAlNLABw1bXppOGZDVGwzblJnNkJlY08ydFZtWWtvbjQ9AAR0eXBlAANDVFMAAlMxAAIwMQ..*&decision=allow&code_challenge=l_UNfjLP_eRKwLtvM2M86PxhF2pZyYp629TfJUqDNHY&code_challenge_method=S256';
|
|
20
|
+
const config = {
|
|
21
|
+
headers: {
|
|
22
|
+
'Content-Type': 'application/x-www-form-urlencoded'
|
|
23
|
+
},
|
|
24
|
+
validateStatus: function (status) {
|
|
25
|
+
// if this function returns true, no exception is thrown on a 302, which is the expected status code.
|
|
26
|
+
return status === 302;
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
const response = await OAuth2OIDCApi.authorize(bodyFormData, config);
|
|
30
|
+
const redirectLocationURL = response.headers['location'];
|
|
31
|
+
const parsed = parseUrl(redirectLocationURL);
|
|
32
|
+
expect(response.status).toBe(302);
|
|
33
|
+
expect(parsed.searchParam['code']).toBeTruthy();
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
describe.only('OAuth2OIDCApi - accessToken()', () => {
|
|
37
|
+
test('accessToken() 0: Method is implemented', async () => {
|
|
38
|
+
expect(OAuth2OIDCApi.accessToken).toBeDefined();
|
|
39
|
+
});
|
|
40
|
+
test('accessToken() 1: Get access token', async () => {
|
|
41
|
+
mockAccessToken(mock);
|
|
42
|
+
const bodyFormData = 'grant_type=authorization_code&code=PMA6VB9U_Ctiv6q8CAGphy_1vwQ&redirect_uri=https://openam-volker-dev.forgeblocks.com/platform/appAuthHelperRedirect.html&code_verifier=QchYMz4ApoxmyZaFs0MJwZK9rmc8WU-kuoi3JM--CZq7-LmmtxB6_Lf0AtmumFFdOxY&client_id=idmAdminClient';
|
|
43
|
+
const config = {
|
|
44
|
+
headers: {
|
|
45
|
+
'Content-Type': 'application/x-www-form-urlencoded'
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
const response = await OAuth2OIDCApi.accessToken(bodyFormData, config);
|
|
49
|
+
expect(response.status).toBe(200);
|
|
50
|
+
expect(response.data.access_token).toBeTruthy();
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
//# sourceMappingURL=OAuth2OIDCApi.test.js.map
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import util from 'util';
|
|
2
2
|
import { generateAmApi } from './BaseApi';
|
|
3
3
|
import { getCurrentRealmPath } from './utils/ApiUtils';
|
|
4
|
-
import
|
|
4
|
+
import * as state from '../shared/State';
|
|
5
5
|
const oauthProviderServiceURLTemplate = '%s/json%s/realm-config/services/oauth-oidc';
|
|
6
6
|
const apiVersion = 'protocol=2.1,resource=1.0';
|
|
7
|
-
|
|
8
7
|
const getApiConfig = () => {
|
|
9
8
|
const configPath = getCurrentRealmPath();
|
|
10
9
|
return {
|
|
@@ -12,14 +11,13 @@ const getApiConfig = () => {
|
|
|
12
11
|
apiVersion
|
|
13
12
|
};
|
|
14
13
|
};
|
|
14
|
+
|
|
15
15
|
/**
|
|
16
16
|
* Get OAuth2 Provider
|
|
17
17
|
* @returns {Promise} a promise that resolves to an object containing an OAuth2Provider object
|
|
18
18
|
*/
|
|
19
|
-
|
|
20
|
-
|
|
21
19
|
export async function getOAuth2Provider() {
|
|
22
|
-
const urlString = util.format(oauthProviderServiceURLTemplate,
|
|
20
|
+
const urlString = util.format(oauthProviderServiceURLTemplate, state.getHost(), getCurrentRealmPath());
|
|
23
21
|
return generateAmApi(getApiConfig()).get(urlString, {
|
|
24
22
|
withCredentials: true
|
|
25
23
|
});
|
package/esm/api/RealmApi.mjs
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import util from 'util';
|
|
2
2
|
import { getTenantURL, getCurrentRealmPath, getRealmName } from './utils/ApiUtils';
|
|
3
3
|
import { generateAmApi } from './BaseApi';
|
|
4
|
-
import
|
|
4
|
+
import * as state from '../shared/State';
|
|
5
5
|
const realmsListURLTemplate = '%s/json/global-config/realms/?_queryFilter=true';
|
|
6
6
|
const realmURLTemplate = '%s/json/global-config/realms/%s';
|
|
7
7
|
const apiVersion = 'protocol=2.0,resource=1.0';
|
|
8
|
-
|
|
9
8
|
const getApiConfig = () => {
|
|
10
9
|
const configPath = getCurrentRealmPath();
|
|
11
10
|
return {
|
|
@@ -13,36 +12,35 @@ const getApiConfig = () => {
|
|
|
13
12
|
apiVersion
|
|
14
13
|
};
|
|
15
14
|
};
|
|
15
|
+
|
|
16
16
|
/**
|
|
17
17
|
* Get all realms
|
|
18
18
|
* @returns {Promise} a promise that resolves to an object containing an array of realm objects
|
|
19
19
|
*/
|
|
20
|
-
|
|
21
|
-
|
|
22
20
|
export async function getRealms() {
|
|
23
|
-
const urlString = util.format(realmsListURLTemplate,
|
|
21
|
+
const urlString = util.format(realmsListURLTemplate, state.getHost());
|
|
24
22
|
return generateAmApi(getApiConfig()).get(urlString, {
|
|
25
23
|
withCredentials: true
|
|
26
24
|
});
|
|
27
25
|
}
|
|
26
|
+
|
|
28
27
|
/**
|
|
29
28
|
* Get realm by id
|
|
30
29
|
* @param {String} id realm id
|
|
31
30
|
* @returns {Promise} a promise that resolves to an object containing a realm object
|
|
32
31
|
*/
|
|
33
|
-
|
|
34
32
|
export async function getRealm(id) {
|
|
35
|
-
const urlString = util.format(realmURLTemplate,
|
|
33
|
+
const urlString = util.format(realmURLTemplate, state.getHost(), id);
|
|
36
34
|
return generateAmApi(getApiConfig()).get(urlString, {
|
|
37
35
|
withCredentials: true
|
|
38
36
|
});
|
|
39
37
|
}
|
|
38
|
+
|
|
40
39
|
/**
|
|
41
40
|
* Get realm by name
|
|
42
41
|
* @param {String} name realm name
|
|
43
42
|
* @returns {Promise} a promise that resolves to a realm object
|
|
44
43
|
*/
|
|
45
|
-
|
|
46
44
|
export async function getRealmByName(name) {
|
|
47
45
|
return getRealms().then(realms => {
|
|
48
46
|
for (const realm of realms.data.result) {
|
|
@@ -50,31 +48,30 @@ export async function getRealmByName(name) {
|
|
|
50
48
|
return realm;
|
|
51
49
|
}
|
|
52
50
|
}
|
|
53
|
-
|
|
54
51
|
throw new Error(`Realm ${name} not found!`);
|
|
55
52
|
});
|
|
56
53
|
}
|
|
54
|
+
|
|
57
55
|
/**
|
|
58
56
|
* Put realm
|
|
59
57
|
* @param {String} id realm id
|
|
60
58
|
* @param {Object} data realm config object
|
|
61
59
|
* @returns {Promise} a promise that resolves to an object containing a realm object
|
|
62
60
|
*/
|
|
63
|
-
|
|
64
61
|
export async function putRealm(id, data) {
|
|
65
|
-
const urlString = util.format(realmURLTemplate,
|
|
62
|
+
const urlString = util.format(realmURLTemplate, state.getHost(), id);
|
|
66
63
|
return generateAmApi(getApiConfig()).put(urlString, data, {
|
|
67
64
|
withCredentials: true
|
|
68
65
|
});
|
|
69
66
|
}
|
|
67
|
+
|
|
70
68
|
/**
|
|
71
69
|
* Delete realm
|
|
72
70
|
* @param {String} id realm id
|
|
73
71
|
* @returns {Promise} a promise that resolves to an object containing a realm object
|
|
74
72
|
*/
|
|
75
|
-
|
|
76
73
|
export async function deleteRealm(id) {
|
|
77
|
-
const urlString = util.format(realmURLTemplate, getTenantURL(
|
|
74
|
+
const urlString = util.format(realmURLTemplate, getTenantURL(state.getHost()), id);
|
|
78
75
|
return generateAmApi(getApiConfig()).delete(urlString, {
|
|
79
76
|
withCredentials: true
|
|
80
77
|
});
|