@rockcarver/frodo-lib 0.16.2-9 → 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 +217 -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 +16 -67
- 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 +5 -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 +2 -159
- 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 +139 -370
- 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 +11 -107
- package/cjs/ops/Saml2Ops.js.map +1 -1
- package/cjs/ops/Saml2Ops.test.js.map +1 -1
- package/cjs/ops/ScriptOps.js +26 -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 +161 -83
- 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/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 +25 -29
- 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 +5 -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 +37 -80
- 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 +146 -289
- package/esm/ops/JourneyOps.test.mjs +29 -27
- 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 +28 -62
- package/esm/ops/Saml2Ops.test.mjs +20 -23
- package/esm/ops/ScriptOps.mjs +29 -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 +147 -31
- 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/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 +36 -26
- package/types/api/AgentApi.d.ts.map +1 -1
- package/types/api/ApiTypes.d.ts +15 -16
- 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.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/index.d.ts +11 -5
- package/types/index.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 +1 -1
- package/types/ops/OpsTypes.d.ts.map +1 -1
- package/types/ops/OrganizationOps.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 +19 -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
package/cjs/ops/ServiceOps.js
CHANGED
|
@@ -12,21 +12,13 @@ exports.getFullServices = getFullServices;
|
|
|
12
12
|
exports.getListOfServices = getListOfServices;
|
|
13
13
|
exports.importService = importService;
|
|
14
14
|
exports.importServices = importServices;
|
|
15
|
-
|
|
16
15
|
var _ServiceApi = require("../api/ServiceApi");
|
|
17
|
-
|
|
18
16
|
var _Console = require("./utils/Console");
|
|
19
|
-
|
|
20
17
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
21
|
-
|
|
22
18
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
23
|
-
|
|
24
19
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
25
|
-
|
|
26
20
|
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
27
|
-
|
|
28
21
|
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
29
|
-
|
|
30
22
|
/**
|
|
31
23
|
* Create an empty service export template
|
|
32
24
|
* @returns {SingleTreeExportInterface} an empty service export template
|
|
@@ -37,30 +29,29 @@ function createServiceExportTemplate() {
|
|
|
37
29
|
service: {}
|
|
38
30
|
};
|
|
39
31
|
}
|
|
32
|
+
|
|
40
33
|
/**
|
|
41
34
|
* Get list of services
|
|
35
|
+
* @param {boolean} globalConfig true if the list of global services is requested, false otherwise. Default: false.
|
|
42
36
|
*/
|
|
43
|
-
|
|
44
|
-
|
|
45
37
|
function getListOfServices() {
|
|
46
38
|
return _getListOfServices2.apply(this, arguments);
|
|
47
39
|
}
|
|
48
40
|
/**
|
|
49
41
|
* Get all services including their descendents.
|
|
42
|
+
* @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.
|
|
50
43
|
* @returns Promise resolving to an array of services with their descendants
|
|
51
44
|
*/
|
|
52
|
-
|
|
53
|
-
|
|
54
45
|
function _getListOfServices2() {
|
|
55
46
|
_getListOfServices2 = _asyncToGenerator(function* () {
|
|
47
|
+
var globalConfig = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
56
48
|
(0, _Console.debugMessage)("ServiceOps.getListOfServices: start");
|
|
57
|
-
var services = (yield (0, _ServiceApi.getListOfServices)()).result;
|
|
49
|
+
var services = (yield (0, _ServiceApi.getListOfServices)(globalConfig)).result;
|
|
58
50
|
(0, _Console.debugMessage)("ServiceOps.getListOfServices: end");
|
|
59
51
|
return services;
|
|
60
52
|
});
|
|
61
53
|
return _getListOfServices2.apply(this, arguments);
|
|
62
54
|
}
|
|
63
|
-
|
|
64
55
|
function getFullServices() {
|
|
65
56
|
return _getFullServices.apply(this, arguments);
|
|
66
57
|
}
|
|
@@ -68,33 +59,30 @@ function getFullServices() {
|
|
|
68
59
|
* Saves a service using the provide id and data, including descendents
|
|
69
60
|
* @param {string} serviceId the service id / name
|
|
70
61
|
* @param {string} fullServiceData service object including descendants
|
|
62
|
+
* @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.
|
|
71
63
|
* @returns promise resolving to a service object
|
|
72
64
|
*/
|
|
73
|
-
|
|
74
|
-
|
|
75
65
|
function _getFullServices() {
|
|
76
66
|
_getFullServices = _asyncToGenerator(function* () {
|
|
77
|
-
|
|
78
|
-
|
|
67
|
+
var globalConfig = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
68
|
+
(0, _Console.debugMessage)("ServiceOps.getFullServices: start, globalConfig=".concat(globalConfig));
|
|
69
|
+
var serviceList = (yield (0, _ServiceApi.getListOfServices)(globalConfig)).result;
|
|
79
70
|
var fullServiceData = yield Promise.all(serviceList.map( /*#__PURE__*/function () {
|
|
80
71
|
var _ref = _asyncToGenerator(function* (listItem) {
|
|
81
72
|
try {
|
|
82
|
-
var [service, nextDescendents] = yield Promise.all([(0, _ServiceApi.getService)(listItem._id), (0, _ServiceApi.getServiceDescendents)(listItem._id)]);
|
|
73
|
+
var [service, nextDescendents] = yield Promise.all([(0, _ServiceApi.getService)(listItem._id, globalConfig), (0, _ServiceApi.getServiceDescendents)(listItem._id, globalConfig)]);
|
|
83
74
|
return _objectSpread(_objectSpread({}, service), {}, {
|
|
84
75
|
nextDescendents
|
|
85
76
|
});
|
|
86
77
|
} catch (error) {
|
|
87
78
|
var _error$response, _error$response2, _error$response2$data;
|
|
88
|
-
|
|
89
79
|
if (!(((_error$response = error.response) === null || _error$response === void 0 ? void 0 : _error$response.status) === 403 && ((_error$response2 = error.response) === null || _error$response2 === void 0 ? void 0 : (_error$response2$data = _error$response2.data) === null || _error$response2$data === void 0 ? void 0 : _error$response2$data.message) === 'This operation is not available in ForgeRock Identity Cloud.')) {
|
|
90
80
|
var _error$response3, _error$response3$data;
|
|
91
|
-
|
|
92
81
|
var message = (_error$response3 = error.response) === null || _error$response3 === void 0 ? void 0 : (_error$response3$data = _error$response3.data) === null || _error$response3$data === void 0 ? void 0 : _error$response3$data.message;
|
|
93
82
|
(0, _Console.printMessage)("Unable to retrieve data for ".concat(listItem._id, " with error: ").concat(message), 'error');
|
|
94
83
|
}
|
|
95
84
|
}
|
|
96
85
|
});
|
|
97
|
-
|
|
98
86
|
return function (_x13) {
|
|
99
87
|
return _ref.apply(this, arguments);
|
|
100
88
|
};
|
|
@@ -104,7 +92,6 @@ function _getFullServices() {
|
|
|
104
92
|
});
|
|
105
93
|
return _getFullServices.apply(this, arguments);
|
|
106
94
|
}
|
|
107
|
-
|
|
108
95
|
function putFullService(_x, _x2, _x3) {
|
|
109
96
|
return _putFullService.apply(this, arguments);
|
|
110
97
|
}
|
|
@@ -112,63 +99,56 @@ function putFullService(_x, _x2, _x3) {
|
|
|
112
99
|
* Saves multiple services using the serviceEntries which contain both id and data with descendants
|
|
113
100
|
* @param {[string, FullService][]} serviceEntries The services to add
|
|
114
101
|
* @param {boolean} clean Indicates whether to remove possible existing services first
|
|
102
|
+
* @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.
|
|
115
103
|
* @returns {Promise<AmService[]>} promise resolving to an array of service objects
|
|
116
104
|
*/
|
|
117
|
-
|
|
118
|
-
|
|
119
105
|
function _putFullService() {
|
|
120
106
|
_putFullService = _asyncToGenerator(function* (serviceId, fullServiceData, clean) {
|
|
121
|
-
|
|
107
|
+
var globalConfig = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
|
|
108
|
+
(0, _Console.debugMessage)("ServiceOps.putFullService: start, serviceId=".concat(serviceId, ", globalConfig=").concat(globalConfig));
|
|
122
109
|
var nextDescendents = fullServiceData.nextDescendents;
|
|
123
110
|
delete fullServiceData.nextDescendents;
|
|
124
111
|
delete fullServiceData._rev;
|
|
125
112
|
delete fullServiceData.enabled;
|
|
126
|
-
|
|
127
113
|
if (clean) {
|
|
128
114
|
try {
|
|
129
115
|
(0, _Console.debugMessage)("ServiceOps.putFullService: clean");
|
|
130
|
-
yield deleteFullService(serviceId);
|
|
116
|
+
yield deleteFullService(serviceId, globalConfig);
|
|
131
117
|
} catch (error) {
|
|
132
118
|
var _error$response4, _error$response5, _error$response5$data;
|
|
133
|
-
|
|
134
119
|
if (!(((_error$response4 = error.response) === null || _error$response4 === void 0 ? void 0 : _error$response4.status) === 404 && ((_error$response5 = error.response) === null || _error$response5 === void 0 ? void 0 : (_error$response5$data = _error$response5.data) === null || _error$response5$data === void 0 ? void 0 : _error$response5$data.message) === 'Not Found')) {
|
|
135
120
|
var _error$response6, _error$response6$data;
|
|
136
|
-
|
|
137
121
|
var message = (_error$response6 = error.response) === null || _error$response6 === void 0 ? void 0 : (_error$response6$data = _error$response6.data) === null || _error$response6$data === void 0 ? void 0 : _error$response6$data.message;
|
|
138
122
|
(0, _Console.printMessage)("Error deleting service '".concat(serviceId, "' before import: ").concat(message), 'error');
|
|
139
123
|
}
|
|
140
124
|
}
|
|
141
|
-
}
|
|
142
|
-
|
|
125
|
+
}
|
|
143
126
|
|
|
144
|
-
|
|
127
|
+
// create service first
|
|
128
|
+
var result = yield (0, _ServiceApi.putService)(serviceId, fullServiceData, globalConfig);
|
|
145
129
|
|
|
130
|
+
// return fast if no next descendents supplied
|
|
146
131
|
if (nextDescendents.length === 0) {
|
|
147
132
|
(0, _Console.debugMessage)("ServiceOps.putFullService: end (w/o descendents)");
|
|
148
133
|
return result;
|
|
149
|
-
}
|
|
150
|
-
|
|
134
|
+
}
|
|
151
135
|
|
|
136
|
+
// now create next descendents
|
|
152
137
|
yield Promise.all(nextDescendents.map( /*#__PURE__*/function () {
|
|
153
138
|
var _ref2 = _asyncToGenerator(function* (descendent) {
|
|
154
139
|
var type = descendent._type._id;
|
|
155
140
|
var descendentId = descendent._id;
|
|
156
141
|
(0, _Console.debugMessage)("ServiceOps.putFullService: descendentId=".concat(descendentId));
|
|
157
142
|
var result = undefined;
|
|
158
|
-
|
|
159
143
|
try {
|
|
160
|
-
result = yield (0, _ServiceApi.putServiceNextDescendent)(serviceId, type, descendentId, descendent);
|
|
144
|
+
result = yield (0, _ServiceApi.putServiceNextDescendent)(serviceId, type, descendentId, descendent, globalConfig);
|
|
161
145
|
} catch (error) {
|
|
162
146
|
var _error$response7, _error$response7$data;
|
|
163
|
-
|
|
164
147
|
var _message = (_error$response7 = error.response) === null || _error$response7 === void 0 ? void 0 : (_error$response7$data = _error$response7.data) === null || _error$response7$data === void 0 ? void 0 : _error$response7$data.message;
|
|
165
|
-
|
|
166
148
|
(0, _Console.printMessage)("Put descendent '".concat(descendentId, "' of service '").concat(serviceId, "': ").concat(_message), 'error');
|
|
167
149
|
}
|
|
168
|
-
|
|
169
150
|
return result;
|
|
170
151
|
});
|
|
171
|
-
|
|
172
152
|
return function (_x14) {
|
|
173
153
|
return _ref2.apply(this, arguments);
|
|
174
154
|
};
|
|
@@ -177,220 +157,194 @@ function _putFullService() {
|
|
|
177
157
|
});
|
|
178
158
|
return _putFullService.apply(this, arguments);
|
|
179
159
|
}
|
|
180
|
-
|
|
181
160
|
function putFullServices(_x4, _x5) {
|
|
182
161
|
return _putFullServices.apply(this, arguments);
|
|
183
162
|
}
|
|
184
163
|
/**
|
|
185
164
|
* Deletes the specified service
|
|
186
165
|
* @param {string} serviceId The service to delete
|
|
166
|
+
* @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.
|
|
187
167
|
*/
|
|
188
|
-
|
|
189
|
-
|
|
190
168
|
function _putFullServices() {
|
|
191
169
|
_putFullServices = _asyncToGenerator(function* (serviceEntries, clean) {
|
|
192
|
-
|
|
170
|
+
var globalConfig = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
171
|
+
(0, _Console.debugMessage)("ServiceOps.putFullServices: start, globalConfig=".concat(globalConfig));
|
|
193
172
|
var results = [];
|
|
194
|
-
|
|
195
173
|
for (var [id, data] of serviceEntries) {
|
|
196
174
|
try {
|
|
197
|
-
var result = yield putFullService(id, data, clean);
|
|
175
|
+
var result = yield putFullService(id, data, clean, globalConfig);
|
|
198
176
|
results.push(result);
|
|
199
177
|
(0, _Console.printMessage)("Imported: ".concat(id), 'info');
|
|
200
178
|
} catch (error) {
|
|
201
179
|
var _error$response8, _error$response8$data, _error$response9, _error$response9$data;
|
|
202
|
-
|
|
203
180
|
var message = (_error$response8 = error.response) === null || _error$response8 === void 0 ? void 0 : (_error$response8$data = _error$response8.data) === null || _error$response8$data === void 0 ? void 0 : _error$response8$data.message;
|
|
204
181
|
var detail = (_error$response9 = error.response) === null || _error$response9 === void 0 ? void 0 : (_error$response9$data = _error$response9.data) === null || _error$response9$data === void 0 ? void 0 : _error$response9$data.detail;
|
|
205
182
|
(0, _Console.printMessage)("Import service '".concat(id, "': ").concat(message), 'error');
|
|
206
|
-
|
|
207
183
|
if (detail) {
|
|
208
184
|
(0, _Console.printMessage)("Details: ".concat(JSON.stringify(detail)), 'error');
|
|
209
185
|
}
|
|
210
186
|
}
|
|
211
187
|
}
|
|
212
|
-
|
|
213
188
|
(0, _Console.debugMessage)("ServiceOps.putFullServices: end");
|
|
214
189
|
return results;
|
|
215
190
|
});
|
|
216
191
|
return _putFullServices.apply(this, arguments);
|
|
217
192
|
}
|
|
218
|
-
|
|
219
193
|
function deleteFullService(_x6) {
|
|
220
194
|
return _deleteFullService.apply(this, arguments);
|
|
221
195
|
}
|
|
222
196
|
/**
|
|
223
197
|
* Deletes all services
|
|
198
|
+
* @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.
|
|
224
199
|
*/
|
|
225
|
-
|
|
226
|
-
|
|
227
200
|
function _deleteFullService() {
|
|
228
201
|
_deleteFullService = _asyncToGenerator(function* (serviceId) {
|
|
229
|
-
var
|
|
230
|
-
|
|
231
|
-
yield (0, _ServiceApi.
|
|
202
|
+
var globalConfig = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
203
|
+
(0, _Console.debugMessage)("ServiceOps.deleteFullService: start, globalConfig=".concat(globalConfig));
|
|
204
|
+
var serviceNextDescendentData = yield (0, _ServiceApi.getServiceDescendents)(serviceId, globalConfig);
|
|
205
|
+
yield Promise.all(serviceNextDescendentData.map(nextDescendent => (0, _ServiceApi.deleteServiceNextDescendent)(serviceId, nextDescendent._type._id, nextDescendent._id, globalConfig)));
|
|
206
|
+
yield (0, _ServiceApi.deleteService)(serviceId, globalConfig);
|
|
207
|
+
(0, _Console.debugMessage)("ServiceOps.deleteFullService: end");
|
|
232
208
|
});
|
|
233
209
|
return _deleteFullService.apply(this, arguments);
|
|
234
210
|
}
|
|
235
|
-
|
|
236
211
|
function deleteFullServices() {
|
|
237
212
|
return _deleteFullServices.apply(this, arguments);
|
|
238
213
|
}
|
|
239
214
|
/**
|
|
240
215
|
* Export service. The response can be saved to file as is.
|
|
241
216
|
* @param serviceId service id/name
|
|
217
|
+
* @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.
|
|
242
218
|
* @returns {Promise<ServiceExportInterface>} Promise resolving to a ServiceExportInterface object.
|
|
243
219
|
*/
|
|
244
|
-
|
|
245
|
-
|
|
246
220
|
function _deleteFullServices() {
|
|
247
221
|
_deleteFullServices = _asyncToGenerator(function* () {
|
|
248
|
-
|
|
249
|
-
|
|
222
|
+
var globalConfig = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
223
|
+
(0, _Console.debugMessage)("ServiceOps.deleteFullServices: start, globalConfig=".concat(globalConfig));
|
|
250
224
|
try {
|
|
251
|
-
var serviceList = (yield (0, _ServiceApi.getListOfServices)()).result;
|
|
225
|
+
var serviceList = (yield (0, _ServiceApi.getListOfServices)(globalConfig)).result;
|
|
252
226
|
yield Promise.all(serviceList.map( /*#__PURE__*/function () {
|
|
253
227
|
var _ref3 = _asyncToGenerator(function* (serviceListItem) {
|
|
254
228
|
try {
|
|
255
|
-
yield deleteFullService(serviceListItem._id);
|
|
229
|
+
yield deleteFullService(serviceListItem._id, globalConfig);
|
|
256
230
|
} catch (error) {
|
|
257
231
|
var _error$response10, _error$response11, _error$response11$dat;
|
|
258
|
-
|
|
259
232
|
if (!(((_error$response10 = error.response) === null || _error$response10 === void 0 ? void 0 : _error$response10.status) === 403 && ((_error$response11 = error.response) === null || _error$response11 === void 0 ? void 0 : (_error$response11$dat = _error$response11.data) === null || _error$response11$dat === void 0 ? void 0 : _error$response11$dat.message) === 'This operation is not available in ForgeRock Identity Cloud.')) {
|
|
260
233
|
var _error$response12, _error$response12$dat;
|
|
261
|
-
|
|
262
234
|
var message = (_error$response12 = error.response) === null || _error$response12 === void 0 ? void 0 : (_error$response12$dat = _error$response12.data) === null || _error$response12$dat === void 0 ? void 0 : _error$response12$dat.message;
|
|
263
235
|
(0, _Console.printMessage)("Delete service '".concat(serviceListItem._id, "': ").concat(message), 'error');
|
|
264
236
|
}
|
|
265
237
|
}
|
|
266
238
|
});
|
|
267
|
-
|
|
268
239
|
return function (_x15) {
|
|
269
240
|
return _ref3.apply(this, arguments);
|
|
270
241
|
};
|
|
271
242
|
}()));
|
|
272
243
|
} catch (error) {
|
|
273
244
|
var _error$response13, _error$response13$dat;
|
|
274
|
-
|
|
275
245
|
var message = (_error$response13 = error.response) === null || _error$response13 === void 0 ? void 0 : (_error$response13$dat = _error$response13.data) === null || _error$response13$dat === void 0 ? void 0 : _error$response13$dat.message;
|
|
276
246
|
(0, _Console.printMessage)("Delete services: ".concat(message), 'error');
|
|
277
247
|
}
|
|
278
|
-
|
|
279
248
|
(0, _Console.debugMessage)("ServiceOps.deleteFullServices: end");
|
|
280
249
|
});
|
|
281
250
|
return _deleteFullServices.apply(this, arguments);
|
|
282
251
|
}
|
|
283
|
-
|
|
284
252
|
function exportService(_x7) {
|
|
285
253
|
return _exportService.apply(this, arguments);
|
|
286
254
|
}
|
|
287
255
|
/**
|
|
288
256
|
* Export all services
|
|
289
|
-
* @param {
|
|
257
|
+
* @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.
|
|
290
258
|
*/
|
|
291
|
-
|
|
292
|
-
|
|
293
259
|
function _exportService() {
|
|
294
260
|
_exportService = _asyncToGenerator(function* (serviceId) {
|
|
295
|
-
|
|
261
|
+
var globalConfig = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
262
|
+
(0, _Console.debugMessage)("ServiceOps.exportService: start, globalConfig=".concat(globalConfig));
|
|
296
263
|
var exportData = createServiceExportTemplate();
|
|
297
|
-
|
|
298
264
|
try {
|
|
299
|
-
var service = yield (0, _ServiceApi.getService)(serviceId);
|
|
300
|
-
service.nextDescendents = yield (0, _ServiceApi.getServiceDescendents)(serviceId);
|
|
265
|
+
var service = yield (0, _ServiceApi.getService)(serviceId, globalConfig);
|
|
266
|
+
service.nextDescendents = yield (0, _ServiceApi.getServiceDescendents)(serviceId, globalConfig);
|
|
301
267
|
exportData.service[serviceId] = service;
|
|
302
268
|
} catch (error) {
|
|
303
269
|
var _error$response14, _error$response14$dat;
|
|
304
|
-
|
|
305
270
|
var message = (_error$response14 = error.response) === null || _error$response14 === void 0 ? void 0 : (_error$response14$dat = _error$response14.data) === null || _error$response14$dat === void 0 ? void 0 : _error$response14$dat.message;
|
|
306
271
|
(0, _Console.printMessage)("Export service '".concat(serviceId, "': ").concat(message), 'error');
|
|
307
272
|
}
|
|
308
|
-
|
|
309
273
|
(0, _Console.debugMessage)("ServiceOps.exportService: end");
|
|
310
274
|
return exportData;
|
|
311
275
|
});
|
|
312
276
|
return _exportService.apply(this, arguments);
|
|
313
277
|
}
|
|
314
|
-
|
|
315
278
|
function exportServices() {
|
|
316
279
|
return _exportServices.apply(this, arguments);
|
|
317
280
|
}
|
|
318
281
|
/**
|
|
319
282
|
* Imports a single service using a reference to the service and a file to read the data from. Optionally clean (remove) an existing service first
|
|
320
283
|
* @param {string} serviceId The service id/name to add
|
|
284
|
+
* @param {ServiceExportInterface} importData The service configuration export data to import
|
|
321
285
|
* @param {boolean} clean Indicates whether to remove a possible existing service with the same id first.
|
|
322
|
-
* @param {
|
|
286
|
+
* @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.
|
|
323
287
|
* @returns Promise resolving when the service has been imported
|
|
324
288
|
*/
|
|
325
|
-
|
|
326
|
-
|
|
327
289
|
function _exportServices() {
|
|
328
290
|
_exportServices = _asyncToGenerator(function* () {
|
|
329
|
-
|
|
291
|
+
var globalConfig = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
292
|
+
(0, _Console.debugMessage)("ServiceOps.exportServices: start, globalConfig=".concat(globalConfig));
|
|
330
293
|
var exportData = createServiceExportTemplate();
|
|
331
|
-
|
|
332
294
|
try {
|
|
333
|
-
var services = yield getFullServices();
|
|
334
|
-
|
|
295
|
+
var services = yield getFullServices(globalConfig);
|
|
335
296
|
for (var service of services) {
|
|
336
297
|
exportData.service[service._type._id] = service;
|
|
337
298
|
}
|
|
338
299
|
} catch (error) {
|
|
339
300
|
var _error$response15, _error$response15$dat;
|
|
340
|
-
|
|
341
301
|
var message = (_error$response15 = error.response) === null || _error$response15 === void 0 ? void 0 : (_error$response15$dat = _error$response15.data) === null || _error$response15$dat === void 0 ? void 0 : _error$response15$dat.message;
|
|
342
302
|
(0, _Console.printMessage)("Export servics: ".concat(message), 'error');
|
|
343
303
|
}
|
|
344
|
-
|
|
345
304
|
(0, _Console.debugMessage)("ServiceOps.exportServices: end");
|
|
346
305
|
return exportData;
|
|
347
306
|
});
|
|
348
307
|
return _exportServices.apply(this, arguments);
|
|
349
308
|
}
|
|
350
|
-
|
|
351
309
|
function importService(_x8, _x9, _x10) {
|
|
352
310
|
return _importService.apply(this, arguments);
|
|
353
311
|
}
|
|
354
312
|
/**
|
|
355
313
|
* Imports multiple services from the same file. Optionally clean (remove) existing services first
|
|
314
|
+
* @param {ServiceExportInterface} importData The service configuration export data to import
|
|
356
315
|
* @param {boolean} clean Indicates whether to remove possible existing services first
|
|
316
|
+
* @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.
|
|
357
317
|
*/
|
|
358
|
-
|
|
359
|
-
|
|
360
318
|
function _importService() {
|
|
361
319
|
_importService = _asyncToGenerator(function* (serviceId, importData, clean) {
|
|
362
|
-
|
|
320
|
+
var globalConfig = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
|
|
321
|
+
(0, _Console.debugMessage)("ServiceOps.importService: start, globalConfig=".concat(globalConfig));
|
|
363
322
|
var serviceData = importData.service[serviceId];
|
|
364
|
-
var result = yield putFullService(serviceId, serviceData, clean);
|
|
323
|
+
var result = yield putFullService(serviceId, serviceData, clean, globalConfig);
|
|
365
324
|
(0, _Console.debugMessage)("ServiceOps.importService: end");
|
|
366
325
|
return result;
|
|
367
326
|
});
|
|
368
327
|
return _importService.apply(this, arguments);
|
|
369
328
|
}
|
|
370
|
-
|
|
371
329
|
function importServices(_x11, _x12) {
|
|
372
330
|
return _importServices.apply(this, arguments);
|
|
373
331
|
}
|
|
374
|
-
|
|
375
332
|
function _importServices() {
|
|
376
333
|
_importServices = _asyncToGenerator(function* (importData, clean) {
|
|
377
|
-
|
|
378
|
-
|
|
334
|
+
var globalConfig = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
335
|
+
(0, _Console.debugMessage)("ServiceOps.importServices: start, globalConfig=".concat(globalConfig));
|
|
379
336
|
try {
|
|
380
|
-
var result = yield putFullServices(Object.entries(importData.service), clean);
|
|
337
|
+
var result = yield putFullServices(Object.entries(importData.service), clean, globalConfig);
|
|
381
338
|
(0, _Console.debugMessage)("ServiceOps.importServices: end");
|
|
382
339
|
return result;
|
|
383
340
|
} catch (error) {
|
|
384
341
|
var _error$response16, _error$response16$dat, _error$response17, _error$response17$dat;
|
|
385
|
-
|
|
386
342
|
var message = (_error$response16 = error.response) === null || _error$response16 === void 0 ? void 0 : (_error$response16$dat = _error$response16.data) === null || _error$response16$dat === void 0 ? void 0 : _error$response16$dat.message;
|
|
387
343
|
var detail = (_error$response17 = error.response) === null || _error$response17 === void 0 ? void 0 : (_error$response17$dat = _error$response17.data) === null || _error$response17$dat === void 0 ? void 0 : _error$response17$dat.detail;
|
|
388
344
|
(0, _Console.printMessage)("Unable to import services: error: ".concat(message), 'error');
|
|
389
|
-
|
|
390
345
|
if (detail) {
|
|
391
346
|
(0, _Console.printMessage)("Details: ".concat(JSON.stringify(detail)), 'error');
|
|
392
347
|
}
|
|
393
|
-
|
|
394
348
|
throw error;
|
|
395
349
|
}
|
|
396
350
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServiceOps.js","names":["createServiceExportTemplate","meta","service","getListOfServices","debugMessage","services","_getListOfServices","result","getFullServices","serviceList","fullServiceData","Promise","all","map","listItem","nextDescendents","getService","_id","getServiceDescendents","error","response","status","data","message","printMessage","filter","putFullService","serviceId","clean","_rev","enabled","deleteFullService","putService","length","descendent","type","_type","descendentId","undefined","putServiceNextDescendent","putFullServices","serviceEntries","results","id","push","detail","JSON","stringify","serviceNextDescendentData","nextDescendent","deleteServiceNextDescendent","deleteService","deleteFullServices","serviceListItem","exportService","exportData","exportServices","importService","importData","serviceData","importServices","Object","entries"],"sources":["ops/ServiceOps.ts"],"sourcesContent":["import { AmServiceSkeleton } from '../api/ApiTypes';\nimport {\n deleteService,\n deleteServiceNextDescendent,\n getService,\n getListOfServices as _getListOfServices,\n getServiceDescendents,\n putService,\n putServiceNextDescendent,\n ServiceNextDescendent,\n} from '../api/ServiceApi';\nimport { ServiceExportInterface } from './OpsTypes';\nimport { debugMessage, printMessage } from './utils/Console';\n\ninterface FullService extends AmServiceSkeleton {\n nextDescendents?: ServiceNextDescendent[];\n}\n\n/**\n * Create an empty service export template\n * @returns {SingleTreeExportInterface} an empty service export template\n */\nexport function createServiceExportTemplate(): ServiceExportInterface {\n return {\n meta: {},\n service: {},\n } as ServiceExportInterface;\n}\n\n/**\n * Get list of services\n */\nexport async function getListOfServices() {\n debugMessage(`ServiceOps.getListOfServices: start`);\n const services = (await _getListOfServices()).result;\n debugMessage(`ServiceOps.getListOfServices: end`);\n return services;\n}\n\n/**\n * Get all services including their descendents.\n * @returns Promise resolving to an array of services with their descendants\n */\nexport async function getFullServices(): Promise<FullService[]> {\n debugMessage(`ServiceOps.getFullServices: start`);\n const serviceList = (await _getListOfServices()).result;\n\n const fullServiceData = await Promise.all(\n serviceList.map(async (listItem) => {\n try {\n const [service, nextDescendents] = await Promise.all([\n getService(listItem._id),\n getServiceDescendents(listItem._id),\n ]);\n\n return {\n ...service,\n nextDescendents,\n };\n } catch (error) {\n if (\n !(\n error.response?.status === 403 &&\n error.response?.data?.message ===\n 'This operation is not available in ForgeRock Identity Cloud.'\n )\n ) {\n const message = error.response?.data?.message;\n printMessage(\n `Unable to retrieve data for ${listItem._id} with error: ${message}`,\n 'error'\n );\n }\n }\n })\n );\n\n debugMessage(`ServiceOps.getFullServices: end`);\n return fullServiceData.filter((data) => !!data); // make sure to filter out any undefined objects\n}\n\n/**\n * Saves a service using the provide id and data, including descendents\n * @param {string} serviceId the service id / name\n * @param {string} fullServiceData service object including descendants\n * @returns promise resolving to a service object\n */\nasync function putFullService(\n serviceId: string,\n fullServiceData: FullService,\n clean: boolean\n): Promise<AmServiceSkeleton> {\n debugMessage(`ServiceOps.putFullService: start, serviceId=${serviceId}`);\n const nextDescendents = fullServiceData.nextDescendents;\n\n delete fullServiceData.nextDescendents;\n delete fullServiceData._rev;\n delete fullServiceData.enabled;\n\n if (clean) {\n try {\n debugMessage(`ServiceOps.putFullService: clean`);\n await deleteFullService(serviceId);\n } catch (error) {\n if (\n !(\n error.response?.status === 404 &&\n error.response?.data?.message === 'Not Found'\n )\n ) {\n const message = error.response?.data?.message;\n printMessage(\n `Error deleting service '${serviceId}' before import: ${message}`,\n 'error'\n );\n }\n }\n }\n\n // create service first\n const result = await putService(serviceId, fullServiceData);\n\n // return fast if no next descendents supplied\n if (nextDescendents.length === 0) {\n debugMessage(`ServiceOps.putFullService: end (w/o descendents)`);\n return result;\n }\n\n // now create next descendents\n await Promise.all(\n nextDescendents.map(async (descendent) => {\n const type = descendent._type._id;\n const descendentId = descendent._id;\n debugMessage(`ServiceOps.putFullService: descendentId=${descendentId}`);\n let result = undefined;\n try {\n result = await putServiceNextDescendent(\n serviceId,\n type,\n descendentId,\n descendent\n );\n } catch (error) {\n const message = error.response?.data?.message;\n printMessage(\n `Put descendent '${descendentId}' of service '${serviceId}': ${message}`,\n 'error'\n );\n }\n return result;\n })\n );\n debugMessage(`ServiceOps.putFullService: end (w/ descendents)`);\n}\n\n/**\n * Saves multiple services using the serviceEntries which contain both id and data with descendants\n * @param {[string, FullService][]} serviceEntries The services to add\n * @param {boolean} clean Indicates whether to remove possible existing services first\n * @returns {Promise<AmService[]>} promise resolving to an array of service objects\n */\nasync function putFullServices(\n serviceEntries: [string, FullService][],\n clean: boolean\n): Promise<AmServiceSkeleton[]> {\n debugMessage(`ServiceOps.putFullServices: start`);\n const results: AmServiceSkeleton[] = [];\n for (const [id, data] of serviceEntries) {\n try {\n const result = await putFullService(id, data, clean);\n results.push(result);\n printMessage(`Imported: ${id}`, 'info');\n } catch (error) {\n const message = error.response?.data?.message;\n const detail = error.response?.data?.detail;\n printMessage(`Import service '${id}': ${message}`, 'error');\n if (detail) {\n printMessage(`Details: ${JSON.stringify(detail)}`, 'error');\n }\n }\n }\n debugMessage(`ServiceOps.putFullServices: end`);\n return results;\n}\n\n/**\n * Deletes the specified service\n * @param {string} serviceId The service to delete\n */\nexport async function deleteFullService(serviceId: string) {\n const serviceNextDescendentData = await getServiceDescendents(serviceId);\n\n await Promise.all(\n serviceNextDescendentData.map((nextDescendent) =>\n deleteServiceNextDescendent(\n serviceId,\n nextDescendent._type._id,\n nextDescendent._id\n )\n )\n );\n\n await deleteService(serviceId);\n}\n\n/**\n * Deletes all services\n */\nexport async function deleteFullServices() {\n debugMessage(`ServiceOps.deleteFullServices: start`);\n try {\n const serviceList = (await _getListOfServices()).result;\n\n await Promise.all(\n serviceList.map(async (serviceListItem) => {\n try {\n await deleteFullService(serviceListItem._id);\n } catch (error) {\n if (\n !(\n error.response?.status === 403 &&\n error.response?.data?.message ===\n 'This operation is not available in ForgeRock Identity Cloud.'\n )\n ) {\n const message = error.response?.data?.message;\n printMessage(\n `Delete service '${serviceListItem._id}': ${message}`,\n 'error'\n );\n }\n }\n })\n );\n } catch (error) {\n const message = error.response?.data?.message;\n printMessage(`Delete services: ${message}`, 'error');\n }\n debugMessage(`ServiceOps.deleteFullServices: end`);\n}\n\n/**\n * Export service. The response can be saved to file as is.\n * @param serviceId service id/name\n * @returns {Promise<ServiceExportInterface>} Promise resolving to a ServiceExportInterface object.\n */\nexport async function exportService(\n serviceId: string\n): Promise<ServiceExportInterface> {\n debugMessage(`ServiceOps.exportService: start`);\n const exportData = createServiceExportTemplate();\n try {\n const service = await getService(serviceId);\n service.nextDescendents = await getServiceDescendents(serviceId);\n exportData.service[serviceId] = service;\n } catch (error) {\n const message = error.response?.data?.message;\n printMessage(`Export service '${serviceId}': ${message}`, 'error');\n }\n debugMessage(`ServiceOps.exportService: end`);\n return exportData;\n}\n\n/**\n * Export all services\n * @param {string} file Options filename for the file, otherwise all{realm}Services.service.json will be the name\n */\nexport async function exportServices(): Promise<ServiceExportInterface> {\n debugMessage(`ServiceOps.exportServices: start`);\n const exportData = createServiceExportTemplate();\n try {\n const services = await getFullServices();\n for (const service of services) {\n exportData.service[service._type._id] = service;\n }\n } catch (error) {\n const message = error.response?.data?.message;\n printMessage(`Export servics: ${message}`, 'error');\n }\n debugMessage(`ServiceOps.exportServices: end`);\n return exportData;\n}\n\n/**\n * Imports a single service using a reference to the service and a file to read the data from. Optionally clean (remove) an existing service first\n * @param {string} serviceId The service id/name to add\n * @param {boolean} clean Indicates whether to remove a possible existing service with the same id first.\n * @param {string} file Reference to the filename with the data for the service\n * @returns Promise resolving when the service has been imported\n */\nexport async function importService(\n serviceId: string,\n importData: ServiceExportInterface,\n clean: boolean\n): Promise<AmServiceSkeleton> {\n debugMessage(`ServiceOps.importService: start`);\n const serviceData = importData.service[serviceId];\n const result = await putFullService(serviceId, serviceData, clean);\n debugMessage(`ServiceOps.importService: end`);\n return result;\n}\n\n/**\n * Imports multiple services from the same file. Optionally clean (remove) existing services first\n * @param {boolean} clean Indicates whether to remove possible existing services first\n */\nexport async function importServices(\n importData: ServiceExportInterface,\n clean: boolean\n) {\n debugMessage(`ServiceOps.importServices: start`);\n try {\n const result = await putFullServices(\n Object.entries(importData.service),\n clean\n );\n debugMessage(`ServiceOps.importServices: end`);\n return result;\n } catch (error) {\n const message = error.response?.data?.message;\n const detail = error.response?.data?.detail;\n printMessage(`Unable to import services: error: ${message}`, 'error');\n if (detail) {\n printMessage(`Details: ${JSON.stringify(detail)}`, 'error');\n }\n throw error;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;AACA;;AAWA;;;;;;;;;;;;AAMA;AACA;AACA;AACA;AACO,SAASA,2BAAT,GAA+D;EACpE,OAAO;IACLC,IAAI,EAAE,EADD;IAELC,OAAO,EAAE;EAFJ,CAAP;AAID;AAED;AACA;AACA;;;SACsBC,iB;;;AAOtB;AACA;AACA;AACA;;;;0CAVO,aAAmC;IACxC,IAAAC,qBAAA;IACA,IAAMC,QAAQ,GAAG,OAAO,IAAAC,6BAAA,GAAP,EAA6BC,MAA9C;IACA,IAAAH,qBAAA;IACA,OAAOC,QAAP;EACD,C;;;;SAMqBG,e;;;AAsCtB;AACA;AACA;AACA;AACA;AACA;;;;uCA3CO,aAAyD;IAC9D,IAAAJ,qBAAA;IACA,IAAMK,WAAW,GAAG,OAAO,IAAAH,6BAAA,GAAP,EAA6BC,MAAjD;IAEA,IAAMG,eAAe,SAASC,OAAO,CAACC,GAAR,CAC5BH,WAAW,CAACI,GAAZ;MAAA,6BAAgB,WAAOC,QAAP,EAAoB;QAClC,IAAI;UACF,IAAM,CAACZ,OAAD,EAAUa,eAAV,UAAmCJ,OAAO,CAACC,GAAR,CAAY,CACnD,IAAAI,sBAAA,EAAWF,QAAQ,CAACG,GAApB,CADmD,EAEnD,IAAAC,iCAAA,EAAsBJ,QAAQ,CAACG,GAA/B,CAFmD,CAAZ,CAAzC;UAKA,uCACKf,OADL;YAEEa;UAFF;QAID,CAVD,CAUE,OAAOI,KAAP,EAAc;UAAA;;UACd,IACE,EACE,oBAAAA,KAAK,CAACC,QAAN,oEAAgBC,MAAhB,MAA2B,GAA3B,IACA,qBAAAF,KAAK,CAACC,QAAN,+FAAgBE,IAAhB,gFAAsBC,OAAtB,MACE,8DAHJ,CADF,EAME;YAAA;;YACA,IAAMA,OAAO,uBAAGJ,KAAK,CAACC,QAAT,8EAAG,iBAAgBE,IAAnB,0DAAG,sBAAsBC,OAAtC;YACA,IAAAC,qBAAA,wCACiCV,QAAQ,CAACG,GAD1C,0BAC6DM,OAD7D,GAEE,OAFF;UAID;QACF;MACF,CA1BD;;MAAA;QAAA;MAAA;IAAA,IAD4B,CAA9B;IA8BA,IAAAnB,qBAAA;IACA,OAAOM,eAAe,CAACe,MAAhB,CAAwBH,IAAD,IAAU,CAAC,CAACA,IAAnC,CAAP,CAnC8D,CAmCb;EAClD,C;;;;SAQcI,c;;;AAoEf;AACA;AACA;AACA;AACA;AACA;;;;sCAzEA,WACEC,SADF,EAEEjB,eAFF,EAGEkB,KAHF,EAI8B;IAC5B,IAAAxB,qBAAA,wDAA4DuB,SAA5D;IACA,IAAMZ,eAAe,GAAGL,eAAe,CAACK,eAAxC;IAEA,OAAOL,eAAe,CAACK,eAAvB;IACA,OAAOL,eAAe,CAACmB,IAAvB;IACA,OAAOnB,eAAe,CAACoB,OAAvB;;IAEA,IAAIF,KAAJ,EAAW;MACT,IAAI;QACF,IAAAxB,qBAAA;QACA,MAAM2B,iBAAiB,CAACJ,SAAD,CAAvB;MACD,CAHD,CAGE,OAAOR,KAAP,EAAc;QAAA;;QACd,IACE,EACE,qBAAAA,KAAK,CAACC,QAAN,sEAAgBC,MAAhB,MAA2B,GAA3B,IACA,qBAAAF,KAAK,CAACC,QAAN,+FAAgBE,IAAhB,gFAAsBC,OAAtB,MAAkC,WAFpC,CADF,EAKE;UAAA;;UACA,IAAMA,OAAO,uBAAGJ,KAAK,CAACC,QAAT,8EAAG,iBAAgBE,IAAnB,0DAAG,sBAAsBC,OAAtC;UACA,IAAAC,qBAAA,oCAC6BG,SAD7B,8BAC0DJ,OAD1D,GAEE,OAFF;QAID;MACF;IACF,CA1B2B,CA4B5B;;;IACA,IAAMhB,MAAM,SAAS,IAAAyB,sBAAA,EAAWL,SAAX,EAAsBjB,eAAtB,CAArB,CA7B4B,CA+B5B;;IACA,IAAIK,eAAe,CAACkB,MAAhB,KAA2B,CAA/B,EAAkC;MAChC,IAAA7B,qBAAA;MACA,OAAOG,MAAP;IACD,CAnC2B,CAqC5B;;;IACA,MAAMI,OAAO,CAACC,GAAR,CACJG,eAAe,CAACF,GAAhB;MAAA,8BAAoB,WAAOqB,UAAP,EAAsB;QACxC,IAAMC,IAAI,GAAGD,UAAU,CAACE,KAAX,CAAiBnB,GAA9B;QACA,IAAMoB,YAAY,GAAGH,UAAU,CAACjB,GAAhC;QACA,IAAAb,qBAAA,oDAAwDiC,YAAxD;QACA,IAAI9B,MAAM,GAAG+B,SAAb;;QACA,IAAI;UACF/B,MAAM,SAAS,IAAAgC,oCAAA,EACbZ,SADa,EAEbQ,IAFa,EAGbE,YAHa,EAIbH,UAJa,CAAf;QAMD,CAPD,CAOE,OAAOf,KAAP,EAAc;UAAA;;UACd,IAAMI,QAAO,uBAAGJ,KAAK,CAACC,QAAT,8EAAG,iBAAgBE,IAAnB,0DAAG,sBAAsBC,OAAtC;;UACA,IAAAC,qBAAA,4BACqBa,YADrB,2BACkDV,SADlD,gBACiEJ,QADjE,GAEE,OAFF;QAID;;QACD,OAAOhB,MAAP;MACD,CApBD;;MAAA;QAAA;MAAA;IAAA,IADI,CAAN;IAuBA,IAAAH,qBAAA;EACD,C;;;;SAQcoC,e;;;AAwBf;AACA;AACA;AACA;;;;uCA3BA,WACEC,cADF,EAEEb,KAFF,EAGgC;IAC9B,IAAAxB,qBAAA;IACA,IAAMsC,OAA4B,GAAG,EAArC;;IACA,KAAK,IAAM,CAACC,EAAD,EAAKrB,IAAL,CAAX,IAAyBmB,cAAzB,EAAyC;MACvC,IAAI;QACF,IAAMlC,MAAM,SAASmB,cAAc,CAACiB,EAAD,EAAKrB,IAAL,EAAWM,KAAX,CAAnC;QACAc,OAAO,CAACE,IAAR,CAAarC,MAAb;QACA,IAAAiB,qBAAA,sBAA0BmB,EAA1B,GAAgC,MAAhC;MACD,CAJD,CAIE,OAAOxB,KAAP,EAAc;QAAA;;QACd,IAAMI,OAAO,uBAAGJ,KAAK,CAACC,QAAT,8EAAG,iBAAgBE,IAAnB,0DAAG,sBAAsBC,OAAtC;QACA,IAAMsB,MAAM,uBAAG1B,KAAK,CAACC,QAAT,8EAAG,iBAAgBE,IAAnB,0DAAG,sBAAsBuB,MAArC;QACA,IAAArB,qBAAA,4BAAgCmB,EAAhC,gBAAwCpB,OAAxC,GAAmD,OAAnD;;QACA,IAAIsB,MAAJ,EAAY;UACV,IAAArB,qBAAA,qBAAyBsB,IAAI,CAACC,SAAL,CAAeF,MAAf,CAAzB,GAAmD,OAAnD;QACD;MACF;IACF;;IACD,IAAAzC,qBAAA;IACA,OAAOsC,OAAP;EACD,C;;;;SAMqBX,iB;;;AAgBtB;AACA;AACA;;;;yCAlBO,WAAiCJ,SAAjC,EAAoD;IACzD,IAAMqB,yBAAyB,SAAS,IAAA9B,iCAAA,EAAsBS,SAAtB,CAAxC;IAEA,MAAMhB,OAAO,CAACC,GAAR,CACJoC,yBAAyB,CAACnC,GAA1B,CAA+BoC,cAAD,IAC5B,IAAAC,uCAAA,EACEvB,SADF,EAEEsB,cAAc,CAACb,KAAf,CAAqBnB,GAFvB,EAGEgC,cAAc,CAAChC,GAHjB,CADF,CADI,CAAN;IAUA,MAAM,IAAAkC,yBAAA,EAAcxB,SAAd,CAAN;EACD,C;;;;SAKqByB,kB;;;AAiCtB;AACA;AACA;AACA;AACA;;;;0CArCO,aAAoC;IACzC,IAAAhD,qBAAA;;IACA,IAAI;MACF,IAAMK,WAAW,GAAG,OAAO,IAAAH,6BAAA,GAAP,EAA6BC,MAAjD;MAEA,MAAMI,OAAO,CAACC,GAAR,CACJH,WAAW,CAACI,GAAZ;QAAA,8BAAgB,WAAOwC,eAAP,EAA2B;UACzC,IAAI;YACF,MAAMtB,iBAAiB,CAACsB,eAAe,CAACpC,GAAjB,CAAvB;UACD,CAFD,CAEE,OAAOE,KAAP,EAAc;YAAA;;YACd,IACE,EACE,sBAAAA,KAAK,CAACC,QAAN,wEAAgBC,MAAhB,MAA2B,GAA3B,IACA,sBAAAF,KAAK,CAACC,QAAN,iGAAgBE,IAAhB,gFAAsBC,OAAtB,MACE,8DAHJ,CADF,EAME;cAAA;;cACA,IAAMA,OAAO,wBAAGJ,KAAK,CAACC,QAAT,+EAAG,kBAAgBE,IAAnB,0DAAG,sBAAsBC,OAAtC;cACA,IAAAC,qBAAA,4BACqB6B,eAAe,CAACpC,GADrC,gBAC8CM,OAD9C,GAEE,OAFF;YAID;UACF;QACF,CAlBD;;QAAA;UAAA;QAAA;MAAA,IADI,CAAN;IAqBD,CAxBD,CAwBE,OAAOJ,KAAP,EAAc;MAAA;;MACd,IAAMI,OAAO,wBAAGJ,KAAK,CAACC,QAAT,+EAAG,kBAAgBE,IAAnB,0DAAG,sBAAsBC,OAAtC;MACA,IAAAC,qBAAA,6BAAiCD,OAAjC,GAA4C,OAA5C;IACD;;IACD,IAAAnB,qBAAA;EACD,C;;;;SAOqBkD,a;;;AAiBtB;AACA;AACA;AACA;;;;qCApBO,WACL3B,SADK,EAE4B;IACjC,IAAAvB,qBAAA;IACA,IAAMmD,UAAU,GAAGvD,2BAA2B,EAA9C;;IACA,IAAI;MACF,IAAME,OAAO,SAAS,IAAAc,sBAAA,EAAWW,SAAX,CAAtB;MACAzB,OAAO,CAACa,eAAR,SAAgC,IAAAG,iCAAA,EAAsBS,SAAtB,CAAhC;MACA4B,UAAU,CAACrD,OAAX,CAAmByB,SAAnB,IAAgCzB,OAAhC;IACD,CAJD,CAIE,OAAOiB,KAAP,EAAc;MAAA;;MACd,IAAMI,OAAO,wBAAGJ,KAAK,CAACC,QAAT,+EAAG,kBAAgBE,IAAnB,0DAAG,sBAAsBC,OAAtC;MACA,IAAAC,qBAAA,4BAAgCG,SAAhC,gBAA+CJ,OAA/C,GAA0D,OAA1D;IACD;;IACD,IAAAnB,qBAAA;IACA,OAAOmD,UAAP;EACD,C;;;;SAMqBC,c;;;AAgBtB;AACA;AACA;AACA;AACA;AACA;AACA;;;;sCAtBO,aAAiE;IACtE,IAAApD,qBAAA;IACA,IAAMmD,UAAU,GAAGvD,2BAA2B,EAA9C;;IACA,IAAI;MACF,IAAMK,QAAQ,SAASG,eAAe,EAAtC;;MACA,KAAK,IAAMN,OAAX,IAAsBG,QAAtB,EAAgC;QAC9BkD,UAAU,CAACrD,OAAX,CAAmBA,OAAO,CAACkC,KAAR,CAAcnB,GAAjC,IAAwCf,OAAxC;MACD;IACF,CALD,CAKE,OAAOiB,KAAP,EAAc;MAAA;;MACd,IAAMI,OAAO,wBAAGJ,KAAK,CAACC,QAAT,+EAAG,kBAAgBE,IAAnB,0DAAG,sBAAsBC,OAAtC;MACA,IAAAC,qBAAA,4BAAgCD,OAAhC,GAA2C,OAA3C;IACD;;IACD,IAAAnB,qBAAA;IACA,OAAOmD,UAAP;EACD,C;;;;SASqBE,a;;;AAYtB;AACA;AACA;AACA;;;;qCAfO,WACL9B,SADK,EAEL+B,UAFK,EAGL9B,KAHK,EAIuB;IAC5B,IAAAxB,qBAAA;IACA,IAAMuD,WAAW,GAAGD,UAAU,CAACxD,OAAX,CAAmByB,SAAnB,CAApB;IACA,IAAMpB,MAAM,SAASmB,cAAc,CAACC,SAAD,EAAYgC,WAAZ,EAAyB/B,KAAzB,CAAnC;IACA,IAAAxB,qBAAA;IACA,OAAOG,MAAP;EACD,C;;;;SAMqBqD,c;;;;;sCAAf,WACLF,UADK,EAEL9B,KAFK,EAGL;IACA,IAAAxB,qBAAA;;IACA,IAAI;MACF,IAAMG,MAAM,SAASiC,eAAe,CAClCqB,MAAM,CAACC,OAAP,CAAeJ,UAAU,CAACxD,OAA1B,CADkC,EAElC0B,KAFkC,CAApC;MAIA,IAAAxB,qBAAA;MACA,OAAOG,MAAP;IACD,CAPD,CAOE,OAAOY,KAAP,EAAc;MAAA;;MACd,IAAMI,OAAO,wBAAGJ,KAAK,CAACC,QAAT,+EAAG,kBAAgBE,IAAnB,0DAAG,sBAAsBC,OAAtC;MACA,IAAMsB,MAAM,wBAAG1B,KAAK,CAACC,QAAT,+EAAG,kBAAgBE,IAAnB,0DAAG,sBAAsBuB,MAArC;MACA,IAAArB,qBAAA,8CAAkDD,OAAlD,GAA6D,OAA7D;;MACA,IAAIsB,MAAJ,EAAY;QACV,IAAArB,qBAAA,qBAAyBsB,IAAI,CAACC,SAAL,CAAeF,MAAf,CAAzB,GAAmD,OAAnD;MACD;;MACD,MAAM1B,KAAN;IACD;EACF,C"}
|
|
1
|
+
{"version":3,"file":"ServiceOps.js","names":["createServiceExportTemplate","meta","service","getListOfServices","globalConfig","debugMessage","services","_getListOfServices","result","getFullServices","serviceList","fullServiceData","Promise","all","map","listItem","nextDescendents","getService","_id","getServiceDescendents","error","response","status","data","message","printMessage","filter","putFullService","serviceId","clean","_rev","enabled","deleteFullService","putService","length","descendent","type","_type","descendentId","undefined","putServiceNextDescendent","putFullServices","serviceEntries","results","id","push","detail","JSON","stringify","serviceNextDescendentData","nextDescendent","deleteServiceNextDescendent","deleteService","deleteFullServices","serviceListItem","exportService","exportData","exportServices","importService","importData","serviceData","importServices","Object","entries"],"sources":["ops/ServiceOps.ts"],"sourcesContent":["import { AmServiceSkeleton } from '../api/ApiTypes';\nimport {\n deleteService,\n deleteServiceNextDescendent,\n getService,\n getListOfServices as _getListOfServices,\n getServiceDescendents,\n putService,\n putServiceNextDescendent,\n ServiceNextDescendent,\n} from '../api/ServiceApi';\nimport { ServiceExportInterface } from './OpsTypes';\nimport { debugMessage, printMessage } from './utils/Console';\n\ninterface FullService extends AmServiceSkeleton {\n nextDescendents?: ServiceNextDescendent[];\n}\n\n/**\n * Create an empty service export template\n * @returns {SingleTreeExportInterface} an empty service export template\n */\nexport function createServiceExportTemplate(): ServiceExportInterface {\n return {\n meta: {},\n service: {},\n } as ServiceExportInterface;\n}\n\n/**\n * Get list of services\n * @param {boolean} globalConfig true if the list of global services is requested, false otherwise. Default: false.\n */\nexport async function getListOfServices(globalConfig = false) {\n debugMessage(`ServiceOps.getListOfServices: start`);\n const services = (await _getListOfServices(globalConfig)).result;\n debugMessage(`ServiceOps.getListOfServices: end`);\n return services;\n}\n\n/**\n * Get all services including their descendents.\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n * @returns Promise resolving to an array of services with their descendants\n */\nexport async function getFullServices(\n globalConfig = false\n): Promise<FullService[]> {\n debugMessage(\n `ServiceOps.getFullServices: start, globalConfig=${globalConfig}`\n );\n const serviceList = (await _getListOfServices(globalConfig)).result;\n\n const fullServiceData = await Promise.all(\n serviceList.map(async (listItem) => {\n try {\n const [service, nextDescendents] = await Promise.all([\n getService(listItem._id, globalConfig),\n getServiceDescendents(listItem._id, globalConfig),\n ]);\n\n return {\n ...service,\n nextDescendents,\n };\n } catch (error) {\n if (\n !(\n error.response?.status === 403 &&\n error.response?.data?.message ===\n 'This operation is not available in ForgeRock Identity Cloud.'\n )\n ) {\n const message = error.response?.data?.message;\n printMessage(\n `Unable to retrieve data for ${listItem._id} with error: ${message}`,\n 'error'\n );\n }\n }\n })\n );\n\n debugMessage(`ServiceOps.getFullServices: end`);\n return fullServiceData.filter((data) => !!data); // make sure to filter out any undefined objects\n}\n\n/**\n * Saves a service using the provide id and data, including descendents\n * @param {string} serviceId the service id / name\n * @param {string} fullServiceData service object including descendants\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n * @returns promise resolving to a service object\n */\nasync function putFullService(\n serviceId: string,\n fullServiceData: FullService,\n clean: boolean,\n globalConfig = false\n): Promise<AmServiceSkeleton> {\n debugMessage(\n `ServiceOps.putFullService: start, serviceId=${serviceId}, globalConfig=${globalConfig}`\n );\n const nextDescendents = fullServiceData.nextDescendents;\n\n delete fullServiceData.nextDescendents;\n delete fullServiceData._rev;\n delete fullServiceData.enabled;\n\n if (clean) {\n try {\n debugMessage(`ServiceOps.putFullService: clean`);\n await deleteFullService(serviceId, globalConfig);\n } catch (error) {\n if (\n !(\n error.response?.status === 404 &&\n error.response?.data?.message === 'Not Found'\n )\n ) {\n const message = error.response?.data?.message;\n printMessage(\n `Error deleting service '${serviceId}' before import: ${message}`,\n 'error'\n );\n }\n }\n }\n\n // create service first\n const result = await putService(serviceId, fullServiceData, globalConfig);\n\n // return fast if no next descendents supplied\n if (nextDescendents.length === 0) {\n debugMessage(`ServiceOps.putFullService: end (w/o descendents)`);\n return result;\n }\n\n // now create next descendents\n await Promise.all(\n nextDescendents.map(async (descendent) => {\n const type = descendent._type._id;\n const descendentId = descendent._id;\n debugMessage(`ServiceOps.putFullService: descendentId=${descendentId}`);\n let result = undefined;\n try {\n result = await putServiceNextDescendent(\n serviceId,\n type,\n descendentId,\n descendent,\n globalConfig\n );\n } catch (error) {\n const message = error.response?.data?.message;\n printMessage(\n `Put descendent '${descendentId}' of service '${serviceId}': ${message}`,\n 'error'\n );\n }\n return result;\n })\n );\n debugMessage(`ServiceOps.putFullService: end (w/ descendents)`);\n}\n\n/**\n * Saves multiple services using the serviceEntries which contain both id and data with descendants\n * @param {[string, FullService][]} serviceEntries The services to add\n * @param {boolean} clean Indicates whether to remove possible existing services first\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n * @returns {Promise<AmService[]>} promise resolving to an array of service objects\n */\nasync function putFullServices(\n serviceEntries: [string, FullService][],\n clean: boolean,\n globalConfig = false\n): Promise<AmServiceSkeleton[]> {\n debugMessage(\n `ServiceOps.putFullServices: start, globalConfig=${globalConfig}`\n );\n const results: AmServiceSkeleton[] = [];\n for (const [id, data] of serviceEntries) {\n try {\n const result = await putFullService(id, data, clean, globalConfig);\n results.push(result);\n printMessage(`Imported: ${id}`, 'info');\n } catch (error) {\n const message = error.response?.data?.message;\n const detail = error.response?.data?.detail;\n printMessage(`Import service '${id}': ${message}`, 'error');\n if (detail) {\n printMessage(`Details: ${JSON.stringify(detail)}`, 'error');\n }\n }\n }\n debugMessage(`ServiceOps.putFullServices: end`);\n return results;\n}\n\n/**\n * Deletes the specified service\n * @param {string} serviceId The service to delete\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n */\nexport async function deleteFullService(\n serviceId: string,\n globalConfig = false\n) {\n debugMessage(\n `ServiceOps.deleteFullService: start, globalConfig=${globalConfig}`\n );\n const serviceNextDescendentData = await getServiceDescendents(\n serviceId,\n globalConfig\n );\n\n await Promise.all(\n serviceNextDescendentData.map((nextDescendent) =>\n deleteServiceNextDescendent(\n serviceId,\n nextDescendent._type._id,\n nextDescendent._id,\n globalConfig\n )\n )\n );\n\n await deleteService(serviceId, globalConfig);\n debugMessage(`ServiceOps.deleteFullService: end`);\n}\n\n/**\n * Deletes all services\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n */\nexport async function deleteFullServices(globalConfig = false) {\n debugMessage(\n `ServiceOps.deleteFullServices: start, globalConfig=${globalConfig}`\n );\n try {\n const serviceList = (await _getListOfServices(globalConfig)).result;\n\n await Promise.all(\n serviceList.map(async (serviceListItem) => {\n try {\n await deleteFullService(serviceListItem._id, globalConfig);\n } catch (error) {\n if (\n !(\n error.response?.status === 403 &&\n error.response?.data?.message ===\n 'This operation is not available in ForgeRock Identity Cloud.'\n )\n ) {\n const message = error.response?.data?.message;\n printMessage(\n `Delete service '${serviceListItem._id}': ${message}`,\n 'error'\n );\n }\n }\n })\n );\n } catch (error) {\n const message = error.response?.data?.message;\n printMessage(`Delete services: ${message}`, 'error');\n }\n debugMessage(`ServiceOps.deleteFullServices: end`);\n}\n\n/**\n * Export service. The response can be saved to file as is.\n * @param serviceId service id/name\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n * @returns {Promise<ServiceExportInterface>} Promise resolving to a ServiceExportInterface object.\n */\nexport async function exportService(\n serviceId: string,\n globalConfig = false\n): Promise<ServiceExportInterface> {\n debugMessage(`ServiceOps.exportService: start, globalConfig=${globalConfig}`);\n const exportData = createServiceExportTemplate();\n try {\n const service = await getService(serviceId, globalConfig);\n service.nextDescendents = await getServiceDescendents(\n serviceId,\n globalConfig\n );\n exportData.service[serviceId] = service;\n } catch (error) {\n const message = error.response?.data?.message;\n printMessage(`Export service '${serviceId}': ${message}`, 'error');\n }\n debugMessage(`ServiceOps.exportService: end`);\n return exportData;\n}\n\n/**\n * Export all services\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n */\nexport async function exportServices(\n globalConfig = false\n): Promise<ServiceExportInterface> {\n debugMessage(\n `ServiceOps.exportServices: start, globalConfig=${globalConfig}`\n );\n const exportData = createServiceExportTemplate();\n try {\n const services = await getFullServices(globalConfig);\n for (const service of services) {\n exportData.service[service._type._id] = service;\n }\n } catch (error) {\n const message = error.response?.data?.message;\n printMessage(`Export servics: ${message}`, 'error');\n }\n debugMessage(`ServiceOps.exportServices: end`);\n return exportData;\n}\n\n/**\n * Imports a single service using a reference to the service and a file to read the data from. Optionally clean (remove) an existing service first\n * @param {string} serviceId The service id/name to add\n * @param {ServiceExportInterface} importData The service configuration export data to import\n * @param {boolean} clean Indicates whether to remove a possible existing service with the same id first.\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n * @returns Promise resolving when the service has been imported\n */\nexport async function importService(\n serviceId: string,\n importData: ServiceExportInterface,\n clean: boolean,\n globalConfig = false\n): Promise<AmServiceSkeleton> {\n debugMessage(`ServiceOps.importService: start, globalConfig=${globalConfig}`);\n const serviceData = importData.service[serviceId];\n const result = await putFullService(\n serviceId,\n serviceData,\n clean,\n globalConfig\n );\n debugMessage(`ServiceOps.importService: end`);\n return result;\n}\n\n/**\n * Imports multiple services from the same file. Optionally clean (remove) existing services first\n * @param {ServiceExportInterface} importData The service configuration export data to import\n * @param {boolean} clean Indicates whether to remove possible existing services first\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n */\nexport async function importServices(\n importData: ServiceExportInterface,\n clean: boolean,\n globalConfig = false\n) {\n debugMessage(\n `ServiceOps.importServices: start, globalConfig=${globalConfig}`\n );\n try {\n const result = await putFullServices(\n Object.entries(importData.service),\n clean,\n globalConfig\n );\n debugMessage(`ServiceOps.importServices: end`);\n return result;\n } catch (error) {\n const message = error.response?.data?.message;\n const detail = error.response?.data?.detail;\n printMessage(`Unable to import services: error: ${message}`, 'error');\n if (detail) {\n printMessage(`Details: ${JSON.stringify(detail)}`, 'error');\n }\n throw error;\n }\n}\n"],"mappings":"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"}
|
package/cjs/ops/StartupOps.js
CHANGED
|
@@ -5,19 +5,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.applyUpdates = applyUpdates;
|
|
7
7
|
exports.checkForUpdates = checkForUpdates;
|
|
8
|
-
|
|
9
8
|
var _Console = require("./utils/Console");
|
|
10
|
-
|
|
11
9
|
var _SecretsApi = require("../api/SecretsApi");
|
|
12
|
-
|
|
13
10
|
var _StartupApi = require("../api/StartupApi");
|
|
14
|
-
|
|
15
11
|
var _VariablesApi = require("../api/VariablesApi");
|
|
16
|
-
|
|
17
12
|
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
18
|
-
|
|
19
13
|
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
20
|
-
|
|
21
14
|
/**
|
|
22
15
|
* Check for updates that need applying
|
|
23
16
|
* @returns {Promise<boolean>} true if there are updates that need to be applied, false otherwise
|
|
@@ -31,63 +24,50 @@ function checkForUpdates() {
|
|
|
31
24
|
* @param {number} timeout timeout in milliseconds
|
|
32
25
|
* @returns {Promise<boolean>} true if successful, false otherwise
|
|
33
26
|
*/
|
|
34
|
-
|
|
35
|
-
|
|
36
27
|
function _checkForUpdates() {
|
|
37
28
|
_checkForUpdates = _asyncToGenerator(function* () {
|
|
38
29
|
var _updates$secrets, _updates$variables;
|
|
39
|
-
|
|
40
30
|
var updates = {
|
|
41
31
|
secrets: [],
|
|
42
32
|
variables: []
|
|
43
33
|
};
|
|
44
34
|
(0, _Console.createProgressIndicator)(undefined, "Checking for updates to apply...", 'indeterminate');
|
|
45
|
-
|
|
46
35
|
try {
|
|
47
36
|
updates.secrets = (yield (0, _SecretsApi.getSecrets)()).result.filter(secret => !secret.loaded);
|
|
48
37
|
updates.variables = (yield (0, _VariablesApi.getVariables)()).result.filter(variable => !variable.loaded);
|
|
49
38
|
} catch (error) {
|
|
50
39
|
(0, _Console.stopProgressIndicator)("Error: ".concat(error.response.data.code, " - ").concat(error.response.data.message), 'fail');
|
|
51
40
|
}
|
|
52
|
-
|
|
53
41
|
var updateCount = ((_updates$secrets = updates.secrets) === null || _updates$secrets === void 0 ? void 0 : _updates$secrets.length) + ((_updates$variables = updates.variables) === null || _updates$variables === void 0 ? void 0 : _updates$variables.length) || 0;
|
|
54
|
-
|
|
55
42
|
if (updateCount > 0) {
|
|
56
43
|
(0, _Console.stopProgressIndicator)("".concat(updateCount, " update(s) need to be applied"), 'success');
|
|
57
44
|
} else {
|
|
58
45
|
(0, _Console.stopProgressIndicator)("No updates need to be applied", 'success');
|
|
59
46
|
}
|
|
60
|
-
|
|
61
47
|
return updates;
|
|
62
48
|
});
|
|
63
49
|
return _checkForUpdates.apply(this, arguments);
|
|
64
50
|
}
|
|
65
|
-
|
|
66
51
|
function applyUpdates(_x) {
|
|
67
52
|
return _applyUpdates.apply(this, arguments);
|
|
68
53
|
}
|
|
69
|
-
|
|
70
54
|
function _applyUpdates() {
|
|
71
55
|
_applyUpdates = _asyncToGenerator(function* (wait) {
|
|
72
56
|
var timeout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 10 * 60 * 1000;
|
|
73
57
|
(0, _Console.createProgressIndicator)(undefined, "Applying updates...", 'indeterminate');
|
|
74
|
-
|
|
75
58
|
try {
|
|
76
59
|
var status = yield (0, _StartupApi.initiateRestart)();
|
|
77
|
-
|
|
78
60
|
if (wait) {
|
|
79
61
|
var start = new Date().getTime();
|
|
80
62
|
var runtime = 0;
|
|
81
|
-
|
|
82
63
|
while (status !== _StartupApi.RestartStatus.ready && start + timeout > new Date().getTime()) {
|
|
83
64
|
// eslint-disable-next-line no-await-in-loop, no-promise-executor-return
|
|
84
|
-
yield new Promise(resolve => setTimeout(resolve, 5000));
|
|
85
|
-
|
|
65
|
+
yield new Promise(resolve => setTimeout(resolve, 5000));
|
|
66
|
+
// eslint-disable-next-line no-await-in-loop
|
|
86
67
|
status = yield (0, _StartupApi.getStatus)();
|
|
87
68
|
runtime = new Date().getTime() - start;
|
|
88
69
|
(0, _Console.updateProgressIndicator)("".concat(status, " (").concat(Math.round(runtime / 1000), "s)"));
|
|
89
70
|
}
|
|
90
|
-
|
|
91
71
|
if (runtime < timeout) {
|
|
92
72
|
(0, _Console.stopProgressIndicator)("Updates applied in ".concat(Math.round(runtime / 1000), "s with final status: ").concat(status), 'success');
|
|
93
73
|
return true;
|
|
@@ -101,7 +81,6 @@ function _applyUpdates() {
|
|
|
101
81
|
}
|
|
102
82
|
} catch (error) {
|
|
103
83
|
var _error$response, _error$response$data, _error$response2, _error$response2$data;
|
|
104
|
-
|
|
105
84
|
(0, _Console.stopProgressIndicator)("Error: ".concat(((_error$response = error.response) === null || _error$response === void 0 ? void 0 : (_error$response$data = _error$response.data) === null || _error$response$data === void 0 ? void 0 : _error$response$data.code) || error, " - ").concat((_error$response2 = error.response) === null || _error$response2 === void 0 ? void 0 : (_error$response2$data = _error$response2.data) === null || _error$response2$data === void 0 ? void 0 : _error$response2$data.message), 'fail');
|
|
106
85
|
return false;
|
|
107
86
|
}
|