@rockcarver/frodo-lib 2.0.0-13 → 2.0.0-14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build.zip +0 -0
- package/cjs/api/AgentApi.js.map +1 -1
- package/cjs/api/AuthenticateApi.js.map +1 -1
- package/cjs/api/BaseApi.js +1 -1
- package/cjs/api/BaseApi.js.map +1 -1
- package/cjs/api/CirclesOfTrustApi.js.map +1 -1
- package/cjs/api/IdmConfigApi.js.map +1 -1
- package/cjs/api/IdmSystemApi.js.map +1 -1
- package/cjs/api/ManagedObjectApi.js.map +1 -1
- package/cjs/api/NodeApi.js.map +1 -1
- package/cjs/api/OAuth2ClientApi.js.map +1 -1
- package/cjs/api/OAuth2OIDCApi.js.map +1 -1
- package/cjs/api/OAuth2OIDCApi.test.js +2 -2
- package/cjs/api/OAuth2OIDCApi.test.js.map +1 -1
- package/cjs/api/OAuth2ProviderApi.js.map +1 -1
- package/cjs/api/PoliciesApi.js.map +1 -1
- package/cjs/api/PolicySetApi.js.map +1 -1
- package/cjs/api/RealmApi.js.map +1 -1
- package/cjs/api/ResourceTypesApi.js.map +1 -1
- package/cjs/api/Saml2Api.js.map +1 -1
- package/cjs/api/ScriptApi.js.map +1 -1
- package/cjs/api/ServerInfoApi.js.map +1 -1
- package/cjs/api/ServiceApi.js.map +1 -1
- package/cjs/api/SocialIdentityProvidersApi.js.map +1 -1
- package/cjs/api/TreeApi.js.map +1 -1
- package/cjs/api/cloud/AdminFederationProvidersApi.js.map +1 -1
- package/cjs/api/cloud/EnvInfoApi.js.map +1 -1
- package/cjs/api/cloud/FeatureApi.js.map +1 -1
- package/cjs/api/cloud/LogApi.js.map +1 -1
- package/cjs/api/cloud/SecretsApi.js.map +1 -1
- package/cjs/api/cloud/StartupApi.js.map +1 -1
- package/cjs/api/cloud/VariablesApi.js.map +1 -1
- package/cjs/api/utils/ApiUtils.js.map +1 -1
- package/cjs/api/utils/Base64.js +4 -4
- package/cjs/api/utils/Base64.js.map +1 -1
- package/cjs/index.js.map +1 -1
- package/cjs/lib/Frodo.js +9 -2
- package/cjs/lib/Frodo.js.map +1 -1
- package/cjs/lib/FrodoLib.js +17 -20
- package/cjs/lib/FrodoLib.js.map +1 -1
- package/cjs/ops/AdminOps.js.map +1 -1
- package/cjs/ops/AgentOps.js +35 -35
- package/cjs/ops/AgentOps.js.map +1 -1
- package/cjs/ops/AuthenticateOps.js +10 -12
- package/cjs/ops/AuthenticateOps.js.map +1 -1
- package/cjs/ops/CirclesOfTrustOps.js +14 -14
- package/cjs/ops/CirclesOfTrustOps.js.map +1 -1
- package/cjs/ops/ConnectionProfileOps.js +2 -2
- package/cjs/ops/ConnectionProfileOps.js.map +1 -1
- package/cjs/ops/ConnectionProfileOps.test.js +5 -5
- package/cjs/ops/ConnectionProfileOps.test.js.map +1 -1
- package/cjs/ops/EmailTemplateOps.js.map +1 -1
- package/cjs/ops/IdmOps.js.map +1 -1
- package/cjs/ops/IdpOps.js.map +1 -1
- package/cjs/ops/InfoOps.js +3 -4
- package/cjs/ops/InfoOps.js.map +1 -1
- package/cjs/ops/JoseOps.js +30 -0
- package/cjs/ops/JoseOps.js.map +1 -1
- package/cjs/ops/JourneyOps.js +41 -43
- package/cjs/ops/JourneyOps.js.map +1 -1
- package/cjs/ops/JourneyOps.test.js +3 -2
- package/cjs/ops/JourneyOps.test.js.map +1 -1
- package/cjs/ops/ManagedObjectOps.js.map +1 -1
- package/cjs/ops/NodeOps.js.map +1 -1
- package/cjs/ops/OAuth2ClientOps.js +19 -19
- package/cjs/ops/OAuth2ClientOps.js.map +1 -1
- package/cjs/ops/OAuth2OidcOps.js.map +1 -1
- package/cjs/ops/OAuth2ProviderOps.js.map +1 -1
- package/cjs/ops/OpsTypes.js.map +1 -1
- package/cjs/ops/OrganizationOps.js.map +1 -1
- package/cjs/ops/PolicyOps.js +29 -29
- package/cjs/ops/PolicyOps.js.map +1 -1
- package/cjs/ops/PolicySetOps.js +27 -27
- package/cjs/ops/PolicySetOps.js.map +1 -1
- package/cjs/ops/RealmOps.js.map +1 -1
- package/cjs/ops/ResourceTypeOps.js +23 -23
- package/cjs/ops/ResourceTypeOps.js.map +1 -1
- package/cjs/ops/Saml2Ops.js +11 -11
- package/cjs/ops/Saml2Ops.js.map +1 -1
- package/cjs/ops/Saml2Ops.test.js +3 -2
- package/cjs/ops/Saml2Ops.test.js.map +1 -1
- package/cjs/ops/ScriptOps.js +3 -3
- package/cjs/ops/ScriptOps.js.map +1 -1
- package/cjs/ops/ServiceOps.js.map +1 -1
- package/cjs/ops/ThemeOps.js.map +1 -1
- package/cjs/ops/cloud/AdminFederationOps.js.map +1 -1
- package/cjs/ops/cloud/FeatureOps.js.map +1 -1
- package/cjs/ops/cloud/LogOps.js.map +1 -1
- package/cjs/ops/cloud/SecretsOps.js.map +1 -1
- package/cjs/ops/cloud/ServiceAccountOps.js +1 -1
- package/cjs/ops/cloud/ServiceAccountOps.js.map +1 -1
- package/cjs/ops/cloud/StartupOps.js.map +1 -1
- package/cjs/ops/cloud/VariablesOps.js.map +1 -1
- package/cjs/ops/utils/Console.js.map +1 -1
- package/cjs/ops/utils/DataProtection.js +3 -3
- package/cjs/ops/utils/DataProtection.js.map +1 -1
- package/cjs/ops/utils/DataProtection.test.js +1 -1
- package/cjs/ops/utils/DataProtection.test.js.map +1 -1
- package/cjs/ops/utils/ExportImportUtils.js +2 -2
- package/cjs/ops/utils/ExportImportUtils.js.map +1 -1
- package/cjs/ops/utils/OpsUtils.js +105 -25
- package/cjs/ops/utils/OpsUtils.js.map +1 -1
- package/cjs/ops/utils/OpsUtils.test.js +6 -5
- package/cjs/ops/utils/OpsUtils.test.js.map +1 -1
- package/cjs/ops/utils/ScriptValidationUtils.js +33 -2
- package/cjs/ops/utils/ScriptValidationUtils.js.map +1 -1
- package/cjs/ops/utils/ScriptValidationUtils.test.js +1 -1
- package/cjs/ops/utils/ScriptValidationUtils.test.js.map +1 -1
- package/cjs/ops/utils/{Version.js → VersionUtils.js} +1 -1
- package/cjs/ops/utils/VersionUtils.js.map +1 -0
- package/cjs/ops/utils/{Version.test.js → VersionUtils.test.js} +3 -3
- package/cjs/ops/utils/VersionUtils.test.js.map +1 -0
- package/cjs/shared/Constants.js +34 -0
- package/cjs/shared/Constants.js.map +1 -0
- package/cjs/shared/State.js +477 -220
- package/cjs/shared/State.js.map +1 -1
- package/cjs/utils/SetupPollyForFrodoLib.js.map +1 -1
- package/esm/api/AgentApi.js.map +1 -1
- package/esm/api/AuthenticateApi.js.map +1 -1
- package/esm/api/BaseApi.js +2 -2
- package/esm/api/BaseApi.js.map +1 -1
- package/esm/api/CirclesOfTrustApi.js.map +1 -1
- package/esm/api/IdmConfigApi.js.map +1 -1
- package/esm/api/IdmSystemApi.js.map +1 -1
- package/esm/api/ManagedObjectApi.js.map +1 -1
- package/esm/api/NodeApi.js.map +1 -1
- package/esm/api/OAuth2ClientApi.js.map +1 -1
- package/esm/api/OAuth2OIDCApi.js.map +1 -1
- package/esm/api/OAuth2OIDCApi.test.js +2 -2
- package/esm/api/OAuth2OIDCApi.test.js.map +1 -1
- package/esm/api/OAuth2ProviderApi.js.map +1 -1
- package/esm/api/PoliciesApi.js.map +1 -1
- package/esm/api/PolicySetApi.js.map +1 -1
- package/esm/api/RealmApi.js.map +1 -1
- package/esm/api/ResourceTypesApi.js.map +1 -1
- package/esm/api/Saml2Api.js.map +1 -1
- package/esm/api/ScriptApi.js.map +1 -1
- package/esm/api/ServerInfoApi.js.map +1 -1
- package/esm/api/ServiceApi.js.map +1 -1
- package/esm/api/SocialIdentityProvidersApi.js.map +1 -1
- package/esm/api/TreeApi.js.map +1 -1
- package/esm/api/cloud/AdminFederationProvidersApi.js.map +1 -1
- package/esm/api/cloud/EnvInfoApi.js.map +1 -1
- package/esm/api/cloud/FeatureApi.js.map +1 -1
- package/esm/api/cloud/LogApi.js.map +1 -1
- package/esm/api/cloud/SecretsApi.js.map +1 -1
- package/esm/api/cloud/StartupApi.js.map +1 -1
- package/esm/api/cloud/VariablesApi.js.map +1 -1
- package/esm/api/utils/ApiUtils.js.map +1 -1
- package/esm/api/utils/Base64.js +4 -4
- package/esm/api/utils/Base64.js.map +1 -1
- package/esm/index.js +13 -1
- package/esm/index.js.map +1 -1
- package/esm/lib/Frodo.js +9 -2
- package/esm/lib/Frodo.js.map +1 -1
- package/esm/lib/FrodoLib.js +12 -16
- package/esm/lib/FrodoLib.js.map +1 -1
- package/esm/ops/AdminOps.js.map +1 -1
- package/esm/ops/AgentOps.js.map +1 -1
- package/esm/ops/AuthenticateOps.js +10 -10
- package/esm/ops/AuthenticateOps.js.map +1 -1
- package/esm/ops/CirclesOfTrustOps.js.map +1 -1
- package/esm/ops/ConnectionProfileOps.js +2 -2
- package/esm/ops/ConnectionProfileOps.js.map +1 -1
- package/esm/ops/ConnectionProfileOps.test.js +5 -5
- package/esm/ops/ConnectionProfileOps.test.js.map +1 -1
- package/esm/ops/EmailTemplateOps.js.map +1 -1
- package/esm/ops/IdmOps.js.map +1 -1
- package/esm/ops/IdpOps.js.map +1 -1
- package/esm/ops/InfoOps.js +2 -2
- package/esm/ops/InfoOps.js.map +1 -1
- package/esm/ops/JoseOps.js +20 -0
- package/esm/ops/JoseOps.js.map +1 -1
- package/esm/ops/JourneyOps.js +10 -11
- package/esm/ops/JourneyOps.js.map +1 -1
- package/esm/ops/JourneyOps.test.js +2 -2
- package/esm/ops/JourneyOps.test.js.map +1 -1
- package/esm/ops/ManagedObjectOps.js.map +1 -1
- package/esm/ops/NodeOps.js.map +1 -1
- package/esm/ops/OAuth2ClientOps.js.map +1 -1
- package/esm/ops/OAuth2OidcOps.js.map +1 -1
- package/esm/ops/OAuth2ProviderOps.js.map +1 -1
- package/esm/ops/OpsTypes.js.map +1 -1
- package/esm/ops/OrganizationOps.js.map +1 -1
- package/esm/ops/PolicyOps.js.map +1 -1
- package/esm/ops/PolicySetOps.js.map +1 -1
- package/esm/ops/RealmOps.js.map +1 -1
- package/esm/ops/ResourceTypeOps.js.map +1 -1
- package/esm/ops/Saml2Ops.js.map +1 -1
- package/esm/ops/Saml2Ops.test.js +2 -2
- package/esm/ops/Saml2Ops.test.js.map +1 -1
- package/esm/ops/ScriptOps.js.map +1 -1
- package/esm/ops/ServiceOps.js.map +1 -1
- package/esm/ops/ThemeOps.js.map +1 -1
- package/esm/ops/cloud/AdminFederationOps.js.map +1 -1
- package/esm/ops/cloud/FeatureOps.js.map +1 -1
- package/esm/ops/cloud/LogOps.js.map +1 -1
- package/esm/ops/cloud/SecretsOps.js.map +1 -1
- package/esm/ops/cloud/ServiceAccountOps.js +1 -1
- package/esm/ops/cloud/ServiceAccountOps.js.map +1 -1
- package/esm/ops/cloud/StartupOps.js.map +1 -1
- package/esm/ops/cloud/VariablesOps.js.map +1 -1
- package/esm/ops/utils/Console.js.map +1 -1
- package/esm/ops/utils/DataProtection.js +3 -3
- package/esm/ops/utils/DataProtection.js.map +1 -1
- package/esm/ops/utils/DataProtection.test.js +2 -2
- package/esm/ops/utils/DataProtection.test.js.map +1 -1
- package/esm/ops/utils/ExportImportUtils.js +2 -2
- package/esm/ops/utils/ExportImportUtils.js.map +1 -1
- package/esm/ops/utils/OpsUtils.js +96 -22
- package/esm/ops/utils/OpsUtils.js.map +1 -1
- package/esm/ops/utils/OpsUtils.test.js +5 -5
- package/esm/ops/utils/OpsUtils.test.js.map +1 -1
- package/esm/ops/utils/ScriptValidationUtils.js +28 -0
- package/esm/ops/utils/ScriptValidationUtils.js.map +1 -1
- package/esm/ops/utils/ScriptValidationUtils.test.js +2 -2
- package/esm/ops/utils/ScriptValidationUtils.test.js.map +1 -1
- package/esm/ops/utils/{Version.js → VersionUtils.js} +1 -1
- package/esm/ops/utils/VersionUtils.js.map +1 -0
- package/esm/ops/utils/{Version.test.js → VersionUtils.test.js} +2 -2
- package/esm/ops/utils/VersionUtils.test.js.map +1 -0
- package/esm/shared/Constants.js +27 -0
- package/esm/shared/Constants.js.map +1 -0
- package/esm/shared/State.js +481 -226
- package/esm/shared/State.js.map +1 -1
- package/esm/utils/SetupPollyForFrodoLib.js.map +1 -1
- package/package.json +5 -2
- package/types/api/AgentApi.d.ts +1 -1
- package/types/api/AgentApi.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 +1 -1
- package/types/api/BaseApi.d.ts.map +1 -1
- package/types/api/CirclesOfTrustApi.d.ts +1 -1
- package/types/api/CirclesOfTrustApi.d.ts.map +1 -1
- package/types/api/IdmConfigApi.d.ts +1 -1
- package/types/api/IdmConfigApi.d.ts.map +1 -1
- package/types/api/IdmSystemApi.d.ts +1 -1
- package/types/api/IdmSystemApi.d.ts.map +1 -1
- package/types/api/ManagedObjectApi.d.ts +1 -1
- package/types/api/ManagedObjectApi.d.ts.map +1 -1
- package/types/api/NodeApi.d.ts +1 -1
- package/types/api/NodeApi.d.ts.map +1 -1
- package/types/api/OAuth2ClientApi.d.ts +1 -1
- package/types/api/OAuth2ClientApi.d.ts.map +1 -1
- package/types/api/OAuth2OIDCApi.d.ts +1 -1
- package/types/api/OAuth2OIDCApi.d.ts.map +1 -1
- package/types/api/OAuth2ProviderApi.d.ts +1 -1
- package/types/api/OAuth2ProviderApi.d.ts.map +1 -1
- package/types/api/PoliciesApi.d.ts +1 -1
- package/types/api/PoliciesApi.d.ts.map +1 -1
- package/types/api/PolicySetApi.d.ts +1 -1
- package/types/api/PolicySetApi.d.ts.map +1 -1
- package/types/api/RealmApi.d.ts +1 -1
- package/types/api/RealmApi.d.ts.map +1 -1
- package/types/api/ResourceTypesApi.d.ts +1 -1
- package/types/api/ResourceTypesApi.d.ts.map +1 -1
- package/types/api/Saml2Api.d.ts +1 -1
- package/types/api/Saml2Api.d.ts.map +1 -1
- package/types/api/ScriptApi.d.ts +1 -1
- package/types/api/ScriptApi.d.ts.map +1 -1
- package/types/api/ServerInfoApi.d.ts +1 -1
- package/types/api/ServerInfoApi.d.ts.map +1 -1
- package/types/api/ServiceApi.d.ts +1 -1
- package/types/api/ServiceApi.d.ts.map +1 -1
- package/types/api/SocialIdentityProvidersApi.d.ts +1 -1
- package/types/api/SocialIdentityProvidersApi.d.ts.map +1 -1
- package/types/api/TreeApi.d.ts +1 -1
- package/types/api/TreeApi.d.ts.map +1 -1
- package/types/api/cloud/AdminFederationProvidersApi.d.ts +1 -1
- package/types/api/cloud/AdminFederationProvidersApi.d.ts.map +1 -1
- package/types/api/cloud/EnvInfoApi.d.ts +1 -1
- package/types/api/cloud/EnvInfoApi.d.ts.map +1 -1
- package/types/api/cloud/FeatureApi.d.ts +1 -1
- package/types/api/cloud/FeatureApi.d.ts.map +1 -1
- package/types/api/cloud/LogApi.d.ts +1 -1
- package/types/api/cloud/LogApi.d.ts.map +1 -1
- package/types/api/cloud/SecretsApi.d.ts +1 -1
- package/types/api/cloud/SecretsApi.d.ts.map +1 -1
- package/types/api/cloud/StartupApi.d.ts +1 -1
- package/types/api/cloud/StartupApi.d.ts.map +1 -1
- package/types/api/cloud/VariablesApi.d.ts +1 -1
- package/types/api/cloud/VariablesApi.d.ts.map +1 -1
- package/types/api/utils/ApiUtils.d.ts +1 -1
- package/types/api/utils/ApiUtils.d.ts.map +1 -1
- package/types/api/utils/Base64.d.ts +6 -6
- package/types/api/utils/Base64.d.ts.map +1 -1
- package/types/index.d.ts +37 -0
- package/types/index.d.ts.map +1 -1
- package/types/lib/Frodo.d.ts +13 -1135
- package/types/lib/Frodo.d.ts.map +1 -1
- package/types/lib/FrodoLib.d.ts +79 -368
- package/types/lib/FrodoLib.d.ts.map +1 -1
- package/types/ops/AdminOps.d.ts +3 -2
- package/types/ops/AdminOps.d.ts.map +1 -1
- package/types/ops/AgentOps.d.ts +3 -2
- package/types/ops/AgentOps.d.ts.map +1 -1
- package/types/ops/AuthenticateOps.d.ts +3 -2
- package/types/ops/AuthenticateOps.d.ts.map +1 -1
- package/types/ops/CirclesOfTrustOps.d.ts +3 -2
- package/types/ops/CirclesOfTrustOps.d.ts.map +1 -1
- package/types/ops/ConnectionProfileOps.d.ts +3 -2
- package/types/ops/ConnectionProfileOps.d.ts.map +1 -1
- package/types/ops/EmailTemplateOps.d.ts +3 -2
- package/types/ops/EmailTemplateOps.d.ts.map +1 -1
- package/types/ops/IdmOps.d.ts +3 -2
- package/types/ops/IdmOps.d.ts.map +1 -1
- package/types/ops/IdpOps.d.ts +3 -2
- package/types/ops/IdpOps.d.ts.map +1 -1
- package/types/ops/InfoOps.d.ts +3 -2
- package/types/ops/InfoOps.d.ts.map +1 -1
- package/types/ops/JoseOps.d.ts +17 -1
- package/types/ops/JoseOps.d.ts.map +1 -1
- package/types/ops/JourneyOps.d.ts +16 -10
- package/types/ops/JourneyOps.d.ts.map +1 -1
- package/types/ops/ManagedObjectOps.d.ts +3 -2
- package/types/ops/ManagedObjectOps.d.ts.map +1 -1
- package/types/ops/NodeOps.d.ts +3 -2
- package/types/ops/NodeOps.d.ts.map +1 -1
- package/types/ops/OAuth2ClientOps.d.ts +3 -2
- package/types/ops/OAuth2ClientOps.d.ts.map +1 -1
- package/types/ops/OAuth2OidcOps.d.ts +6 -5
- package/types/ops/OAuth2OidcOps.d.ts.map +1 -1
- package/types/ops/OAuth2ProviderOps.d.ts +3 -2
- package/types/ops/OAuth2ProviderOps.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 +3 -2
- package/types/ops/OrganizationOps.d.ts.map +1 -1
- package/types/ops/PolicyOps.d.ts +3 -2
- package/types/ops/PolicyOps.d.ts.map +1 -1
- package/types/ops/PolicySetOps.d.ts +3 -2
- package/types/ops/PolicySetOps.d.ts.map +1 -1
- package/types/ops/RealmOps.d.ts +3 -2
- package/types/ops/RealmOps.d.ts.map +1 -1
- package/types/ops/ResourceTypeOps.d.ts +3 -2
- package/types/ops/ResourceTypeOps.d.ts.map +1 -1
- package/types/ops/Saml2Ops.d.ts +3 -2
- package/types/ops/Saml2Ops.d.ts.map +1 -1
- package/types/ops/ScriptOps.d.ts +3 -2
- package/types/ops/ScriptOps.d.ts.map +1 -1
- package/types/ops/ServiceOps.d.ts +4 -3
- package/types/ops/ServiceOps.d.ts.map +1 -1
- package/types/ops/ThemeOps.d.ts +3 -2
- package/types/ops/ThemeOps.d.ts.map +1 -1
- package/types/ops/cloud/AdminFederationOps.d.ts +3 -2
- package/types/ops/cloud/AdminFederationOps.d.ts.map +1 -1
- package/types/ops/cloud/FeatureOps.d.ts +3 -2
- package/types/ops/cloud/FeatureOps.d.ts.map +1 -1
- package/types/ops/cloud/LogOps.d.ts +3 -2
- package/types/ops/cloud/LogOps.d.ts.map +1 -1
- package/types/ops/cloud/SecretsOps.d.ts +3 -2
- package/types/ops/cloud/SecretsOps.d.ts.map +1 -1
- package/types/ops/cloud/ServiceAccountOps.d.ts +7 -6
- package/types/ops/cloud/ServiceAccountOps.d.ts.map +1 -1
- package/types/ops/cloud/StartupOps.d.ts +3 -2
- package/types/ops/cloud/StartupOps.d.ts.map +1 -1
- package/types/ops/cloud/VariablesOps.d.ts +3 -2
- package/types/ops/cloud/VariablesOps.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 +1 -1
- package/types/ops/utils/DataProtection.d.ts.map +1 -1
- package/types/ops/utils/ExportImportUtils.d.ts +3 -2
- package/types/ops/utils/ExportImportUtils.d.ts.map +1 -1
- package/types/ops/utils/OpsUtils.d.ts +73 -17
- package/types/ops/utils/OpsUtils.d.ts.map +1 -1
- package/types/ops/utils/ScriptValidationUtils.d.ts +20 -1
- package/types/ops/utils/ScriptValidationUtils.d.ts.map +1 -1
- package/types/ops/utils/{Version.d.ts → VersionUtils.d.ts} +4 -4
- package/types/ops/utils/VersionUtils.d.ts.map +1 -0
- package/types/shared/Constants.d.ts +34 -0
- package/types/shared/Constants.d.ts.map +1 -0
- package/types/shared/State.d.ts +38 -38
- package/types/shared/State.d.ts.map +1 -1
- package/types/utils/SetupPollyForFrodoLib.d.ts +1 -1
- package/types/utils/SetupPollyForFrodoLib.d.ts.map +1 -1
- package/cjs/ops/utils/Version.js.map +0 -1
- package/cjs/ops/utils/Version.test.js.map +0 -1
- package/cjs/ops/utils/Wordwrap.js +0 -12
- package/cjs/ops/utils/Wordwrap.js.map +0 -1
- package/cjs/ops/utils/Wordwrap.test.js +0 -22
- package/cjs/ops/utils/Wordwrap.test.js.map +0 -1
- package/cjs/storage/StaticStorage.js +0 -31
- package/cjs/storage/StaticStorage.js.map +0 -1
- package/esm/ops/utils/Version.js.map +0 -1
- package/esm/ops/utils/Version.test.js.map +0 -1
- package/esm/ops/utils/Wordwrap.js +0 -5
- package/esm/ops/utils/Wordwrap.js.map +0 -1
- package/esm/ops/utils/Wordwrap.test.js +0 -19
- package/esm/ops/utils/Wordwrap.test.js.map +0 -1
- package/esm/storage/StaticStorage.js +0 -15
- package/esm/storage/StaticStorage.js.map +0 -1
- package/types/ops/utils/Version.d.ts.map +0 -1
- package/types/ops/utils/Wordwrap.d.ts +0 -2
- package/types/ops/utils/Wordwrap.d.ts.map +0 -1
- package/types/storage/StaticStorage.d.ts +0 -15
- package/types/storage/StaticStorage.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConnectionProfileOps.js","names":["_fs","_interopRequireDefault","require","_os","_path","_DataProtection","_Console","_StaticStorage","_JoseOps","_ServiceAccountOps","_ExportImportUtils","_OpsUtils","obj","__esModule","default","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","asyncGeneratorStep","gen","resolve","reject","_next","_throw","info","error","done","Promise","then","_asyncToGenerator","fn","self","args","err","_default","state","getConnectionProfilesPath","findConnectionProfiles","connectionProfiles","host","initConnectionProfiles","getConnectionProfileByHost","getConnectionProfile","saveConnectionProfile","deleteConnectionProfile","addNewServiceAccount","exports","fileOptions","indentation","legacyProfileFilename","newProfileFilename","_ref","process","env","FRODO_CONNECTION_PROFILES_PATH_KEY","concat","os","homedir","_ref2","profiles","tenant","debugMessage","message","includes","foundProfile","migrateFromLegacyProfile","legacyPath","newPath","fs","existsSync","writeFileSync","JSON","stringify","copyFileSync","renameSync","_x","_initConnectionProfiles","_ref3","dataProtection","DataProtection","pathToMasterKey","getMasterKeyPath","filename","folderName","path","dirname","mkdirSync","recursive","data","readFileSync","connectionsData","parse","convert","conn","encodedPassword","encrypt","encodedLogApiSecret","encodedSvcacctJwk","_x2","_getConnectionProfileByHost","_ref4","printMessage","type","p","username","password","decrypt","logApiKey","logApiSecret","authenticationService","authenticationHeaderOverrides","svcacctName","svcacctId","svcacctJwk","e","_x3","_getConnectionProfile","_ref5","getHost","_x4","_saveConnectionProfile","_ref6","profile","statSync","found","setHost","verboseMessage","isValidUrl","getUsername","getPassword","getLogApiKey","getLogApiSecret","getServiceAccountId","getServiceAccount","serviceAccountId","name","getServiceAccountJwk","getAuthenticationService","getAuthenticationHeaderOverrides","entries","orderedProfiles","sort","reduce","saveJsonToFile","includeMeta","_ref7","stat","code","_x5","_addNewServiceAccount","_ref8","Date","getTime","description","scope","jwkPrivate","createJwkRsa","jwkPublic","getJwkRsaPublic","jwks","createJwks","sa","createServiceAccount","accountStatus","scopes","_id","setServiceAccountId","setServiceAccountJwk"],"sources":["../../src/ops/ConnectionProfileOps.ts"],"sourcesContent":["import fs from 'fs';\nimport os from 'os';\nimport path from 'path';\nimport DataProtection from './utils/DataProtection';\nimport { debugMessage, printMessage, verboseMessage } from './utils/Console';\nimport { FRODO_CONNECTION_PROFILES_PATH_KEY } from '../storage/StaticStorage';\nimport { createJwkRsa, createJwks, getJwkRsaPublic, JwkRsa } from './JoseOps';\nimport {\n createServiceAccount,\n getServiceAccount,\n} from './cloud/ServiceAccountOps';\nimport { IdObjectSkeletonInterface } from '../api/ApiTypes';\nimport { saveJsonToFile } from './utils/ExportImportUtils';\nimport { isValidUrl } from './utils/OpsUtils';\nimport State from '../shared/State';\n\nexport default (state: State) => {\n return {\n /**\n * Get connection profiles file name\n * @returns {string} connection profiles file name\n */\n getConnectionProfilesPath(): string {\n return getConnectionProfilesPath({ state });\n },\n\n /**\n * Find connection profiles\n * @param {ConnectionsFileInterface} connectionProfiles connection profile object\n * @param {string} host host url or unique substring\n * @returns {SecureConnectionProfileInterface[]} Array of connection profiles\n */\n findConnectionProfiles(\n connectionProfiles: ConnectionsFileInterface,\n host: string\n ): SecureConnectionProfileInterface[] {\n return findConnectionProfiles({\n connectionProfiles,\n host,\n state,\n });\n },\n\n /**\n * Initialize connection profiles\n *\n * This method is called from app.ts and runs before any of the message handlers are registered.\n * Therefore none of the Console message functions will produce any output.\n */\n async initConnectionProfiles() {\n initConnectionProfiles({ state });\n },\n\n /**\n * Get connection profile by host\n * @param {String} host host tenant host url or unique substring\n * @returns {Object} connection profile or null\n */\n async getConnectionProfileByHost(\n host: string\n ): Promise<ConnectionProfileInterface> {\n return getConnectionProfileByHost({ host, state });\n },\n\n /**\n * Get connection profile\n * @returns {Object} connection profile or null\n */\n async getConnectionProfile(): Promise<ConnectionProfileInterface> {\n return getConnectionProfile({ state });\n },\n\n /**\n * Save connection profile\n * @param {string} host host url for new profiles or unique substring for existing profiles\n * @returns {Promise<boolean>} true if the operation succeeded, false otherwise\n */\n async saveConnectionProfile(host: string): Promise<boolean> {\n return saveConnectionProfile({ host, state });\n },\n\n /**\n * Delete connection profile\n * @param {string} host host tenant host url or unique substring\n */\n deleteConnectionProfile(host: string): void {\n deleteConnectionProfile({ host, state });\n },\n\n /**\n * Create a new service account using auto-generated parameters\n * @returns {Promise<IdObjectSkeletonInterface>} A promise resolving to a service account object\n */\n async addNewServiceAccount(): Promise<IdObjectSkeletonInterface> {\n return addNewServiceAccount({ state });\n },\n };\n};\n\nconst fileOptions = {\n indentation: 4,\n};\n\nexport interface SecureConnectionProfileInterface {\n tenant: string;\n username?: string | null;\n encodedPassword?: string | null;\n logApiKey?: string | null;\n encodedLogApiSecret?: string | null;\n authenticationService?: string | null;\n authenticationHeaderOverrides?: Record<string, string>;\n svcacctId?: string | null;\n encodedSvcacctJwk?: string | null;\n svcacctName?: string | null;\n}\n\nexport interface ConnectionProfileInterface {\n tenant: string;\n username?: string | null;\n password?: string | null;\n logApiKey?: string | null;\n logApiSecret?: string | null;\n authenticationService?: string | null;\n authenticationHeaderOverrides?: Record<string, string>;\n svcacctId?: string | null;\n svcacctJwk?: JwkRsa;\n svcacctName?: string | null;\n}\n\nexport interface ConnectionsFileInterface {\n [key: string]: SecureConnectionProfileInterface;\n}\n\nconst legacyProfileFilename = '.frodorc';\nconst newProfileFilename = 'Connections.json';\n\n/**\n * Get connection profiles file name\n * @param {State} state library state\n * @returns {String} connection profiles file name\n */\nexport function getConnectionProfilesPath({ state }: { state: State }): string {\n return (\n state.getConnectionProfilesPath() ||\n process.env[FRODO_CONNECTION_PROFILES_PATH_KEY] ||\n `${os.homedir()}/.frodo/${newProfileFilename}`\n );\n}\n\n/**\n * Find connection profiles\n * @param {ConnectionsFileInterface} connectionProfiles connection profile object\n * @param {string} host host url or unique substring\n * @param {State} state library state\n * @returns {SecureConnectionProfileInterface[]} Array of connection profiles\n */\nfunction findConnectionProfiles({\n connectionProfiles,\n host,\n state,\n}: {\n connectionProfiles: ConnectionsFileInterface;\n host: string;\n state: State;\n}): SecureConnectionProfileInterface[] {\n const profiles: SecureConnectionProfileInterface[] = [];\n for (const tenant in connectionProfiles) {\n debugMessage({\n message: `ConnectionProfileOps.findConnectionProfiles: tenant=${tenant}`,\n state,\n });\n if (tenant.includes(host)) {\n debugMessage({\n message: `ConnectionProfileOps.findConnectionProfiles: '${host}' identifies '${tenant}', including in result set`,\n state,\n });\n const foundProfile = { ...connectionProfiles[tenant] };\n foundProfile.tenant = tenant;\n profiles.push(foundProfile);\n }\n }\n return profiles;\n}\n\n/**\n * Migrate from .frodorc to Connections.json\n */\nfunction migrateFromLegacyProfile() {\n const legacyPath = `${os.homedir()}/.frodo/${legacyProfileFilename}`;\n const newPath = `${os.homedir()}/.frodo/${newProfileFilename}`;\n if (!fs.existsSync(legacyPath) && !fs.existsSync(newPath)) {\n // no connections file (old or new), create empty new one\n fs.writeFileSync(\n newPath,\n JSON.stringify({}, null, fileOptions.indentation)\n );\n } else if (fs.existsSync(legacyPath) && !fs.existsSync(newPath)) {\n // old exists, new one does not - so copy old to new one\n fs.copyFileSync(legacyPath, newPath);\n // for now, just add a \"deprecated\" suffix. May delete the old file\n // in a future release\n fs.renameSync(legacyPath, `${legacyPath}.deprecated`);\n }\n // in other cases, where\n // (both old and new exist) OR (only new one exists) don't do anything\n}\n\n/**\n * Initialize connection profiles\n *\n * This method is called from app.ts and runs before any of the message handlers are registered.\n * Therefore none of the Console message functions will produce any output.\n * @param {State} state library state\n */\nexport async function initConnectionProfiles({ state }: { state: State }) {\n const dataProtection = new DataProtection({\n pathToMasterKey: state.getMasterKeyPath(),\n state,\n });\n // create connections.json file if it doesn't exist\n const filename = getConnectionProfilesPath({ state });\n const folderName = path.dirname(filename);\n if (!fs.existsSync(folderName)) {\n fs.mkdirSync(folderName, { recursive: true });\n if (!fs.existsSync(filename)) {\n fs.writeFileSync(\n filename,\n JSON.stringify({}, null, fileOptions.indentation)\n );\n }\n }\n // encrypt the password and logApiSecret from clear text to aes-256-GCM\n else {\n migrateFromLegacyProfile();\n const data = fs.readFileSync(filename, 'utf8');\n const connectionsData: ConnectionsFileInterface = JSON.parse(data);\n let convert = false;\n for (const conn of Object.keys(connectionsData)) {\n if (connectionsData[conn]['password']) {\n convert = true;\n connectionsData[conn].encodedPassword = await dataProtection.encrypt(\n connectionsData[conn]['password']\n );\n delete connectionsData[conn]['password'];\n }\n if (connectionsData[conn]['logApiSecret']) {\n convert = true;\n connectionsData[conn].encodedLogApiSecret =\n await dataProtection.encrypt(connectionsData[conn]['logApiSecret']);\n delete connectionsData[conn]['logApiSecret'];\n }\n if (connectionsData[conn]['svcacctJwk']) {\n convert = true;\n connectionsData[conn].encodedSvcacctJwk = await dataProtection.encrypt(\n connectionsData[conn]['svcacctJwk']\n );\n delete connectionsData[conn]['svcacctJwk'];\n }\n }\n if (convert) {\n fs.writeFileSync(\n filename,\n JSON.stringify(connectionsData, null, fileOptions.indentation)\n );\n }\n }\n}\n\n/**\n * Get connection profile by host\n * @param {String} host host tenant host url or unique substring\n * @param {State} state library state\n * @returns {Object} connection profile or null\n */\nexport async function getConnectionProfileByHost({\n host,\n state,\n}: {\n host: string;\n state: State;\n}): Promise<ConnectionProfileInterface> {\n try {\n const dataProtection = new DataProtection({\n pathToMasterKey: state.getMasterKeyPath(),\n state,\n });\n const filename = getConnectionProfilesPath({ state });\n const connectionsData = JSON.parse(fs.readFileSync(filename, 'utf8'));\n const profiles = findConnectionProfiles({\n connectionProfiles: connectionsData,\n host,\n state,\n });\n if (profiles.length == 0) {\n printMessage({\n message: `Profile for ${host} not found. Please specify credentials on command line`,\n type: 'error',\n state,\n });\n return null;\n }\n if (profiles.length > 1) {\n printMessage({\n message: `Multiple matching profiles found.`,\n type: 'error',\n state,\n });\n profiles.forEach((p) => {\n printMessage({ message: `- ${p.tenant}`, type: 'error', state });\n });\n printMessage({\n message: `Please specify a unique sub-string`,\n type: 'error',\n state,\n });\n return null;\n }\n return {\n tenant: profiles[0].tenant,\n username: profiles[0].username ? profiles[0].username : null,\n password: profiles[0].encodedPassword\n ? await dataProtection.decrypt(profiles[0].encodedPassword)\n : null,\n logApiKey: profiles[0].logApiKey ? profiles[0].logApiKey : null,\n logApiSecret: profiles[0].encodedLogApiSecret\n ? await dataProtection.decrypt(profiles[0].encodedLogApiSecret)\n : null,\n authenticationService: profiles[0].authenticationService\n ? profiles[0].authenticationService\n : null,\n authenticationHeaderOverrides: profiles[0].authenticationHeaderOverrides\n ? profiles[0].authenticationHeaderOverrides\n : {},\n svcacctName: profiles[0].svcacctName ? profiles[0].svcacctName : null,\n svcacctId: profiles[0].svcacctId ? profiles[0].svcacctId : null,\n svcacctJwk: profiles[0].encodedSvcacctJwk\n ? await dataProtection.decrypt(profiles[0].encodedSvcacctJwk)\n : null,\n };\n } catch (e) {\n printMessage({\n message: `Can not read saved connection info, please specify credentials on command line: ${e}`,\n type: 'error',\n state,\n });\n return null;\n }\n}\n\n/**\n * Get connection profile\n * @returns {Object} connection profile or null\n */\nexport async function getConnectionProfile({\n state,\n}: {\n state: State;\n}): Promise<ConnectionProfileInterface> {\n return getConnectionProfileByHost({ host: state.getHost(), state });\n}\n\n/**\n * Save connection profile\n * @param {string} host host url for new profiles or unique substring for existing profiles\n * @returns {Promise<boolean>} true if the operation succeeded, false otherwise\n */\nexport async function saveConnectionProfile({\n host,\n state,\n}: {\n host: string;\n state: State;\n}): Promise<boolean> {\n debugMessage({\n message: `ConnectionProfileOps.saveConnectionProfile: start`,\n state,\n });\n const dataProtection = new DataProtection({\n pathToMasterKey: state.getMasterKeyPath(),\n state,\n });\n const filename = getConnectionProfilesPath({ state });\n debugMessage({ message: `Saving connection profile in ${filename}`, state });\n let profiles: ConnectionsFileInterface = {};\n let profile: SecureConnectionProfileInterface = { tenant: '' };\n try {\n fs.statSync(filename);\n const data = fs.readFileSync(filename, 'utf8');\n profiles = JSON.parse(data);\n\n // find tenant\n const found = findConnectionProfiles({\n connectionProfiles: profiles,\n host,\n state,\n });\n\n // replace tenant in session with real tenant url if necessary\n if (found.length === 1) {\n profile = found[0];\n state.setHost(profile.tenant);\n verboseMessage({ message: `Existing profile: ${profile.tenant}`, state });\n debugMessage({ message: profile, state });\n }\n\n // connection profile not found, validate host is a real URL\n if (found.length === 0) {\n if (isValidUrl(host)) {\n state.setHost(host);\n debugMessage({ message: `New profile: ${host}`, state });\n } else {\n printMessage({\n message: `No existing profile found matching '${host}'. Provide a valid URL as the host argument to create a new profile.`,\n type: 'error',\n state,\n });\n debugMessage({\n message: `ConnectionProfileOps.saveConnectionProfile: end [false]`,\n state,\n });\n return false;\n }\n }\n } catch (error) {\n debugMessage({\n message: `New profiles file ${filename} with new profile ${host}`,\n state,\n });\n }\n\n // user account\n if (state.getUsername()) profile.username = state.getUsername();\n if (state.getPassword())\n profile.encodedPassword = await dataProtection.encrypt(state.getPassword());\n\n // log API\n if (state.getLogApiKey()) profile.logApiKey = state.getLogApiKey();\n if (state.getLogApiSecret())\n profile.encodedLogApiSecret = await dataProtection.encrypt(\n state.getLogApiSecret()\n );\n\n // service account\n if (state.getServiceAccountId()) {\n profile.svcacctId = state.getServiceAccountId();\n profile.svcacctName = (\n await getServiceAccount({\n serviceAccountId: state.getServiceAccountId(),\n state,\n })\n ).name;\n }\n if (state.getServiceAccountJwk())\n profile.encodedSvcacctJwk = await dataProtection.encrypt(\n state.getServiceAccountJwk()\n );\n // update existing service account profile\n if (profile.svcacctId && !profile.svcacctName) {\n profile.svcacctName = (\n await getServiceAccount({ serviceAccountId: profile.svcacctId, state })\n ).name;\n debugMessage({\n message: `ConnectionProfileOps.saveConnectionProfile: added missing service account name`,\n state,\n });\n }\n\n // advanced settings\n if (state.getAuthenticationService()) {\n profile.authenticationService = state.getAuthenticationService();\n printMessage({\n message:\n 'Advanced setting: Authentication Service: ' +\n state.getAuthenticationService(),\n type: 'info',\n state,\n });\n }\n if (\n state.getAuthenticationHeaderOverrides() &&\n Object.entries(state.getAuthenticationHeaderOverrides()).length\n ) {\n profile.authenticationHeaderOverrides =\n state.getAuthenticationHeaderOverrides();\n printMessage({\n message: 'Advanced setting: Authentication Header Overrides: ',\n type: 'info',\n state,\n });\n printMessage({\n message: state.getAuthenticationHeaderOverrides(),\n type: 'info',\n state,\n });\n }\n\n // remove the helper key 'tenant'\n delete profile.tenant;\n\n // update profiles\n profiles[state.getHost()] = profile;\n\n // sort profiles\n const orderedProfiles = Object.keys(profiles)\n .sort()\n .reduce((obj, key) => {\n obj[key] = profiles[key];\n return obj;\n }, {});\n\n // save profiles\n saveJsonToFile({\n data: orderedProfiles,\n filename,\n includeMeta: false,\n state,\n });\n verboseMessage({\n message: `Saved connection profile ${state.getHost()} in ${filename}`,\n state,\n });\n debugMessage({\n message: `ConnectionProfileOps.saveConnectionProfile: end [true]`,\n state,\n });\n return true;\n}\n\n/**\n * Delete connection profile\n * @param {String} host host tenant host url or unique substring\n */\nexport function deleteConnectionProfile({\n host,\n state,\n}: {\n host: string;\n state: State;\n}) {\n const filename = getConnectionProfilesPath({ state });\n let connectionsData: ConnectionsFileInterface = {};\n fs.stat(filename, (err) => {\n if (err == null) {\n const data = fs.readFileSync(filename, 'utf8');\n connectionsData = JSON.parse(data);\n const profiles = findConnectionProfiles({\n connectionProfiles: connectionsData,\n host,\n state,\n });\n if (profiles.length == 1) {\n delete connectionsData[profiles[0].tenant];\n fs.writeFileSync(filename, JSON.stringify(connectionsData, null, 2));\n printMessage({\n message: `Deleted connection profile ${profiles[0].tenant}`,\n state,\n });\n } else {\n if (profiles.length > 1) {\n printMessage({\n message: `Multiple matching profiles found.`,\n type: 'error',\n state,\n });\n profiles.forEach((p) => {\n printMessage({ message: `- ${p.tenant}`, type: 'error', state });\n });\n printMessage({\n message: `Please specify a unique sub-string`,\n type: 'error',\n state,\n });\n return null;\n } else {\n printMessage({\n message: `No connection profile ${host} found`,\n state,\n });\n }\n }\n } else if (err.code === 'ENOENT') {\n printMessage({\n message: `Connection profile file ${filename} not found`,\n state,\n });\n } else {\n printMessage({\n message: `Error in deleting connection profile: ${err.code}`,\n type: 'error',\n state,\n });\n }\n });\n}\n\n/**\n * Create a new service account using auto-generated parameters\n * @returns {Promise<IdObjectSkeletonInterface>} A promise resolving to a service account object\n */\nexport async function addNewServiceAccount({\n state,\n}: {\n state: State;\n}): Promise<IdObjectSkeletonInterface> {\n debugMessage({\n message: `ConnectionProfileOps.addNewServiceAccount: start`,\n state,\n });\n const name = `Frodo-SA-${new Date().getTime()}`;\n debugMessage({\n message: `ConnectionProfileOps.addNewServiceAccount: name=${name}...`,\n state,\n });\n const description = `${state.getUsername()}'s Frodo Service Account`;\n const scope = ['fr:am:*', 'fr:idm:*', 'fr:idc:esv:*'];\n const jwkPrivate = await createJwkRsa();\n const jwkPublic = await getJwkRsaPublic(jwkPrivate);\n const jwks = createJwks(jwkPublic);\n const sa = await createServiceAccount({\n name,\n description,\n accountStatus: 'Active',\n scopes: scope,\n jwks,\n state,\n });\n debugMessage({\n message: `ConnectionProfileOps.addNewServiceAccount: id=${sa._id}`,\n state,\n });\n state.setServiceAccountId(sa._id);\n state.setServiceAccountJwk(jwkPrivate);\n debugMessage({\n message: `ConnectionProfileOps.addNewServiceAccount: end`,\n state,\n });\n return sa;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ConnectionProfileOps.js","names":["_fs","_interopRequireDefault","require","_os","_path","_DataProtection","_Console","_Constants","_JoseOps","_ServiceAccountOps","_ExportImportUtils","_OpsUtils","obj","__esModule","default","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","asyncGeneratorStep","gen","resolve","reject","_next","_throw","info","error","done","Promise","then","_asyncToGenerator","fn","self","args","err","_default","state","getConnectionProfilesPath","findConnectionProfiles","connectionProfiles","host","initConnectionProfiles","getConnectionProfileByHost","getConnectionProfile","saveConnectionProfile","deleteConnectionProfile","addNewServiceAccount","exports","fileOptions","indentation","legacyProfileFilename","newProfileFilename","_ref","process","env","Constants","FRODO_CONNECTION_PROFILES_PATH_KEY","concat","os","homedir","_ref2","profiles","tenant","debugMessage","message","includes","foundProfile","migrateFromLegacyProfile","legacyPath","newPath","fs","existsSync","writeFileSync","JSON","stringify","copyFileSync","renameSync","_x","_initConnectionProfiles","_ref3","dataProtection","DataProtection","pathToMasterKey","getMasterKeyPath","filename","folderName","path","dirname","mkdirSync","recursive","data","readFileSync","connectionsData","parse","convert","conn","encodedPassword","encrypt","encodedLogApiSecret","encodedSvcacctJwk","_x2","_getConnectionProfileByHost","_ref4","printMessage","type","p","username","password","decrypt","logApiKey","logApiSecret","authenticationService","authenticationHeaderOverrides","svcacctName","svcacctId","svcacctJwk","e","_x3","_getConnectionProfile","_ref5","getHost","_x4","_saveConnectionProfile","_ref6","profile","statSync","found","setHost","verboseMessage","isValidUrl","getUsername","getPassword","getLogApiKey","getLogApiSecret","getServiceAccountId","getServiceAccount","serviceAccountId","name","getServiceAccountJwk","getAuthenticationService","getAuthenticationHeaderOverrides","entries","orderedProfiles","sort","reduce","saveJsonToFile","includeMeta","_ref7","stat","code","_x5","_addNewServiceAccount","_ref8","Date","getTime","description","scope","jwkPrivate","createJwkRsa","jwkPublic","getJwkRsaPublic","jwks","createJwks","sa","createServiceAccount","accountStatus","scopes","_id","setServiceAccountId","setServiceAccountJwk"],"sources":["../../src/ops/ConnectionProfileOps.ts"],"sourcesContent":["import fs from 'fs';\nimport os from 'os';\nimport path from 'path';\nimport DataProtection from './utils/DataProtection';\nimport { debugMessage, printMessage, verboseMessage } from './utils/Console';\nimport Constants from '../shared/Constants';\nimport { createJwkRsa, createJwks, getJwkRsaPublic, JwkRsa } from './JoseOps';\nimport {\n createServiceAccount,\n getServiceAccount,\n} from './cloud/ServiceAccountOps';\nimport { IdObjectSkeletonInterface } from '../api/ApiTypes';\nimport { saveJsonToFile } from './utils/ExportImportUtils';\nimport { isValidUrl } from './utils/OpsUtils';\nimport { State } from '../shared/State';\n\nexport type ConnectionProfile = {\n /**\n * Get connection profiles file name\n * @returns {string} connection profiles file name\n */\n getConnectionProfilesPath(): string;\n /**\n * Find connection profiles\n * @param {ConnectionsFileInterface} connectionProfiles connection profile object\n * @param {string} host host url or unique substring\n * @returns {SecureConnectionProfileInterface[]} Array of connection profiles\n */\n findConnectionProfiles(\n connectionProfiles: ConnectionsFileInterface,\n host: string\n ): SecureConnectionProfileInterface[];\n /**\n * Initialize connection profiles\n *\n * This method is called from app.ts and runs before any of the message handlers are registered.\n * Therefore none of the Console message functions will produce any output.\n */\n initConnectionProfiles(): Promise<void>;\n /**\n * Get connection profile by host\n * @param {String} host host tenant host url or unique substring\n * @returns {Object} connection profile or null\n */\n getConnectionProfileByHost(host: string): Promise<ConnectionProfileInterface>;\n /**\n * Get connection profile\n * @returns {Object} connection profile or null\n */\n getConnectionProfile(): Promise<ConnectionProfileInterface>;\n /**\n * Save connection profile\n * @param {string} host host url for new profiles or unique substring for existing profiles\n * @returns {Promise<boolean>} true if the operation succeeded, false otherwise\n */\n saveConnectionProfile(host: string): Promise<boolean>;\n /**\n * Delete connection profile\n * @param {string} host host tenant host url or unique substring\n */\n deleteConnectionProfile(host: string): void;\n /**\n * Create a new service account using auto-generated parameters\n * @returns {Promise<IdObjectSkeletonInterface>} A promise resolving to a service account object\n */\n addNewServiceAccount(): Promise<IdObjectSkeletonInterface>;\n};\n\nexport default (state: State): ConnectionProfile => {\n return {\n /**\n * Get connection profiles file name\n * @returns {string} connection profiles file name\n */\n getConnectionProfilesPath(): string {\n return getConnectionProfilesPath({ state });\n },\n\n /**\n * Find connection profiles\n * @param {ConnectionsFileInterface} connectionProfiles connection profile object\n * @param {string} host host url or unique substring\n * @returns {SecureConnectionProfileInterface[]} Array of connection profiles\n */\n findConnectionProfiles(\n connectionProfiles: ConnectionsFileInterface,\n host: string\n ): SecureConnectionProfileInterface[] {\n return findConnectionProfiles({\n connectionProfiles,\n host,\n state,\n });\n },\n\n /**\n * Initialize connection profiles\n *\n * This method is called from app.ts and runs before any of the message handlers are registered.\n * Therefore none of the Console message functions will produce any output.\n */\n async initConnectionProfiles() {\n initConnectionProfiles({ state });\n },\n\n /**\n * Get connection profile by host\n * @param {String} host host tenant host url or unique substring\n * @returns {Object} connection profile or null\n */\n async getConnectionProfileByHost(\n host: string\n ): Promise<ConnectionProfileInterface> {\n return getConnectionProfileByHost({ host, state });\n },\n\n /**\n * Get connection profile\n * @returns {Object} connection profile or null\n */\n async getConnectionProfile(): Promise<ConnectionProfileInterface> {\n return getConnectionProfile({ state });\n },\n\n /**\n * Save connection profile\n * @param {string} host host url for new profiles or unique substring for existing profiles\n * @returns {Promise<boolean>} true if the operation succeeded, false otherwise\n */\n async saveConnectionProfile(host: string): Promise<boolean> {\n return saveConnectionProfile({ host, state });\n },\n\n /**\n * Delete connection profile\n * @param {string} host host tenant host url or unique substring\n */\n deleteConnectionProfile(host: string): void {\n deleteConnectionProfile({ host, state });\n },\n\n /**\n * Create a new service account using auto-generated parameters\n * @returns {Promise<IdObjectSkeletonInterface>} A promise resolving to a service account object\n */\n async addNewServiceAccount(): Promise<IdObjectSkeletonInterface> {\n return addNewServiceAccount({ state });\n },\n };\n};\n\nconst fileOptions = {\n indentation: 4,\n};\n\nexport interface SecureConnectionProfileInterface {\n tenant: string;\n username?: string | null;\n encodedPassword?: string | null;\n logApiKey?: string | null;\n encodedLogApiSecret?: string | null;\n authenticationService?: string | null;\n authenticationHeaderOverrides?: Record<string, string>;\n svcacctId?: string | null;\n encodedSvcacctJwk?: string | null;\n svcacctName?: string | null;\n}\n\nexport interface ConnectionProfileInterface {\n tenant: string;\n username?: string | null;\n password?: string | null;\n logApiKey?: string | null;\n logApiSecret?: string | null;\n authenticationService?: string | null;\n authenticationHeaderOverrides?: Record<string, string>;\n svcacctId?: string | null;\n svcacctJwk?: JwkRsa;\n svcacctName?: string | null;\n}\n\nexport interface ConnectionsFileInterface {\n [key: string]: SecureConnectionProfileInterface;\n}\n\nconst legacyProfileFilename = '.frodorc';\nconst newProfileFilename = 'Connections.json';\n\n/**\n * Get connection profiles file name\n * @param {State} state library state\n * @returns {String} connection profiles file name\n */\nexport function getConnectionProfilesPath({ state }: { state: State }): string {\n return (\n state.getConnectionProfilesPath() ||\n process.env[Constants.FRODO_CONNECTION_PROFILES_PATH_KEY] ||\n `${os.homedir()}/.frodo/${newProfileFilename}`\n );\n}\n\n/**\n * Find connection profiles\n * @param {ConnectionsFileInterface} connectionProfiles connection profile object\n * @param {string} host host url or unique substring\n * @param {State} state library state\n * @returns {SecureConnectionProfileInterface[]} Array of connection profiles\n */\nfunction findConnectionProfiles({\n connectionProfiles,\n host,\n state,\n}: {\n connectionProfiles: ConnectionsFileInterface;\n host: string;\n state: State;\n}): SecureConnectionProfileInterface[] {\n const profiles: SecureConnectionProfileInterface[] = [];\n for (const tenant in connectionProfiles) {\n debugMessage({\n message: `ConnectionProfileOps.findConnectionProfiles: tenant=${tenant}`,\n state,\n });\n if (tenant.includes(host)) {\n debugMessage({\n message: `ConnectionProfileOps.findConnectionProfiles: '${host}' identifies '${tenant}', including in result set`,\n state,\n });\n const foundProfile = { ...connectionProfiles[tenant] };\n foundProfile.tenant = tenant;\n profiles.push(foundProfile);\n }\n }\n return profiles;\n}\n\n/**\n * Migrate from .frodorc to Connections.json\n */\nfunction migrateFromLegacyProfile() {\n const legacyPath = `${os.homedir()}/.frodo/${legacyProfileFilename}`;\n const newPath = `${os.homedir()}/.frodo/${newProfileFilename}`;\n if (!fs.existsSync(legacyPath) && !fs.existsSync(newPath)) {\n // no connections file (old or new), create empty new one\n fs.writeFileSync(\n newPath,\n JSON.stringify({}, null, fileOptions.indentation)\n );\n } else if (fs.existsSync(legacyPath) && !fs.existsSync(newPath)) {\n // old exists, new one does not - so copy old to new one\n fs.copyFileSync(legacyPath, newPath);\n // for now, just add a \"deprecated\" suffix. May delete the old file\n // in a future release\n fs.renameSync(legacyPath, `${legacyPath}.deprecated`);\n }\n // in other cases, where\n // (both old and new exist) OR (only new one exists) don't do anything\n}\n\n/**\n * Initialize connection profiles\n *\n * This method is called from app.ts and runs before any of the message handlers are registered.\n * Therefore none of the Console message functions will produce any output.\n * @param {State} state library state\n */\nexport async function initConnectionProfiles({ state }: { state: State }) {\n const dataProtection = new DataProtection({\n pathToMasterKey: state.getMasterKeyPath(),\n state,\n });\n // create connections.json file if it doesn't exist\n const filename = getConnectionProfilesPath({ state });\n const folderName = path.dirname(filename);\n if (!fs.existsSync(folderName)) {\n fs.mkdirSync(folderName, { recursive: true });\n if (!fs.existsSync(filename)) {\n fs.writeFileSync(\n filename,\n JSON.stringify({}, null, fileOptions.indentation)\n );\n }\n }\n // encrypt the password and logApiSecret from clear text to aes-256-GCM\n else {\n migrateFromLegacyProfile();\n const data = fs.readFileSync(filename, 'utf8');\n const connectionsData: ConnectionsFileInterface = JSON.parse(data);\n let convert = false;\n for (const conn of Object.keys(connectionsData)) {\n if (connectionsData[conn]['password']) {\n convert = true;\n connectionsData[conn].encodedPassword = await dataProtection.encrypt(\n connectionsData[conn]['password']\n );\n delete connectionsData[conn]['password'];\n }\n if (connectionsData[conn]['logApiSecret']) {\n convert = true;\n connectionsData[conn].encodedLogApiSecret =\n await dataProtection.encrypt(connectionsData[conn]['logApiSecret']);\n delete connectionsData[conn]['logApiSecret'];\n }\n if (connectionsData[conn]['svcacctJwk']) {\n convert = true;\n connectionsData[conn].encodedSvcacctJwk = await dataProtection.encrypt(\n connectionsData[conn]['svcacctJwk']\n );\n delete connectionsData[conn]['svcacctJwk'];\n }\n }\n if (convert) {\n fs.writeFileSync(\n filename,\n JSON.stringify(connectionsData, null, fileOptions.indentation)\n );\n }\n }\n}\n\n/**\n * Get connection profile by host\n * @param {String} host host tenant host url or unique substring\n * @param {State} state library state\n * @returns {Object} connection profile or null\n */\nexport async function getConnectionProfileByHost({\n host,\n state,\n}: {\n host: string;\n state: State;\n}): Promise<ConnectionProfileInterface> {\n try {\n const dataProtection = new DataProtection({\n pathToMasterKey: state.getMasterKeyPath(),\n state,\n });\n const filename = getConnectionProfilesPath({ state });\n const connectionsData = JSON.parse(fs.readFileSync(filename, 'utf8'));\n const profiles = findConnectionProfiles({\n connectionProfiles: connectionsData,\n host,\n state,\n });\n if (profiles.length == 0) {\n printMessage({\n message: `Profile for ${host} not found. Please specify credentials on command line`,\n type: 'error',\n state,\n });\n return null;\n }\n if (profiles.length > 1) {\n printMessage({\n message: `Multiple matching profiles found.`,\n type: 'error',\n state,\n });\n profiles.forEach((p) => {\n printMessage({ message: `- ${p.tenant}`, type: 'error', state });\n });\n printMessage({\n message: `Please specify a unique sub-string`,\n type: 'error',\n state,\n });\n return null;\n }\n return {\n tenant: profiles[0].tenant,\n username: profiles[0].username ? profiles[0].username : null,\n password: profiles[0].encodedPassword\n ? await dataProtection.decrypt(profiles[0].encodedPassword)\n : null,\n logApiKey: profiles[0].logApiKey ? profiles[0].logApiKey : null,\n logApiSecret: profiles[0].encodedLogApiSecret\n ? await dataProtection.decrypt(profiles[0].encodedLogApiSecret)\n : null,\n authenticationService: profiles[0].authenticationService\n ? profiles[0].authenticationService\n : null,\n authenticationHeaderOverrides: profiles[0].authenticationHeaderOverrides\n ? profiles[0].authenticationHeaderOverrides\n : {},\n svcacctName: profiles[0].svcacctName ? profiles[0].svcacctName : null,\n svcacctId: profiles[0].svcacctId ? profiles[0].svcacctId : null,\n svcacctJwk: profiles[0].encodedSvcacctJwk\n ? await dataProtection.decrypt(profiles[0].encodedSvcacctJwk)\n : null,\n };\n } catch (e) {\n printMessage({\n message: `Can not read saved connection info, please specify credentials on command line: ${e}`,\n type: 'error',\n state,\n });\n return null;\n }\n}\n\n/**\n * Get connection profile\n * @returns {Object} connection profile or null\n */\nexport async function getConnectionProfile({\n state,\n}: {\n state: State;\n}): Promise<ConnectionProfileInterface> {\n return getConnectionProfileByHost({ host: state.getHost(), state });\n}\n\n/**\n * Save connection profile\n * @param {string} host host url for new profiles or unique substring for existing profiles\n * @returns {Promise<boolean>} true if the operation succeeded, false otherwise\n */\nexport async function saveConnectionProfile({\n host,\n state,\n}: {\n host: string;\n state: State;\n}): Promise<boolean> {\n debugMessage({\n message: `ConnectionProfileOps.saveConnectionProfile: start`,\n state,\n });\n const dataProtection = new DataProtection({\n pathToMasterKey: state.getMasterKeyPath(),\n state,\n });\n const filename = getConnectionProfilesPath({ state });\n debugMessage({ message: `Saving connection profile in ${filename}`, state });\n let profiles: ConnectionsFileInterface = {};\n let profile: SecureConnectionProfileInterface = { tenant: '' };\n try {\n fs.statSync(filename);\n const data = fs.readFileSync(filename, 'utf8');\n profiles = JSON.parse(data);\n\n // find tenant\n const found = findConnectionProfiles({\n connectionProfiles: profiles,\n host,\n state,\n });\n\n // replace tenant in session with real tenant url if necessary\n if (found.length === 1) {\n profile = found[0];\n state.setHost(profile.tenant);\n verboseMessage({ message: `Existing profile: ${profile.tenant}`, state });\n debugMessage({ message: profile, state });\n }\n\n // connection profile not found, validate host is a real URL\n if (found.length === 0) {\n if (isValidUrl(host)) {\n state.setHost(host);\n debugMessage({ message: `New profile: ${host}`, state });\n } else {\n printMessage({\n message: `No existing profile found matching '${host}'. Provide a valid URL as the host argument to create a new profile.`,\n type: 'error',\n state,\n });\n debugMessage({\n message: `ConnectionProfileOps.saveConnectionProfile: end [false]`,\n state,\n });\n return false;\n }\n }\n } catch (error) {\n debugMessage({\n message: `New profiles file ${filename} with new profile ${host}`,\n state,\n });\n }\n\n // user account\n if (state.getUsername()) profile.username = state.getUsername();\n if (state.getPassword())\n profile.encodedPassword = await dataProtection.encrypt(state.getPassword());\n\n // log API\n if (state.getLogApiKey()) profile.logApiKey = state.getLogApiKey();\n if (state.getLogApiSecret())\n profile.encodedLogApiSecret = await dataProtection.encrypt(\n state.getLogApiSecret()\n );\n\n // service account\n if (state.getServiceAccountId()) {\n profile.svcacctId = state.getServiceAccountId();\n profile.svcacctName = (\n await getServiceAccount({\n serviceAccountId: state.getServiceAccountId(),\n state,\n })\n ).name;\n }\n if (state.getServiceAccountJwk())\n profile.encodedSvcacctJwk = await dataProtection.encrypt(\n state.getServiceAccountJwk()\n );\n // update existing service account profile\n if (profile.svcacctId && !profile.svcacctName) {\n profile.svcacctName = (\n await getServiceAccount({ serviceAccountId: profile.svcacctId, state })\n ).name;\n debugMessage({\n message: `ConnectionProfileOps.saveConnectionProfile: added missing service account name`,\n state,\n });\n }\n\n // advanced settings\n if (state.getAuthenticationService()) {\n profile.authenticationService = state.getAuthenticationService();\n printMessage({\n message:\n 'Advanced setting: Authentication Service: ' +\n state.getAuthenticationService(),\n type: 'info',\n state,\n });\n }\n if (\n state.getAuthenticationHeaderOverrides() &&\n Object.entries(state.getAuthenticationHeaderOverrides()).length\n ) {\n profile.authenticationHeaderOverrides =\n state.getAuthenticationHeaderOverrides();\n printMessage({\n message: 'Advanced setting: Authentication Header Overrides: ',\n type: 'info',\n state,\n });\n printMessage({\n message: state.getAuthenticationHeaderOverrides(),\n type: 'info',\n state,\n });\n }\n\n // remove the helper key 'tenant'\n delete profile.tenant;\n\n // update profiles\n profiles[state.getHost()] = profile;\n\n // sort profiles\n const orderedProfiles = Object.keys(profiles)\n .sort()\n .reduce((obj, key) => {\n obj[key] = profiles[key];\n return obj;\n }, {});\n\n // save profiles\n saveJsonToFile({\n data: orderedProfiles,\n filename,\n includeMeta: false,\n state,\n });\n verboseMessage({\n message: `Saved connection profile ${state.getHost()} in ${filename}`,\n state,\n });\n debugMessage({\n message: `ConnectionProfileOps.saveConnectionProfile: end [true]`,\n state,\n });\n return true;\n}\n\n/**\n * Delete connection profile\n * @param {String} host host tenant host url or unique substring\n */\nexport function deleteConnectionProfile({\n host,\n state,\n}: {\n host: string;\n state: State;\n}) {\n const filename = getConnectionProfilesPath({ state });\n let connectionsData: ConnectionsFileInterface = {};\n fs.stat(filename, (err) => {\n if (err == null) {\n const data = fs.readFileSync(filename, 'utf8');\n connectionsData = JSON.parse(data);\n const profiles = findConnectionProfiles({\n connectionProfiles: connectionsData,\n host,\n state,\n });\n if (profiles.length == 1) {\n delete connectionsData[profiles[0].tenant];\n fs.writeFileSync(filename, JSON.stringify(connectionsData, null, 2));\n printMessage({\n message: `Deleted connection profile ${profiles[0].tenant}`,\n state,\n });\n } else {\n if (profiles.length > 1) {\n printMessage({\n message: `Multiple matching profiles found.`,\n type: 'error',\n state,\n });\n profiles.forEach((p) => {\n printMessage({ message: `- ${p.tenant}`, type: 'error', state });\n });\n printMessage({\n message: `Please specify a unique sub-string`,\n type: 'error',\n state,\n });\n return null;\n } else {\n printMessage({\n message: `No connection profile ${host} found`,\n state,\n });\n }\n }\n } else if (err.code === 'ENOENT') {\n printMessage({\n message: `Connection profile file ${filename} not found`,\n state,\n });\n } else {\n printMessage({\n message: `Error in deleting connection profile: ${err.code}`,\n type: 'error',\n state,\n });\n }\n });\n}\n\n/**\n * Create a new service account using auto-generated parameters\n * @returns {Promise<IdObjectSkeletonInterface>} A promise resolving to a service account object\n */\nexport async function addNewServiceAccount({\n state,\n}: {\n state: State;\n}): Promise<IdObjectSkeletonInterface> {\n debugMessage({\n message: `ConnectionProfileOps.addNewServiceAccount: start`,\n state,\n });\n const name = `Frodo-SA-${new Date().getTime()}`;\n debugMessage({\n message: `ConnectionProfileOps.addNewServiceAccount: name=${name}...`,\n state,\n });\n const description = `${state.getUsername()}'s Frodo Service Account`;\n const scope = ['fr:am:*', 'fr:idm:*', 'fr:idc:esv:*'];\n const jwkPrivate = await createJwkRsa();\n const jwkPublic = await getJwkRsaPublic(jwkPrivate);\n const jwks = createJwks(jwkPublic);\n const sa = await createServiceAccount({\n name,\n description,\n accountStatus: 'Active',\n scopes: scope,\n jwks,\n state,\n });\n debugMessage({\n message: `ConnectionProfileOps.addNewServiceAccount: id=${sa._id}`,\n state,\n });\n state.setServiceAccountId(sa._id);\n state.setServiceAccountJwk(jwkPrivate);\n debugMessage({\n message: `ConnectionProfileOps.addNewServiceAccount: end`,\n state,\n });\n return sa;\n}\n"],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ var _fs = _interopRequireDefault(require("fs"));
|
|
|
4
4
|
var _os = require("os");
|
|
5
5
|
var _index = require("../index.js");
|
|
6
6
|
var ConnectionProfileOps = _interopRequireWildcard(require("./ConnectionProfileOps.js"));
|
|
7
|
-
var
|
|
7
|
+
var _Constants = _interopRequireDefault(require("../shared/Constants.js"));
|
|
8
8
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
9
9
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
10
10
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
@@ -79,12 +79,12 @@ describe('ConnectionProfileOps', () => {
|
|
|
79
79
|
expect(connections[host].username).toEqual(user);
|
|
80
80
|
expect(connections[host].encodedPassword).toBeTruthy();
|
|
81
81
|
}));
|
|
82
|
-
test("2: Create connection profiles in location from env ".concat(
|
|
82
|
+
test("2: Create connection profiles in location from env ".concat(_Constants.default.FRODO_MASTER_KEY_PATH_KEY), /*#__PURE__*/_asyncToGenerator(function* () {
|
|
83
83
|
var host = 'https://openam-tenant-name.forgeblocks.com/am';
|
|
84
84
|
var user = 'frodo.baggins@shire.me';
|
|
85
85
|
var password = 'G@nd@lfTheW153';
|
|
86
86
|
// set the hard-coded master key
|
|
87
|
-
process.env[
|
|
87
|
+
process.env[_Constants.default.FRODO_CONNECTION_PROFILES_PATH_KEY] = connectionProfilePath2;
|
|
88
88
|
_index.state.setHost(host);
|
|
89
89
|
_index.state.setUsername(user);
|
|
90
90
|
_index.state.setPassword(password);
|
|
@@ -103,13 +103,13 @@ describe('ConnectionProfileOps', () => {
|
|
|
103
103
|
expect(connections[host].username).toEqual(user);
|
|
104
104
|
expect(connections[host].encodedPassword).toBeTruthy();
|
|
105
105
|
}));
|
|
106
|
-
test("3: Use Master Key from env ".concat(
|
|
106
|
+
test("3: Use Master Key from env ".concat(_Constants.default.FRODO_MASTER_KEY_KEY), /*#__PURE__*/_asyncToGenerator(function* () {
|
|
107
107
|
var host = 'https://openam-tenant-name.forgeblocks.com/am';
|
|
108
108
|
var user = 'frodo.baggins@shire.me';
|
|
109
109
|
var password = 'G@nd@lfTheW153';
|
|
110
110
|
var masterKey = 'bxnQlhcU5VfyDs+BBPhRhK09yHaNtdIIk85HUMKBnqg=';
|
|
111
111
|
// set the hard-coded master key
|
|
112
|
-
process.env[
|
|
112
|
+
process.env[_Constants.default.FRODO_MASTER_KEY_KEY] = masterKey;
|
|
113
113
|
_index.state.setHost(host);
|
|
114
114
|
_index.state.setUsername(user);
|
|
115
115
|
_index.state.setPassword(password);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConnectionProfileOps.test.js","names":["_fs","_interopRequireDefault","require","_os","_index","ConnectionProfileOps","_interopRequireWildcard","_StaticStorage","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","asyncGeneratorStep","gen","resolve","reject","_next","_throw","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","describe","connectionProfilePath1","concat","homedir","connectionProfilePath2","connectionProfilePath3","beforeAll","fs","unlinkSync","afterAll","test","host","user","password","state","setHost","setUsername","setPassword","setConnectionProfilesPath","saveConnectionProfile","expect","existsSync","toBeTruthy","connections","JSON","parse","readFileSync","username","toEqual","encodedPassword","FRODO_MASTER_KEY_PATH_KEY","process","env","FRODO_CONNECTION_PROFILES_PATH_KEY","getConnectionProfilesPath","FRODO_MASTER_KEY_KEY","masterKey"],"sources":["../../src/ops/ConnectionProfileOps.test.ts"],"sourcesContent":["/**\n * Run tests\n *\n * npm run test:only ConnectionProfileOps\n *\n * Note: FRODO_DEBUG=1 is optional and enables debug logging for some output\n * in case things don't function as expected\n */\nimport fs from 'fs';\nimport { homedir } from 'os';\nimport { state } from '../index';\nimport * as ConnectionProfileOps from './ConnectionProfileOps';\nimport {\n FRODO_CONNECTION_PROFILES_PATH_KEY,\n FRODO_MASTER_KEY_PATH_KEY,\n FRODO_MASTER_KEY_KEY,\n} from '../storage/StaticStorage';\n\ndescribe('ConnectionProfileOps', () => {\n const connectionProfilePath1 = `${homedir()}/connections1.json`;\n const connectionProfilePath2 = `${homedir()}/connections2.json`;\n const connectionProfilePath3 = `${homedir()}/connections3.json`;\n\n // delete all connection profile files before running the tests\n beforeAll(() => {\n try {\n fs.unlinkSync(connectionProfilePath1);\n } catch (error) {\n // ignore\n }\n try {\n fs.unlinkSync(connectionProfilePath2);\n } catch (error) {\n // ignore\n }\n try {\n fs.unlinkSync(connectionProfilePath3);\n } catch (error) {\n // ignore\n }\n });\n\n // clean up all connection profile files after running the tests\n afterAll(() => {\n try {\n fs.unlinkSync(connectionProfilePath1);\n } catch (error) {\n // ignore\n }\n try {\n fs.unlinkSync(connectionProfilePath2);\n } catch (error) {\n // ignore\n }\n try {\n fs.unlinkSync(connectionProfilePath3);\n } catch (error) {\n // ignore\n }\n });\n\n describe('saveConnectionProfile()', () => {\n test('1: Create connection profiles in location from state field', async () => {\n const host = 'https://openam-tenant-name.forgeblocks.com/am';\n const user = 'frodo.baggins@shire.me';\n const password = 'G@nd@lfTheW153';\n\n state.setHost(host);\n state.setUsername(user);\n state.setPassword(password);\n state.setConnectionProfilesPath(connectionProfilePath1);\n await ConnectionProfileOps.saveConnectionProfile({ host, state });\n expect(fs.existsSync(connectionProfilePath1)).toBeTruthy();\n const connections = JSON.parse(\n fs.readFileSync(connectionProfilePath1, 'utf8')\n );\n expect(connections).toBeTruthy();\n expect(connections[host]).toBeTruthy();\n expect(connections[host].username).toEqual(user);\n expect(connections[host].encodedPassword).toBeTruthy();\n });\n\n test(`2: Create connection profiles in location from env ${FRODO_MASTER_KEY_PATH_KEY}`, async () => {\n const host = 'https://openam-tenant-name.forgeblocks.com/am';\n const user = 'frodo.baggins@shire.me';\n const password = 'G@nd@lfTheW153';\n // set the hard-coded master key\n process.env[FRODO_CONNECTION_PROFILES_PATH_KEY] = connectionProfilePath2;\n\n state.setHost(host);\n state.setUsername(user);\n state.setPassword(password);\n state.setConnectionProfilesPath('');\n await ConnectionProfileOps.saveConnectionProfile({ host, state });\n expect(ConnectionProfileOps.getConnectionProfilesPath({ state })).toEqual(\n connectionProfilePath2\n );\n expect(fs.existsSync(connectionProfilePath2)).toBeTruthy();\n const connections = JSON.parse(\n fs.readFileSync(connectionProfilePath2, 'utf8')\n );\n expect(connections).toBeTruthy();\n expect(connections[host]).toBeTruthy();\n expect(connections[host].username).toEqual(user);\n expect(connections[host].encodedPassword).toBeTruthy();\n });\n\n test(`3: Use Master Key from env ${FRODO_MASTER_KEY_KEY}`, async () => {\n const host = 'https://openam-tenant-name.forgeblocks.com/am';\n const user = 'frodo.baggins@shire.me';\n const password = 'G@nd@lfTheW153';\n const masterKey = 'bxnQlhcU5VfyDs+BBPhRhK09yHaNtdIIk85HUMKBnqg=';\n // set the hard-coded master key\n process.env[FRODO_MASTER_KEY_KEY] = masterKey;\n\n state.setHost(host);\n state.setUsername(user);\n state.setPassword(password);\n state.setConnectionProfilesPath(connectionProfilePath3);\n await ConnectionProfileOps.saveConnectionProfile({ host, state });\n expect(fs.existsSync(connectionProfilePath3)).toBeTruthy();\n const connections = JSON.parse(\n fs.readFileSync(connectionProfilePath3, 'utf8')\n );\n expect(connections).toBeTruthy();\n expect(connections[host]).toBeTruthy();\n expect(connections[host].username).toEqual(user);\n expect(connections[host].encodedPassword).toBeTruthy();\n });\n });\n});\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ConnectionProfileOps.test.js","names":["_fs","_interopRequireDefault","require","_os","_index","ConnectionProfileOps","_interopRequireWildcard","_Constants","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","asyncGeneratorStep","gen","resolve","reject","_next","_throw","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","describe","connectionProfilePath1","concat","homedir","connectionProfilePath2","connectionProfilePath3","beforeAll","fs","unlinkSync","afterAll","test","host","user","password","state","setHost","setUsername","setPassword","setConnectionProfilesPath","saveConnectionProfile","expect","existsSync","toBeTruthy","connections","JSON","parse","readFileSync","username","toEqual","encodedPassword","Constants","FRODO_MASTER_KEY_PATH_KEY","process","env","FRODO_CONNECTION_PROFILES_PATH_KEY","getConnectionProfilesPath","FRODO_MASTER_KEY_KEY","masterKey"],"sources":["../../src/ops/ConnectionProfileOps.test.ts"],"sourcesContent":["/**\n * Run tests\n *\n * npm run test:only ConnectionProfileOps\n *\n * Note: FRODO_DEBUG=1 is optional and enables debug logging for some output\n * in case things don't function as expected\n */\nimport fs from 'fs';\nimport { homedir } from 'os';\nimport { state } from '../index';\nimport * as ConnectionProfileOps from './ConnectionProfileOps';\nimport Constants from '../shared/Constants';\n\ndescribe('ConnectionProfileOps', () => {\n const connectionProfilePath1 = `${homedir()}/connections1.json`;\n const connectionProfilePath2 = `${homedir()}/connections2.json`;\n const connectionProfilePath3 = `${homedir()}/connections3.json`;\n\n // delete all connection profile files before running the tests\n beforeAll(() => {\n try {\n fs.unlinkSync(connectionProfilePath1);\n } catch (error) {\n // ignore\n }\n try {\n fs.unlinkSync(connectionProfilePath2);\n } catch (error) {\n // ignore\n }\n try {\n fs.unlinkSync(connectionProfilePath3);\n } catch (error) {\n // ignore\n }\n });\n\n // clean up all connection profile files after running the tests\n afterAll(() => {\n try {\n fs.unlinkSync(connectionProfilePath1);\n } catch (error) {\n // ignore\n }\n try {\n fs.unlinkSync(connectionProfilePath2);\n } catch (error) {\n // ignore\n }\n try {\n fs.unlinkSync(connectionProfilePath3);\n } catch (error) {\n // ignore\n }\n });\n\n describe('saveConnectionProfile()', () => {\n test('1: Create connection profiles in location from state field', async () => {\n const host = 'https://openam-tenant-name.forgeblocks.com/am';\n const user = 'frodo.baggins@shire.me';\n const password = 'G@nd@lfTheW153';\n\n state.setHost(host);\n state.setUsername(user);\n state.setPassword(password);\n state.setConnectionProfilesPath(connectionProfilePath1);\n await ConnectionProfileOps.saveConnectionProfile({ host, state });\n expect(fs.existsSync(connectionProfilePath1)).toBeTruthy();\n const connections = JSON.parse(\n fs.readFileSync(connectionProfilePath1, 'utf8')\n );\n expect(connections).toBeTruthy();\n expect(connections[host]).toBeTruthy();\n expect(connections[host].username).toEqual(user);\n expect(connections[host].encodedPassword).toBeTruthy();\n });\n\n test(`2: Create connection profiles in location from env ${Constants.FRODO_MASTER_KEY_PATH_KEY}`, async () => {\n const host = 'https://openam-tenant-name.forgeblocks.com/am';\n const user = 'frodo.baggins@shire.me';\n const password = 'G@nd@lfTheW153';\n // set the hard-coded master key\n process.env[Constants.FRODO_CONNECTION_PROFILES_PATH_KEY] =\n connectionProfilePath2;\n\n state.setHost(host);\n state.setUsername(user);\n state.setPassword(password);\n state.setConnectionProfilesPath('');\n await ConnectionProfileOps.saveConnectionProfile({ host, state });\n expect(ConnectionProfileOps.getConnectionProfilesPath({ state })).toEqual(\n connectionProfilePath2\n );\n expect(fs.existsSync(connectionProfilePath2)).toBeTruthy();\n const connections = JSON.parse(\n fs.readFileSync(connectionProfilePath2, 'utf8')\n );\n expect(connections).toBeTruthy();\n expect(connections[host]).toBeTruthy();\n expect(connections[host].username).toEqual(user);\n expect(connections[host].encodedPassword).toBeTruthy();\n });\n\n test(`3: Use Master Key from env ${Constants.FRODO_MASTER_KEY_KEY}`, async () => {\n const host = 'https://openam-tenant-name.forgeblocks.com/am';\n const user = 'frodo.baggins@shire.me';\n const password = 'G@nd@lfTheW153';\n const masterKey = 'bxnQlhcU5VfyDs+BBPhRhK09yHaNtdIIk85HUMKBnqg=';\n // set the hard-coded master key\n process.env[Constants.FRODO_MASTER_KEY_KEY] = masterKey;\n\n state.setHost(host);\n state.setUsername(user);\n state.setPassword(password);\n state.setConnectionProfilesPath(connectionProfilePath3);\n await ConnectionProfileOps.saveConnectionProfile({ host, state });\n expect(fs.existsSync(connectionProfilePath3)).toBeTruthy();\n const connections = JSON.parse(\n fs.readFileSync(connectionProfilePath3, 'utf8')\n );\n expect(connections).toBeTruthy();\n expect(connections[host]).toBeTruthy();\n expect(connections[host].username).toEqual(user);\n expect(connections[host].encodedPassword).toBeTruthy();\n });\n });\n});\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EmailTemplateOps.js","names":["state","EMAIL_TEMPLATE_TYPE","getEmailTemplates","_asyncToGenerator","getEmailTemplate","templateId","putEmailTemplate","templateData","exports","default","_default","_x","_getEmailTemplates","apply","arguments","_ref","getConfigEntitiesByType","type","_x2","_getEmailTemplate","_ref2","getConfigEntity","entityId","concat","_x3","_putEmailTemplate","_ref3","putConfigEntity","entityData"],"sources":["../../src/ops/EmailTemplateOps.ts"],"sourcesContent":["import {\n EmailTemplateSkeleton,\n NoIdObjectSkeletonInterface,\n} from '../api/ApiTypes';\nimport {\n getConfigEntitiesByType,\n getConfigEntity,\n putConfigEntity,\n} from '../api/IdmConfigApi';\nimport State from '../shared/State';\n\nexport default (state: State) => {\n return {\n /**\n * Email template type key used to build the IDM id: 'emailTemplate/<id>'\n */\n EMAIL_TEMPLATE_TYPE,\n\n /**\n * Get all email templates\n * @returns {Promise} a promise that resolves to an array of email template objects\n */\n async getEmailTemplates() {\n return getEmailTemplates({ state });\n },\n\n /**\n * Get email template\n * @param {string} templateId id/name of the email template without the type prefix\n * @returns {Promise} a promise that resolves an email template object\n */\n async getEmailTemplate(templateId: string) {\n return getEmailTemplate({ templateId, state });\n },\n\n /**\n * Put email template\n * @param {string} templateId id/name of the email template without the type prefix\n * @param {Object} templateData email template object\n * @returns {Promise} a promise that resolves to an email template object\n */\n async putEmailTemplate(\n templateId: string,\n templateData: EmailTemplateSkeleton\n ) {\n return putEmailTemplate({ templateId, templateData, state });\n },\n };\n};\n\n/**\n * Email template type key used to build the IDM id: 'emailTemplate/<id>'\n */\nexport const EMAIL_TEMPLATE_TYPE = 'emailTemplate';\n\n/**\n * Get all email templates\n * @returns {Promise} a promise that resolves to an array of email template objects\n */\nexport async function getEmailTemplates({ state }: { state: State }) {\n return getConfigEntitiesByType({ type: EMAIL_TEMPLATE_TYPE, state });\n}\n\n/**\n * Get email template\n * @param {string} templateId id/name of the email template without the type prefix\n * @returns {Promise} a promise that resolves an email template object\n */\nexport async function getEmailTemplate({\n templateId,\n state,\n}: {\n templateId: string;\n state: State;\n}) {\n return getConfigEntity({\n entityId: `${EMAIL_TEMPLATE_TYPE}/${templateId}`,\n state,\n });\n}\n\n/**\n * Put email template\n * @param {string} templateId id/name of the email template without the type prefix\n * @param {Object} templateData email template object\n * @returns {Promise} a promise that resolves to an email template object\n */\nexport async function putEmailTemplate({\n templateId,\n templateData,\n state,\n}: {\n templateId: string;\n templateData: EmailTemplateSkeleton | NoIdObjectSkeletonInterface;\n state: State;\n}) {\n return putConfigEntity({\n entityId: `${EMAIL_TEMPLATE_TYPE}/${templateId}`,\n entityData: templateData,\n state,\n });\n}\n"],"mappings":";;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"EmailTemplateOps.js","names":["state","EMAIL_TEMPLATE_TYPE","getEmailTemplates","_asyncToGenerator","getEmailTemplate","templateId","putEmailTemplate","templateData","exports","default","_default","_x","_getEmailTemplates","apply","arguments","_ref","getConfigEntitiesByType","type","_x2","_getEmailTemplate","_ref2","getConfigEntity","entityId","concat","_x3","_putEmailTemplate","_ref3","putConfigEntity","entityData"],"sources":["../../src/ops/EmailTemplateOps.ts"],"sourcesContent":["import {\n EmailTemplateSkeleton,\n NoIdObjectSkeletonInterface,\n} from '../api/ApiTypes';\nimport {\n getConfigEntitiesByType,\n getConfigEntity,\n putConfigEntity,\n} from '../api/IdmConfigApi';\nimport { State } from '../shared/State';\n\nexport type EmailTemplate = {\n /**\n * Email template type key used to build the IDM id: 'emailTemplate/<id>'\n */\n EMAIL_TEMPLATE_TYPE: string;\n /**\n * Get all email templates\n * @returns {Promise} a promise that resolves to an array of email template objects\n */\n getEmailTemplates(): Promise<any>;\n /**\n * Get email template\n * @param {string} templateId id/name of the email template without the type prefix\n * @returns {Promise} a promise that resolves an email template object\n */\n getEmailTemplate(templateId: string): Promise<any>;\n /**\n * Put email template\n * @param {string} templateId id/name of the email template without the type prefix\n * @param {Object} templateData email template object\n * @returns {Promise} a promise that resolves to an email template object\n */\n putEmailTemplate(\n templateId: string,\n templateData: EmailTemplateSkeleton\n ): Promise<any>;\n};\n\nexport default (state: State): EmailTemplate => {\n return {\n /**\n * Email template type key used to build the IDM id: 'emailTemplate/<id>'\n */\n EMAIL_TEMPLATE_TYPE,\n\n /**\n * Get all email templates\n * @returns {Promise} a promise that resolves to an array of email template objects\n */\n async getEmailTemplates() {\n return getEmailTemplates({ state });\n },\n\n /**\n * Get email template\n * @param {string} templateId id/name of the email template without the type prefix\n * @returns {Promise} a promise that resolves an email template object\n */\n async getEmailTemplate(templateId: string) {\n return getEmailTemplate({ templateId, state });\n },\n\n /**\n * Put email template\n * @param {string} templateId id/name of the email template without the type prefix\n * @param {Object} templateData email template object\n * @returns {Promise} a promise that resolves to an email template object\n */\n async putEmailTemplate(\n templateId: string,\n templateData: EmailTemplateSkeleton\n ) {\n return putEmailTemplate({ templateId, templateData, state });\n },\n };\n};\n\n/**\n * Email template type key used to build the IDM id: 'emailTemplate/<id>'\n */\nexport const EMAIL_TEMPLATE_TYPE = 'emailTemplate';\n\n/**\n * Get all email templates\n * @returns {Promise} a promise that resolves to an array of email template objects\n */\nexport async function getEmailTemplates({ state }: { state: State }) {\n return getConfigEntitiesByType({ type: EMAIL_TEMPLATE_TYPE, state });\n}\n\n/**\n * Get email template\n * @param {string} templateId id/name of the email template without the type prefix\n * @returns {Promise} a promise that resolves an email template object\n */\nexport async function getEmailTemplate({\n templateId,\n state,\n}: {\n templateId: string;\n state: State;\n}) {\n return getConfigEntity({\n entityId: `${EMAIL_TEMPLATE_TYPE}/${templateId}`,\n state,\n });\n}\n\n/**\n * Put email template\n * @param {string} templateId id/name of the email template without the type prefix\n * @param {Object} templateData email template object\n * @returns {Promise} a promise that resolves to an email template object\n */\nexport async function putEmailTemplate({\n templateId,\n templateData,\n state,\n}: {\n templateId: string;\n templateData: EmailTemplateSkeleton | NoIdObjectSkeletonInterface;\n state: State;\n}) {\n return putConfigEntity({\n entityId: `${EMAIL_TEMPLATE_TYPE}/${templateId}`,\n entityData: templateData,\n state,\n });\n}\n"],"mappings":";;;;;;;;;;;;eAuCgBA,KAAY,IAAoB;EAC9C,OAAO;IACL;AACJ;AACA;IACIC,mBAAmB;IAEnB;AACJ;AACA;AACA;IACUC,iBAAiBA,CAAA,EAAG;MAAA,OAAAC,iBAAA;QACxB,OAAOD,iBAAiB,CAAC;UAAEF;QAAM,CAAC,CAAC;MAAC;IACtC,CAAC;IAED;AACJ;AACA;AACA;AACA;IACUI,gBAAgBA,CAACC,UAAkB,EAAE;MAAA,OAAAF,iBAAA;QACzC,OAAOC,gBAAgB,CAAC;UAAEC,UAAU;UAAEL;QAAM,CAAC,CAAC;MAAC;IACjD,CAAC;IAED;AACJ;AACA;AACA;AACA;AACA;IACUM,gBAAgBA,CACpBD,UAAkB,EAClBE,YAAmC,EACnC;MAAA,OAAAJ,iBAAA;QACA,OAAOG,gBAAgB,CAAC;UAAED,UAAU;UAAEE,YAAY;UAAEP;QAAM,CAAC,CAAC;MAAC;IAC/D;EACF,CAAC;AACH,CAAC;AAED;AACA;AACA;AAFAQ,OAAA,CAAAC,OAAA,GAAAC,QAAA;AAGO,IAAMT,mBAAmB,GAAG,eAAe;;AAElD;AACA;AACA;AACA;AAHAO,OAAA,CAAAP,mBAAA,GAAAA,mBAAA;AAAA,SAIsBC,iBAAiBA,CAAAS,EAAA;EAAA,OAAAC,kBAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAIvC;AACA;AACA;AACA;AACA;AAJA,SAAAF,mBAAA;EAAAA,kBAAA,GAAAT,iBAAA,CAJO,WAAAY,IAAA,EAA8D;IAAA,IAA7B;MAAEf;IAAwB,CAAC,GAAAe,IAAA;IACjE,OAAO,IAAAC,qCAAuB,EAAC;MAAEC,IAAI,EAAEhB,mBAAmB;MAAED;IAAM,CAAC,CAAC;EACtE,CAAC;EAAA,OAAAY,kBAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAAA,SAOqBV,gBAAgBA,CAAAc,GAAA;EAAA,OAAAC,iBAAA,CAAAN,KAAA,OAAAC,SAAA;AAAA;AAatC;AACA;AACA;AACA;AACA;AACA;AALA,SAAAK,kBAAA;EAAAA,iBAAA,GAAAhB,iBAAA,CAbO,WAAAiB,KAAA,EAMJ;IAAA,IANoC;MACrCf,UAAU;MACVL;IAIF,CAAC,GAAAoB,KAAA;IACC,OAAO,IAAAC,6BAAe,EAAC;MACrBC,QAAQ,KAAAC,MAAA,CAAKtB,mBAAmB,OAAAsB,MAAA,CAAIlB,UAAU,CAAE;MAChDL;IACF,CAAC,CAAC;EACJ,CAAC;EAAA,OAAAmB,iBAAA,CAAAN,KAAA,OAAAC,SAAA;AAAA;AAAA,SAQqBR,gBAAgBA,CAAAkB,GAAA;EAAA,OAAAC,iBAAA,CAAAZ,KAAA,OAAAC,SAAA;AAAA;AAAA,SAAAW,kBAAA;EAAAA,iBAAA,GAAAtB,iBAAA,CAA/B,WAAAuB,KAAA,EAQJ;IAAA,IARoC;MACrCrB,UAAU;MACVE,YAAY;MACZP;IAKF,CAAC,GAAA0B,KAAA;IACC,OAAO,IAAAC,6BAAe,EAAC;MACrBL,QAAQ,KAAAC,MAAA,CAAKtB,mBAAmB,OAAAsB,MAAA,CAAIlB,UAAU,CAAE;MAChDuB,UAAU,EAAErB,YAAY;MACxBP;IACF,CAAC,CAAC;EACJ,CAAC;EAAA,OAAAyB,iBAAA,CAAAZ,KAAA,OAAAC,SAAA;AAAA"}
|
package/cjs/ops/IdmOps.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IdmOps.js","names":["state","getAllConfigEntities","getConfigEntitiesByType","type","getConfigEntity","entityId","putConfigEntity","entityData","queryAllManagedObjectsByType","fields","pageCookie","testConnectorServers","_asyncToGenerator","exports","default","_default","_x","_testConnectorServers2","apply","arguments","_ref","response","_testConnectorServers","openicf"],"sources":["../../src/ops/IdmOps.ts"],"sourcesContent":["import {\n IdObjectSkeletonInterface,\n NoIdObjectSkeletonInterface,\n PagedResult,\n} from '../api/ApiTypes';\nimport {\n getAllConfigEntities,\n getConfigEntity,\n putConfigEntity,\n getConfigEntitiesByType,\n queryAllManagedObjectsByType,\n} from '../api/IdmConfigApi';\nimport {\n testConnectorServers as _testConnectorServers,\n ConnectorServerStatusInterface,\n} from '../api/IdmSystemApi';\nimport State from '../shared/State';\n\nexport default (state: State) => {\n return {\n getAllConfigEntities() {\n return getAllConfigEntities({ state });\n },\n\n getConfigEntitiesByType(type: string) {\n return getConfigEntitiesByType({ type, state });\n },\n\n getConfigEntity(entityId: string) {\n return getConfigEntity({ entityId, state });\n },\n\n putConfigEntity(\n entityId: string,\n entityData: NoIdObjectSkeletonInterface | string\n ) {\n return putConfigEntity({ entityId, entityData, state });\n },\n\n /**\n * Query managed objects\n * @param {string} type managed object type\n * @param {string[]} fields fields to retrieve\n * @param {string} pageCookie paged results cookie\n * @returns {Promise<PagedResult<IdObjectSkeletonInterface>>} a promise that resolves to managed objects of the desired type\n */\n queryAllManagedObjectsByType(\n type: string,\n fields: string[],\n pageCookie: string\n ): Promise<PagedResult<IdObjectSkeletonInterface>> {\n return queryAllManagedObjectsByType({\n type,\n fields,\n pageCookie,\n state,\n });\n },\n\n /**\n * Test connector servers\n * @returns {Promise<ConnectorServerStatusInterface[]>} a promise that resolves to an array of ConnectorServerStatusInterface objects\n */\n async testConnectorServers(): Promise<ConnectorServerStatusInterface[]> {\n return testConnectorServers({ state });\n },\n };\n};\n\nexport {\n getAllConfigEntities,\n getConfigEntitiesByType,\n getConfigEntity,\n putConfigEntity,\n queryAllManagedObjectsByType,\n};\n\n/**\n * Test connector servers\n * @returns {Promise<ConnectorServerStatusInterface[]>} a promise that resolves to an array of ConnectorServerStatusInterface objects\n */\nexport async function testConnectorServers({\n state,\n}: {\n state: State;\n}): Promise<ConnectorServerStatusInterface[]> {\n const response = await _testConnectorServers({ state });\n return response.openicf;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"IdmOps.js","names":["state","getAllConfigEntities","getConfigEntitiesByType","type","getConfigEntity","entityId","putConfigEntity","entityData","queryAllManagedObjectsByType","fields","pageCookie","testConnectorServers","_asyncToGenerator","exports","default","_default","_x","_testConnectorServers2","apply","arguments","_ref","response","_testConnectorServers","openicf"],"sources":["../../src/ops/IdmOps.ts"],"sourcesContent":["import {\n IdObjectSkeletonInterface,\n NoIdObjectSkeletonInterface,\n PagedResult,\n} from '../api/ApiTypes';\nimport {\n getAllConfigEntities,\n getConfigEntity,\n putConfigEntity,\n getConfigEntitiesByType,\n queryAllManagedObjectsByType,\n} from '../api/IdmConfigApi';\nimport {\n testConnectorServers as _testConnectorServers,\n ConnectorServerStatusInterface,\n} from '../api/IdmSystemApi';\nimport { State } from '../shared/State';\n\nexport type Idm = {\n getAllConfigEntities(): Promise<any>;\n getConfigEntitiesByType(type: string): Promise<any>;\n getConfigEntity(entityId: string): Promise<any>;\n putConfigEntity(\n entityId: string,\n entityData: NoIdObjectSkeletonInterface | string\n ): Promise<any>;\n /**\n * Query managed objects\n * @param {string} type managed object type\n * @param {string[]} fields fields to retrieve\n * @param {string} pageCookie paged results cookie\n * @returns {Promise<PagedResult<IdObjectSkeletonInterface>>} a promise that resolves to managed objects of the desired type\n */\n queryAllManagedObjectsByType(\n type: string,\n fields: string[],\n pageCookie: string\n ): Promise<PagedResult<IdObjectSkeletonInterface>>;\n /**\n * Test connector servers\n * @returns {Promise<ConnectorServerStatusInterface[]>} a promise that resolves to an array of ConnectorServerStatusInterface objects\n */\n testConnectorServers(): Promise<ConnectorServerStatusInterface[]>;\n};\n\nexport default (state: State): Idm => {\n return {\n getAllConfigEntities() {\n return getAllConfigEntities({ state });\n },\n\n getConfigEntitiesByType(type: string) {\n return getConfigEntitiesByType({ type, state });\n },\n\n getConfigEntity(entityId: string) {\n return getConfigEntity({ entityId, state });\n },\n\n putConfigEntity(\n entityId: string,\n entityData: NoIdObjectSkeletonInterface | string\n ) {\n return putConfigEntity({ entityId, entityData, state });\n },\n\n /**\n * Query managed objects\n * @param {string} type managed object type\n * @param {string[]} fields fields to retrieve\n * @param {string} pageCookie paged results cookie\n * @returns {Promise<PagedResult<IdObjectSkeletonInterface>>} a promise that resolves to managed objects of the desired type\n */\n queryAllManagedObjectsByType(\n type: string,\n fields: string[],\n pageCookie: string\n ): Promise<PagedResult<IdObjectSkeletonInterface>> {\n return queryAllManagedObjectsByType({\n type,\n fields,\n pageCookie,\n state,\n });\n },\n\n /**\n * Test connector servers\n * @returns {Promise<ConnectorServerStatusInterface[]>} a promise that resolves to an array of ConnectorServerStatusInterface objects\n */\n async testConnectorServers(): Promise<ConnectorServerStatusInterface[]> {\n return testConnectorServers({ state });\n },\n };\n};\n\nexport {\n getAllConfigEntities,\n getConfigEntitiesByType,\n getConfigEntity,\n putConfigEntity,\n queryAllManagedObjectsByType,\n};\n\n/**\n * Test connector servers\n * @returns {Promise<ConnectorServerStatusInterface[]>} a promise that resolves to an array of ConnectorServerStatusInterface objects\n */\nexport async function testConnectorServers({\n state,\n}: {\n state: State;\n}): Promise<ConnectorServerStatusInterface[]> {\n const response = await _testConnectorServers({ state });\n return response.openicf;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eA6CgBA,KAAY,IAAU;EACpC,OAAO;IACLC,oBAAoBA,CAAA,EAAG;MACrB,OAAO,IAAAA,kCAAoB,EAAC;QAAED;MAAM,CAAC,CAAC;IACxC,CAAC;IAEDE,uBAAuBA,CAACC,IAAY,EAAE;MACpC,OAAO,IAAAD,qCAAuB,EAAC;QAAEC,IAAI;QAAEH;MAAM,CAAC,CAAC;IACjD,CAAC;IAEDI,eAAeA,CAACC,QAAgB,EAAE;MAChC,OAAO,IAAAD,6BAAe,EAAC;QAAEC,QAAQ;QAAEL;MAAM,CAAC,CAAC;IAC7C,CAAC;IAEDM,eAAeA,CACbD,QAAgB,EAChBE,UAAgD,EAChD;MACA,OAAO,IAAAD,6BAAe,EAAC;QAAED,QAAQ;QAAEE,UAAU;QAAEP;MAAM,CAAC,CAAC;IACzD,CAAC;IAED;AACJ;AACA;AACA;AACA;AACA;AACA;IACIQ,4BAA4BA,CAC1BL,IAAY,EACZM,MAAgB,EAChBC,UAAkB,EAC+B;MACjD,OAAO,IAAAF,0CAA4B,EAAC;QAClCL,IAAI;QACJM,MAAM;QACNC,UAAU;QACVV;MACF,CAAC,CAAC;IACJ,CAAC;IAED;AACJ;AACA;AACA;IACUW,oBAAoBA,CAAA,EAA8C;MAAA,OAAAC,iBAAA;QACtE,OAAOD,oBAAoB,CAAC;UAAEX;QAAM,CAAC,CAAC;MAAC;IACzC;EACF,CAAC;AACH,CAAC;AAAAa,OAAA,CAAAC,OAAA,GAAAC,QAAA;AAUD;AACA;AACA;AACA;AAHA,SAIsBJ,oBAAoBA,CAAAK,EAAA;EAAA,OAAAC,sBAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAAA,SAAAF,uBAAA;EAAAA,sBAAA,GAAAL,iBAAA,CAAnC,WAAAQ,IAAA,EAIuC;IAAA,IAJH;MACzCpB;IAGF,CAAC,GAAAoB,IAAA;IACC,IAAMC,QAAQ,SAAS,IAAAC,kCAAqB,EAAC;MAAEtB;IAAM,CAAC,CAAC;IACvD,OAAOqB,QAAQ,CAACE,OAAO;EACzB,CAAC;EAAA,OAAAN,sBAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA"}
|
package/cjs/ops/IdpOps.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IdpOps.js","names":["state","getSocialIdentityProviders","_asyncToGenerator","getSocialProvider","providerId","putProviderByTypeAndId","providerType","providerData","deleteSocialProvider","exportSocialProvider","exportSocialProviders","importSocialProvider","importData","importFirstSocialProvider","importSocialProviders","exports","default","_default","createIdpExportTemplate","_ref","meta","getMetadata","script","idp","_x","_getSocialIdentityProviders2","apply","arguments","_ref2","result","_getSocialIdentityProviders","_x2","_getSocialProvider","_ref3","response","foundProviders","filter","provider","_id","length","Error","concat","_x3","_putProviderByTypeAndId2","_ref4","debugMessage","message","_putProviderByTypeAndId","type","id","importError","_importError$response","_importError$response2","_importError$response3","status","data","validAttributes","detail","push","attribute","Object","keys","includes","getVerbose","printMessage","newline","_x4","_deleteSocialProvider","_ref5","deleteProviderByTypeAndId","_type","_x5","_exportSocialProvider","_ref6","idpData","exportData","transform","scriptData","getScript","scriptId","convertBase64TextToArray","_x6","_exportSocialProviders","_ref7","allIdpsData","createProgressIndicator","total","updateProgressIndicator","stopProgressIndicator","_x7","_importSocialProvider","_ref8","idpId","convertTextArrayToBase64","putScript","_x8","_importFirstSocialProvider","_ref9","_x9","_importSocialProviders","_ref10","outcome","_objectSpread","error","_error$response"],"sources":["../../src/ops/IdpOps.ts"],"sourcesContent":["import {\n deleteProviderByTypeAndId,\n getSocialIdentityProviders as _getSocialIdentityProviders,\n putProviderByTypeAndId as _putProviderByTypeAndId,\n} from '../api/SocialIdentityProvidersApi';\nimport { getScript } from '../api/ScriptApi';\nimport { putScript } from './ScriptOps';\nimport {\n convertBase64TextToArray,\n convertTextArrayToBase64,\n} from './utils/ExportImportUtils';\nimport {\n printMessage,\n createProgressIndicator,\n updateProgressIndicator,\n stopProgressIndicator,\n} from './utils/Console';\nimport { ExportMetaData } from './OpsTypes';\nimport {\n NoIdObjectSkeletonInterface,\n ScriptSkeleton,\n SocialIdpSkeleton,\n} from '../api/ApiTypes';\nimport { getMetadata } from './utils/ExportImportUtils';\nimport State from '../shared/State';\nimport { debugMessage } from './utils/Console';\n\nexport default (state: State) => {\n return {\n /**\n * Get all social identity providers\n * @returns {Promise} a promise that resolves to an object containing an array of social identity providers\n */\n async getSocialIdentityProviders() {\n return getSocialIdentityProviders({ state });\n },\n\n /**\n * Get social identity provider by id\n * @param {String} providerId social identity provider id/name\n * @returns {Promise} a promise that resolves a social identity provider object\n */\n async getSocialProvider(providerId: string) {\n return getSocialProvider({ providerId, state });\n },\n\n async putProviderByTypeAndId(\n providerType: string,\n providerId: string,\n providerData: SocialIdpSkeleton\n ) {\n return putProviderByTypeAndId({\n providerType,\n providerId,\n providerData,\n state,\n });\n },\n\n /**\n * Delete social identity provider by id\n * @param {String} providerId social identity provider id/name\n * @returns {Promise} a promise that resolves a social identity provider object\n */\n async deleteSocialProvider(providerId: string): Promise<unknown> {\n return deleteSocialProvider({ providerId, state });\n },\n\n /**\n * Export social provider by id\n * @param {string} providerId provider id/name\n * @returns {Promise<SocialProviderExportInterface>} a promise that resolves to a SocialProviderExportInterface object\n */\n async exportSocialProvider(\n providerId: string\n ): Promise<SocialProviderExportInterface> {\n return exportSocialProvider({ providerId, state });\n },\n\n /**\n * Export all providers\n * @returns {Promise<SocialProviderExportInterface>} a promise that resolves to a SocialProviderExportInterface object\n */\n async exportSocialProviders(): Promise<SocialProviderExportInterface> {\n return exportSocialProviders({ state });\n },\n\n /**\n * Import provider by id/name\n * @param {string} providerId provider id/name\n * @param {SocialProviderExportInterface} importData import data\n */\n async importSocialProvider(\n providerId: string,\n importData: SocialProviderExportInterface\n ): Promise<boolean> {\n return importSocialProvider({ providerId, importData, state });\n },\n\n /**\n * Import first provider\n * @param {SocialProviderExportInterface} importData import data\n */\n async importFirstSocialProvider(\n importData: SocialProviderExportInterface\n ): Promise<boolean> {\n return importFirstSocialProvider({ importData, state });\n },\n\n /**\n * Import all providers\n * @param {SocialProviderExportInterface} importData import data\n */\n async importSocialProviders(\n importData: SocialProviderExportInterface\n ): Promise<boolean> {\n return importSocialProviders({ importData, state });\n },\n };\n};\n\nexport interface SocialProviderExportInterface {\n meta?: ExportMetaData;\n script: Record<string, ScriptSkeleton>;\n idp: Record<string, SocialIdpSkeleton>;\n}\n\n/**\n * Create an empty idp export template\n * @returns {SocialProviderExportInterface} an empty idp export template\n */\nfunction createIdpExportTemplate({\n state,\n}: {\n state: State;\n}): SocialProviderExportInterface {\n return {\n meta: getMetadata({ state }),\n script: {},\n idp: {},\n } as SocialProviderExportInterface;\n}\n\n/**\n * Get all social identity providers\n * @returns {Promise} a promise that resolves to an object containing an array of social identity providers\n */\nexport async function getSocialIdentityProviders({ state }: { state: State }) {\n const { result } = await _getSocialIdentityProviders({ state });\n return result;\n}\n\n/**\n * Get social identity provider by id\n * @param {String} providerId social identity provider id/name\n * @returns {Promise} a promise that resolves a social identity provider object\n */\nexport async function getSocialProvider({\n providerId,\n state,\n}: {\n providerId: string;\n state: State;\n}) {\n const response = await getSocialIdentityProviders({ state });\n const foundProviders = response.filter(\n (provider) => provider._id === providerId\n );\n switch (foundProviders.length) {\n case 1:\n return foundProviders[0];\n case 0:\n throw new Error(`Provider '${providerId}' not found`);\n default:\n throw new Error(\n `${foundProviders.length} providers '${providerId}' found`\n );\n }\n}\n\nexport async function putProviderByTypeAndId({\n providerType,\n providerId,\n providerData,\n state,\n}: {\n providerType: string;\n providerId: string;\n providerData: SocialIdpSkeleton | NoIdObjectSkeletonInterface;\n state: State;\n}) {\n debugMessage({ message: `IdpOps.putProviderByTypeAndId: start`, state });\n try {\n const response = await _putProviderByTypeAndId({\n type: providerType,\n id: providerId,\n providerData,\n state,\n });\n debugMessage({ message: `IdpOps.putProviderByTypeAndId: end`, state });\n return response;\n } catch (importError) {\n if (\n importError.response?.status === 400 &&\n importError.response?.data?.message === 'Invalid attribute specified.'\n ) {\n const { validAttributes } = importError.response.data.detail;\n validAttributes.push('_id', '_type');\n for (const attribute of Object.keys(providerData)) {\n if (!validAttributes.includes(attribute)) {\n if (state.getVerbose())\n printMessage({\n message: `\\nRemoving invalid attribute: ${attribute}`,\n type: 'warn',\n newline: false,\n state,\n });\n delete providerData[attribute];\n }\n }\n if (state.getVerbose())\n printMessage({ message: '\\n', type: 'warn', newline: false, state });\n const response = await _putProviderByTypeAndId({\n type: providerType,\n id: providerId,\n providerData,\n state,\n });\n debugMessage({\n message: `IdpOps.putProviderByTypeAndId: end (after retry)`,\n state,\n });\n return response;\n } else {\n // re-throw unhandleable error\n throw importError;\n }\n }\n}\n\n/**\n * Delete social identity provider by id\n * @param {String} providerId social identity provider id/name\n * @returns {Promise} a promise that resolves a social identity provider object\n */\nexport async function deleteSocialProvider({\n providerId,\n state,\n}: {\n providerId: string;\n state: State;\n}): Promise<unknown> {\n const response = await getSocialIdentityProviders({ state });\n const foundProviders = response.filter(\n (provider) => provider._id === providerId\n );\n switch (foundProviders.length) {\n case 1:\n return await deleteProviderByTypeAndId({\n type: foundProviders[0]._type._id,\n providerId: foundProviders[0]._id,\n state,\n });\n case 0:\n throw new Error(`Provider '${providerId}' not found`);\n default:\n throw new Error(\n `${foundProviders.length} providers '${providerId}' found`\n );\n }\n}\n\n/**\n * Export social provider by id\n * @param {string} providerId provider id/name\n * @returns {Promise<SocialProviderExportInterface>} a promise that resolves to a SocialProviderExportInterface object\n */\nexport async function exportSocialProvider({\n providerId,\n state,\n}: {\n providerId: string;\n state: State;\n}): Promise<SocialProviderExportInterface> {\n debugMessage({ message: `IdpOps.exportSocialProvider: start`, state });\n const idpData = await getSocialProvider({ providerId, state });\n const exportData = createIdpExportTemplate({ state });\n exportData.idp[idpData._id] = idpData;\n if (idpData.transform) {\n const scriptData = await getScript({ scriptId: idpData.transform, state });\n scriptData.script = convertBase64TextToArray(scriptData.script);\n exportData.script[idpData.transform] = scriptData;\n }\n debugMessage({ message: `IdpOps.exportSocialProvider: end`, state });\n return exportData;\n}\n\n/**\n * Export all providers\n * @returns {Promise<SocialProviderExportInterface>} a promise that resolves to a SocialProviderExportInterface object\n */\nexport async function exportSocialProviders({\n state,\n}: {\n state: State;\n}): Promise<SocialProviderExportInterface> {\n const exportData = createIdpExportTemplate({ state });\n const allIdpsData = await getSocialIdentityProviders({ state });\n createProgressIndicator({\n total: allIdpsData.length,\n message: 'Exporting providers',\n state,\n });\n for (const idpData of allIdpsData) {\n updateProgressIndicator({\n message: `Exporting provider ${idpData._id}`,\n state,\n });\n exportData.idp[idpData._id] = idpData;\n if (idpData.transform) {\n const scriptData = await getScript({\n scriptId: idpData.transform,\n state,\n });\n scriptData.script = convertBase64TextToArray(scriptData.script);\n exportData.script[idpData.transform] = scriptData;\n }\n }\n stopProgressIndicator({\n message: `${allIdpsData.length} providers exported.`,\n state,\n });\n return exportData;\n}\n\n/**\n * Import provider by id/name\n * @param {string} providerId provider id/name\n * @param {SocialProviderExportInterface} importData import data\n */\nexport async function importSocialProvider({\n providerId,\n importData,\n state,\n}: {\n providerId: string;\n importData: SocialProviderExportInterface;\n state: State;\n}): Promise<boolean> {\n for (const idpId of Object.keys(importData.idp)) {\n if (idpId === providerId) {\n const scriptId = importData.idp[idpId].transform as string;\n const scriptData = importData.script[scriptId as string];\n if (scriptId && scriptData) {\n scriptData.script = convertTextArrayToBase64(\n scriptData.script as string[]\n );\n await putScript({ scriptId, scriptData, state });\n }\n await putProviderByTypeAndId({\n providerType: importData.idp[idpId]._type._id,\n providerId: idpId,\n providerData: importData.idp[idpId],\n state,\n });\n return true;\n }\n }\n return false;\n}\n\n/**\n * Import first provider\n * @param {SocialProviderExportInterface} importData import data\n */\nexport async function importFirstSocialProvider({\n importData,\n state,\n}: {\n importData: SocialProviderExportInterface;\n state: State;\n}): Promise<boolean> {\n for (const idpId of Object.keys(importData.idp)) {\n const scriptId = importData.idp[idpId].transform as string;\n const scriptData = importData.script[scriptId as string];\n if (scriptId && scriptData) {\n scriptData.script = convertTextArrayToBase64(\n scriptData.script as string[]\n );\n await putScript({ scriptId, scriptData, state });\n }\n await putProviderByTypeAndId({\n providerType: importData.idp[idpId]._type._id,\n providerId: idpId,\n providerData: importData.idp[idpId],\n state,\n });\n return true;\n }\n return false;\n}\n\n/**\n * Import all providers\n * @param {SocialProviderExportInterface} importData import data\n */\nexport async function importSocialProviders({\n importData,\n state,\n}: {\n importData: SocialProviderExportInterface;\n state: State;\n}): Promise<boolean> {\n let outcome = true;\n for (const idpId of Object.keys(importData.idp)) {\n try {\n const scriptId = importData.idp[idpId].transform as string;\n const scriptData = { ...importData.script[scriptId as string] };\n if (scriptId && scriptData) {\n scriptData.script = convertTextArrayToBase64(\n scriptData.script as string[]\n );\n await putScript({ scriptId, scriptData, state });\n }\n await putProviderByTypeAndId({\n providerType: importData.idp[idpId]._type._id,\n providerId: idpId,\n providerData: importData.idp[idpId],\n state,\n });\n } catch (error) {\n printMessage({\n message: error.response?.data || error,\n type: 'error',\n state,\n });\n printMessage({\n message: `\\nError importing provider ${idpId}`,\n type: 'error',\n state,\n });\n outcome = false;\n }\n }\n return outcome;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"IdpOps.js","names":["state","getSocialIdentityProviders","_asyncToGenerator","getSocialProvider","providerId","putProviderByTypeAndId","providerType","providerData","deleteSocialProvider","exportSocialProvider","exportSocialProviders","importSocialProvider","importData","importFirstSocialProvider","importSocialProviders","exports","default","_default","createIdpExportTemplate","_ref","meta","getMetadata","script","idp","_x","_getSocialIdentityProviders2","apply","arguments","_ref2","result","_getSocialIdentityProviders","_x2","_getSocialProvider","_ref3","response","foundProviders","filter","provider","_id","length","Error","concat","_x3","_putProviderByTypeAndId2","_ref4","debugMessage","message","_putProviderByTypeAndId","type","id","importError","_importError$response","_importError$response2","_importError$response3","status","data","validAttributes","detail","push","attribute","Object","keys","includes","getVerbose","printMessage","newline","_x4","_deleteSocialProvider","_ref5","deleteProviderByTypeAndId","_type","_x5","_exportSocialProvider","_ref6","idpData","exportData","transform","scriptData","getScript","scriptId","convertBase64TextToArray","_x6","_exportSocialProviders","_ref7","allIdpsData","createProgressIndicator","total","updateProgressIndicator","stopProgressIndicator","_x7","_importSocialProvider","_ref8","idpId","convertTextArrayToBase64","putScript","_x8","_importFirstSocialProvider","_ref9","_x9","_importSocialProviders","_ref10","outcome","_objectSpread","error","_error$response"],"sources":["../../src/ops/IdpOps.ts"],"sourcesContent":["import {\n deleteProviderByTypeAndId,\n getSocialIdentityProviders as _getSocialIdentityProviders,\n putProviderByTypeAndId as _putProviderByTypeAndId,\n} from '../api/SocialIdentityProvidersApi';\nimport { getScript } from '../api/ScriptApi';\nimport { putScript } from './ScriptOps';\nimport {\n convertBase64TextToArray,\n convertTextArrayToBase64,\n} from './utils/ExportImportUtils';\nimport {\n printMessage,\n createProgressIndicator,\n updateProgressIndicator,\n stopProgressIndicator,\n} from './utils/Console';\nimport { ExportMetaData } from './OpsTypes';\nimport {\n NoIdObjectSkeletonInterface,\n ScriptSkeleton,\n SocialIdpSkeleton,\n} from '../api/ApiTypes';\nimport { getMetadata } from './utils/ExportImportUtils';\nimport { State } from '../shared/State';\nimport { debugMessage } from './utils/Console';\n\nexport type Idp = {\n /**\n * Get all social identity providers\n * @returns {Promise} a promise that resolves to an object containing an array of social identity providers\n */\n getSocialIdentityProviders(): Promise<any>;\n /**\n * Get social identity provider by id\n * @param {String} providerId social identity provider id/name\n * @returns {Promise} a promise that resolves a social identity provider object\n */\n getSocialProvider(providerId: string): Promise<any>;\n putProviderByTypeAndId(\n providerType: string,\n providerId: string,\n providerData: SocialIdpSkeleton\n ): Promise<any>;\n /**\n * Delete social identity provider by id\n * @param {String} providerId social identity provider id/name\n * @returns {Promise} a promise that resolves a social identity provider object\n */\n deleteSocialProvider(providerId: string): Promise<unknown>;\n /**\n * Export social provider by id\n * @param {string} providerId provider id/name\n * @returns {Promise<SocialProviderExportInterface>} a promise that resolves to a SocialProviderExportInterface object\n */\n exportSocialProvider(\n providerId: string\n ): Promise<SocialProviderExportInterface>;\n /**\n * Export all providers\n * @returns {Promise<SocialProviderExportInterface>} a promise that resolves to a SocialProviderExportInterface object\n */\n exportSocialProviders(): Promise<SocialProviderExportInterface>;\n /**\n * Import provider by id/name\n * @param {string} providerId provider id/name\n * @param {SocialProviderExportInterface} importData import data\n */\n importSocialProvider(\n providerId: string,\n importData: SocialProviderExportInterface\n ): Promise<boolean>;\n /**\n * Import first provider\n * @param {SocialProviderExportInterface} importData import data\n */\n importFirstSocialProvider(\n importData: SocialProviderExportInterface\n ): Promise<boolean>;\n /**\n * Import all providers\n * @param {SocialProviderExportInterface} importData import data\n */\n importSocialProviders(\n importData: SocialProviderExportInterface\n ): Promise<boolean>;\n};\n\nexport default (state: State): Idp => {\n return {\n /**\n * Get all social identity providers\n * @returns {Promise} a promise that resolves to an object containing an array of social identity providers\n */\n async getSocialIdentityProviders() {\n return getSocialIdentityProviders({ state });\n },\n\n /**\n * Get social identity provider by id\n * @param {String} providerId social identity provider id/name\n * @returns {Promise} a promise that resolves a social identity provider object\n */\n async getSocialProvider(providerId: string) {\n return getSocialProvider({ providerId, state });\n },\n\n async putProviderByTypeAndId(\n providerType: string,\n providerId: string,\n providerData: SocialIdpSkeleton\n ) {\n return putProviderByTypeAndId({\n providerType,\n providerId,\n providerData,\n state,\n });\n },\n\n /**\n * Delete social identity provider by id\n * @param {String} providerId social identity provider id/name\n * @returns {Promise} a promise that resolves a social identity provider object\n */\n async deleteSocialProvider(providerId: string): Promise<unknown> {\n return deleteSocialProvider({ providerId, state });\n },\n\n /**\n * Export social provider by id\n * @param {string} providerId provider id/name\n * @returns {Promise<SocialProviderExportInterface>} a promise that resolves to a SocialProviderExportInterface object\n */\n async exportSocialProvider(\n providerId: string\n ): Promise<SocialProviderExportInterface> {\n return exportSocialProvider({ providerId, state });\n },\n\n /**\n * Export all providers\n * @returns {Promise<SocialProviderExportInterface>} a promise that resolves to a SocialProviderExportInterface object\n */\n async exportSocialProviders(): Promise<SocialProviderExportInterface> {\n return exportSocialProviders({ state });\n },\n\n /**\n * Import provider by id/name\n * @param {string} providerId provider id/name\n * @param {SocialProviderExportInterface} importData import data\n */\n async importSocialProvider(\n providerId: string,\n importData: SocialProviderExportInterface\n ): Promise<boolean> {\n return importSocialProvider({ providerId, importData, state });\n },\n\n /**\n * Import first provider\n * @param {SocialProviderExportInterface} importData import data\n */\n async importFirstSocialProvider(\n importData: SocialProviderExportInterface\n ): Promise<boolean> {\n return importFirstSocialProvider({ importData, state });\n },\n\n /**\n * Import all providers\n * @param {SocialProviderExportInterface} importData import data\n */\n async importSocialProviders(\n importData: SocialProviderExportInterface\n ): Promise<boolean> {\n return importSocialProviders({ importData, state });\n },\n };\n};\n\nexport interface SocialProviderExportInterface {\n meta?: ExportMetaData;\n script: Record<string, ScriptSkeleton>;\n idp: Record<string, SocialIdpSkeleton>;\n}\n\n/**\n * Create an empty idp export template\n * @returns {SocialProviderExportInterface} an empty idp export template\n */\nfunction createIdpExportTemplate({\n state,\n}: {\n state: State;\n}): SocialProviderExportInterface {\n return {\n meta: getMetadata({ state }),\n script: {},\n idp: {},\n } as SocialProviderExportInterface;\n}\n\n/**\n * Get all social identity providers\n * @returns {Promise} a promise that resolves to an object containing an array of social identity providers\n */\nexport async function getSocialIdentityProviders({ state }: { state: State }) {\n const { result } = await _getSocialIdentityProviders({ state });\n return result;\n}\n\n/**\n * Get social identity provider by id\n * @param {String} providerId social identity provider id/name\n * @returns {Promise} a promise that resolves a social identity provider object\n */\nexport async function getSocialProvider({\n providerId,\n state,\n}: {\n providerId: string;\n state: State;\n}) {\n const response = await getSocialIdentityProviders({ state });\n const foundProviders = response.filter(\n (provider) => provider._id === providerId\n );\n switch (foundProviders.length) {\n case 1:\n return foundProviders[0];\n case 0:\n throw new Error(`Provider '${providerId}' not found`);\n default:\n throw new Error(\n `${foundProviders.length} providers '${providerId}' found`\n );\n }\n}\n\nexport async function putProviderByTypeAndId({\n providerType,\n providerId,\n providerData,\n state,\n}: {\n providerType: string;\n providerId: string;\n providerData: SocialIdpSkeleton | NoIdObjectSkeletonInterface;\n state: State;\n}) {\n debugMessage({ message: `IdpOps.putProviderByTypeAndId: start`, state });\n try {\n const response = await _putProviderByTypeAndId({\n type: providerType,\n id: providerId,\n providerData,\n state,\n });\n debugMessage({ message: `IdpOps.putProviderByTypeAndId: end`, state });\n return response;\n } catch (importError) {\n if (\n importError.response?.status === 400 &&\n importError.response?.data?.message === 'Invalid attribute specified.'\n ) {\n const { validAttributes } = importError.response.data.detail;\n validAttributes.push('_id', '_type');\n for (const attribute of Object.keys(providerData)) {\n if (!validAttributes.includes(attribute)) {\n if (state.getVerbose())\n printMessage({\n message: `\\nRemoving invalid attribute: ${attribute}`,\n type: 'warn',\n newline: false,\n state,\n });\n delete providerData[attribute];\n }\n }\n if (state.getVerbose())\n printMessage({ message: '\\n', type: 'warn', newline: false, state });\n const response = await _putProviderByTypeAndId({\n type: providerType,\n id: providerId,\n providerData,\n state,\n });\n debugMessage({\n message: `IdpOps.putProviderByTypeAndId: end (after retry)`,\n state,\n });\n return response;\n } else {\n // re-throw unhandleable error\n throw importError;\n }\n }\n}\n\n/**\n * Delete social identity provider by id\n * @param {String} providerId social identity provider id/name\n * @returns {Promise} a promise that resolves a social identity provider object\n */\nexport async function deleteSocialProvider({\n providerId,\n state,\n}: {\n providerId: string;\n state: State;\n}): Promise<unknown> {\n const response = await getSocialIdentityProviders({ state });\n const foundProviders = response.filter(\n (provider) => provider._id === providerId\n );\n switch (foundProviders.length) {\n case 1:\n return await deleteProviderByTypeAndId({\n type: foundProviders[0]._type._id,\n providerId: foundProviders[0]._id,\n state,\n });\n case 0:\n throw new Error(`Provider '${providerId}' not found`);\n default:\n throw new Error(\n `${foundProviders.length} providers '${providerId}' found`\n );\n }\n}\n\n/**\n * Export social provider by id\n * @param {string} providerId provider id/name\n * @returns {Promise<SocialProviderExportInterface>} a promise that resolves to a SocialProviderExportInterface object\n */\nexport async function exportSocialProvider({\n providerId,\n state,\n}: {\n providerId: string;\n state: State;\n}): Promise<SocialProviderExportInterface> {\n debugMessage({ message: `IdpOps.exportSocialProvider: start`, state });\n const idpData = await getSocialProvider({ providerId, state });\n const exportData = createIdpExportTemplate({ state });\n exportData.idp[idpData._id] = idpData;\n if (idpData.transform) {\n const scriptData = await getScript({ scriptId: idpData.transform, state });\n scriptData.script = convertBase64TextToArray(scriptData.script);\n exportData.script[idpData.transform] = scriptData;\n }\n debugMessage({ message: `IdpOps.exportSocialProvider: end`, state });\n return exportData;\n}\n\n/**\n * Export all providers\n * @returns {Promise<SocialProviderExportInterface>} a promise that resolves to a SocialProviderExportInterface object\n */\nexport async function exportSocialProviders({\n state,\n}: {\n state: State;\n}): Promise<SocialProviderExportInterface> {\n const exportData = createIdpExportTemplate({ state });\n const allIdpsData = await getSocialIdentityProviders({ state });\n createProgressIndicator({\n total: allIdpsData.length,\n message: 'Exporting providers',\n state,\n });\n for (const idpData of allIdpsData) {\n updateProgressIndicator({\n message: `Exporting provider ${idpData._id}`,\n state,\n });\n exportData.idp[idpData._id] = idpData;\n if (idpData.transform) {\n const scriptData = await getScript({\n scriptId: idpData.transform,\n state,\n });\n scriptData.script = convertBase64TextToArray(scriptData.script);\n exportData.script[idpData.transform] = scriptData;\n }\n }\n stopProgressIndicator({\n message: `${allIdpsData.length} providers exported.`,\n state,\n });\n return exportData;\n}\n\n/**\n * Import provider by id/name\n * @param {string} providerId provider id/name\n * @param {SocialProviderExportInterface} importData import data\n */\nexport async function importSocialProvider({\n providerId,\n importData,\n state,\n}: {\n providerId: string;\n importData: SocialProviderExportInterface;\n state: State;\n}): Promise<boolean> {\n for (const idpId of Object.keys(importData.idp)) {\n if (idpId === providerId) {\n const scriptId = importData.idp[idpId].transform as string;\n const scriptData = importData.script[scriptId as string];\n if (scriptId && scriptData) {\n scriptData.script = convertTextArrayToBase64(\n scriptData.script as string[]\n );\n await putScript({ scriptId, scriptData, state });\n }\n await putProviderByTypeAndId({\n providerType: importData.idp[idpId]._type._id,\n providerId: idpId,\n providerData: importData.idp[idpId],\n state,\n });\n return true;\n }\n }\n return false;\n}\n\n/**\n * Import first provider\n * @param {SocialProviderExportInterface} importData import data\n */\nexport async function importFirstSocialProvider({\n importData,\n state,\n}: {\n importData: SocialProviderExportInterface;\n state: State;\n}): Promise<boolean> {\n for (const idpId of Object.keys(importData.idp)) {\n const scriptId = importData.idp[idpId].transform as string;\n const scriptData = importData.script[scriptId as string];\n if (scriptId && scriptData) {\n scriptData.script = convertTextArrayToBase64(\n scriptData.script as string[]\n );\n await putScript({ scriptId, scriptData, state });\n }\n await putProviderByTypeAndId({\n providerType: importData.idp[idpId]._type._id,\n providerId: idpId,\n providerData: importData.idp[idpId],\n state,\n });\n return true;\n }\n return false;\n}\n\n/**\n * Import all providers\n * @param {SocialProviderExportInterface} importData import data\n */\nexport async function importSocialProviders({\n importData,\n state,\n}: {\n importData: SocialProviderExportInterface;\n state: State;\n}): Promise<boolean> {\n let outcome = true;\n for (const idpId of Object.keys(importData.idp)) {\n try {\n const scriptId = importData.idp[idpId].transform as string;\n const scriptData = { ...importData.script[scriptId as string] };\n if (scriptId && scriptData) {\n scriptData.script = convertTextArrayToBase64(\n scriptData.script as string[]\n );\n await putScript({ scriptId, scriptData, state });\n }\n await putProviderByTypeAndId({\n providerType: importData.idp[idpId]._type._id,\n providerId: idpId,\n providerData: importData.idp[idpId],\n state,\n });\n } catch (error) {\n printMessage({\n message: error.response?.data || error,\n type: 'error',\n state,\n });\n printMessage({\n message: `\\nError importing provider ${idpId}`,\n type: 'error',\n state,\n });\n outcome = false;\n }\n }\n return outcome;\n}\n"],"mappings":"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"}
|
package/cjs/ops/InfoOps.js
CHANGED
|
@@ -6,11 +6,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
exports.getInfo = getInfo;
|
|
8
8
|
var _EnvInfoApi = require("../api/cloud/EnvInfoApi.js");
|
|
9
|
-
var
|
|
9
|
+
var _Constants = _interopRequireDefault(require("../shared/Constants.js"));
|
|
10
10
|
var _ServerInfoApi = require("../api/ServerInfoApi.js");
|
|
11
11
|
var _ServiceAccountOps = require("./cloud/ServiceAccountOps.js");
|
|
12
|
-
function
|
|
13
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
12
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
14
13
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
15
14
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
16
15
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
@@ -97,7 +96,7 @@ function _getInfo() {
|
|
|
97
96
|
sessionToken: state.getCookieValue()
|
|
98
97
|
}, state.getBearerToken() && {
|
|
99
98
|
bearerToken: state.getBearerToken()
|
|
100
|
-
}), state.getDeploymentType() ===
|
|
99
|
+
}), state.getDeploymentType() === _Constants.default.CLOUD_DEPLOYMENT_TYPE_KEY && (yield getCloudInfo(state)));
|
|
101
100
|
return info;
|
|
102
101
|
});
|
|
103
102
|
return _getInfo.apply(this, arguments);
|
package/cjs/ops/InfoOps.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InfoOps.js","names":["state","getInfo","exports","default","_default","getCloudInfo","_x","_getCloudInfo","apply","arguments","_asyncToGenerator","info","getEnvInfo","message_box_html","message_box_title","message_variant","warning_message_html","placeholder_management_migration_date","getAmVersion","_x2","_getAmVersion","versionObj","getServerVersionInfo","amVersion","concat","getAuthenticatedSubject","_x3","_getAuthenticatedSubject","subjectString","getUsername","getUseBearerTokenForAmApis","name","getServiceAccount","serviceAccountId","getServiceAccountId","_x4","_getInfo","_objectSpread","host","getHost","authenticatedSubject","deploymentType","getDeploymentType","cookieName","getCookieName","sessionToken","getCookieValue","getBearerToken","bearerToken","
|
|
1
|
+
{"version":3,"file":"InfoOps.js","names":["state","getInfo","exports","default","_default","getCloudInfo","_x","_getCloudInfo","apply","arguments","_asyncToGenerator","info","getEnvInfo","message_box_html","message_box_title","message_variant","warning_message_html","placeholder_management_migration_date","getAmVersion","_x2","_getAmVersion","versionObj","getServerVersionInfo","amVersion","concat","getAuthenticatedSubject","_x3","_getAuthenticatedSubject","subjectString","getUsername","getUseBearerTokenForAmApis","name","getServiceAccount","serviceAccountId","getServiceAccountId","_x4","_getInfo","_objectSpread","host","getHost","authenticatedSubject","deploymentType","getDeploymentType","cookieName","getCookieName","sessionToken","getCookieValue","getBearerToken","bearerToken","Constants","CLOUD_DEPLOYMENT_TYPE_KEY"],"sources":["../../src/ops/InfoOps.ts"],"sourcesContent":["import { getEnvInfo, EnvInfoInterface } from '../api/cloud/EnvInfoApi';\nimport Constants from '../shared/Constants';\nimport { getServerVersionInfo } from '../api/ServerInfoApi';\nimport { getServiceAccount } from './cloud/ServiceAccountOps';\nimport { State } from '../shared/State';\n\nexport type Info = {\n /**\n * Get info about the platform instance\n * @returns {Promise<PlatformInfo>} a promise that resolves to a json blob with information about the instance and tokens\n */\n getInfo(): Promise<PlatformInfo>;\n};\n\nexport default (state: State): Info => {\n return {\n /**\n * Get info about the platform instance\n * @returns {Promise<PlatformInfo>} a promise that resolves to a json blob with information about the instance and tokens\n */\n getInfo(): Promise<PlatformInfo> {\n return getInfo(state);\n },\n };\n};\n\nexport interface PlatformInfoInterface {\n host: string;\n authenticatedSubject: string;\n amVersion: string;\n cookieName: string;\n sessionToken: string;\n bearerToken?: string;\n deploymentType: string;\n}\n\nexport type PlatformInfo = PlatformInfoInterface & Partial<EnvInfoInterface>;\n\nasync function getCloudInfo(state: State): Promise<Partial<EnvInfoInterface>> {\n let info: Partial<EnvInfoInterface> = {};\n info = await getEnvInfo({ state });\n delete info.message_box_html;\n delete info.message_box_title;\n delete info.message_variant;\n delete info.warning_message_html;\n if (!info.placeholder_management_migration_date)\n delete info.placeholder_management_migration_date;\n return info;\n}\n\nasync function getAmVersion(state: State): Promise<string> {\n const versionObj = await getServerVersionInfo({ state });\n const amVersion = `${versionObj['version']} Build ${versionObj['revision']} (${versionObj['date']})`;\n return amVersion;\n}\n\nasync function getAuthenticatedSubject(state: State): Promise<string> {\n let subjectString = `${state.getUsername()} (User)`;\n if (state.getUseBearerTokenForAmApis()) {\n const name = (\n await getServiceAccount({\n serviceAccountId: state.getServiceAccountId(),\n state,\n })\n ).name;\n subjectString = `${name} [${state.getServiceAccountId()}] (Service Account)`;\n }\n return subjectString;\n}\n\n/**\n * Get info about the platform instance\n * @param {State} state library state\n * @returns {Promise<PlatformInfo>} a promise that resolves to a json blob with information about the instance and tokens\n */\nexport async function getInfo(state: State): Promise<PlatformInfo> {\n const info: PlatformInfo = {\n host: state.getHost(),\n amVersion: await getAmVersion(state),\n authenticatedSubject: await getAuthenticatedSubject(state),\n deploymentType: state.getDeploymentType(),\n cookieName: state.getCookieName(),\n sessionToken: state.getCookieValue(),\n // only add bearerToken if we have it\n ...(state.getBearerToken() && { bearerToken: state.getBearerToken() }),\n // only add cloud env info if deployment type is cloud\n ...(state.getDeploymentType() === Constants.CLOUD_DEPLOYMENT_TYPE_KEY &&\n (await getCloudInfo(state))),\n };\n return info;\n}\n"],"mappings":"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"}
|