@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/cjs/ops/Saml2Ops.js
CHANGED
|
@@ -20,38 +20,26 @@ exports.importSaml2Provider = importSaml2Provider;
|
|
|
20
20
|
exports.importSaml2Providers = importSaml2Providers;
|
|
21
21
|
exports.putRawProvider = putRawProvider;
|
|
22
22
|
exports.roleMap = void 0;
|
|
23
|
-
|
|
24
23
|
var _lodash = _interopRequireDefault(require("lodash"));
|
|
25
|
-
|
|
26
24
|
var _ApiTypes = require("../api/ApiTypes");
|
|
27
|
-
|
|
28
25
|
var _Saml2Api = require("../api/Saml2Api");
|
|
29
|
-
|
|
30
26
|
var _ScriptApi = require("../api/ScriptApi");
|
|
31
|
-
|
|
32
27
|
var _Base = require("../api/utils/Base64");
|
|
33
|
-
|
|
34
28
|
var _ScriptOps = require("./ScriptOps");
|
|
35
|
-
|
|
36
29
|
var _Console = require("./utils/Console");
|
|
37
|
-
|
|
38
30
|
var _ExportImportUtils = require("./utils/ExportImportUtils");
|
|
39
|
-
|
|
40
31
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
41
|
-
|
|
42
32
|
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); } }
|
|
43
|
-
|
|
44
33
|
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); }); }; }
|
|
45
|
-
|
|
46
34
|
var roleMap = {
|
|
47
35
|
identityProvider: 'IDP',
|
|
48
36
|
serviceProvider: 'SP',
|
|
49
37
|
attributeQueryProvider: 'AttrQuery',
|
|
50
38
|
xacmlPolicyEnforcementPoint: 'XACML PEP'
|
|
51
|
-
};
|
|
39
|
+
};
|
|
52
40
|
|
|
41
|
+
// use a function vs a template variable to avoid problems in loops
|
|
53
42
|
exports.roleMap = roleMap;
|
|
54
|
-
|
|
55
43
|
function createSaml2ExportTemplate() {
|
|
56
44
|
return {
|
|
57
45
|
meta: {},
|
|
@@ -63,12 +51,11 @@ function createSaml2ExportTemplate() {
|
|
|
63
51
|
}
|
|
64
52
|
};
|
|
65
53
|
}
|
|
54
|
+
|
|
66
55
|
/**
|
|
67
56
|
* Get SAML2 entity provider stubs
|
|
68
57
|
* @returns {Promise<Saml2ProviderStub[]>} a promise that resolves to an array of saml2 entity stubs
|
|
69
58
|
*/
|
|
70
|
-
|
|
71
|
-
|
|
72
59
|
function getSaml2ProviderStubs() {
|
|
73
60
|
return _getSaml2ProviderStubs.apply(this, arguments);
|
|
74
61
|
}
|
|
@@ -78,8 +65,6 @@ function getSaml2ProviderStubs() {
|
|
|
78
65
|
* @param {string} entityId64 Base64-encoded provider entity id
|
|
79
66
|
* @returns {Promise} a promise that resolves to a saml2 entity provider object
|
|
80
67
|
*/
|
|
81
|
-
|
|
82
|
-
|
|
83
68
|
function _getSaml2ProviderStubs() {
|
|
84
69
|
_getSaml2ProviderStubs = _asyncToGenerator(function* () {
|
|
85
70
|
var {
|
|
@@ -89,7 +74,6 @@ function _getSaml2ProviderStubs() {
|
|
|
89
74
|
});
|
|
90
75
|
return _getSaml2ProviderStubs.apply(this, arguments);
|
|
91
76
|
}
|
|
92
|
-
|
|
93
77
|
function getProviderByLocationAndId(_x, _x2) {
|
|
94
78
|
return _getProviderByLocationAndId2.apply(this, arguments);
|
|
95
79
|
}
|
|
@@ -98,25 +82,21 @@ function getProviderByLocationAndId(_x, _x2) {
|
|
|
98
82
|
* @param {string} entityId SAML2 entity id
|
|
99
83
|
* @returns {string} the URL to get the metadata from
|
|
100
84
|
*/
|
|
101
|
-
|
|
102
|
-
|
|
103
85
|
function _getProviderByLocationAndId2() {
|
|
104
86
|
_getProviderByLocationAndId2 = _asyncToGenerator(function* (location, entityId64) {
|
|
105
87
|
return (0, _Saml2Api.getProviderByLocationAndId)(location, entityId64);
|
|
106
88
|
});
|
|
107
89
|
return _getProviderByLocationAndId2.apply(this, arguments);
|
|
108
90
|
}
|
|
109
|
-
|
|
110
91
|
function getProviderMetadataUrl(entityId) {
|
|
111
92
|
return (0, _Saml2Api.getProviderMetadataUrl)(entityId);
|
|
112
93
|
}
|
|
94
|
+
|
|
113
95
|
/**
|
|
114
96
|
* Get a SAML2 entity provider's metadata by entity id
|
|
115
97
|
* @param {String} entityId SAML2 entity id
|
|
116
98
|
* @returns {Promise} a promise that resolves to an object containing a SAML2 metadata
|
|
117
99
|
*/
|
|
118
|
-
|
|
119
|
-
|
|
120
100
|
function getProviderMetadata(_x3) {
|
|
121
101
|
return _getProviderMetadata2.apply(this, arguments);
|
|
122
102
|
}
|
|
@@ -125,15 +105,12 @@ function getProviderMetadata(_x3) {
|
|
|
125
105
|
* @param {Object} providerData Object representing a SAML entity provider
|
|
126
106
|
* @param {Object} fileData File data object to add dependencies to
|
|
127
107
|
*/
|
|
128
|
-
|
|
129
|
-
|
|
130
108
|
function _getProviderMetadata2() {
|
|
131
109
|
_getProviderMetadata2 = _asyncToGenerator(function* (entityId) {
|
|
132
110
|
return (0, _Saml2Api.getProviderMetadata)(entityId);
|
|
133
111
|
});
|
|
134
112
|
return _getProviderMetadata2.apply(this, arguments);
|
|
135
113
|
}
|
|
136
|
-
|
|
137
114
|
function exportDependencies(_x4, _x5) {
|
|
138
115
|
return _exportDependencies.apply(this, arguments);
|
|
139
116
|
}
|
|
@@ -142,36 +119,28 @@ function exportDependencies(_x4, _x5) {
|
|
|
142
119
|
* @param {String} entityId Provider entity id
|
|
143
120
|
* @returns {Promise<Saml2ProviderStub>} Promise resolving to a Saml2ExportInterface object.
|
|
144
121
|
*/
|
|
145
|
-
|
|
146
|
-
|
|
147
122
|
function _exportDependencies() {
|
|
148
123
|
_exportDependencies = _asyncToGenerator(function* (providerData, fileData) {
|
|
149
124
|
var attrMapperScriptId = _lodash.default.get(providerData, ['identityProvider', 'assertionProcessing', 'attributeMapper', 'attributeMapperScript']);
|
|
150
|
-
|
|
151
125
|
if (attrMapperScriptId && attrMapperScriptId !== '[Empty]') {
|
|
152
126
|
var scriptData = yield (0, _ScriptApi.getScript)(attrMapperScriptId);
|
|
153
|
-
scriptData.script = (0, _ExportImportUtils.convertBase64TextToArray)(scriptData.script);
|
|
154
|
-
|
|
127
|
+
scriptData.script = (0, _ExportImportUtils.convertBase64TextToArray)(scriptData.script);
|
|
128
|
+
// eslint-disable-next-line no-param-reassign
|
|
155
129
|
fileData.script[attrMapperScriptId] = scriptData;
|
|
156
130
|
}
|
|
157
|
-
|
|
158
131
|
var idpAdapterScriptId = _lodash.default.get(providerData, ['identityProvider', 'advanced', 'idpAdapter', 'idpAdapterScript']);
|
|
159
|
-
|
|
160
132
|
if (idpAdapterScriptId && idpAdapterScriptId !== '[Empty]') {
|
|
161
133
|
var _scriptData = yield (0, _ScriptApi.getScript)(idpAdapterScriptId);
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
134
|
+
_scriptData.script = (0, _ExportImportUtils.convertBase64TextToArray)(_scriptData.script);
|
|
135
|
+
// eslint-disable-next-line no-param-reassign
|
|
165
136
|
fileData.script[idpAdapterScriptId] = _scriptData;
|
|
166
137
|
}
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
138
|
+
var metaDataResponse = yield getProviderMetadata(providerData.entityId);
|
|
139
|
+
// eslint-disable-next-line no-param-reassign
|
|
170
140
|
fileData.saml.metadata[providerData._id] = (0, _ExportImportUtils.convertBase64UrlTextToArray)((0, _Base.encodeBase64Url)(metaDataResponse));
|
|
171
141
|
});
|
|
172
142
|
return _exportDependencies.apply(this, arguments);
|
|
173
143
|
}
|
|
174
|
-
|
|
175
144
|
function getSaml2ProviderStub(_x6) {
|
|
176
145
|
return _getSaml2ProviderStub.apply(this, arguments);
|
|
177
146
|
}
|
|
@@ -180,30 +149,24 @@ function getSaml2ProviderStub(_x6) {
|
|
|
180
149
|
* @param {String} entityId Provider entity id
|
|
181
150
|
* @returns {Promise<Saml2ProviderSkeleton>} Promise resolving to a Saml2ExportInterface object.
|
|
182
151
|
*/
|
|
183
|
-
|
|
184
|
-
|
|
185
152
|
function _getSaml2ProviderStub() {
|
|
186
153
|
_getSaml2ProviderStub = _asyncToGenerator(function* (entityId) {
|
|
187
154
|
(0, _Console.debugMessage)("Saml2Ops.getSaml2ProviderStub: start [entityId=".concat(entityId, "]"));
|
|
188
155
|
var found = yield (0, _Saml2Api.findProviders)("entityId eq '".concat(entityId, "'"));
|
|
189
|
-
|
|
190
156
|
switch (found.resultCount) {
|
|
191
157
|
case 0:
|
|
192
158
|
throw new Error("No provider with entity id '".concat(entityId, "' found"));
|
|
193
|
-
|
|
194
159
|
case 1:
|
|
195
160
|
{
|
|
196
161
|
(0, _Console.debugMessage)("Saml2Ops.getSaml2ProviderStub: end [entityId=".concat(entityId, "]"));
|
|
197
162
|
return found.result[0];
|
|
198
163
|
}
|
|
199
|
-
|
|
200
164
|
default:
|
|
201
165
|
throw new Error("Multiple providers with entity id '".concat(entityId, "' found"));
|
|
202
166
|
}
|
|
203
167
|
});
|
|
204
168
|
return _getSaml2ProviderStub.apply(this, arguments);
|
|
205
169
|
}
|
|
206
|
-
|
|
207
170
|
function getSaml2Provider(_x7) {
|
|
208
171
|
return _getSaml2Provider.apply(this, arguments);
|
|
209
172
|
}
|
|
@@ -212,8 +175,6 @@ function getSaml2Provider(_x7) {
|
|
|
212
175
|
* @param {String} entityId Provider entity id
|
|
213
176
|
* @returns {Promise<Saml2ExportInterface>} Promise resolving to a Saml2ExportInterface object.
|
|
214
177
|
*/
|
|
215
|
-
|
|
216
|
-
|
|
217
178
|
function _getSaml2Provider() {
|
|
218
179
|
_getSaml2Provider = _asyncToGenerator(function* (entityId) {
|
|
219
180
|
(0, _Console.debugMessage)("Saml2Ops.getSaml2Provider: start [entityId=".concat(entityId, "]"));
|
|
@@ -228,7 +189,6 @@ function _getSaml2Provider() {
|
|
|
228
189
|
});
|
|
229
190
|
return _getSaml2Provider.apply(this, arguments);
|
|
230
191
|
}
|
|
231
|
-
|
|
232
192
|
function exportSaml2Provider(_x8) {
|
|
233
193
|
return _exportSaml2Provider.apply(this, arguments);
|
|
234
194
|
}
|
|
@@ -236,8 +196,6 @@ function exportSaml2Provider(_x8) {
|
|
|
236
196
|
* Export all entity providers. The response can be saved to file as is.
|
|
237
197
|
* @returns {Promise<Saml2ExportInterface>} Promise resolving to a Saml2ExportInterface object.
|
|
238
198
|
*/
|
|
239
|
-
|
|
240
|
-
|
|
241
199
|
function _exportSaml2Provider() {
|
|
242
200
|
_exportSaml2Provider = _asyncToGenerator(function* (entityId) {
|
|
243
201
|
(0, _Console.debugMessage)("Saml2Ops.exportSaml2Provider: start [entityId=".concat(entityId, "]"));
|
|
@@ -255,7 +213,6 @@ function _exportSaml2Provider() {
|
|
|
255
213
|
});
|
|
256
214
|
return _exportSaml2Provider.apply(this, arguments);
|
|
257
215
|
}
|
|
258
|
-
|
|
259
216
|
function exportSaml2Providers() {
|
|
260
217
|
return _exportSaml2Providers.apply(this, arguments);
|
|
261
218
|
}
|
|
@@ -264,24 +221,19 @@ function exportSaml2Providers() {
|
|
|
264
221
|
* @param {Object} providerData Object representing a SAML entity provider
|
|
265
222
|
* @param {Object} fileData File data object to read dependencies from
|
|
266
223
|
*/
|
|
267
|
-
|
|
268
|
-
|
|
269
224
|
function _exportSaml2Providers() {
|
|
270
225
|
_exportSaml2Providers = _asyncToGenerator(function* () {
|
|
271
226
|
var fileData = createSaml2ExportTemplate();
|
|
272
227
|
var stubs = yield getSaml2ProviderStubs();
|
|
273
|
-
|
|
274
228
|
for (var stub of stubs) {
|
|
275
229
|
var providerData = yield getProviderByLocationAndId(stub.location, stub._id);
|
|
276
230
|
yield exportDependencies(providerData, fileData);
|
|
277
231
|
fileData.saml[stub.location][providerData._id] = providerData;
|
|
278
232
|
}
|
|
279
|
-
|
|
280
233
|
return fileData;
|
|
281
234
|
});
|
|
282
235
|
return _exportSaml2Providers.apply(this, arguments);
|
|
283
236
|
}
|
|
284
|
-
|
|
285
237
|
function importDependencies(_x9, _x10) {
|
|
286
238
|
return _importDependencies.apply(this, arguments);
|
|
287
239
|
}
|
|
@@ -291,57 +243,42 @@ function importDependencies(_x9, _x10) {
|
|
|
291
243
|
* @param {Object} data Import file json data
|
|
292
244
|
* @returns {String} 'hosted' or 'remote' if found, undefined otherwise
|
|
293
245
|
*/
|
|
294
|
-
|
|
295
|
-
|
|
296
246
|
function _importDependencies() {
|
|
297
247
|
_importDependencies = _asyncToGenerator(function* (providerData, fileData) {
|
|
298
248
|
(0, _Console.debugMessage)("Saml2Ops.importDependencies: start");
|
|
299
|
-
|
|
300
249
|
var attrMapperScriptId = _lodash.default.get(providerData, ['identityProvider', 'assertionProcessing', 'attributeMapper', 'attributeMapperScript']);
|
|
301
|
-
|
|
302
250
|
if (attrMapperScriptId && attrMapperScriptId !== '[Empty]') {
|
|
303
251
|
(0, _Console.debugMessage)("Saml2Ops.importDependencies: attributeMapperScript=".concat(attrMapperScriptId));
|
|
304
|
-
|
|
305
252
|
var scriptData = _lodash.default.get(fileData, ['script', attrMapperScriptId]);
|
|
306
|
-
|
|
307
253
|
scriptData.script = (0, _ExportImportUtils.convertTextArrayToBase64)(scriptData.script);
|
|
308
254
|
yield (0, _ScriptOps.createOrUpdateScript)(attrMapperScriptId, scriptData);
|
|
309
255
|
}
|
|
310
|
-
|
|
311
256
|
var idpAdapterScriptId = _lodash.default.get(providerData, ['identityProvider', 'advanced', 'idpAdapter', 'idpAdapterScript']);
|
|
312
|
-
|
|
313
257
|
if (idpAdapterScriptId && idpAdapterScriptId !== '[Empty]') {
|
|
314
258
|
(0, _Console.debugMessage)("Saml2Ops.importDependencies: idpAdapterScript=".concat(idpAdapterScriptId));
|
|
315
|
-
|
|
316
259
|
var _scriptData2 = _lodash.default.get(fileData, ['script', idpAdapterScriptId]);
|
|
317
|
-
|
|
318
260
|
_scriptData2.script = (0, _ExportImportUtils.convertTextArrayToBase64)(_scriptData2.script);
|
|
319
261
|
yield (0, _ScriptOps.createOrUpdateScript)(idpAdapterScriptId, _scriptData2);
|
|
320
262
|
}
|
|
321
|
-
|
|
322
263
|
(0, _Console.debugMessage)("Saml2Ops.importDependencies: end");
|
|
323
264
|
});
|
|
324
265
|
return _importDependencies.apply(this, arguments);
|
|
325
266
|
}
|
|
326
|
-
|
|
327
267
|
function getLocation(entityId64, data) {
|
|
328
268
|
if (data.saml.hosted[entityId64]) {
|
|
329
269
|
return _ApiTypes.Saml2ProiderLocation.HOSTED;
|
|
330
270
|
}
|
|
331
|
-
|
|
332
271
|
if (data.saml.remote[entityId64]) {
|
|
333
272
|
return _ApiTypes.Saml2ProiderLocation.REMOTE;
|
|
334
273
|
}
|
|
335
|
-
|
|
336
274
|
return undefined;
|
|
337
275
|
}
|
|
276
|
+
|
|
338
277
|
/**
|
|
339
278
|
* Import a SAML entity provider
|
|
340
279
|
* @param {string} entityId Provider entity id
|
|
341
280
|
* @param {Saml2ExportInterface} importData Import data
|
|
342
281
|
*/
|
|
343
|
-
|
|
344
|
-
|
|
345
282
|
function importSaml2Provider(_x11, _x12) {
|
|
346
283
|
return _importSaml2Provider.apply(this, arguments);
|
|
347
284
|
}
|
|
@@ -349,43 +286,33 @@ function importSaml2Provider(_x11, _x12) {
|
|
|
349
286
|
* Import SAML entity providers
|
|
350
287
|
* @param {Saml2ExportInterface} importData Import data
|
|
351
288
|
*/
|
|
352
|
-
|
|
353
|
-
|
|
354
289
|
function _importSaml2Provider() {
|
|
355
290
|
_importSaml2Provider = _asyncToGenerator(function* (entityId, importData) {
|
|
356
291
|
(0, _Console.debugMessage)("Saml2Ops.importSaml2Provider: start");
|
|
357
292
|
var entityId64 = (0, _Base.encode)(entityId, false);
|
|
358
293
|
var location = getLocation(entityId64, importData);
|
|
359
|
-
|
|
360
294
|
if (location) {
|
|
361
295
|
var providerData = importData.saml[location][entityId64];
|
|
362
296
|
yield importDependencies(providerData, importData);
|
|
363
297
|
var metaData = null;
|
|
364
|
-
|
|
365
298
|
if (location === _ApiTypes.Saml2ProiderLocation.REMOTE) {
|
|
366
299
|
metaData = (0, _ExportImportUtils.convertTextArrayToBase64Url)(importData.saml.metadata[entityId64]);
|
|
367
300
|
}
|
|
368
|
-
|
|
369
301
|
yield (0, _Saml2Api.createProvider)(location, providerData, metaData);
|
|
370
302
|
} else {
|
|
371
303
|
throw new Error("Provider ".concat(entityId, " not found in import data!"));
|
|
372
304
|
}
|
|
373
|
-
|
|
374
305
|
(0, _Console.debugMessage)("Saml2Ops.importSaml2Provider: end");
|
|
375
306
|
});
|
|
376
307
|
return _importSaml2Provider.apply(this, arguments);
|
|
377
308
|
}
|
|
378
|
-
|
|
379
309
|
function importSaml2Providers(_x13) {
|
|
380
310
|
return _importSaml2Providers.apply(this, arguments);
|
|
381
311
|
} // Contributions using legacy APIs. Need to investigate if those will be deprecated in the future
|
|
382
|
-
|
|
383
312
|
/**
|
|
384
313
|
* Deletes entity provider
|
|
385
314
|
* @param {string} entityId The entity id for the entity to be deleted
|
|
386
315
|
*/
|
|
387
|
-
|
|
388
|
-
|
|
389
316
|
function _importSaml2Providers() {
|
|
390
317
|
_importSaml2Providers = _asyncToGenerator(function* (importData) {
|
|
391
318
|
(0, _Console.debugMessage)("Saml2Ops.importSaml2Providers: start");
|
|
@@ -395,7 +322,6 @@ function _importSaml2Providers() {
|
|
|
395
322
|
warnings: 0,
|
|
396
323
|
failures: 0
|
|
397
324
|
};
|
|
398
|
-
|
|
399
325
|
try {
|
|
400
326
|
// find providers in hosted and in remote and map locations
|
|
401
327
|
var hostedIds = Object.keys(importData.saml.hosted);
|
|
@@ -403,13 +329,11 @@ function _importSaml2Providers() {
|
|
|
403
329
|
var providerIds = hostedIds.concat(remoteIds);
|
|
404
330
|
myStatus.total = providerIds.length;
|
|
405
331
|
(0, _Console.createProgressIndicator)(providerIds.length, 'Importing providers...');
|
|
406
|
-
|
|
407
332
|
for (var entityId64 of providerIds) {
|
|
408
333
|
(0, _Console.debugMessage)("Saml2Ops.importSaml2Providers: entityId=".concat((0, _Base.decodeBase64Url)(entityId64)));
|
|
409
334
|
var location = hostedIds.includes(entityId64) ? _ApiTypes.Saml2ProiderLocation.HOSTED : _ApiTypes.Saml2ProiderLocation.REMOTE;
|
|
410
335
|
var entityId = (0, _Base.decode)(entityId64);
|
|
411
336
|
var providerData = importData.saml[location][entityId64];
|
|
412
|
-
|
|
413
337
|
try {
|
|
414
338
|
yield importDependencies(providerData, importData);
|
|
415
339
|
} catch (importDependenciesErr) {
|
|
@@ -417,13 +341,10 @@ function _importSaml2Providers() {
|
|
|
417
341
|
(0, _Console.printMessage)("\nWarning importing dependencies for ".concat(entityId), 'warn');
|
|
418
342
|
(0, _Console.printMessage)(importDependenciesErr.response.data, 'error');
|
|
419
343
|
}
|
|
420
|
-
|
|
421
344
|
var metaData = null;
|
|
422
|
-
|
|
423
345
|
if (location === _ApiTypes.Saml2ProiderLocation.REMOTE) {
|
|
424
346
|
metaData = (0, _ExportImportUtils.convertTextArrayToBase64Url)(importData.saml.metadata[entityId64]);
|
|
425
347
|
}
|
|
426
|
-
|
|
427
348
|
try {
|
|
428
349
|
yield (0, _Saml2Api.createProvider)(location, providerData, metaData);
|
|
429
350
|
myStatus.successes += 1;
|
|
@@ -434,28 +355,23 @@ function _importSaml2Providers() {
|
|
|
434
355
|
(0, _Console.printMessage)(createProviderErr, 'error');
|
|
435
356
|
}
|
|
436
357
|
}
|
|
437
|
-
|
|
438
358
|
myStatus.message = "".concat(myStatus.successes, "/").concat(myStatus.total, " providers imported.");
|
|
439
359
|
(0, _Console.stopProgressIndicator)(myStatus.message);
|
|
440
360
|
} catch (error) {
|
|
441
361
|
myStatus.failures += 1;
|
|
442
362
|
(0, _Console.printMessage)("\nError importing providers ".concat(error.message), 'error');
|
|
443
363
|
}
|
|
444
|
-
|
|
445
364
|
(0, _Console.debugMessage)("Saml2Ops.importSaml2Providers: end");
|
|
446
365
|
return myStatus;
|
|
447
366
|
});
|
|
448
367
|
return _importSaml2Providers.apply(this, arguments);
|
|
449
368
|
}
|
|
450
|
-
|
|
451
369
|
function deleteSaml2Provider(_x14) {
|
|
452
370
|
return _deleteSaml2Provider.apply(this, arguments);
|
|
453
371
|
}
|
|
454
372
|
/**
|
|
455
373
|
* Deletes all entity providers.
|
|
456
374
|
*/
|
|
457
|
-
|
|
458
|
-
|
|
459
375
|
function _deleteSaml2Provider() {
|
|
460
376
|
_deleteSaml2Provider = _asyncToGenerator(function* (entityId) {
|
|
461
377
|
try {
|
|
@@ -466,7 +382,6 @@ function _deleteSaml2Provider() {
|
|
|
466
382
|
});
|
|
467
383
|
return _deleteSaml2Provider.apply(this, arguments);
|
|
468
384
|
}
|
|
469
|
-
|
|
470
385
|
function deleteSaml2Providers() {
|
|
471
386
|
return _deleteSaml2Providers.apply(this, arguments);
|
|
472
387
|
}
|
|
@@ -474,8 +389,6 @@ function deleteSaml2Providers() {
|
|
|
474
389
|
* Retrieves all entity providers using the legacy federation enpoints.
|
|
475
390
|
* @returns {Promise} a promise that resolves to an object containing an array of providers
|
|
476
391
|
*/
|
|
477
|
-
|
|
478
|
-
|
|
479
392
|
function _deleteSaml2Providers() {
|
|
480
393
|
_deleteSaml2Providers = _asyncToGenerator(function* () {
|
|
481
394
|
var applicationList = (yield getRawProviders()).result;
|
|
@@ -485,14 +398,12 @@ function _deleteSaml2Providers() {
|
|
|
485
398
|
deleteApplicationPromises.push(deleteSaml2Provider(item._id));
|
|
486
399
|
});
|
|
487
400
|
var deleteApplicationResult = yield Promise.all(deleteApplicationPromises);
|
|
488
|
-
|
|
489
401
|
if (deleteApplicationResult.length == applicationList.length) {
|
|
490
402
|
(0, _Console.printMessage)('SAML Entity cleanup done', 'info');
|
|
491
403
|
}
|
|
492
404
|
});
|
|
493
405
|
return _deleteSaml2Providers.apply(this, arguments);
|
|
494
406
|
}
|
|
495
|
-
|
|
496
407
|
function getRawProviders() {
|
|
497
408
|
return _getRawProviders2.apply(this, arguments);
|
|
498
409
|
}
|
|
@@ -501,15 +412,12 @@ function getRawProviders() {
|
|
|
501
412
|
* @param {string} entityId The entity provider id
|
|
502
413
|
* @returns {Promise} a promise that resolves to an object containing an array of providers
|
|
503
414
|
*/
|
|
504
|
-
|
|
505
|
-
|
|
506
415
|
function _getRawProviders2() {
|
|
507
416
|
_getRawProviders2 = _asyncToGenerator(function* () {
|
|
508
417
|
return (0, _Saml2Api.getRawProviders)();
|
|
509
418
|
});
|
|
510
419
|
return _getRawProviders2.apply(this, arguments);
|
|
511
420
|
}
|
|
512
|
-
|
|
513
421
|
function getRawProvider(_x15) {
|
|
514
422
|
return _getRawProvider2.apply(this, arguments);
|
|
515
423
|
}
|
|
@@ -519,19 +427,15 @@ function getRawProvider(_x15) {
|
|
|
519
427
|
* @param {string} entityData The actual data containing the entity provider configuration
|
|
520
428
|
* @returns {Promise} Promise that resolves to a provider object
|
|
521
429
|
*/
|
|
522
|
-
|
|
523
|
-
|
|
524
430
|
function _getRawProvider2() {
|
|
525
431
|
_getRawProvider2 = _asyncToGenerator(function* (entityId) {
|
|
526
432
|
return (0, _Saml2Api.getRawProvider)(entityId);
|
|
527
433
|
});
|
|
528
434
|
return _getRawProvider2.apply(this, arguments);
|
|
529
435
|
}
|
|
530
|
-
|
|
531
436
|
function putRawProvider(_x16, _x17) {
|
|
532
437
|
return _putRawProvider2.apply(this, arguments);
|
|
533
438
|
}
|
|
534
|
-
|
|
535
439
|
function _putRawProvider2() {
|
|
536
440
|
_putRawProvider2 = _asyncToGenerator(function* (entityId, entityData) {
|
|
537
441
|
return (0, _Saml2Api.putRawProvider)(entityId, entityData);
|
package/cjs/ops/Saml2Ops.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Saml2Ops.js","names":["roleMap","identityProvider","serviceProvider","attributeQueryProvider","xacmlPolicyEnforcementPoint","createSaml2ExportTemplate","meta","script","saml","hosted","remote","metadata","getSaml2ProviderStubs","result","getProviders","getProviderByLocationAndId","location","entityId64","_getProviderByLocationAndId","getProviderMetadataUrl","entityId","_getProviderMetadataUrl","getProviderMetadata","_getProviderMetadata","exportDependencies","providerData","fileData","attrMapperScriptId","_","get","scriptData","getScript","convertBase64TextToArray","idpAdapterScriptId","metaDataResponse","_id","convertBase64UrlTextToArray","encodeBase64Url","getSaml2ProviderStub","debugMessage","found","findProviders","resultCount","Error","getSaml2Provider","stub","id","exportSaml2Provider","exportData","exportSaml2Providers","stubs","importDependencies","convertTextArrayToBase64","createOrUpdateScript","getLocation","data","Saml2ProiderLocation","HOSTED","REMOTE","undefined","importSaml2Provider","importData","encode","metaData","convertTextArrayToBase64Url","createProvider","importSaml2Providers","myStatus","total","successes","warnings","failures","hostedIds","Object","keys","remoteIds","providerIds","concat","length","createProgressIndicator","decodeBase64Url","includes","decode","importDependenciesErr","printMessage","response","updateProgressIndicator","createProviderErr","message","stopProgressIndicator","error","deleteSaml2Provider","deleteProvider","deleteSaml2Providers","applicationList","getRawProviders","deleteApplicationPromises","forEach","item","push","deleteApplicationResult","Promise","all","_getRawProviders","getRawProvider","_getRawProvider","putRawProvider","entityData","_putRawProvider"],"sources":["ops/Saml2Ops.ts"],"sourcesContent":["import _ from 'lodash';\nimport {\n Saml2ProiderLocation,\n Saml2ProviderSkeleton,\n Saml2ProviderStub,\n} from '../api/ApiTypes';\nimport {\n createProvider,\n deleteProvider,\n findProviders,\n getProviderByLocationAndId as _getProviderByLocationAndId,\n getProviderMetadata as _getProviderMetadata,\n getProviderMetadataUrl as _getProviderMetadataUrl,\n getRawProvider as _getRawProvider,\n getProviders,\n getRawProviders as _getRawProviders,\n putRawProvider as _putRawProvider,\n} from '../api/Saml2Api';\nimport { getScript } from '../api/ScriptApi';\nimport {\n decode,\n decodeBase64Url,\n encode,\n encodeBase64Url,\n} from '../api/utils/Base64';\nimport { MultiOpStatusInterface, Saml2ExportInterface } from './OpsTypes';\nimport { createOrUpdateScript } from './ScriptOps';\nimport {\n createProgressIndicator,\n debugMessage,\n printMessage,\n stopProgressIndicator,\n updateProgressIndicator,\n} from './utils/Console';\nimport {\n convertBase64TextToArray,\n convertBase64UrlTextToArray,\n convertTextArrayToBase64,\n convertTextArrayToBase64Url,\n} from './utils/ExportImportUtils';\n\nexport const roleMap = {\n identityProvider: 'IDP',\n serviceProvider: 'SP',\n attributeQueryProvider: 'AttrQuery',\n xacmlPolicyEnforcementPoint: 'XACML PEP',\n};\n\n// use a function vs a template variable to avoid problems in loops\nexport function createSaml2ExportTemplate(): Saml2ExportInterface {\n return {\n meta: {},\n script: {},\n saml: {\n hosted: {},\n remote: {},\n metadata: {},\n },\n } as Saml2ExportInterface;\n}\n\n/**\n * Get SAML2 entity provider stubs\n * @returns {Promise<Saml2ProviderStub[]>} a promise that resolves to an array of saml2 entity stubs\n */\nexport async function getSaml2ProviderStubs(): Promise<Saml2ProviderStub[]> {\n const { result } = await getProviders();\n return result;\n}\n\n/**\n * Geta SAML2 entity provider by location and id\n * @param {string} location Entity provider location (hosted or remote)\n * @param {string} entityId64 Base64-encoded provider entity id\n * @returns {Promise} a promise that resolves to a saml2 entity provider object\n */\nexport async function getProviderByLocationAndId(\n location: string,\n entityId64: string\n) {\n return _getProviderByLocationAndId(location, entityId64);\n}\n\n/**\n * Get a SAML2 entity provider's metadata URL by entity id\n * @param {string} entityId SAML2 entity id\n * @returns {string} the URL to get the metadata from\n */\nexport function getProviderMetadataUrl(entityId: string): string {\n return _getProviderMetadataUrl(entityId);\n}\n\n/**\n * Get a SAML2 entity provider's metadata by entity id\n * @param {String} entityId SAML2 entity id\n * @returns {Promise} a promise that resolves to an object containing a SAML2 metadata\n */\nexport async function getProviderMetadata(entityId) {\n return _getProviderMetadata(entityId);\n}\n\n/**\n * Include dependencies in the export file\n * @param {Object} providerData Object representing a SAML entity provider\n * @param {Object} fileData File data object to add dependencies to\n */\nasync function exportDependencies(providerData, fileData) {\n const attrMapperScriptId = _.get(providerData, [\n 'identityProvider',\n 'assertionProcessing',\n 'attributeMapper',\n 'attributeMapperScript',\n ]);\n if (attrMapperScriptId && attrMapperScriptId !== '[Empty]') {\n const scriptData = await getScript(attrMapperScriptId);\n scriptData.script = convertBase64TextToArray(scriptData.script);\n // eslint-disable-next-line no-param-reassign\n fileData.script[attrMapperScriptId] = scriptData;\n }\n const idpAdapterScriptId = _.get(providerData, [\n 'identityProvider',\n 'advanced',\n 'idpAdapter',\n 'idpAdapterScript',\n ]);\n if (idpAdapterScriptId && idpAdapterScriptId !== '[Empty]') {\n const scriptData = await getScript(idpAdapterScriptId);\n scriptData.script = convertBase64TextToArray(scriptData.script);\n // eslint-disable-next-line no-param-reassign\n fileData.script[idpAdapterScriptId] = scriptData;\n }\n const metaDataResponse = await getProviderMetadata(providerData.entityId);\n // eslint-disable-next-line no-param-reassign\n fileData.saml.metadata[providerData._id] = convertBase64UrlTextToArray(\n encodeBase64Url(metaDataResponse)\n );\n}\n\n/**\n *\n * @param {String} entityId Provider entity id\n * @returns {Promise<Saml2ProviderStub>} Promise resolving to a Saml2ExportInterface object.\n */\nexport async function getSaml2ProviderStub(\n entityId: string\n): Promise<Saml2ProviderStub> {\n debugMessage(`Saml2Ops.getSaml2ProviderStub: start [entityId=${entityId}]`);\n const found = await findProviders(`entityId eq '${entityId}'`);\n switch (found.resultCount) {\n case 0:\n throw new Error(`No provider with entity id '${entityId}' found`);\n case 1: {\n debugMessage(`Saml2Ops.getSaml2ProviderStub: end [entityId=${entityId}]`);\n return found.result[0];\n }\n default:\n throw new Error(`Multiple providers with entity id '${entityId}' found`);\n }\n}\n\n/**\n * Export a single entity provider. The response can be saved to file as is.\n * @param {String} entityId Provider entity id\n * @returns {Promise<Saml2ProviderSkeleton>} Promise resolving to a Saml2ExportInterface object.\n */\nexport async function getSaml2Provider(\n entityId: string\n): Promise<Saml2ProviderSkeleton> {\n debugMessage(`Saml2Ops.getSaml2Provider: start [entityId=${entityId}]`);\n const stub = await getSaml2ProviderStub(entityId);\n const { location } = stub;\n const id = stub._id;\n const providerData = await getProviderByLocationAndId(location, id);\n debugMessage(`Saml2Ops.getSaml2Provider: end [entityId=${entityId}]`);\n return providerData;\n}\n\n/**\n * Export a single entity provider. The response can be saved to file as is.\n * @param {String} entityId Provider entity id\n * @returns {Promise<Saml2ExportInterface>} Promise resolving to a Saml2ExportInterface object.\n */\nexport async function exportSaml2Provider(\n entityId: string\n): Promise<Saml2ExportInterface> {\n debugMessage(`Saml2Ops.exportSaml2Provider: start [entityId=${entityId}]`);\n const exportData = createSaml2ExportTemplate();\n const stub = await getSaml2ProviderStub(entityId);\n const { location } = stub;\n const id = stub._id;\n const providerData = await getProviderByLocationAndId(location, id);\n exportData.saml[stub.location][providerData._id] = providerData;\n await exportDependencies(providerData, exportData);\n debugMessage(`Saml2Ops.exportSaml2Provider: end [entityId=${entityId}]`);\n return exportData;\n}\n\n/**\n * Export all entity providers. The response can be saved to file as is.\n * @returns {Promise<Saml2ExportInterface>} Promise resolving to a Saml2ExportInterface object.\n */\nexport async function exportSaml2Providers(): Promise<Saml2ExportInterface> {\n const fileData = createSaml2ExportTemplate();\n const stubs = await getSaml2ProviderStubs();\n for (const stub of stubs) {\n const providerData = await getProviderByLocationAndId(\n stub.location,\n stub._id\n );\n await exportDependencies(providerData, fileData);\n fileData.saml[stub.location][providerData._id] = providerData;\n }\n return fileData;\n}\n\n/**\n * Include dependencies from the import file\n * @param {Object} providerData Object representing a SAML entity provider\n * @param {Object} fileData File data object to read dependencies from\n */\nasync function importDependencies(providerData, fileData) {\n debugMessage(`Saml2Ops.importDependencies: start`);\n const attrMapperScriptId = _.get(providerData, [\n 'identityProvider',\n 'assertionProcessing',\n 'attributeMapper',\n 'attributeMapperScript',\n ]);\n if (attrMapperScriptId && attrMapperScriptId !== '[Empty]') {\n debugMessage(\n `Saml2Ops.importDependencies: attributeMapperScript=${attrMapperScriptId}`\n );\n const scriptData = _.get(fileData, ['script', attrMapperScriptId]);\n scriptData.script = convertTextArrayToBase64(scriptData.script);\n await createOrUpdateScript(attrMapperScriptId, scriptData);\n }\n const idpAdapterScriptId = _.get(providerData, [\n 'identityProvider',\n 'advanced',\n 'idpAdapter',\n 'idpAdapterScript',\n ]);\n if (idpAdapterScriptId && idpAdapterScriptId !== '[Empty]') {\n debugMessage(\n `Saml2Ops.importDependencies: idpAdapterScript=${idpAdapterScriptId}`\n );\n const scriptData = _.get(fileData, ['script', idpAdapterScriptId]);\n scriptData.script = convertTextArrayToBase64(scriptData.script);\n await createOrUpdateScript(idpAdapterScriptId, scriptData);\n }\n debugMessage(`Saml2Ops.importDependencies: end`);\n}\n\n/**\n * Find provider in import file and return its location\n * @param {String} entityId64 Base64-encoded provider entity id\n * @param {Object} data Import file json data\n * @returns {String} 'hosted' or 'remote' if found, undefined otherwise\n */\nfunction getLocation(\n entityId64: string,\n data: Saml2ExportInterface\n): Saml2ProiderLocation {\n if (data.saml.hosted[entityId64]) {\n return Saml2ProiderLocation.HOSTED;\n }\n if (data.saml.remote[entityId64]) {\n return Saml2ProiderLocation.REMOTE;\n }\n return undefined;\n}\n\n/**\n * Import a SAML entity provider\n * @param {string} entityId Provider entity id\n * @param {Saml2ExportInterface} importData Import data\n */\nexport async function importSaml2Provider(\n entityId: string,\n importData: Saml2ExportInterface\n): Promise<void> {\n debugMessage(`Saml2Ops.importSaml2Provider: start`);\n const entityId64 = encode(entityId, false);\n const location = getLocation(entityId64, importData);\n if (location) {\n const providerData = importData.saml[location][entityId64];\n await importDependencies(providerData, importData);\n let metaData = null;\n if (location === Saml2ProiderLocation.REMOTE) {\n metaData = convertTextArrayToBase64Url(\n importData.saml.metadata[entityId64]\n );\n }\n await createProvider(location, providerData, metaData);\n } else {\n throw new Error(`Provider ${entityId} not found in import data!`);\n }\n debugMessage(`Saml2Ops.importSaml2Provider: end`);\n}\n\n/**\n * Import SAML entity providers\n * @param {Saml2ExportInterface} importData Import data\n */\nexport async function importSaml2Providers(\n importData: Saml2ExportInterface\n): Promise<MultiOpStatusInterface> {\n debugMessage(`Saml2Ops.importSaml2Providers: start`);\n const myStatus: MultiOpStatusInterface = {\n total: 0,\n successes: 0,\n warnings: 0,\n failures: 0,\n };\n try {\n // find providers in hosted and in remote and map locations\n const hostedIds = Object.keys(importData.saml.hosted);\n const remoteIds = Object.keys(importData.saml.remote);\n const providerIds = hostedIds.concat(remoteIds);\n myStatus.total = providerIds.length;\n createProgressIndicator(providerIds.length, 'Importing providers...');\n for (const entityId64 of providerIds) {\n debugMessage(\n `Saml2Ops.importSaml2Providers: entityId=${decodeBase64Url(entityId64)}`\n );\n const location = hostedIds.includes(entityId64)\n ? Saml2ProiderLocation.HOSTED\n : Saml2ProiderLocation.REMOTE;\n const entityId = decode(entityId64);\n const providerData = importData.saml[location][entityId64];\n try {\n await importDependencies(providerData, importData);\n } catch (importDependenciesErr) {\n myStatus.warnings += 1;\n printMessage(\n `\\nWarning importing dependencies for ${entityId}`,\n 'warn'\n );\n printMessage(importDependenciesErr.response.data, 'error');\n }\n let metaData = null;\n if (location === Saml2ProiderLocation.REMOTE) {\n metaData = convertTextArrayToBase64Url(\n importData.saml.metadata[entityId64]\n );\n }\n try {\n await createProvider(location, providerData, metaData);\n myStatus.successes += 1;\n updateProgressIndicator(`Imported ${entityId}`);\n } catch (createProviderErr) {\n myStatus.failures += 1;\n printMessage(`\\nError importing provider ${entityId}`, 'error');\n printMessage(createProviderErr, 'error');\n }\n }\n myStatus.message = `${myStatus.successes}/${myStatus.total} providers imported.`;\n stopProgressIndicator(myStatus.message);\n } catch (error) {\n myStatus.failures += 1;\n printMessage(`\\nError importing providers ${error.message}`, 'error');\n }\n debugMessage(`Saml2Ops.importSaml2Providers: end`);\n return myStatus;\n}\n\n// Contributions using legacy APIs. Need to investigate if those will be deprecated in the future\n\n/**\n * Deletes entity provider\n * @param {string} entityId The entity id for the entity to be deleted\n */\nexport async function deleteSaml2Provider(entityId: string) {\n try {\n await deleteProvider(entityId);\n } catch (error) {\n printMessage(error.message, 'error');\n }\n}\n\n/**\n * Deletes all entity providers.\n */\nexport async function deleteSaml2Providers() {\n const applicationList = (await getRawProviders()).result;\n const deleteApplicationPromises = [];\n applicationList.forEach((item) => {\n printMessage(`Deleting Application ${item._id}`, 'error');\n deleteApplicationPromises.push(deleteSaml2Provider(item._id));\n });\n const deleteApplicationResult = await Promise.all(deleteApplicationPromises);\n if (deleteApplicationResult.length == applicationList.length) {\n printMessage('SAML Entity cleanup done', 'info');\n }\n}\n\n/**\n * Retrieves all entity providers using the legacy federation enpoints.\n * @returns {Promise} a promise that resolves to an object containing an array of providers\n */\nexport async function getRawProviders() {\n return _getRawProviders();\n}\n\n/**\n * Retrieves all entity providers using the legacy federation enpoints.\n * @param {string} entityId The entity provider id\n * @returns {Promise} a promise that resolves to an object containing an array of providers\n */\nexport async function getRawProvider(entityId: string) {\n return _getRawProvider(entityId);\n}\n\n/**\n * Stores a new SAML2 entity provider\n * @param {string} entityId The entity provider id\n * @param {string} entityData The actual data containing the entity provider configuration\n * @returns {Promise} Promise that resolves to a provider object\n */\nexport async function putRawProvider(entityId: string, entityData) {\n return _putRawProvider(entityId, entityData);\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Saml2Ops.js","names":["roleMap","identityProvider","serviceProvider","attributeQueryProvider","xacmlPolicyEnforcementPoint","createSaml2ExportTemplate","meta","script","saml","hosted","remote","metadata","getSaml2ProviderStubs","result","getProviders","getProviderByLocationAndId","location","entityId64","_getProviderByLocationAndId","getProviderMetadataUrl","entityId","_getProviderMetadataUrl","getProviderMetadata","_getProviderMetadata","exportDependencies","providerData","fileData","attrMapperScriptId","_","get","scriptData","getScript","convertBase64TextToArray","idpAdapterScriptId","metaDataResponse","_id","convertBase64UrlTextToArray","encodeBase64Url","getSaml2ProviderStub","debugMessage","found","findProviders","resultCount","Error","getSaml2Provider","stub","id","exportSaml2Provider","exportData","exportSaml2Providers","stubs","importDependencies","convertTextArrayToBase64","createOrUpdateScript","getLocation","data","Saml2ProiderLocation","HOSTED","REMOTE","undefined","importSaml2Provider","importData","encode","metaData","convertTextArrayToBase64Url","createProvider","importSaml2Providers","myStatus","total","successes","warnings","failures","hostedIds","Object","keys","remoteIds","providerIds","concat","length","createProgressIndicator","decodeBase64Url","includes","decode","importDependenciesErr","printMessage","response","updateProgressIndicator","createProviderErr","message","stopProgressIndicator","error","deleteSaml2Provider","deleteProvider","deleteSaml2Providers","applicationList","getRawProviders","deleteApplicationPromises","forEach","item","push","deleteApplicationResult","Promise","all","_getRawProviders","getRawProvider","_getRawProvider","putRawProvider","entityData","_putRawProvider"],"sources":["ops/Saml2Ops.ts"],"sourcesContent":["import _ from 'lodash';\nimport {\n Saml2ProiderLocation,\n Saml2ProviderSkeleton,\n Saml2ProviderStub,\n} from '../api/ApiTypes';\nimport {\n createProvider,\n deleteProvider,\n findProviders,\n getProviderByLocationAndId as _getProviderByLocationAndId,\n getProviderMetadata as _getProviderMetadata,\n getProviderMetadataUrl as _getProviderMetadataUrl,\n getRawProvider as _getRawProvider,\n getProviders,\n getRawProviders as _getRawProviders,\n putRawProvider as _putRawProvider,\n} from '../api/Saml2Api';\nimport { getScript } from '../api/ScriptApi';\nimport {\n decode,\n decodeBase64Url,\n encode,\n encodeBase64Url,\n} from '../api/utils/Base64';\nimport { MultiOpStatusInterface, Saml2ExportInterface } from './OpsTypes';\nimport { createOrUpdateScript } from './ScriptOps';\nimport {\n createProgressIndicator,\n debugMessage,\n printMessage,\n stopProgressIndicator,\n updateProgressIndicator,\n} from './utils/Console';\nimport {\n convertBase64TextToArray,\n convertBase64UrlTextToArray,\n convertTextArrayToBase64,\n convertTextArrayToBase64Url,\n} from './utils/ExportImportUtils';\n\nexport const roleMap = {\n identityProvider: 'IDP',\n serviceProvider: 'SP',\n attributeQueryProvider: 'AttrQuery',\n xacmlPolicyEnforcementPoint: 'XACML PEP',\n};\n\n// use a function vs a template variable to avoid problems in loops\nexport function createSaml2ExportTemplate(): Saml2ExportInterface {\n return {\n meta: {},\n script: {},\n saml: {\n hosted: {},\n remote: {},\n metadata: {},\n },\n } as Saml2ExportInterface;\n}\n\n/**\n * Get SAML2 entity provider stubs\n * @returns {Promise<Saml2ProviderStub[]>} a promise that resolves to an array of saml2 entity stubs\n */\nexport async function getSaml2ProviderStubs(): Promise<Saml2ProviderStub[]> {\n const { result } = await getProviders();\n return result;\n}\n\n/**\n * Geta SAML2 entity provider by location and id\n * @param {string} location Entity provider location (hosted or remote)\n * @param {string} entityId64 Base64-encoded provider entity id\n * @returns {Promise} a promise that resolves to a saml2 entity provider object\n */\nexport async function getProviderByLocationAndId(\n location: string,\n entityId64: string\n) {\n return _getProviderByLocationAndId(location, entityId64);\n}\n\n/**\n * Get a SAML2 entity provider's metadata URL by entity id\n * @param {string} entityId SAML2 entity id\n * @returns {string} the URL to get the metadata from\n */\nexport function getProviderMetadataUrl(entityId: string): string {\n return _getProviderMetadataUrl(entityId);\n}\n\n/**\n * Get a SAML2 entity provider's metadata by entity id\n * @param {String} entityId SAML2 entity id\n * @returns {Promise} a promise that resolves to an object containing a SAML2 metadata\n */\nexport async function getProviderMetadata(entityId) {\n return _getProviderMetadata(entityId);\n}\n\n/**\n * Include dependencies in the export file\n * @param {Object} providerData Object representing a SAML entity provider\n * @param {Object} fileData File data object to add dependencies to\n */\nasync function exportDependencies(providerData, fileData) {\n const attrMapperScriptId = _.get(providerData, [\n 'identityProvider',\n 'assertionProcessing',\n 'attributeMapper',\n 'attributeMapperScript',\n ]);\n if (attrMapperScriptId && attrMapperScriptId !== '[Empty]') {\n const scriptData = await getScript(attrMapperScriptId);\n scriptData.script = convertBase64TextToArray(scriptData.script);\n // eslint-disable-next-line no-param-reassign\n fileData.script[attrMapperScriptId] = scriptData;\n }\n const idpAdapterScriptId = _.get(providerData, [\n 'identityProvider',\n 'advanced',\n 'idpAdapter',\n 'idpAdapterScript',\n ]);\n if (idpAdapterScriptId && idpAdapterScriptId !== '[Empty]') {\n const scriptData = await getScript(idpAdapterScriptId);\n scriptData.script = convertBase64TextToArray(scriptData.script);\n // eslint-disable-next-line no-param-reassign\n fileData.script[idpAdapterScriptId] = scriptData;\n }\n const metaDataResponse = await getProviderMetadata(providerData.entityId);\n // eslint-disable-next-line no-param-reassign\n fileData.saml.metadata[providerData._id] = convertBase64UrlTextToArray(\n encodeBase64Url(metaDataResponse)\n );\n}\n\n/**\n *\n * @param {String} entityId Provider entity id\n * @returns {Promise<Saml2ProviderStub>} Promise resolving to a Saml2ExportInterface object.\n */\nexport async function getSaml2ProviderStub(\n entityId: string\n): Promise<Saml2ProviderStub> {\n debugMessage(`Saml2Ops.getSaml2ProviderStub: start [entityId=${entityId}]`);\n const found = await findProviders(`entityId eq '${entityId}'`);\n switch (found.resultCount) {\n case 0:\n throw new Error(`No provider with entity id '${entityId}' found`);\n case 1: {\n debugMessage(`Saml2Ops.getSaml2ProviderStub: end [entityId=${entityId}]`);\n return found.result[0];\n }\n default:\n throw new Error(`Multiple providers with entity id '${entityId}' found`);\n }\n}\n\n/**\n * Export a single entity provider. The response can be saved to file as is.\n * @param {String} entityId Provider entity id\n * @returns {Promise<Saml2ProviderSkeleton>} Promise resolving to a Saml2ExportInterface object.\n */\nexport async function getSaml2Provider(\n entityId: string\n): Promise<Saml2ProviderSkeleton> {\n debugMessage(`Saml2Ops.getSaml2Provider: start [entityId=${entityId}]`);\n const stub = await getSaml2ProviderStub(entityId);\n const { location } = stub;\n const id = stub._id;\n const providerData = await getProviderByLocationAndId(location, id);\n debugMessage(`Saml2Ops.getSaml2Provider: end [entityId=${entityId}]`);\n return providerData;\n}\n\n/**\n * Export a single entity provider. The response can be saved to file as is.\n * @param {String} entityId Provider entity id\n * @returns {Promise<Saml2ExportInterface>} Promise resolving to a Saml2ExportInterface object.\n */\nexport async function exportSaml2Provider(\n entityId: string\n): Promise<Saml2ExportInterface> {\n debugMessage(`Saml2Ops.exportSaml2Provider: start [entityId=${entityId}]`);\n const exportData = createSaml2ExportTemplate();\n const stub = await getSaml2ProviderStub(entityId);\n const { location } = stub;\n const id = stub._id;\n const providerData = await getProviderByLocationAndId(location, id);\n exportData.saml[stub.location][providerData._id] = providerData;\n await exportDependencies(providerData, exportData);\n debugMessage(`Saml2Ops.exportSaml2Provider: end [entityId=${entityId}]`);\n return exportData;\n}\n\n/**\n * Export all entity providers. The response can be saved to file as is.\n * @returns {Promise<Saml2ExportInterface>} Promise resolving to a Saml2ExportInterface object.\n */\nexport async function exportSaml2Providers(): Promise<Saml2ExportInterface> {\n const fileData = createSaml2ExportTemplate();\n const stubs = await getSaml2ProviderStubs();\n for (const stub of stubs) {\n const providerData = await getProviderByLocationAndId(\n stub.location,\n stub._id\n );\n await exportDependencies(providerData, fileData);\n fileData.saml[stub.location][providerData._id] = providerData;\n }\n return fileData;\n}\n\n/**\n * Include dependencies from the import file\n * @param {Object} providerData Object representing a SAML entity provider\n * @param {Object} fileData File data object to read dependencies from\n */\nasync function importDependencies(providerData, fileData) {\n debugMessage(`Saml2Ops.importDependencies: start`);\n const attrMapperScriptId = _.get(providerData, [\n 'identityProvider',\n 'assertionProcessing',\n 'attributeMapper',\n 'attributeMapperScript',\n ]);\n if (attrMapperScriptId && attrMapperScriptId !== '[Empty]') {\n debugMessage(\n `Saml2Ops.importDependencies: attributeMapperScript=${attrMapperScriptId}`\n );\n const scriptData = _.get(fileData, ['script', attrMapperScriptId]);\n scriptData.script = convertTextArrayToBase64(scriptData.script);\n await createOrUpdateScript(attrMapperScriptId, scriptData);\n }\n const idpAdapterScriptId = _.get(providerData, [\n 'identityProvider',\n 'advanced',\n 'idpAdapter',\n 'idpAdapterScript',\n ]);\n if (idpAdapterScriptId && idpAdapterScriptId !== '[Empty]') {\n debugMessage(\n `Saml2Ops.importDependencies: idpAdapterScript=${idpAdapterScriptId}`\n );\n const scriptData = _.get(fileData, ['script', idpAdapterScriptId]);\n scriptData.script = convertTextArrayToBase64(scriptData.script);\n await createOrUpdateScript(idpAdapterScriptId, scriptData);\n }\n debugMessage(`Saml2Ops.importDependencies: end`);\n}\n\n/**\n * Find provider in import file and return its location\n * @param {String} entityId64 Base64-encoded provider entity id\n * @param {Object} data Import file json data\n * @returns {String} 'hosted' or 'remote' if found, undefined otherwise\n */\nfunction getLocation(\n entityId64: string,\n data: Saml2ExportInterface\n): Saml2ProiderLocation {\n if (data.saml.hosted[entityId64]) {\n return Saml2ProiderLocation.HOSTED;\n }\n if (data.saml.remote[entityId64]) {\n return Saml2ProiderLocation.REMOTE;\n }\n return undefined;\n}\n\n/**\n * Import a SAML entity provider\n * @param {string} entityId Provider entity id\n * @param {Saml2ExportInterface} importData Import data\n */\nexport async function importSaml2Provider(\n entityId: string,\n importData: Saml2ExportInterface\n): Promise<void> {\n debugMessage(`Saml2Ops.importSaml2Provider: start`);\n const entityId64 = encode(entityId, false);\n const location = getLocation(entityId64, importData);\n if (location) {\n const providerData = importData.saml[location][entityId64];\n await importDependencies(providerData, importData);\n let metaData = null;\n if (location === Saml2ProiderLocation.REMOTE) {\n metaData = convertTextArrayToBase64Url(\n importData.saml.metadata[entityId64]\n );\n }\n await createProvider(location, providerData, metaData);\n } else {\n throw new Error(`Provider ${entityId} not found in import data!`);\n }\n debugMessage(`Saml2Ops.importSaml2Provider: end`);\n}\n\n/**\n * Import SAML entity providers\n * @param {Saml2ExportInterface} importData Import data\n */\nexport async function importSaml2Providers(\n importData: Saml2ExportInterface\n): Promise<MultiOpStatusInterface> {\n debugMessage(`Saml2Ops.importSaml2Providers: start`);\n const myStatus: MultiOpStatusInterface = {\n total: 0,\n successes: 0,\n warnings: 0,\n failures: 0,\n };\n try {\n // find providers in hosted and in remote and map locations\n const hostedIds = Object.keys(importData.saml.hosted);\n const remoteIds = Object.keys(importData.saml.remote);\n const providerIds = hostedIds.concat(remoteIds);\n myStatus.total = providerIds.length;\n createProgressIndicator(providerIds.length, 'Importing providers...');\n for (const entityId64 of providerIds) {\n debugMessage(\n `Saml2Ops.importSaml2Providers: entityId=${decodeBase64Url(entityId64)}`\n );\n const location = hostedIds.includes(entityId64)\n ? Saml2ProiderLocation.HOSTED\n : Saml2ProiderLocation.REMOTE;\n const entityId = decode(entityId64);\n const providerData = importData.saml[location][entityId64];\n try {\n await importDependencies(providerData, importData);\n } catch (importDependenciesErr) {\n myStatus.warnings += 1;\n printMessage(\n `\\nWarning importing dependencies for ${entityId}`,\n 'warn'\n );\n printMessage(importDependenciesErr.response.data, 'error');\n }\n let metaData = null;\n if (location === Saml2ProiderLocation.REMOTE) {\n metaData = convertTextArrayToBase64Url(\n importData.saml.metadata[entityId64]\n );\n }\n try {\n await createProvider(location, providerData, metaData);\n myStatus.successes += 1;\n updateProgressIndicator(`Imported ${entityId}`);\n } catch (createProviderErr) {\n myStatus.failures += 1;\n printMessage(`\\nError importing provider ${entityId}`, 'error');\n printMessage(createProviderErr, 'error');\n }\n }\n myStatus.message = `${myStatus.successes}/${myStatus.total} providers imported.`;\n stopProgressIndicator(myStatus.message);\n } catch (error) {\n myStatus.failures += 1;\n printMessage(`\\nError importing providers ${error.message}`, 'error');\n }\n debugMessage(`Saml2Ops.importSaml2Providers: end`);\n return myStatus;\n}\n\n// Contributions using legacy APIs. Need to investigate if those will be deprecated in the future\n\n/**\n * Deletes entity provider\n * @param {string} entityId The entity id for the entity to be deleted\n */\nexport async function deleteSaml2Provider(entityId: string) {\n try {\n await deleteProvider(entityId);\n } catch (error) {\n printMessage(error.message, 'error');\n }\n}\n\n/**\n * Deletes all entity providers.\n */\nexport async function deleteSaml2Providers() {\n const applicationList = (await getRawProviders()).result;\n const deleteApplicationPromises = [];\n applicationList.forEach((item) => {\n printMessage(`Deleting Application ${item._id}`, 'error');\n deleteApplicationPromises.push(deleteSaml2Provider(item._id));\n });\n const deleteApplicationResult = await Promise.all(deleteApplicationPromises);\n if (deleteApplicationResult.length == applicationList.length) {\n printMessage('SAML Entity cleanup done', 'info');\n }\n}\n\n/**\n * Retrieves all entity providers using the legacy federation enpoints.\n * @returns {Promise} a promise that resolves to an object containing an array of providers\n */\nexport async function getRawProviders() {\n return _getRawProviders();\n}\n\n/**\n * Retrieves all entity providers using the legacy federation enpoints.\n * @param {string} entityId The entity provider id\n * @returns {Promise} a promise that resolves to an object containing an array of providers\n */\nexport async function getRawProvider(entityId: string) {\n return _getRawProvider(entityId);\n}\n\n/**\n * Stores a new SAML2 entity provider\n * @param {string} entityId The entity provider id\n * @param {string} entityData The actual data containing the entity provider configuration\n * @returns {Promise} Promise that resolves to a provider object\n */\nexport async function putRawProvider(entityId: string, entityData) {\n return _putRawProvider(entityId, entityData);\n}\n"],"mappings":"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"}
|