@rockcarver/frodo-lib 0.16.2-9 → 0.17.1
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 +222 -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 +266 -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 +242 -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/esm/api/Saml2Api.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _ from 'lodash';
|
|
2
2
|
import util from 'util';
|
|
3
|
-
import
|
|
3
|
+
import * as state from '../shared/State';
|
|
4
4
|
import { generateAmApi } from './BaseApi';
|
|
5
5
|
import { getCurrentRealmPath } from './utils/ApiUtils';
|
|
6
6
|
const providerByLocationAndIdURLTemplate = '%s/json%s/realm-config/saml2/%s/%s';
|
|
@@ -12,7 +12,6 @@ const metadataByEntityIdURLTemplate = '%s/saml2/jsp/exportmetadata.jsp?entityid=
|
|
|
12
12
|
const samlApplicationQueryURLTemplateRaw = '%s/json%s/realm-config/federation/entityproviders/saml2?_queryFilter=true';
|
|
13
13
|
const samlApplicationByEntityIdURLTemplate = '%s/json%s/realm-config/federation/entityproviders/saml2/%s';
|
|
14
14
|
const apiVersion = 'protocol=2.1,resource=1.0';
|
|
15
|
-
|
|
16
15
|
const getApiConfig = () => {
|
|
17
16
|
const configPath = getCurrentRealmPath();
|
|
18
17
|
return {
|
|
@@ -20,14 +19,13 @@ const getApiConfig = () => {
|
|
|
20
19
|
apiVersion
|
|
21
20
|
};
|
|
22
21
|
};
|
|
22
|
+
|
|
23
23
|
/**
|
|
24
24
|
* Get all SAML2 entity providers
|
|
25
25
|
* @returns {Promise} a promise that resolves to an array of saml2 entity stubs
|
|
26
26
|
*/
|
|
27
|
-
|
|
28
|
-
|
|
29
27
|
export async function getProviders() {
|
|
30
|
-
const urlString = util.format(queryAllProvidersURLTemplate,
|
|
28
|
+
const urlString = util.format(queryAllProvidersURLTemplate, state.getHost(), getCurrentRealmPath());
|
|
31
29
|
const {
|
|
32
30
|
data
|
|
33
31
|
} = await generateAmApi(getApiConfig()).get(urlString, {
|
|
@@ -35,15 +33,15 @@ export async function getProviders() {
|
|
|
35
33
|
});
|
|
36
34
|
return data;
|
|
37
35
|
}
|
|
36
|
+
|
|
38
37
|
/**
|
|
39
38
|
* Find all providers matching the filter and return the requested fields
|
|
40
39
|
* @param {string} filter CREST filter string, eg "entityId+eq+'${entityId}'" or "true" for all providers
|
|
41
40
|
* @param {string[]} fields array of field names to include in the response
|
|
42
41
|
* @returns {Promise} a promise that resolves to an object containing an array of saml2 entities
|
|
43
42
|
*/
|
|
44
|
-
|
|
45
43
|
export async function findProviders(filter = 'true', fields = ['*']) {
|
|
46
|
-
const urlString = util.format(queryProvidersByEntityIdURLTemplate,
|
|
44
|
+
const urlString = util.format(queryProvidersByEntityIdURLTemplate, state.getHost(), getCurrentRealmPath(), encodeURIComponent(filter), fields.join(','));
|
|
47
45
|
const {
|
|
48
46
|
data
|
|
49
47
|
} = await generateAmApi(getApiConfig()).get(urlString, {
|
|
@@ -51,15 +49,15 @@ export async function findProviders(filter = 'true', fields = ['*']) {
|
|
|
51
49
|
});
|
|
52
50
|
return data;
|
|
53
51
|
}
|
|
52
|
+
|
|
54
53
|
/**
|
|
55
54
|
* Geta SAML2 entity provider by location and id
|
|
56
55
|
* @param {string} location Entity provider location (hosted or remote)
|
|
57
56
|
* @param {string} entityId64 Base64-encoded provider entity id
|
|
58
57
|
* @returns {Promise} a promise that resolves to a saml2 entity provider object
|
|
59
58
|
*/
|
|
60
|
-
|
|
61
59
|
export async function getProviderByLocationAndId(location, entityId64) {
|
|
62
|
-
const urlString = util.format(providerByLocationAndIdURLTemplate,
|
|
60
|
+
const urlString = util.format(providerByLocationAndIdURLTemplate, state.getHost(), getCurrentRealmPath(), location, entityId64);
|
|
63
61
|
const {
|
|
64
62
|
data
|
|
65
63
|
} = await generateAmApi(getApiConfig()).get(urlString, {
|
|
@@ -67,21 +65,21 @@ export async function getProviderByLocationAndId(location, entityId64) {
|
|
|
67
65
|
});
|
|
68
66
|
return data;
|
|
69
67
|
}
|
|
68
|
+
|
|
70
69
|
/**
|
|
71
70
|
* Get a SAML2 entity provider's metadata URL by entity id
|
|
72
71
|
* @param {string} entityId SAML2 entity id
|
|
73
72
|
* @returns {string} the URL to get the metadata from
|
|
74
73
|
*/
|
|
75
|
-
|
|
76
74
|
export function getProviderMetadataUrl(entityId) {
|
|
77
|
-
return util.format(metadataByEntityIdURLTemplate,
|
|
75
|
+
return util.format(metadataByEntityIdURLTemplate, state.getHost(), encodeURIComponent(entityId), state.getRealm());
|
|
78
76
|
}
|
|
77
|
+
|
|
79
78
|
/**
|
|
80
79
|
* Get a SAML2 entity provider's metadata by entity id
|
|
81
80
|
* @param {String} entityId SAML2 entity id
|
|
82
81
|
* @returns {Promise} a promise that resolves to an object containing a SAML2 metadata
|
|
83
82
|
*/
|
|
84
|
-
|
|
85
83
|
export async function getProviderMetadata(entityId) {
|
|
86
84
|
const {
|
|
87
85
|
data
|
|
@@ -90,6 +88,7 @@ export async function getProviderMetadata(entityId) {
|
|
|
90
88
|
});
|
|
91
89
|
return data;
|
|
92
90
|
}
|
|
91
|
+
|
|
93
92
|
/**
|
|
94
93
|
* Create a SAML2 entity provider
|
|
95
94
|
* @param {String} location 'hosted' or 'remote'
|
|
@@ -97,22 +96,18 @@ export async function getProviderMetadata(entityId) {
|
|
|
97
96
|
* @param {String} metaData Base64-encoded metadata XML. Only required for remote providers
|
|
98
97
|
* @returns {Promise} a promise that resolves to a saml2 entity provider object
|
|
99
98
|
*/
|
|
100
|
-
|
|
101
99
|
export async function createProvider(location, providerData, metaData) {
|
|
102
100
|
let postData = _.cloneDeep(providerData);
|
|
103
|
-
|
|
104
|
-
let urlString = util.format(createHostedProviderURLTemplate, storage.session.getTenant(), getCurrentRealmPath());
|
|
105
|
-
|
|
101
|
+
let urlString = util.format(createHostedProviderURLTemplate, state.getHost(), getCurrentRealmPath());
|
|
106
102
|
if (location === 'remote') {
|
|
107
103
|
/**
|
|
108
104
|
* Remote entity providers must be created using XML metadata
|
|
109
105
|
*/
|
|
110
|
-
urlString = util.format(createRemoteProviderURLTemplate,
|
|
106
|
+
urlString = util.format(createRemoteProviderURLTemplate, state.getHost(), getCurrentRealmPath());
|
|
111
107
|
postData = {
|
|
112
108
|
standardMetadata: metaData
|
|
113
109
|
};
|
|
114
110
|
}
|
|
115
|
-
|
|
116
111
|
const {
|
|
117
112
|
data
|
|
118
113
|
} = await generateAmApi(getApiConfig()).post(urlString, postData, {
|
|
@@ -120,31 +115,32 @@ export async function createProvider(location, providerData, metaData) {
|
|
|
120
115
|
});
|
|
121
116
|
return data;
|
|
122
117
|
}
|
|
118
|
+
|
|
123
119
|
/**
|
|
124
120
|
* Update SAML2 entity provider
|
|
125
121
|
* @param {String} location Entity provider location (hosted or remote)
|
|
126
122
|
* @param {Object} providerData Object representing a SAML entity provider
|
|
127
123
|
* @returns {Promise} a promise that resolves to a saml2 entity provider object
|
|
128
124
|
*/
|
|
129
|
-
|
|
130
125
|
export async function updateProvider(location, providerData) {
|
|
131
|
-
const urlString = util.format(providerByLocationAndIdURLTemplate,
|
|
126
|
+
const urlString = util.format(providerByLocationAndIdURLTemplate, state.getHost(), getCurrentRealmPath(), location, providerData._id);
|
|
132
127
|
const {
|
|
133
128
|
data
|
|
134
129
|
} = await generateAmApi(getApiConfig()).put(urlString, providerData, {
|
|
135
130
|
withCredentials: true
|
|
136
131
|
});
|
|
137
132
|
return data;
|
|
138
|
-
}
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
// Contributions using legacy APIs. Need to investigate if those will be deprecated in the future
|
|
139
136
|
|
|
140
137
|
/**
|
|
141
138
|
* Deletes a SAML2 entity provider by entity id
|
|
142
139
|
* @param {string} entityId Provider entity id
|
|
143
140
|
* @returns {Promise} a promise that resolves to a provider object
|
|
144
141
|
*/
|
|
145
|
-
|
|
146
142
|
export async function deleteProvider(entityId) {
|
|
147
|
-
const urlString = util.format(samlApplicationByEntityIdURLTemplate,
|
|
143
|
+
const urlString = util.format(samlApplicationByEntityIdURLTemplate, state.getHost(), getCurrentRealmPath(), entityId);
|
|
148
144
|
const {
|
|
149
145
|
data
|
|
150
146
|
} = await generateAmApi(getApiConfig()).delete(urlString, {
|
|
@@ -152,13 +148,13 @@ export async function deleteProvider(entityId) {
|
|
|
152
148
|
});
|
|
153
149
|
return data;
|
|
154
150
|
}
|
|
151
|
+
|
|
155
152
|
/**
|
|
156
153
|
* Retrieves all entity providers using the legacy federation enpoints.
|
|
157
154
|
* @returns {Promise} a promise that resolves to an object containing an array of providers
|
|
158
155
|
*/
|
|
159
|
-
|
|
160
156
|
export async function getRawProviders() {
|
|
161
|
-
const urlString = util.format(samlApplicationQueryURLTemplateRaw,
|
|
157
|
+
const urlString = util.format(samlApplicationQueryURLTemplateRaw, state.getHost(), getCurrentRealmPath());
|
|
162
158
|
const {
|
|
163
159
|
data
|
|
164
160
|
} = await generateAmApi(getApiConfig()).get(urlString, {
|
|
@@ -166,14 +162,14 @@ export async function getRawProviders() {
|
|
|
166
162
|
});
|
|
167
163
|
return data;
|
|
168
164
|
}
|
|
165
|
+
|
|
169
166
|
/**
|
|
170
167
|
* Gets the data for an entity provider including the raw XML.
|
|
171
168
|
* @param {string} entityId The entity provider id
|
|
172
169
|
* @returns Promise that when resolved includes the configuration and raw xml for a SAML entity provider
|
|
173
170
|
*/
|
|
174
|
-
|
|
175
171
|
export async function getRawProvider(entityId) {
|
|
176
|
-
const urlString = util.format(samlApplicationByEntityIdURLTemplate,
|
|
172
|
+
const urlString = util.format(samlApplicationByEntityIdURLTemplate, state.getHost(), getCurrentRealmPath(), encodeURIComponent(entityId));
|
|
177
173
|
const {
|
|
178
174
|
data
|
|
179
175
|
} = await generateAmApi(getApiConfig()).get(urlString, {
|
|
@@ -181,15 +177,15 @@ export async function getRawProvider(entityId) {
|
|
|
181
177
|
});
|
|
182
178
|
return data;
|
|
183
179
|
}
|
|
180
|
+
|
|
184
181
|
/**
|
|
185
182
|
* Stores a new SAML2 entity provider
|
|
186
183
|
* @param {string} entityId The entity provider id
|
|
187
184
|
* @param {string} entityData The actual data containing the entity provider configuration
|
|
188
185
|
* @returns {Promise} Promise that resolves to a provider object
|
|
189
186
|
*/
|
|
190
|
-
|
|
191
187
|
export async function putRawProvider(entityId, entityData) {
|
|
192
|
-
const urlString = util.format(samlApplicationByEntityIdURLTemplate,
|
|
188
|
+
const urlString = util.format(samlApplicationByEntityIdURLTemplate, state.getHost(), getCurrentRealmPath(), encodeURIComponent(entityId));
|
|
193
189
|
const {
|
|
194
190
|
data
|
|
195
191
|
} = await generateAmApi(getApiConfig()).put(urlString, entityData, {
|
package/esm/api/ScriptApi.mjs
CHANGED
|
@@ -1,26 +1,24 @@
|
|
|
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 scriptURLTemplate = '%s/json%s/scripts/%s';
|
|
6
6
|
const scriptListURLTemplate = '%s/json%s/scripts?_queryFilter=true';
|
|
7
7
|
const scriptQueryURLTemplate = '%s/json%s/scripts?_queryFilter=name+eq+%%22%s%%22';
|
|
8
8
|
const apiVersion = 'protocol=2.0,resource=1.0';
|
|
9
|
-
|
|
10
9
|
const getApiConfig = () => {
|
|
11
10
|
return {
|
|
12
11
|
path: `/json${getCurrentRealmPath()}/scripts`,
|
|
13
12
|
apiVersion
|
|
14
13
|
};
|
|
15
14
|
};
|
|
15
|
+
|
|
16
16
|
/**
|
|
17
17
|
* Get all scripts
|
|
18
18
|
* @returns {Promise} a promise that resolves to an object containing an array of script objects
|
|
19
19
|
*/
|
|
20
|
-
|
|
21
|
-
|
|
22
20
|
export async function getScripts() {
|
|
23
|
-
const urlString = util.format(scriptListURLTemplate,
|
|
21
|
+
const urlString = util.format(scriptListURLTemplate, state.getHost(), getCurrentRealmPath());
|
|
24
22
|
const {
|
|
25
23
|
data
|
|
26
24
|
} = await generateAmApi(getApiConfig()).get(urlString, {
|
|
@@ -28,14 +26,14 @@ export async function getScripts() {
|
|
|
28
26
|
});
|
|
29
27
|
return data;
|
|
30
28
|
}
|
|
29
|
+
|
|
31
30
|
/**
|
|
32
31
|
* Get script by name
|
|
33
32
|
* @param {String} scriptName script name
|
|
34
33
|
* @returns {Promise} a promise that resolves to an object containing a script object
|
|
35
34
|
*/
|
|
36
|
-
|
|
37
35
|
export async function getScriptByName(scriptName) {
|
|
38
|
-
const urlString = util.format(scriptQueryURLTemplate,
|
|
36
|
+
const urlString = util.format(scriptQueryURLTemplate, state.getHost(), getCurrentRealmPath(), scriptName);
|
|
39
37
|
const {
|
|
40
38
|
data
|
|
41
39
|
} = await generateAmApi(getApiConfig()).get(urlString, {
|
|
@@ -43,14 +41,14 @@ export async function getScriptByName(scriptName) {
|
|
|
43
41
|
});
|
|
44
42
|
return data;
|
|
45
43
|
}
|
|
44
|
+
|
|
46
45
|
/**
|
|
47
46
|
* Get script by id
|
|
48
47
|
* @param {String} scriptId script uuid/name
|
|
49
48
|
* @returns {Promise} a promise that resolves to an object containing a script object
|
|
50
49
|
*/
|
|
51
|
-
|
|
52
50
|
export async function getScript(scriptId) {
|
|
53
|
-
const urlString = util.format(scriptURLTemplate,
|
|
51
|
+
const urlString = util.format(scriptURLTemplate, state.getHost(), getCurrentRealmPath(), scriptId);
|
|
54
52
|
const {
|
|
55
53
|
data
|
|
56
54
|
} = await generateAmApi(getApiConfig()).get(urlString, {
|
|
@@ -58,15 +56,15 @@ export async function getScript(scriptId) {
|
|
|
58
56
|
});
|
|
59
57
|
return data;
|
|
60
58
|
}
|
|
59
|
+
|
|
61
60
|
/**
|
|
62
61
|
* Put script
|
|
63
62
|
* @param {string} scriptId script uuid
|
|
64
63
|
* @param {Object} scriptData script object
|
|
65
64
|
* @returns {Promise} a promise that resolves to an object containing a script object
|
|
66
65
|
*/
|
|
67
|
-
|
|
68
66
|
export async function putScript(scriptId, scriptData) {
|
|
69
|
-
const urlString = util.format(scriptURLTemplate,
|
|
67
|
+
const urlString = util.format(scriptURLTemplate, state.getHost(), getCurrentRealmPath(), scriptId);
|
|
70
68
|
const {
|
|
71
69
|
data
|
|
72
70
|
} = await generateAmApi(getApiConfig()).put(urlString, scriptData, {
|
package/esm/api/SecretsApi.mjs
CHANGED
|
@@ -2,7 +2,7 @@ import util from 'util';
|
|
|
2
2
|
import { encode } from './utils/Base64';
|
|
3
3
|
import { getTenantURL } from './utils/ApiUtils';
|
|
4
4
|
import { generateESVApi } from './BaseApi';
|
|
5
|
-
import
|
|
5
|
+
import * as state from '../shared/State';
|
|
6
6
|
const secretsListURLTemplate = '%s/environment/secrets';
|
|
7
7
|
const secretListVersionsURLTemplate = '%s/environment/secrets/%s/versions';
|
|
8
8
|
const secretCreateNewVersionURLTemplate = `${secretListVersionsURLTemplate}?_action=create`;
|
|
@@ -11,19 +11,17 @@ const secretVersionStatusURLTemplate = `${secretGetVersionURLTemplate}?_action=c
|
|
|
11
11
|
const secretURLTemplate = '%s/environment/secrets/%s';
|
|
12
12
|
const secretSetDescriptionURLTemplate = `${secretURLTemplate}?_action=setDescription`;
|
|
13
13
|
const apiVersion = 'protocol=1.0,resource=1.0';
|
|
14
|
-
|
|
15
14
|
const getApiConfig = () => ({
|
|
16
15
|
path: `/environment/secrets`,
|
|
17
16
|
apiVersion
|
|
18
17
|
});
|
|
18
|
+
|
|
19
19
|
/**
|
|
20
20
|
* Get all secrets
|
|
21
21
|
* @returns {Promise<unknown[]>} a promise that resolves to an array of secrets
|
|
22
22
|
*/
|
|
23
|
-
|
|
24
|
-
|
|
25
23
|
export async function getSecrets() {
|
|
26
|
-
const urlString = util.format(secretsListURLTemplate, getTenantURL(
|
|
24
|
+
const urlString = util.format(secretsListURLTemplate, getTenantURL(state.getHost()));
|
|
27
25
|
const {
|
|
28
26
|
data
|
|
29
27
|
} = await generateESVApi(getApiConfig()).get(urlString, {
|
|
@@ -31,14 +29,14 @@ export async function getSecrets() {
|
|
|
31
29
|
});
|
|
32
30
|
return data;
|
|
33
31
|
}
|
|
32
|
+
|
|
34
33
|
/**
|
|
35
34
|
* Get secret
|
|
36
35
|
* @param secretId secret id/name
|
|
37
36
|
* @returns {Promise<unknown>} a promise that resolves to a secret
|
|
38
37
|
*/
|
|
39
|
-
|
|
40
38
|
export async function getSecret(secretId) {
|
|
41
|
-
const urlString = util.format(secretURLTemplate, getTenantURL(
|
|
39
|
+
const urlString = util.format(secretURLTemplate, getTenantURL(state.getHost()), secretId);
|
|
42
40
|
const {
|
|
43
41
|
data
|
|
44
42
|
} = await generateESVApi(getApiConfig()).get(urlString, {
|
|
@@ -46,6 +44,7 @@ export async function getSecret(secretId) {
|
|
|
46
44
|
});
|
|
47
45
|
return data;
|
|
48
46
|
}
|
|
47
|
+
|
|
49
48
|
/**
|
|
50
49
|
* Create secret
|
|
51
50
|
* @param {string} secretId secret id/name
|
|
@@ -55,7 +54,6 @@ export async function getSecret(secretId) {
|
|
|
55
54
|
* @param {boolean} useInPlaceholders flag indicating if the secret can be used in placeholders
|
|
56
55
|
* @returns {Promise<unknown>} a promise that resolves to a secret
|
|
57
56
|
*/
|
|
58
|
-
|
|
59
57
|
export async function putSecret(secretId, value, description, encoding = 'generic', useInPlaceholders = true) {
|
|
60
58
|
if (encoding !== 'generic') throw new Error(`Unsupported encoding: ${encoding}`);
|
|
61
59
|
const secretData = {
|
|
@@ -64,7 +62,7 @@ export async function putSecret(secretId, value, description, encoding = 'generi
|
|
|
64
62
|
encoding,
|
|
65
63
|
useInPlaceholders
|
|
66
64
|
};
|
|
67
|
-
const urlString = util.format(secretURLTemplate, getTenantURL(
|
|
65
|
+
const urlString = util.format(secretURLTemplate, getTenantURL(state.getHost()), secretId);
|
|
68
66
|
const {
|
|
69
67
|
data
|
|
70
68
|
} = await generateESVApi(getApiConfig()).put(urlString, secretData, {
|
|
@@ -72,15 +70,15 @@ export async function putSecret(secretId, value, description, encoding = 'generi
|
|
|
72
70
|
});
|
|
73
71
|
return data;
|
|
74
72
|
}
|
|
73
|
+
|
|
75
74
|
/**
|
|
76
75
|
* Set secret description
|
|
77
76
|
* @param {string} secretId secret id/name
|
|
78
77
|
* @param {string} description secret description
|
|
79
78
|
* @returns {Promise<unknown>} a promise that resolves to a status object
|
|
80
79
|
*/
|
|
81
|
-
|
|
82
80
|
export async function setSecretDescription(secretId, description) {
|
|
83
|
-
const urlString = util.format(secretSetDescriptionURLTemplate, getTenantURL(
|
|
81
|
+
const urlString = util.format(secretSetDescriptionURLTemplate, getTenantURL(state.getHost()), secretId);
|
|
84
82
|
const {
|
|
85
83
|
data
|
|
86
84
|
} = await generateESVApi(getApiConfig()).post(urlString, {
|
|
@@ -90,14 +88,14 @@ export async function setSecretDescription(secretId, description) {
|
|
|
90
88
|
});
|
|
91
89
|
return data;
|
|
92
90
|
}
|
|
91
|
+
|
|
93
92
|
/**
|
|
94
93
|
* Delete secret
|
|
95
94
|
* @param {string} secretId secret id/name
|
|
96
95
|
* @returns {Promise<unknown>} a promise that resolves to a secret object
|
|
97
96
|
*/
|
|
98
|
-
|
|
99
97
|
export async function deleteSecret(secretId) {
|
|
100
|
-
const urlString = util.format(secretURLTemplate, getTenantURL(
|
|
98
|
+
const urlString = util.format(secretURLTemplate, getTenantURL(state.getHost()), secretId);
|
|
101
99
|
const {
|
|
102
100
|
data
|
|
103
101
|
} = await generateESVApi(getApiConfig()).delete(urlString, {
|
|
@@ -105,14 +103,14 @@ export async function deleteSecret(secretId) {
|
|
|
105
103
|
});
|
|
106
104
|
return data;
|
|
107
105
|
}
|
|
106
|
+
|
|
108
107
|
/**
|
|
109
108
|
* Get secret versions
|
|
110
109
|
* @param {string} secretId secret id/name
|
|
111
110
|
* @returns {Promise<unknown>} a promise that resolves to an array of secret versions
|
|
112
111
|
*/
|
|
113
|
-
|
|
114
112
|
export async function getSecretVersions(secretId) {
|
|
115
|
-
const urlString = util.format(secretListVersionsURLTemplate, getTenantURL(
|
|
113
|
+
const urlString = util.format(secretListVersionsURLTemplate, getTenantURL(state.getHost()), secretId);
|
|
116
114
|
const {
|
|
117
115
|
data
|
|
118
116
|
} = await generateESVApi(getApiConfig()).get(urlString, {
|
|
@@ -120,15 +118,15 @@ export async function getSecretVersions(secretId) {
|
|
|
120
118
|
});
|
|
121
119
|
return data;
|
|
122
120
|
}
|
|
121
|
+
|
|
123
122
|
/**
|
|
124
123
|
* Create new secret version
|
|
125
124
|
* @param {string} secretId secret id/name
|
|
126
125
|
* @param {string} value secret value
|
|
127
126
|
* @returns {Promise<unknown>} a promise that resolves to a version object
|
|
128
127
|
*/
|
|
129
|
-
|
|
130
128
|
export async function createNewVersionOfSecret(secretId, value) {
|
|
131
|
-
const urlString = util.format(secretCreateNewVersionURLTemplate, getTenantURL(
|
|
129
|
+
const urlString = util.format(secretCreateNewVersionURLTemplate, getTenantURL(state.getHost()), secretId);
|
|
132
130
|
const {
|
|
133
131
|
data
|
|
134
132
|
} = await generateESVApi(getApiConfig()).post(urlString, {
|
|
@@ -138,15 +136,15 @@ export async function createNewVersionOfSecret(secretId, value) {
|
|
|
138
136
|
});
|
|
139
137
|
return data;
|
|
140
138
|
}
|
|
139
|
+
|
|
141
140
|
/**
|
|
142
141
|
* Get version of secret
|
|
143
142
|
* @param {string} secretId secret id/name
|
|
144
143
|
* @param {string} version secret version
|
|
145
144
|
* @returns {Promise<unknown>} a promise that resolves to a version object
|
|
146
145
|
*/
|
|
147
|
-
|
|
148
146
|
export async function getVersionOfSecret(secretId, version) {
|
|
149
|
-
const urlString = util.format(secretGetVersionURLTemplate, getTenantURL(
|
|
147
|
+
const urlString = util.format(secretGetVersionURLTemplate, getTenantURL(state.getHost()), secretId, version);
|
|
150
148
|
const {
|
|
151
149
|
data
|
|
152
150
|
} = await generateESVApi(getApiConfig()).get(urlString, {
|
|
@@ -155,6 +153,7 @@ export async function getVersionOfSecret(secretId, version) {
|
|
|
155
153
|
return data;
|
|
156
154
|
}
|
|
157
155
|
export let VersionOfSecretStatus;
|
|
156
|
+
|
|
158
157
|
/**
|
|
159
158
|
* Update the status of a version of a secret
|
|
160
159
|
* @param {string} secretId secret id/name
|
|
@@ -162,14 +161,12 @@ export let VersionOfSecretStatus;
|
|
|
162
161
|
* @param {VersionOfSecretStatus} status status
|
|
163
162
|
* @returns {Promise<unknown>} a promise that resolves to a status object
|
|
164
163
|
*/
|
|
165
|
-
|
|
166
164
|
(function (VersionOfSecretStatus) {
|
|
167
165
|
VersionOfSecretStatus["DISABLED"] = "DISABLED";
|
|
168
166
|
VersionOfSecretStatus["ENABLED"] = "ENABLED";
|
|
169
167
|
})(VersionOfSecretStatus || (VersionOfSecretStatus = {}));
|
|
170
|
-
|
|
171
168
|
export async function setStatusOfVersionOfSecret(secretId, version, status) {
|
|
172
|
-
const urlString = util.format(secretVersionStatusURLTemplate, getTenantURL(
|
|
169
|
+
const urlString = util.format(secretVersionStatusURLTemplate, getTenantURL(state.getHost()), secretId, version);
|
|
173
170
|
const {
|
|
174
171
|
data
|
|
175
172
|
} = await generateESVApi(getApiConfig()).post(urlString, {
|
|
@@ -179,15 +176,15 @@ export async function setStatusOfVersionOfSecret(secretId, version, status) {
|
|
|
179
176
|
});
|
|
180
177
|
return data;
|
|
181
178
|
}
|
|
179
|
+
|
|
182
180
|
/**
|
|
183
181
|
* Delete version of secret
|
|
184
182
|
* @param {string} secretId secret id/name
|
|
185
183
|
* @param {string} version secret version
|
|
186
184
|
* @returns {Promise<unknown>} a promise that resolves to a version object
|
|
187
185
|
*/
|
|
188
|
-
|
|
189
186
|
export async function deleteVersionOfSecret(secretId, version) {
|
|
190
|
-
const urlString = util.format(secretGetVersionURLTemplate, getTenantURL(
|
|
187
|
+
const urlString = util.format(secretGetVersionURLTemplate, getTenantURL(state.getHost()), secretId, version);
|
|
191
188
|
const {
|
|
192
189
|
data
|
|
193
190
|
} = await generateESVApi(getApiConfig()).delete(urlString, {
|
|
@@ -4,14 +4,12 @@ import { SecretsRaw, 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('https://openam-frodo-dev.forgeblocks.com/am');
|
|
10
|
+
state.setRealm('alpha');
|
|
11
|
+
state.setCookieName('cookieName');
|
|
12
|
+
state.setCookieValue('cookieValue');
|
|
15
13
|
describe('SecretsApi - getSecrets()', () => {
|
|
16
14
|
test('getSecrets() 1: Get all secrets - success', async () => {
|
|
17
15
|
const mockResponse = JSON.parse(fs.readFileSync(path.resolve(__dirname, '../test/mocks/SecretsApi/getSecrets/secrets.json'), 'utf8'));
|
|
@@ -23,16 +21,13 @@ describe('SecretsApi - getSecrets()', () => {
|
|
|
23
21
|
test('getSecrets() 2: Get all secrets - error', async () => {
|
|
24
22
|
const mockResponse = JSON.parse(fs.readFileSync(path.resolve(__dirname, '../test/mocks/SecretsApi/getSecrets/error.json'), 'utf8'));
|
|
25
23
|
mock.onGet('https://openam-frodo-dev.forgeblocks.com/environment/secrets').reply(500, mockResponse);
|
|
26
|
-
expect.assertions(
|
|
27
|
-
|
|
24
|
+
expect.assertions(2);
|
|
28
25
|
try {
|
|
29
26
|
await SecretsRaw.getSecrets();
|
|
30
27
|
} catch (error) {
|
|
31
28
|
// console.dir(error);
|
|
32
29
|
expect(error).toBeTruthy();
|
|
33
|
-
expect(error
|
|
34
|
-
expect(error.response.data.code).toBe(500);
|
|
35
|
-
expect(error.response.data.message).toBe('Server Error');
|
|
30
|
+
expect(error).toMatchSnapshot();
|
|
36
31
|
}
|
|
37
32
|
});
|
|
38
33
|
});
|
|
@@ -47,16 +42,13 @@ describe('SecretsApi - getSecret()', () => {
|
|
|
47
42
|
test('getSecret() 2: Get non-existing secret: esv-does-not-exist', async () => {
|
|
48
43
|
const mockResponse = JSON.parse(fs.readFileSync(path.resolve(__dirname, '../test/mocks/SecretsApi/getSecret/esv-does-not-exist.json'), 'utf8'));
|
|
49
44
|
mock.onGet('https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-does-not-exist').reply(404, mockResponse);
|
|
50
|
-
expect.assertions(
|
|
51
|
-
|
|
45
|
+
expect.assertions(2);
|
|
52
46
|
try {
|
|
53
47
|
await SecretsRaw.getSecret('esv-does-not-exist');
|
|
54
48
|
} catch (error) {
|
|
55
49
|
// console.dir(error);
|
|
56
50
|
expect(error).toBeTruthy();
|
|
57
|
-
expect(error
|
|
58
|
-
expect(error.response.data.code).toBe(404);
|
|
59
|
-
expect(error.response.data.message).toBe('The secret does not exist or does not have a version');
|
|
51
|
+
expect(error).toMatchSnapshot();
|
|
60
52
|
}
|
|
61
53
|
});
|
|
62
54
|
});
|
|
@@ -71,16 +63,11 @@ describe('SecretsApi - putSecret()', () => {
|
|
|
71
63
|
test('putSecret() 2: Create secret: esv-volkerstestsecret1 - error', async () => {
|
|
72
64
|
const mockResponse = JSON.parse(fs.readFileSync(path.resolve(__dirname, '../test/mocks/SecretsApi/putSecret/error.json'), 'utf8'));
|
|
73
65
|
mock.onPut('https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-volkerstestsecret1').reply(500, mockResponse);
|
|
74
|
-
expect.assertions(4);
|
|
75
|
-
|
|
76
66
|
try {
|
|
77
67
|
await SecretsRaw.putSecret('esv-volkerstestsecret1', "Volker's Test Secret Value", "Volker's Test Secret Description", 'generic', true);
|
|
78
68
|
} catch (error) {
|
|
79
69
|
// console.dir(error);
|
|
80
|
-
expect(error).
|
|
81
|
-
expect(error.response.status).toBe(500);
|
|
82
|
-
expect(error.response.data.code).toBe(500);
|
|
83
|
-
expect(error.response.data.message).toBe('Server Error');
|
|
70
|
+
expect(error).toMatchSnapshot();
|
|
84
71
|
}
|
|
85
72
|
});
|
|
86
73
|
});
|
|
@@ -95,7 +82,6 @@ describe('SecretsApi - setSecretDescription()', () => {
|
|
|
95
82
|
const mockResponse = JSON.parse(fs.readFileSync(path.resolve(__dirname, '../test/mocks/SecretsApi/setSecretDescription/error.json'), 'utf8'));
|
|
96
83
|
mock.onPost('https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-volkerstestsecret1?_action=setDescription').reply(500, mockResponse);
|
|
97
84
|
expect.assertions(4);
|
|
98
|
-
|
|
99
85
|
try {
|
|
100
86
|
await SecretsRaw.setSecretDescription('esv-volkerstestsecret1', "Volker's Updated Test Secret Description");
|
|
101
87
|
} catch (error) {
|
|
@@ -119,7 +105,6 @@ describe('SecretsApi - deleteSecret()', () => {
|
|
|
119
105
|
const mockResponse = JSON.parse(fs.readFileSync(path.resolve(__dirname, '../test/mocks/SecretsApi/deleteSecret/error.json'), 'utf8'));
|
|
120
106
|
mock.onDelete('https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-volkerstestsecret1').reply(500, mockResponse);
|
|
121
107
|
expect.assertions(4);
|
|
122
|
-
|
|
123
108
|
try {
|
|
124
109
|
await SecretsRaw.deleteSecret('esv-volkerstestsecret1');
|
|
125
110
|
} catch (error) {
|
|
@@ -143,7 +128,6 @@ describe('SecretsApi - getSecretVersions()', () => {
|
|
|
143
128
|
const mockResponse = JSON.parse(fs.readFileSync(path.resolve(__dirname, '../test/mocks/SecretsApi/getSecretVersions/esv-does-not-exist.json'), 'utf8'));
|
|
144
129
|
mock.onGet('https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-does-not-exist/versions').reply(404, mockResponse);
|
|
145
130
|
expect.assertions(4);
|
|
146
|
-
|
|
147
131
|
try {
|
|
148
132
|
await SecretsRaw.getSecretVersions('esv-does-not-exist');
|
|
149
133
|
} catch (error) {
|
|
@@ -167,7 +151,6 @@ describe('SecretsApi - createNewVersionOfSecret()', () => {
|
|
|
167
151
|
const mockResponse = JSON.parse(fs.readFileSync(path.resolve(__dirname, '../test/mocks/SecretsApi/createNewVersionOfSecret/error.json'), 'utf8'));
|
|
168
152
|
mock.onPost('https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-volkerstestsecret1/versions?_action=create').reply(500, mockResponse);
|
|
169
153
|
expect.assertions(4);
|
|
170
|
-
|
|
171
154
|
try {
|
|
172
155
|
await SecretsRaw.createNewVersionOfSecret('esv-volkerstestsecret1', "Volker's Test Secret Value");
|
|
173
156
|
} catch (error) {
|
|
@@ -182,7 +165,6 @@ describe('SecretsApi - createNewVersionOfSecret()', () => {
|
|
|
182
165
|
const mockResponse = fs.readFileSync(path.resolve(__dirname, '../test/mocks/SecretsApi/createNewVersionOfSecret/esv-does-not-exist.txt'), 'utf8');
|
|
183
166
|
mock.onPost('https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-volkerstestsecret1/versions?_action=create').reply(500, mockResponse);
|
|
184
167
|
expect.assertions(3);
|
|
185
|
-
|
|
186
168
|
try {
|
|
187
169
|
await SecretsRaw.createNewVersionOfSecret('esv-volkerstestsecret1', "Volker's Test Secret Value");
|
|
188
170
|
} catch (error) {
|
|
@@ -205,7 +187,6 @@ describe('SecretsApi - getVersionOfSecret()', () => {
|
|
|
205
187
|
const mockResponse = JSON.parse(fs.readFileSync(path.resolve(__dirname, '../test/mocks/SecretsApi/getVersionOfSecret/esv-does-not-exist_v2.json'), 'utf8'));
|
|
206
188
|
mock.onGet('https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-does-not-exist/versions/2').reply(500, mockResponse);
|
|
207
189
|
expect.assertions(4);
|
|
208
|
-
|
|
209
190
|
try {
|
|
210
191
|
await SecretsRaw.getVersionOfSecret('esv-does-not-exist', '2');
|
|
211
192
|
} catch (error) {
|
|
@@ -229,7 +210,6 @@ describe('SecretsApi - setStatusOfVersionOfSecret()', () => {
|
|
|
229
210
|
const mockResponse = JSON.parse(fs.readFileSync(path.resolve(__dirname, '../test/mocks/SecretsApi/setStatusOfVersionOfSecret/error.json'), 'utf8'));
|
|
230
211
|
mock.onPost('https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-volkerstestsecret1/versions/2?_action=changestatus').reply(500, mockResponse);
|
|
231
212
|
expect.assertions(4);
|
|
232
|
-
|
|
233
213
|
try {
|
|
234
214
|
await SecretsRaw.setStatusOfVersionOfSecret('esv-volkerstestsecret1', '2', SecretsRaw.VersionOfSecretStatus.DISABLED);
|
|
235
215
|
} catch (error) {
|
|
@@ -244,7 +224,6 @@ describe('SecretsApi - setStatusOfVersionOfSecret()', () => {
|
|
|
244
224
|
const mockResponse = JSON.parse(fs.readFileSync(path.resolve(__dirname, '../test/mocks/SecretsApi/setStatusOfVersionOfSecret/esv-does-not-exist_v2_DISABLED.json'), 'utf8'));
|
|
245
225
|
mock.onPost('https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-does-not-exist/versions/2?_action=changestatus').reply(404, mockResponse);
|
|
246
226
|
expect.assertions(4);
|
|
247
|
-
|
|
248
227
|
try {
|
|
249
228
|
await SecretsRaw.setStatusOfVersionOfSecret('esv-does-not-exist', '2', SecretsRaw.VersionOfSecretStatus.DISABLED);
|
|
250
229
|
} catch (error) {
|
|
@@ -268,7 +247,6 @@ describe('SecretsApi - deleteVersionOfSecret()', () => {
|
|
|
268
247
|
const mockResponse = JSON.parse(fs.readFileSync(path.resolve(__dirname, '../test/mocks/SecretsApi/deleteVersionOfSecret/error.json'), 'utf8'));
|
|
269
248
|
mock.onDelete('https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-volkerstestsecret1/versions/2').reply(500, mockResponse);
|
|
270
249
|
expect.assertions(4);
|
|
271
|
-
|
|
272
250
|
try {
|
|
273
251
|
await SecretsRaw.deleteVersionOfSecret('esv-volkerstestsecret1', '2');
|
|
274
252
|
} catch (error) {
|