@rockcarver/frodo-lib 2.0.0-13 → 2.0.0-15
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 +12 -10
- package/cjs/index.js.map +1 -1
- package/cjs/lib/FrodoLib.js +181 -22
- package/cjs/lib/FrodoLib.js.map +1 -1
- package/cjs/lib/FrodoLib.test.js +9 -9
- package/cjs/lib/FrodoLib.test.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 +2 -1
- package/esm/index.js.map +1 -1
- package/esm/lib/FrodoLib.js +164 -19
- package/esm/lib/FrodoLib.js.map +1 -1
- package/esm/lib/FrodoLib.test.js +10 -10
- package/esm/lib/FrodoLib.test.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 +2 -1
- package/types/index.d.ts.map +1 -1
- package/types/lib/FrodoLib.d.ts +224 -370
- 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/lib/Frodo.js +0 -85
- package/cjs/lib/Frodo.js.map +0 -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/lib/Frodo.js +0 -59
- package/esm/lib/Frodo.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/lib/Frodo.d.ts +0 -1159
- package/types/lib/Frodo.d.ts.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
package/esm/ops/PolicyOps.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PolicyOps.js","names":["getPolicies","_getPolicies","getPoliciesByPolicySet","_getPoliciesByPolicySet","getPolicy","putPolicy","deletePolicy","getScript","putScript","convertBase64TextToArray","getMetadata","debugMessage","getResourceType","createPolicySet","getPolicySet","updatePolicySet","createResourceType","updateResourceType","state","policySetId","policyId","policyData","exportPolicy","options","deps","prereqs","useStringArrays","exportPolicies","exportPoliciesByPolicySet","policySetName","importPolicy","importData","importFirstPolicy","importPolicies","createPolicyExportTemplate","meta","script","policy","resourcetype","policyset","result","data","findScriptUuids","condition","scriptUuids","type","push","conditions","cond","scriptId","Set","getScripts","message","errors","scripts","scriptUuid","error","length","errorMessages","map","join","Error","exportPolicyPrerequisites","exportData","resourceTypeUuid","resourceType","applicationName","policySet","exportPolicyDependencies","scriptData","_id","policies","importPolicyPrerequisites","resourceTypeData","_error$response","response","status","policySetData","_error$response2","_error$response3","_error$response3$data","_error$response4","_error$response4$data","importPolicyDependencies","_error$response5","_error$response6","_error$response6$data","_error$response7","_error$response7$data","_error$response8","_error$response8$data","imported","id","Object","keys","_rev","_error$response9","_error$response9$data","_error$response10","_error$response10$dat","_error$response11","_error$response11$dat"],"sources":["../../src/ops/PolicyOps.ts"],"sourcesContent":["import {\n getPolicies as _getPolicies,\n getPoliciesByPolicySet as _getPoliciesByPolicySet,\n getPolicy,\n putPolicy,\n deletePolicy,\n} from '../api/PoliciesApi';\nimport { getScript, putScript } from './ScriptOps';\nimport { convertBase64TextToArray } from './utils/ExportImportUtils';\nimport { ExportMetaData } from './OpsTypes';\nimport {\n PolicyCondition,\n PolicySetSkeleton,\n PolicySkeleton,\n ResourceTypeSkeleton,\n ScriptSkeleton,\n} from '../api/ApiTypes';\nimport { getMetadata } from './utils/ExportImportUtils';\nimport { debugMessage } from './utils/Console';\nimport { getResourceType } from '../api/ResourceTypesApi';\nimport { createPolicySet, getPolicySet, updatePolicySet } from './PolicySetOps';\nimport { createResourceType, updateResourceType } from './ResourceTypeOps';\nimport State from '../shared/State';\n\nexport default (state: State) => {\n return {\n /**\n * Get all policies\n * @returns {Promise<PolicySkeleton>} a promise that resolves to an array of policy set objects\n */\n async getPolicies(): Promise<PolicySkeleton[]> {\n return getPolicies({ state });\n },\n\n /**\n * Get policies by policy set\n * @param {string} policySetId policy set id/name\n * @returns {Promise<PolicySkeleton[]>} a promise resolving to an array of policy objects\n */\n async getPoliciesByPolicySet(\n policySetId: string\n ): Promise<PolicySkeleton[]> {\n return getPoliciesByPolicySet({ policySetId, state });\n },\n\n async getPolicy(policyId: string) {\n return getPolicy({ policyId, state });\n },\n\n async putPolicy(policyId: string, policyData: PolicySkeleton) {\n return putPolicy({ policyId, policyData, state });\n },\n\n async deletePolicy(policyId: string) {\n return deletePolicy({ policyId, state });\n },\n\n /**\n * Export policy\n * @param {string} policyId policy id/name\n * @returns {Promise<PolicyExportInterface>} a promise that resolves to a PolicyExportInterface object\n */\n async exportPolicy(\n policyId: string,\n options: PolicyExportOptions = {\n deps: true,\n prereqs: false,\n useStringArrays: true,\n }\n ): Promise<PolicyExportInterface> {\n return exportPolicy({ policyId, options, state });\n },\n\n /**\n * Export policies\n * @param {PolicyExportOptions} options export options\n * @returns {Promise<PolicyExportInterface>} a promise that resolves to an PolicyExportInterface object\n */\n async exportPolicies(\n options: PolicyExportOptions = {\n deps: true,\n prereqs: false,\n useStringArrays: true,\n }\n ): Promise<PolicyExportInterface> {\n return exportPolicies({ options, state });\n },\n\n /**\n * Export policies by policy set\n * @param {string} policySetName policy set id/name\n * @param {PolicyExportOptions} options export options\n * @returns {Promise<PolicyExportInterface>} a promise that resolves to an PolicyExportInterface object\n */\n async exportPoliciesByPolicySet(\n policySetName: string,\n options: PolicyExportOptions = {\n deps: true,\n prereqs: false,\n useStringArrays: true,\n }\n ): Promise<PolicyExportInterface> {\n return exportPoliciesByPolicySet({\n policySetName,\n options,\n state,\n });\n },\n\n /**\n * Import policy by id\n * @param {string} policyId policy id\n * @param {PolicyExportInterface} importData import data\n * @param {PolicyImportOptions} options import options\n * @returns {Promise<PolicySkeleton>} imported policy object\n */\n async importPolicy(\n policyId: string,\n importData: PolicyExportInterface,\n options: PolicyImportOptions = { deps: true, prereqs: false }\n ): Promise<PolicySkeleton> {\n return importPolicy({ policyId, importData, options, state });\n },\n\n /**\n * Import first policy\n * @param {PolicyExportInterface} importData import data\n * @param {PolicyImportOptions} options import options\n * @returns {Promise<PolicySkeleton>} imported policy object\n */\n async importFirstPolicy(\n importData: PolicyExportInterface,\n options: PolicyImportOptions = { deps: true, prereqs: false }\n ): Promise<PolicySkeleton> {\n return importFirstPolicy({ importData, options, state });\n },\n\n /**\n * Import policies\n * @param {PolicyExportInterface} importData import data\n * @param {PolicyImportOptions} options import options\n * @returns {Promise<PolicySkeleton[]>} array of imported policy objects\n */\n async importPolicies(\n importData: PolicyExportInterface,\n options: PolicyImportOptions = { deps: true, prereqs: false }\n ): Promise<PolicySkeleton[]> {\n return importPolicies({ importData, options, state });\n },\n };\n};\n\nexport interface PolicyExportInterface {\n meta?: ExportMetaData;\n script: Record<string, ScriptSkeleton>;\n resourcetype: Record<string, ResourceTypeSkeleton>;\n policy: Record<string, PolicySkeleton>;\n policyset: Record<string, PolicySetSkeleton>;\n}\n\n/**\n * Policy export options\n */\nexport interface PolicyExportOptions {\n /**\n * Include any dependencies (scripts).\n */\n deps: boolean;\n /**\n * Include any prerequisites (policy sets, resource types).\n */\n prereqs: boolean;\n /**\n * Use string arrays to store multi-line text in scripts.\n */\n useStringArrays: boolean;\n}\n\n/**\n * Policy import options\n */\nexport interface PolicyImportOptions {\n /**\n * Include any dependencies (scripts).\n */\n deps: boolean;\n /**\n * Include any prerequisites (policy sets, resource types).\n */\n prereqs: boolean;\n /**\n * Import policies into different policy set\n */\n policySetName?: string;\n}\n\n/**\n * Create an empty export template\n * @returns {PolicyExportInterface} an empty export template\n */\nfunction createPolicyExportTemplate({\n state,\n}: {\n state: State;\n}): PolicyExportInterface {\n return {\n meta: getMetadata({ state }),\n script: {},\n policy: {},\n resourcetype: {},\n policyset: {},\n } as PolicyExportInterface;\n}\n\n/**\n * Get all policies\n * @returns {Promise<PolicySkeleton>} a promise that resolves to an array of policy set objects\n */\nexport async function getPolicies({\n state,\n}: {\n state: State;\n}): Promise<PolicySkeleton[]> {\n const { result } = await _getPolicies({ state });\n return result;\n}\n\n/**\n * Get policies by policy set\n * @param {string} policySetId policy set id/name\n * @returns {Promise<PolicySkeleton[]>} a promise resolving to an array of policy objects\n */\nexport async function getPoliciesByPolicySet({\n policySetId,\n state,\n}: {\n policySetId: string;\n state: State;\n}): Promise<PolicySkeleton[]> {\n const data = await _getPoliciesByPolicySet({ policySetId, state });\n return data.result;\n}\n\nexport { getPolicy, putPolicy, deletePolicy };\n\n/**\n * Find all script references in a deeply-nested policy condition object\n * @param {PolicyCondition} condition condition object\n * @returns {string[]} array of script UUIDs\n * \n * Sample condition block:\n * \n \"condition\": {\n \"type\": \"AND\",\n \"conditions\": [\n {\n \"type\": \"Script\",\n \"scriptId\": \"62f18ede-e5e7-4a7b-8b73-1b02fcbd241a\"\n },\n {\n \"type\": \"AuthenticateToService\",\n \"authenticateToService\": \"TxAuthz\"\n },\n {\n \"type\": \"OR\",\n \"conditions\": [\n {\n \"type\": \"Session\",\n \"maxSessionTime\": 5,\n \"terminateSession\": false\n },\n {\n \"type\": \"OAuth2Scope\",\n \"requiredScopes\": [\n \"openid\"\n ]\n },\n {\n \"type\": \"NOT\",\n \"condition\": {\n \"type\": \"Script\",\n \"scriptId\": \"729ee140-a4e9-43af-b358-d60eeda13cc3\"\n }\n }\n ]\n }\n ]\n },\n*/\nexport function findScriptUuids(condition: PolicyCondition): string[] {\n let scriptUuids: string[] = [];\n if (!condition) return scriptUuids;\n if (\n condition.type === 'AND' ||\n condition.type === 'OR' ||\n condition.type === 'NOT'\n ) {\n // single condition\n if (condition.condition) {\n scriptUuids.push(...findScriptUuids(condition.condition));\n }\n // array of conditions\n if (condition.conditions) {\n for (const cond of condition.conditions) {\n scriptUuids.push(...findScriptUuids(cond));\n }\n }\n } else if (condition.type === 'Script') {\n scriptUuids.push(condition.scriptId as string);\n }\n // de-duplicate\n scriptUuids = [...new Set(scriptUuids)];\n return scriptUuids;\n}\n\n/**\n * Get scripts for a policy object\n * @param {PolicySkeleton} policyData policy object\n * @returns {Promise<ScriptSkeleton[]>} a promise that resolves to an array of script objects\n */\nexport async function getScripts({\n policyData,\n state,\n}: {\n policyData: PolicySkeleton;\n state: State;\n}): Promise<ScriptSkeleton[]> {\n debugMessage({\n message: `PolicyOps.getScripts: start [policy=${policyData['name']}]`,\n state,\n });\n const errors = [];\n const scripts = [];\n try {\n const scriptUuids = findScriptUuids(policyData.condition);\n debugMessage({ message: `found scripts: ${scriptUuids}`, state });\n for (const scriptUuid of scriptUuids) {\n try {\n const script = await getScript({ scriptId: scriptUuid, state });\n scripts.push(script);\n } catch (error) {\n error.message = `Error retrieving script ${scriptUuid} referenced in policy ${policyData['name']}: ${error.message}`;\n errors.push(error);\n }\n }\n } catch (error) {\n error.message = `Error finding scripts in policy ${policyData['name']}: ${error.message}`;\n errors.push(error);\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n throw new Error(`Export error:\\n${errorMessages}`);\n }\n debugMessage({ message: `PolicySetOps.getScripts: end`, state });\n return scripts;\n}\n\n/**\n * Helper function to export dependencies of a policy set\n * @param {PolicySkeleton} policyData policy set data\n * @param {PolicyExportInterface} exportData export data\n */\nasync function exportPolicyPrerequisites({\n policyData,\n exportData,\n state,\n}: {\n policyData: PolicySkeleton;\n exportData: PolicyExportInterface;\n state: State;\n}) {\n debugMessage({\n message: `PolicyOps.exportPolicyPrerequisites: start [policy=${policyData['name']}]`,\n state,\n });\n // resource types\n if (policyData.resourceTypeUuid) {\n const resourceType = await getResourceType({\n resourceTypeUuid: policyData.resourceTypeUuid,\n state,\n });\n exportData.resourcetype[policyData.resourceTypeUuid] = resourceType;\n }\n // policy set\n if (policyData.applicationName) {\n const policySet = await getPolicySet({\n policySetName: policyData.applicationName,\n state,\n });\n exportData.policyset[policyData.applicationName] = policySet;\n }\n debugMessage({\n message: `PolicySetOps.exportPolicyPrerequisites: end`,\n state,\n });\n}\n\n/**\n * Helper function to export dependencies of a policy set\n * @param {unknown} policyData policy set data\n * @param {PolicyExportOptions} options export options\n * @param {PolicyExportInterface} exportData export data\n */\nasync function exportPolicyDependencies({\n policyData,\n options,\n exportData,\n state,\n}: {\n policyData: PolicySkeleton;\n options: PolicyExportOptions;\n exportData: PolicyExportInterface;\n state: State;\n}) {\n debugMessage({\n message: `PolicyOps.exportPolicyDependencies: start [policy=${policyData['name']}]`,\n state,\n });\n // scripts\n const scripts = await getScripts({ policyData, state });\n for (const scriptData of scripts) {\n if (options.useStringArrays) {\n scriptData.script = convertBase64TextToArray(scriptData.script as string);\n }\n exportData.script[scriptData._id] = scriptData;\n }\n debugMessage({\n message: `PolicySetOps.exportPolicySetDependencies: end`,\n state,\n });\n}\n\n/**\n * Export policy\n * @param {string} policyId policy id/name\n * @returns {Promise<PolicyExportInterface>} a promise that resolves to a PolicyExportInterface object\n */\nexport async function exportPolicy({\n policyId,\n options = {\n deps: true,\n prereqs: false,\n useStringArrays: true,\n },\n state,\n}: {\n policyId: string;\n options?: PolicyExportOptions;\n state: State;\n}): Promise<PolicyExportInterface> {\n debugMessage({ message: `PolicyOps.exportPolicy: start`, state });\n const policyData = await getPolicy({ policyId, state });\n const exportData = createPolicyExportTemplate({ state });\n exportData.policy[policyData._id] = policyData;\n if (options.prereqs) {\n await exportPolicyPrerequisites({ policyData, exportData, state });\n }\n if (options.deps) {\n await exportPolicyDependencies({ policyData, options, exportData, state });\n }\n debugMessage({ message: `PolicyOps.exportPolicy: end`, state });\n return exportData;\n}\n\n/**\n * Export policies\n * @param {PolicyExportOptions} options export options\n * @returns {Promise<PolicyExportInterface>} a promise that resolves to an PolicyExportInterface object\n */\nexport async function exportPolicies({\n options = {\n deps: true,\n prereqs: false,\n useStringArrays: true,\n },\n state,\n}: {\n options?: PolicyExportOptions;\n state: State;\n}): Promise<PolicyExportInterface> {\n debugMessage({ message: `PolicyOps.exportPolicies: start`, state });\n const exportData = createPolicyExportTemplate({ state });\n const errors = [];\n try {\n const policies = await getPolicies({ state });\n for (const policyData of policies) {\n exportData.policy[policyData._id] = policyData;\n if (options.prereqs) {\n try {\n await exportPolicyPrerequisites({ policyData, exportData, state });\n } catch (error) {\n errors.push(error);\n }\n }\n if (options.deps) {\n try {\n await exportPolicyDependencies({\n policyData,\n options,\n exportData,\n state,\n });\n } catch (error) {\n errors.push(error);\n }\n }\n }\n } catch (error) {\n errors.push(error);\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n throw new Error(`Export error:\\n${errorMessages}`);\n }\n debugMessage({ message: `PolicyOps.exportPolicies: end`, state });\n return exportData;\n}\n\n/**\n * Export policies by policy set\n * @param {string} policySetName policy set id/name\n * @param {PolicyExportOptions} options export options\n * @returns {Promise<PolicyExportInterface>} a promise that resolves to an PolicyExportInterface object\n */\nexport async function exportPoliciesByPolicySet({\n policySetName,\n options = {\n deps: true,\n prereqs: false,\n useStringArrays: true,\n },\n state,\n}: {\n policySetName: string;\n options?: PolicyExportOptions;\n state: State;\n}): Promise<PolicyExportInterface> {\n debugMessage({ message: `PolicyOps.exportPolicies: start`, state });\n const exportData = createPolicyExportTemplate({ state });\n const errors = [];\n try {\n const policies = await getPoliciesByPolicySet({\n policySetId: policySetName,\n state,\n });\n for (const policyData of policies) {\n exportData.policy[policyData._id] = policyData;\n if (options.prereqs) {\n try {\n await exportPolicyPrerequisites({ policyData, exportData, state });\n } catch (error) {\n errors.push(error);\n }\n }\n if (options.deps) {\n try {\n await exportPolicyDependencies({\n policyData,\n options,\n exportData,\n state,\n });\n } catch (error) {\n errors.push(error);\n }\n }\n }\n } catch (error) {\n errors.push(error);\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n throw new Error(`Export error:\\n${errorMessages}`);\n }\n debugMessage({ message: `PolicyOps.exportPolicies: end`, state });\n return exportData;\n}\n\n/**\n * Helper function to import hard dependencies of a policy\n * @param {PolicySkeleton} policyData policy object\n * @param {PolicyExportInterface} exportData export data\n */\nasync function importPolicyPrerequisites({\n policyData,\n exportData,\n state,\n}: {\n policyData: PolicySkeleton;\n exportData: PolicyExportInterface;\n state: State;\n}) {\n debugMessage({\n message: `PolicyOps.importPolicyHardDependencies: start [policy=${policyData._id}]`,\n state,\n });\n const errors = [];\n try {\n // resource type\n if (exportData.resourcetype[policyData.resourceTypeUuid]) {\n try {\n debugMessage({\n message: `Importing resource type ${policyData.resourceTypeUuid}`,\n state,\n });\n await createResourceType({\n resourceTypeData:\n exportData.resourcetype[policyData.resourceTypeUuid],\n state,\n });\n } catch (error) {\n if (error.response?.status === 409)\n await updateResourceType({\n resourceTypeUuid: policyData.resourceTypeUuid,\n resourceTypeData:\n exportData.resourcetype[policyData.resourceTypeUuid],\n state,\n });\n else throw error;\n }\n }\n // policy set\n if (exportData.policyset[policyData.applicationName]) {\n try {\n debugMessage({\n message: `Importing policy set ${policyData.applicationName}`,\n state,\n });\n await createPolicySet({\n policySetData: exportData.policyset[policyData.applicationName],\n state,\n });\n } catch (error) {\n if (error.response?.status === 409)\n await updatePolicySet({\n policySetData: exportData.policyset[policyData.applicationName],\n state,\n });\n else throw error;\n }\n }\n } catch (error) {\n error.message = `Error importing hard dependencies for policy ${\n policyData._id\n }: ${error.response?.data?.message || error.message}`;\n errors.push(error);\n }\n if (errors.length) {\n const errorMessages = errors\n .map((error) => error.response?.data?.message || error.message)\n .join('\\n');\n throw new Error(`Import hard dependencies error:\\n${errorMessages}`);\n }\n debugMessage({\n message: `PolicyOps.importPolicyHardDependencies: end`,\n state,\n });\n}\n\n/**\n * Helper function to import soft dependencies of a policy\n * @param {PolicySkeleton} policyData policy object\n * @param {PolicyExportInterface} exportData export data\n */\nasync function importPolicyDependencies({\n policyData,\n exportData,\n state,\n}: {\n policyData: PolicySkeleton;\n exportData: PolicyExportInterface;\n state: State;\n}) {\n debugMessage({\n message: `PolicyOps.importPolicySoftDependencies: start [policy=${policyData._id}]`,\n state,\n });\n const errors = [];\n try {\n // scripts\n const scriptUuids = findScriptUuids(policyData.condition);\n for (const scriptUuid of scriptUuids) {\n try {\n const scriptData = exportData.script[scriptUuid];\n debugMessage({ message: `Importing script ${scriptUuid}`, state });\n await putScript({ scriptId: scriptUuid, scriptData, state });\n } catch (error) {\n debugMessage({ message: error.response?.data, state });\n error.message = `Error importing script ${scriptUuid} for policy ${\n policyData._id\n }: ${error.response?.data?.message || error.message}`;\n errors.push(error);\n }\n }\n } catch (error) {\n error.message = `Error importing soft dependencies for policy ${\n policyData._id\n }: ${error.response?.data?.message || error.message}`;\n errors.push(error);\n }\n if (errors.length) {\n const errorMessages = errors\n .map((error) => error.response?.data?.message || error.message)\n .join('\\n');\n throw new Error(`Import soft dependencies error:\\n${errorMessages}`);\n }\n debugMessage({\n message: `PolicyOps.importPolicySoftDependencies: end`,\n state,\n });\n}\n\n/**\n * Import policy by id\n * @param {string} policyId policy id\n * @param {PolicyExportInterface} importData import data\n * @param {PolicyImportOptions} options import options\n * @returns {Promise<PolicySkeleton>} imported policy object\n */\nexport async function importPolicy({\n policyId,\n importData,\n options = { deps: true, prereqs: false },\n state,\n}: {\n policyId: string;\n importData: PolicyExportInterface;\n options?: PolicyImportOptions;\n state: State;\n}): Promise<PolicySkeleton> {\n let response = null;\n const errors = [];\n const imported = [];\n for (const id of Object.keys(importData.policy)) {\n if (id === policyId) {\n try {\n const policyData = importData.policy[id];\n delete policyData._rev;\n if (options.policySetName) {\n policyData.applicationName = options.policySetName;\n }\n if (options.prereqs) {\n try {\n await importPolicyPrerequisites({\n policyData,\n exportData: importData,\n state,\n });\n } catch (error) {\n errors.push(error);\n }\n }\n try {\n response = await putPolicy({\n policyId: policyData._id,\n policyData,\n state,\n });\n imported.push(id);\n } catch (error) {\n errors.push(error);\n }\n if (options.deps) {\n try {\n await importPolicyDependencies({\n policyData,\n exportData: importData,\n state,\n });\n } catch (error) {\n errors.push(error);\n }\n }\n } catch (error) {\n errors.push(error);\n }\n }\n }\n if (errors.length) {\n const errorMessages = errors\n .map((error) => error.response?.data?.message || error.message)\n .join('\\n');\n throw new Error(`Import error:\\n${errorMessages}`);\n }\n if (0 === imported.length) {\n throw new Error(`Import error:\\n${policyId} not found in import data!`);\n }\n return response;\n}\n\n/**\n * Import first policy\n * @param {PolicyExportInterface} importData import data\n * @param {PolicyImportOptions} options import options\n * @returns {Promise<PolicySkeleton>} imported policy object\n */\nexport async function importFirstPolicy({\n importData,\n options = { deps: true, prereqs: false },\n state,\n}: {\n importData: PolicyExportInterface;\n options?: PolicyImportOptions;\n state: State;\n}): Promise<PolicySkeleton> {\n let response = null;\n const errors = [];\n const imported = [];\n for (const id of Object.keys(importData.policy)) {\n try {\n const policyData = importData.policy[id];\n delete policyData._rev;\n if (options.policySetName) {\n policyData.applicationName = options.policySetName;\n }\n if (options.prereqs) {\n try {\n await importPolicyPrerequisites({\n policyData,\n exportData: importData,\n state,\n });\n } catch (error) {\n errors.push(error);\n }\n }\n try {\n response = await putPolicy({\n policyId: policyData._id,\n policyData,\n state,\n });\n imported.push(id);\n } catch (error) {\n errors.push(error);\n }\n if (options.deps) {\n try {\n await importPolicyDependencies({\n policyData,\n exportData: importData,\n state,\n });\n } catch (error) {\n errors.push(error);\n }\n }\n } catch (error) {\n errors.push(error);\n }\n break;\n }\n if (errors.length) {\n const errorMessages = errors\n .map((error) => error.response?.data?.message || error.message)\n .join('\\n');\n throw new Error(`Import error:\\n${errorMessages}`);\n }\n if (0 === imported.length) {\n throw new Error(`Import error:\\nNo policy found in import data!`);\n }\n return response;\n}\n\n/**\n * Import policies\n * @param {PolicyExportInterface} importData import data\n * @param {PolicyImportOptions} options import options\n * @returns {Promise<PolicySkeleton[]>} array of imported policy objects\n */\nexport async function importPolicies({\n importData,\n options = { deps: true, prereqs: false },\n state,\n}: {\n importData: PolicyExportInterface;\n options?: PolicyImportOptions;\n state: State;\n}): Promise<PolicySkeleton[]> {\n const response = [];\n const errors = [];\n const imported = [];\n for (const id of Object.keys(importData.policy)) {\n try {\n const policyData = importData.policy[id];\n delete policyData._rev;\n if (options.policySetName) {\n policyData.applicationName = options.policySetName;\n }\n if (options.prereqs) {\n try {\n await importPolicyPrerequisites({\n policyData,\n exportData: importData,\n state,\n });\n } catch (error) {\n errors.push(error);\n }\n }\n try {\n response.push(\n await putPolicy({ policyId: policyData._id, policyData, state })\n );\n imported.push(id);\n } catch (error) {\n errors.push(error);\n }\n if (options.deps) {\n try {\n await importPolicyDependencies({\n policyData,\n exportData: importData,\n state,\n });\n } catch (error) {\n errors.push(error);\n }\n }\n } catch (error) {\n errors.push(error);\n }\n }\n if (errors.length) {\n const errorMessages = errors\n .map((error) => error.response?.data?.message || error.message)\n .join('\\n');\n throw new Error(`Import error:\\n${errorMessages}`);\n }\n if (0 === imported.length) {\n throw new Error(`Import error:\\nNo policies found in import data!`);\n }\n return response;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PolicyOps.js","names":["getPolicies","_getPolicies","getPoliciesByPolicySet","_getPoliciesByPolicySet","getPolicy","putPolicy","deletePolicy","getScript","putScript","convertBase64TextToArray","getMetadata","debugMessage","getResourceType","createPolicySet","getPolicySet","updatePolicySet","createResourceType","updateResourceType","state","policySetId","policyId","policyData","exportPolicy","options","deps","prereqs","useStringArrays","exportPolicies","exportPoliciesByPolicySet","policySetName","importPolicy","importData","importFirstPolicy","importPolicies","createPolicyExportTemplate","meta","script","policy","resourcetype","policyset","result","data","findScriptUuids","condition","scriptUuids","type","push","conditions","cond","scriptId","Set","getScripts","message","errors","scripts","scriptUuid","error","length","errorMessages","map","join","Error","exportPolicyPrerequisites","exportData","resourceTypeUuid","resourceType","applicationName","policySet","exportPolicyDependencies","scriptData","_id","policies","importPolicyPrerequisites","resourceTypeData","_error$response","response","status","policySetData","_error$response2","_error$response3","_error$response3$data","_error$response4","_error$response4$data","importPolicyDependencies","_error$response5","_error$response6","_error$response6$data","_error$response7","_error$response7$data","_error$response8","_error$response8$data","imported","id","Object","keys","_rev","_error$response9","_error$response9$data","_error$response10","_error$response10$dat","_error$response11","_error$response11$dat"],"sources":["../../src/ops/PolicyOps.ts"],"sourcesContent":["import {\n getPolicies as _getPolicies,\n getPoliciesByPolicySet as _getPoliciesByPolicySet,\n getPolicy,\n putPolicy,\n deletePolicy,\n} from '../api/PoliciesApi';\nimport { getScript, putScript } from './ScriptOps';\nimport { convertBase64TextToArray } from './utils/ExportImportUtils';\nimport { ExportMetaData } from './OpsTypes';\nimport {\n PolicyCondition,\n PolicySetSkeleton,\n PolicySkeleton,\n ResourceTypeSkeleton,\n ScriptSkeleton,\n} from '../api/ApiTypes';\nimport { getMetadata } from './utils/ExportImportUtils';\nimport { debugMessage } from './utils/Console';\nimport { getResourceType } from '../api/ResourceTypesApi';\nimport { createPolicySet, getPolicySet, updatePolicySet } from './PolicySetOps';\nimport { createResourceType, updateResourceType } from './ResourceTypeOps';\nimport { State } from '../shared/State';\n\nexport type Policy = {\n /**\n * Get all policies\n * @returns {Promise<PolicySkeleton>} a promise that resolves to an array of policy set objects\n */\n getPolicies(): Promise<PolicySkeleton[]>;\n /**\n * Get policies by policy set\n * @param {string} policySetId policy set id/name\n * @returns {Promise<PolicySkeleton[]>} a promise resolving to an array of policy objects\n */\n getPoliciesByPolicySet(policySetId: string): Promise<PolicySkeleton[]>;\n getPolicy(policyId: string): Promise<PolicySkeleton>;\n putPolicy(policyId: string, policyData: PolicySkeleton): Promise<any>;\n deletePolicy(policyId: string): Promise<any>;\n /**\n * Export policy\n * @param {string} policyId policy id/name\n * @returns {Promise<PolicyExportInterface>} a promise that resolves to a PolicyExportInterface object\n */\n exportPolicy(\n policyId: string,\n options?: PolicyExportOptions\n ): Promise<PolicyExportInterface>;\n /**\n * Export policies\n * @param {PolicyExportOptions} options export options\n * @returns {Promise<PolicyExportInterface>} a promise that resolves to an PolicyExportInterface object\n */\n exportPolicies(options?: PolicyExportOptions): Promise<PolicyExportInterface>;\n /**\n * Export policies by policy set\n * @param {string} policySetName policy set id/name\n * @param {PolicyExportOptions} options export options\n * @returns {Promise<PolicyExportInterface>} a promise that resolves to an PolicyExportInterface object\n */\n exportPoliciesByPolicySet(\n policySetName: string,\n options?: PolicyExportOptions\n ): Promise<PolicyExportInterface>;\n /**\n * Import policy by id\n * @param {string} policyId policy id\n * @param {PolicyExportInterface} importData import data\n * @param {PolicyImportOptions} options import options\n * @returns {Promise<PolicySkeleton>} imported policy object\n */\n importPolicy(\n policyId: string,\n importData: PolicyExportInterface,\n options?: PolicyImportOptions\n ): Promise<PolicySkeleton>;\n /**\n * Import first policy\n * @param {PolicyExportInterface} importData import data\n * @param {PolicyImportOptions} options import options\n * @returns {Promise<PolicySkeleton>} imported policy object\n */\n importFirstPolicy(\n importData: PolicyExportInterface,\n options?: PolicyImportOptions\n ): Promise<PolicySkeleton>;\n /**\n * Import policies\n * @param {PolicyExportInterface} importData import data\n * @param {PolicyImportOptions} options import options\n * @returns {Promise<PolicySkeleton[]>} array of imported policy objects\n */\n importPolicies(\n importData: PolicyExportInterface,\n options?: PolicyImportOptions\n ): Promise<PolicySkeleton[]>;\n};\n\nexport default (state: State): Policy => {\n return {\n /**\n * Get all policies\n * @returns {Promise<PolicySkeleton>} a promise that resolves to an array of policy set objects\n */\n async getPolicies(): Promise<PolicySkeleton[]> {\n return getPolicies({ state });\n },\n\n /**\n * Get policies by policy set\n * @param {string} policySetId policy set id/name\n * @returns {Promise<PolicySkeleton[]>} a promise resolving to an array of policy objects\n */\n async getPoliciesByPolicySet(\n policySetId: string\n ): Promise<PolicySkeleton[]> {\n return getPoliciesByPolicySet({ policySetId, state });\n },\n\n async getPolicy(policyId: string) {\n return getPolicy({ policyId, state });\n },\n\n async putPolicy(policyId: string, policyData: PolicySkeleton) {\n return putPolicy({ policyId, policyData, state });\n },\n\n async deletePolicy(policyId: string) {\n return deletePolicy({ policyId, state });\n },\n\n /**\n * Export policy\n * @param {string} policyId policy id/name\n * @returns {Promise<PolicyExportInterface>} a promise that resolves to a PolicyExportInterface object\n */\n async exportPolicy(\n policyId: string,\n options: PolicyExportOptions = {\n deps: true,\n prereqs: false,\n useStringArrays: true,\n }\n ): Promise<PolicyExportInterface> {\n return exportPolicy({ policyId, options, state });\n },\n\n /**\n * Export policies\n * @param {PolicyExportOptions} options export options\n * @returns {Promise<PolicyExportInterface>} a promise that resolves to an PolicyExportInterface object\n */\n async exportPolicies(\n options: PolicyExportOptions = {\n deps: true,\n prereqs: false,\n useStringArrays: true,\n }\n ): Promise<PolicyExportInterface> {\n return exportPolicies({ options, state });\n },\n\n /**\n * Export policies by policy set\n * @param {string} policySetName policy set id/name\n * @param {PolicyExportOptions} options export options\n * @returns {Promise<PolicyExportInterface>} a promise that resolves to an PolicyExportInterface object\n */\n async exportPoliciesByPolicySet(\n policySetName: string,\n options: PolicyExportOptions = {\n deps: true,\n prereqs: false,\n useStringArrays: true,\n }\n ): Promise<PolicyExportInterface> {\n return exportPoliciesByPolicySet({\n policySetName,\n options,\n state,\n });\n },\n\n /**\n * Import policy by id\n * @param {string} policyId policy id\n * @param {PolicyExportInterface} importData import data\n * @param {PolicyImportOptions} options import options\n * @returns {Promise<PolicySkeleton>} imported policy object\n */\n async importPolicy(\n policyId: string,\n importData: PolicyExportInterface,\n options: PolicyImportOptions = { deps: true, prereqs: false }\n ): Promise<PolicySkeleton> {\n return importPolicy({ policyId, importData, options, state });\n },\n\n /**\n * Import first policy\n * @param {PolicyExportInterface} importData import data\n * @param {PolicyImportOptions} options import options\n * @returns {Promise<PolicySkeleton>} imported policy object\n */\n async importFirstPolicy(\n importData: PolicyExportInterface,\n options: PolicyImportOptions = { deps: true, prereqs: false }\n ): Promise<PolicySkeleton> {\n return importFirstPolicy({ importData, options, state });\n },\n\n /**\n * Import policies\n * @param {PolicyExportInterface} importData import data\n * @param {PolicyImportOptions} options import options\n * @returns {Promise<PolicySkeleton[]>} array of imported policy objects\n */\n async importPolicies(\n importData: PolicyExportInterface,\n options: PolicyImportOptions = { deps: true, prereqs: false }\n ): Promise<PolicySkeleton[]> {\n return importPolicies({ importData, options, state });\n },\n };\n};\n\nexport interface PolicyExportInterface {\n meta?: ExportMetaData;\n script: Record<string, ScriptSkeleton>;\n resourcetype: Record<string, ResourceTypeSkeleton>;\n policy: Record<string, PolicySkeleton>;\n policyset: Record<string, PolicySetSkeleton>;\n}\n\n/**\n * Policy export options\n */\nexport interface PolicyExportOptions {\n /**\n * Include any dependencies (scripts).\n */\n deps: boolean;\n /**\n * Include any prerequisites (policy sets, resource types).\n */\n prereqs: boolean;\n /**\n * Use string arrays to store multi-line text in scripts.\n */\n useStringArrays: boolean;\n}\n\n/**\n * Policy import options\n */\nexport interface PolicyImportOptions {\n /**\n * Include any dependencies (scripts).\n */\n deps: boolean;\n /**\n * Include any prerequisites (policy sets, resource types).\n */\n prereqs: boolean;\n /**\n * Import policies into different policy set\n */\n policySetName?: string;\n}\n\n/**\n * Create an empty export template\n * @returns {PolicyExportInterface} an empty export template\n */\nfunction createPolicyExportTemplate({\n state,\n}: {\n state: State;\n}): PolicyExportInterface {\n return {\n meta: getMetadata({ state }),\n script: {},\n policy: {},\n resourcetype: {},\n policyset: {},\n } as PolicyExportInterface;\n}\n\n/**\n * Get all policies\n * @returns {Promise<PolicySkeleton>} a promise that resolves to an array of policy set objects\n */\nexport async function getPolicies({\n state,\n}: {\n state: State;\n}): Promise<PolicySkeleton[]> {\n const { result } = await _getPolicies({ state });\n return result;\n}\n\n/**\n * Get policies by policy set\n * @param {string} policySetId policy set id/name\n * @returns {Promise<PolicySkeleton[]>} a promise resolving to an array of policy objects\n */\nexport async function getPoliciesByPolicySet({\n policySetId,\n state,\n}: {\n policySetId: string;\n state: State;\n}): Promise<PolicySkeleton[]> {\n const data = await _getPoliciesByPolicySet({ policySetId, state });\n return data.result;\n}\n\nexport { getPolicy, putPolicy, deletePolicy };\n\n/**\n * Find all script references in a deeply-nested policy condition object\n * @param {PolicyCondition} condition condition object\n * @returns {string[]} array of script UUIDs\n * \n * Sample condition block:\n * \n \"condition\": {\n \"type\": \"AND\",\n \"conditions\": [\n {\n \"type\": \"Script\",\n \"scriptId\": \"62f18ede-e5e7-4a7b-8b73-1b02fcbd241a\"\n },\n {\n \"type\": \"AuthenticateToService\",\n \"authenticateToService\": \"TxAuthz\"\n },\n {\n \"type\": \"OR\",\n \"conditions\": [\n {\n \"type\": \"Session\",\n \"maxSessionTime\": 5,\n \"terminateSession\": false\n },\n {\n \"type\": \"OAuth2Scope\",\n \"requiredScopes\": [\n \"openid\"\n ]\n },\n {\n \"type\": \"NOT\",\n \"condition\": {\n \"type\": \"Script\",\n \"scriptId\": \"729ee140-a4e9-43af-b358-d60eeda13cc3\"\n }\n }\n ]\n }\n ]\n },\n*/\nexport function findScriptUuids(condition: PolicyCondition): string[] {\n let scriptUuids: string[] = [];\n if (!condition) return scriptUuids;\n if (\n condition.type === 'AND' ||\n condition.type === 'OR' ||\n condition.type === 'NOT'\n ) {\n // single condition\n if (condition.condition) {\n scriptUuids.push(...findScriptUuids(condition.condition));\n }\n // array of conditions\n if (condition.conditions) {\n for (const cond of condition.conditions) {\n scriptUuids.push(...findScriptUuids(cond));\n }\n }\n } else if (condition.type === 'Script') {\n scriptUuids.push(condition.scriptId as string);\n }\n // de-duplicate\n scriptUuids = [...new Set(scriptUuids)];\n return scriptUuids;\n}\n\n/**\n * Get scripts for a policy object\n * @param {PolicySkeleton} policyData policy object\n * @returns {Promise<ScriptSkeleton[]>} a promise that resolves to an array of script objects\n */\nexport async function getScripts({\n policyData,\n state,\n}: {\n policyData: PolicySkeleton;\n state: State;\n}): Promise<ScriptSkeleton[]> {\n debugMessage({\n message: `PolicyOps.getScripts: start [policy=${policyData['name']}]`,\n state,\n });\n const errors = [];\n const scripts = [];\n try {\n const scriptUuids = findScriptUuids(policyData.condition);\n debugMessage({ message: `found scripts: ${scriptUuids}`, state });\n for (const scriptUuid of scriptUuids) {\n try {\n const script = await getScript({ scriptId: scriptUuid, state });\n scripts.push(script);\n } catch (error) {\n error.message = `Error retrieving script ${scriptUuid} referenced in policy ${policyData['name']}: ${error.message}`;\n errors.push(error);\n }\n }\n } catch (error) {\n error.message = `Error finding scripts in policy ${policyData['name']}: ${error.message}`;\n errors.push(error);\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n throw new Error(`Export error:\\n${errorMessages}`);\n }\n debugMessage({ message: `PolicySetOps.getScripts: end`, state });\n return scripts;\n}\n\n/**\n * Helper function to export dependencies of a policy set\n * @param {PolicySkeleton} policyData policy set data\n * @param {PolicyExportInterface} exportData export data\n */\nasync function exportPolicyPrerequisites({\n policyData,\n exportData,\n state,\n}: {\n policyData: PolicySkeleton;\n exportData: PolicyExportInterface;\n state: State;\n}) {\n debugMessage({\n message: `PolicyOps.exportPolicyPrerequisites: start [policy=${policyData['name']}]`,\n state,\n });\n // resource types\n if (policyData.resourceTypeUuid) {\n const resourceType = await getResourceType({\n resourceTypeUuid: policyData.resourceTypeUuid,\n state,\n });\n exportData.resourcetype[policyData.resourceTypeUuid] = resourceType;\n }\n // policy set\n if (policyData.applicationName) {\n const policySet = await getPolicySet({\n policySetName: policyData.applicationName,\n state,\n });\n exportData.policyset[policyData.applicationName] = policySet;\n }\n debugMessage({\n message: `PolicySetOps.exportPolicyPrerequisites: end`,\n state,\n });\n}\n\n/**\n * Helper function to export dependencies of a policy set\n * @param {unknown} policyData policy set data\n * @param {PolicyExportOptions} options export options\n * @param {PolicyExportInterface} exportData export data\n */\nasync function exportPolicyDependencies({\n policyData,\n options,\n exportData,\n state,\n}: {\n policyData: PolicySkeleton;\n options: PolicyExportOptions;\n exportData: PolicyExportInterface;\n state: State;\n}) {\n debugMessage({\n message: `PolicyOps.exportPolicyDependencies: start [policy=${policyData['name']}]`,\n state,\n });\n // scripts\n const scripts = await getScripts({ policyData, state });\n for (const scriptData of scripts) {\n if (options.useStringArrays) {\n scriptData.script = convertBase64TextToArray(scriptData.script as string);\n }\n exportData.script[scriptData._id] = scriptData;\n }\n debugMessage({\n message: `PolicySetOps.exportPolicySetDependencies: end`,\n state,\n });\n}\n\n/**\n * Export policy\n * @param {string} policyId policy id/name\n * @returns {Promise<PolicyExportInterface>} a promise that resolves to a PolicyExportInterface object\n */\nexport async function exportPolicy({\n policyId,\n options = {\n deps: true,\n prereqs: false,\n useStringArrays: true,\n },\n state,\n}: {\n policyId: string;\n options?: PolicyExportOptions;\n state: State;\n}): Promise<PolicyExportInterface> {\n debugMessage({ message: `PolicyOps.exportPolicy: start`, state });\n const policyData = await getPolicy({ policyId, state });\n const exportData = createPolicyExportTemplate({ state });\n exportData.policy[policyData._id] = policyData;\n if (options.prereqs) {\n await exportPolicyPrerequisites({ policyData, exportData, state });\n }\n if (options.deps) {\n await exportPolicyDependencies({ policyData, options, exportData, state });\n }\n debugMessage({ message: `PolicyOps.exportPolicy: end`, state });\n return exportData;\n}\n\n/**\n * Export policies\n * @param {PolicyExportOptions} options export options\n * @returns {Promise<PolicyExportInterface>} a promise that resolves to an PolicyExportInterface object\n */\nexport async function exportPolicies({\n options = {\n deps: true,\n prereqs: false,\n useStringArrays: true,\n },\n state,\n}: {\n options?: PolicyExportOptions;\n state: State;\n}): Promise<PolicyExportInterface> {\n debugMessage({ message: `PolicyOps.exportPolicies: start`, state });\n const exportData = createPolicyExportTemplate({ state });\n const errors = [];\n try {\n const policies = await getPolicies({ state });\n for (const policyData of policies) {\n exportData.policy[policyData._id] = policyData;\n if (options.prereqs) {\n try {\n await exportPolicyPrerequisites({ policyData, exportData, state });\n } catch (error) {\n errors.push(error);\n }\n }\n if (options.deps) {\n try {\n await exportPolicyDependencies({\n policyData,\n options,\n exportData,\n state,\n });\n } catch (error) {\n errors.push(error);\n }\n }\n }\n } catch (error) {\n errors.push(error);\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n throw new Error(`Export error:\\n${errorMessages}`);\n }\n debugMessage({ message: `PolicyOps.exportPolicies: end`, state });\n return exportData;\n}\n\n/**\n * Export policies by policy set\n * @param {string} policySetName policy set id/name\n * @param {PolicyExportOptions} options export options\n * @returns {Promise<PolicyExportInterface>} a promise that resolves to an PolicyExportInterface object\n */\nexport async function exportPoliciesByPolicySet({\n policySetName,\n options = {\n deps: true,\n prereqs: false,\n useStringArrays: true,\n },\n state,\n}: {\n policySetName: string;\n options?: PolicyExportOptions;\n state: State;\n}): Promise<PolicyExportInterface> {\n debugMessage({ message: `PolicyOps.exportPolicies: start`, state });\n const exportData = createPolicyExportTemplate({ state });\n const errors = [];\n try {\n const policies = await getPoliciesByPolicySet({\n policySetId: policySetName,\n state,\n });\n for (const policyData of policies) {\n exportData.policy[policyData._id] = policyData;\n if (options.prereqs) {\n try {\n await exportPolicyPrerequisites({ policyData, exportData, state });\n } catch (error) {\n errors.push(error);\n }\n }\n if (options.deps) {\n try {\n await exportPolicyDependencies({\n policyData,\n options,\n exportData,\n state,\n });\n } catch (error) {\n errors.push(error);\n }\n }\n }\n } catch (error) {\n errors.push(error);\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n throw new Error(`Export error:\\n${errorMessages}`);\n }\n debugMessage({ message: `PolicyOps.exportPolicies: end`, state });\n return exportData;\n}\n\n/**\n * Helper function to import hard dependencies of a policy\n * @param {PolicySkeleton} policyData policy object\n * @param {PolicyExportInterface} exportData export data\n */\nasync function importPolicyPrerequisites({\n policyData,\n exportData,\n state,\n}: {\n policyData: PolicySkeleton;\n exportData: PolicyExportInterface;\n state: State;\n}) {\n debugMessage({\n message: `PolicyOps.importPolicyHardDependencies: start [policy=${policyData._id}]`,\n state,\n });\n const errors = [];\n try {\n // resource type\n if (exportData.resourcetype[policyData.resourceTypeUuid]) {\n try {\n debugMessage({\n message: `Importing resource type ${policyData.resourceTypeUuid}`,\n state,\n });\n await createResourceType({\n resourceTypeData:\n exportData.resourcetype[policyData.resourceTypeUuid],\n state,\n });\n } catch (error) {\n if (error.response?.status === 409)\n await updateResourceType({\n resourceTypeUuid: policyData.resourceTypeUuid,\n resourceTypeData:\n exportData.resourcetype[policyData.resourceTypeUuid],\n state,\n });\n else throw error;\n }\n }\n // policy set\n if (exportData.policyset[policyData.applicationName]) {\n try {\n debugMessage({\n message: `Importing policy set ${policyData.applicationName}`,\n state,\n });\n await createPolicySet({\n policySetData: exportData.policyset[policyData.applicationName],\n state,\n });\n } catch (error) {\n if (error.response?.status === 409)\n await updatePolicySet({\n policySetData: exportData.policyset[policyData.applicationName],\n state,\n });\n else throw error;\n }\n }\n } catch (error) {\n error.message = `Error importing hard dependencies for policy ${\n policyData._id\n }: ${error.response?.data?.message || error.message}`;\n errors.push(error);\n }\n if (errors.length) {\n const errorMessages = errors\n .map((error) => error.response?.data?.message || error.message)\n .join('\\n');\n throw new Error(`Import hard dependencies error:\\n${errorMessages}`);\n }\n debugMessage({\n message: `PolicyOps.importPolicyHardDependencies: end`,\n state,\n });\n}\n\n/**\n * Helper function to import soft dependencies of a policy\n * @param {PolicySkeleton} policyData policy object\n * @param {PolicyExportInterface} exportData export data\n */\nasync function importPolicyDependencies({\n policyData,\n exportData,\n state,\n}: {\n policyData: PolicySkeleton;\n exportData: PolicyExportInterface;\n state: State;\n}) {\n debugMessage({\n message: `PolicyOps.importPolicySoftDependencies: start [policy=${policyData._id}]`,\n state,\n });\n const errors = [];\n try {\n // scripts\n const scriptUuids = findScriptUuids(policyData.condition);\n for (const scriptUuid of scriptUuids) {\n try {\n const scriptData = exportData.script[scriptUuid];\n debugMessage({ message: `Importing script ${scriptUuid}`, state });\n await putScript({ scriptId: scriptUuid, scriptData, state });\n } catch (error) {\n debugMessage({ message: error.response?.data, state });\n error.message = `Error importing script ${scriptUuid} for policy ${\n policyData._id\n }: ${error.response?.data?.message || error.message}`;\n errors.push(error);\n }\n }\n } catch (error) {\n error.message = `Error importing soft dependencies for policy ${\n policyData._id\n }: ${error.response?.data?.message || error.message}`;\n errors.push(error);\n }\n if (errors.length) {\n const errorMessages = errors\n .map((error) => error.response?.data?.message || error.message)\n .join('\\n');\n throw new Error(`Import soft dependencies error:\\n${errorMessages}`);\n }\n debugMessage({\n message: `PolicyOps.importPolicySoftDependencies: end`,\n state,\n });\n}\n\n/**\n * Import policy by id\n * @param {string} policyId policy id\n * @param {PolicyExportInterface} importData import data\n * @param {PolicyImportOptions} options import options\n * @returns {Promise<PolicySkeleton>} imported policy object\n */\nexport async function importPolicy({\n policyId,\n importData,\n options = { deps: true, prereqs: false },\n state,\n}: {\n policyId: string;\n importData: PolicyExportInterface;\n options?: PolicyImportOptions;\n state: State;\n}): Promise<PolicySkeleton> {\n let response = null;\n const errors = [];\n const imported = [];\n for (const id of Object.keys(importData.policy)) {\n if (id === policyId) {\n try {\n const policyData = importData.policy[id];\n delete policyData._rev;\n if (options.policySetName) {\n policyData.applicationName = options.policySetName;\n }\n if (options.prereqs) {\n try {\n await importPolicyPrerequisites({\n policyData,\n exportData: importData,\n state,\n });\n } catch (error) {\n errors.push(error);\n }\n }\n try {\n response = await putPolicy({\n policyId: policyData._id,\n policyData,\n state,\n });\n imported.push(id);\n } catch (error) {\n errors.push(error);\n }\n if (options.deps) {\n try {\n await importPolicyDependencies({\n policyData,\n exportData: importData,\n state,\n });\n } catch (error) {\n errors.push(error);\n }\n }\n } catch (error) {\n errors.push(error);\n }\n }\n }\n if (errors.length) {\n const errorMessages = errors\n .map((error) => error.response?.data?.message || error.message)\n .join('\\n');\n throw new Error(`Import error:\\n${errorMessages}`);\n }\n if (0 === imported.length) {\n throw new Error(`Import error:\\n${policyId} not found in import data!`);\n }\n return response;\n}\n\n/**\n * Import first policy\n * @param {PolicyExportInterface} importData import data\n * @param {PolicyImportOptions} options import options\n * @returns {Promise<PolicySkeleton>} imported policy object\n */\nexport async function importFirstPolicy({\n importData,\n options = { deps: true, prereqs: false },\n state,\n}: {\n importData: PolicyExportInterface;\n options?: PolicyImportOptions;\n state: State;\n}): Promise<PolicySkeleton> {\n let response = null;\n const errors = [];\n const imported = [];\n for (const id of Object.keys(importData.policy)) {\n try {\n const policyData = importData.policy[id];\n delete policyData._rev;\n if (options.policySetName) {\n policyData.applicationName = options.policySetName;\n }\n if (options.prereqs) {\n try {\n await importPolicyPrerequisites({\n policyData,\n exportData: importData,\n state,\n });\n } catch (error) {\n errors.push(error);\n }\n }\n try {\n response = await putPolicy({\n policyId: policyData._id,\n policyData,\n state,\n });\n imported.push(id);\n } catch (error) {\n errors.push(error);\n }\n if (options.deps) {\n try {\n await importPolicyDependencies({\n policyData,\n exportData: importData,\n state,\n });\n } catch (error) {\n errors.push(error);\n }\n }\n } catch (error) {\n errors.push(error);\n }\n break;\n }\n if (errors.length) {\n const errorMessages = errors\n .map((error) => error.response?.data?.message || error.message)\n .join('\\n');\n throw new Error(`Import error:\\n${errorMessages}`);\n }\n if (0 === imported.length) {\n throw new Error(`Import error:\\nNo policy found in import data!`);\n }\n return response;\n}\n\n/**\n * Import policies\n * @param {PolicyExportInterface} importData import data\n * @param {PolicyImportOptions} options import options\n * @returns {Promise<PolicySkeleton[]>} array of imported policy objects\n */\nexport async function importPolicies({\n importData,\n options = { deps: true, prereqs: false },\n state,\n}: {\n importData: PolicyExportInterface;\n options?: PolicyImportOptions;\n state: State;\n}): Promise<PolicySkeleton[]> {\n const response = [];\n const errors = [];\n const imported = [];\n for (const id of Object.keys(importData.policy)) {\n try {\n const policyData = importData.policy[id];\n delete policyData._rev;\n if (options.policySetName) {\n policyData.applicationName = options.policySetName;\n }\n if (options.prereqs) {\n try {\n await importPolicyPrerequisites({\n policyData,\n exportData: importData,\n state,\n });\n } catch (error) {\n errors.push(error);\n }\n }\n try {\n response.push(\n await putPolicy({ policyId: policyData._id, policyData, state })\n );\n imported.push(id);\n } catch (error) {\n errors.push(error);\n }\n if (options.deps) {\n try {\n await importPolicyDependencies({\n policyData,\n exportData: importData,\n state,\n });\n } catch (error) {\n errors.push(error);\n }\n }\n } catch (error) {\n errors.push(error);\n }\n }\n if (errors.length) {\n const errorMessages = errors\n .map((error) => error.response?.data?.message || error.message)\n .join('\\n');\n throw new Error(`Import error:\\n${errorMessages}`);\n }\n if (0 === imported.length) {\n throw new Error(`Import error:\\nNo policies found in import data!`);\n }\n return response;\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PolicySetOps.js","names":["deletePolicySet","getPolicySets","_getPolicySets","getPolicySet","createPolicySet","updatePolicySet","putScript","convertBase64TextToArray","getMetadata","debugMessage","getResourceType","putResourceType","findScriptUuids","getPoliciesByPolicySet","getScripts","putPolicy","state","policySetName","policySetData","exportPolicySet","options","deps","prereqs","useStringArrays","exportPolicySets","importPolicySet","importData","importFirstPolicySet","importPolicySets","createPolicySetExportTemplate","meta","script","policy","resourcetype","policyset","result","exportPolicySetPrerequisites","exportData","message","errors","resourceTypeUuid","resourceTypeUuids","resourceType","error","name","push","length","errorMessages","map","join","Error","exportPolicySetDependencies","policies","policySetId","scripts","policyData","scriptData","_id","policySets","importPolicySetPrerequisites","resourceTypeData","_error$response","response","data","importPolicySetDependencies","Object","values","filter","applicationName","policyId","_error$response2","scriptUuids","condition","scriptUuid","scriptId","_error$response3","imported","id","keys","_rev","_error$response4","status","_provider","_error$response5","_error$response6"],"sources":["../../src/ops/PolicySetOps.ts"],"sourcesContent":["import {\n deletePolicySet,\n getPolicySets as _getPolicySets,\n getPolicySet,\n createPolicySet,\n updatePolicySet,\n} from '../api/PolicySetApi';\nimport { putScript } from './ScriptOps';\nimport { convertBase64TextToArray } from './utils/ExportImportUtils';\nimport { ExportMetaData } from './OpsTypes';\nimport {\n PolicySetSkeleton,\n PolicySkeleton,\n ResourceTypeSkeleton,\n ScriptSkeleton,\n} from '../api/ApiTypes';\nimport { getMetadata } from './utils/ExportImportUtils';\nimport { debugMessage } from './utils/Console';\nimport { getResourceType, putResourceType } from '../api/ResourceTypesApi';\nimport {\n findScriptUuids,\n getPoliciesByPolicySet,\n getScripts,\n putPolicy,\n} from './PolicyOps';\nimport State from '../shared/State';\n\nexport default (state: State) => {\n return {\n /**\n * Get all policy sets\n * @returns {Promise} a promise that resolves to an array of policy set objects\n */\n async getPolicySets(): Promise<PolicySetSkeleton[]> {\n return getPolicySets({ state });\n },\n\n async getPolicySet(policySetName: string) {\n return getPolicySet({ policySetName, state });\n },\n\n async createPolicySet(policySetData: PolicySetSkeleton) {\n return createPolicySet({ policySetData, state });\n },\n\n async updatePolicySet(policySetData: PolicySetSkeleton) {\n return updatePolicySet({ policySetData, state });\n },\n\n async deletePolicySet(policySetName: string) {\n return deletePolicySet({ policySetName, state });\n },\n\n /**\n * Export policy set\n * @param {string} policySetName policy set name\n * @param {PolicySetExportOptions} options export options\n * @returns {Promise<PolicySetExportInterface>} a promise that resolves to an PolicySetExportInterface object\n */\n async exportPolicySet(\n policySetName: string,\n options: PolicySetExportOptions = {\n deps: true,\n prereqs: false,\n useStringArrays: true,\n }\n ): Promise<PolicySetExportInterface> {\n return exportPolicySet({ policySetName, options, state });\n },\n\n /**\n * Export policy sets\n * @param {PolicySetExportOptions} options export options\n * @returns {Promise<PolicySetExportInterface>} a promise that resolves to an PolicySetExportInterface object\n */\n async exportPolicySets(\n options: PolicySetExportOptions = {\n deps: true,\n prereqs: false,\n useStringArrays: true,\n }\n ): Promise<PolicySetExportInterface> {\n return exportPolicySets({ options, state });\n },\n\n /**\n * Import policy set\n * @param {string} policySetName policy set name\n * @param {PolicySetExportInterface} importData import data\n * @param {PolicySetImportOptions} options import options\n */\n async importPolicySet(\n policySetName: string,\n importData: PolicySetExportInterface,\n options: PolicySetImportOptions = { deps: true, prereqs: false }\n ) {\n return importPolicySet({\n policySetName,\n importData,\n options,\n state,\n });\n },\n\n /**\n * Import first policy set\n * @param {PolicySetExportInterface} importData import data\n * @param {PolicySetImportOptions} options import options\n */\n async importFirstPolicySet(\n importData: PolicySetExportInterface,\n options: PolicySetImportOptions = { deps: true, prereqs: false }\n ) {\n return importFirstPolicySet({ importData, options, state });\n },\n\n /**\n * Import policy sets\n * @param {PolicySetExportInterface} importData import data\n * @param {PolicySetImportOptions} options import options\n */\n async importPolicySets(\n importData: PolicySetExportInterface,\n options: PolicySetImportOptions = { deps: true, prereqs: false }\n ) {\n return importPolicySets({ importData, options, state });\n },\n };\n};\n\nexport interface PolicySetExportInterface {\n meta?: ExportMetaData;\n script: Record<string, ScriptSkeleton>;\n resourcetype: Record<string, ResourceTypeSkeleton>;\n policy: Record<string, PolicySkeleton>;\n policyset: Record<string, PolicySetSkeleton>;\n}\n\n/**\n * Application/policy set export options\n */\nexport interface PolicySetExportOptions {\n /**\n * Include any dependencies (policies, scripts, resource types).\n */\n deps: boolean;\n /**\n * Include any prerequisites (policy sets, resource types).\n */\n prereqs: boolean;\n /**\n * Use string arrays to store multi-line text in scripts.\n */\n useStringArrays: boolean;\n}\n\n/**\n * Policy set import options\n */\nexport interface PolicySetImportOptions {\n /**\n * Include any dependencies (policies, scripts, resource types).\n */\n deps: boolean;\n /**\n * Include any prerequisites (policy sets, resource types).\n */\n prereqs: boolean;\n}\n\n/**\n * Create an empty export template\n * @returns {PolicySetExportInterface} an empty export template\n */\nfunction createPolicySetExportTemplate({\n state,\n}: {\n state: State;\n}): PolicySetExportInterface {\n return {\n meta: getMetadata({ state }),\n script: {},\n policy: {},\n resourcetype: {},\n policyset: {},\n } as PolicySetExportInterface;\n}\n\n/**\n * Get all policy sets\n * @returns {Promise} a promise that resolves to an array of policy set objects\n */\nexport async function getPolicySets({\n state,\n}: {\n state: State;\n}): Promise<PolicySetSkeleton[]> {\n const { result } = await _getPolicySets({ state });\n return result;\n}\n\nexport { getPolicySet, createPolicySet, updatePolicySet, deletePolicySet };\n\n/**\n * Helper function to export prerequisites of a policy set\n * @param {PolicySetSkeleton} policySetData policy set object\n * @param {PolicySetExportInterface} exportData export data\n */\nasync function exportPolicySetPrerequisites({\n policySetData,\n exportData,\n state,\n}: {\n policySetData: PolicySetSkeleton;\n exportData: PolicySetExportInterface;\n state: State;\n}) {\n debugMessage({\n message: `PolicySetOps.exportPolicySetPrerequisites: start [policySet=${policySetData['name']}]`,\n state,\n });\n const errors = [];\n // resource types\n for (const resourceTypeUuid of policySetData.resourceTypeUuids) {\n try {\n const resourceType = await getResourceType({ resourceTypeUuid, state });\n exportData.resourcetype[resourceTypeUuid] = resourceType;\n } catch (error) {\n error.message = `Error retrieving resource type ${resourceTypeUuid} for policy set ${policySetData.name}: ${error.message}`;\n errors.push(error);\n }\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n throw new Error(`Export dependencies error:\\n${errorMessages}`);\n }\n debugMessage({\n message: `PolicySetOps.exportPolicySetPrerequisites: end`,\n state,\n });\n}\n\n/**\n * Helper function to export dependencies of a policy set\n * @param {PolicySetSkeleton} policySetData policy set object\n * @param {PolicySetExportOptions} options export options\n * @param {PolicySetExportInterface} exportData export data\n */\nasync function exportPolicySetDependencies({\n policySetData,\n options,\n exportData,\n state,\n}: {\n policySetData: PolicySetSkeleton;\n options: PolicySetExportOptions;\n exportData: PolicySetExportInterface;\n state: State;\n}) {\n debugMessage({\n message: `PolicySetOps.exportPolicySetDependencies: start [policySet=${policySetData['name']}]`,\n state,\n });\n const errors = [];\n // policies\n try {\n const policies = await getPoliciesByPolicySet({\n policySetId: policySetData.name,\n state,\n });\n for (const policy of policies) {\n exportData.policy[policy.name] = policy;\n // scripts\n try {\n const scripts = await getScripts({ policyData: policy, state });\n for (const scriptData of scripts) {\n if (options.useStringArrays) {\n scriptData.script = convertBase64TextToArray(\n scriptData.script as string\n );\n }\n exportData.script[scriptData._id] = scriptData;\n }\n } catch (error) {\n errors.push(error);\n }\n }\n } catch (error) {\n error.message = `Error retrieving policies in policy set ${policySetData.name}: ${error.message}`;\n errors.push(error);\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n throw new Error(`Export dependencies error:\\n${errorMessages}`);\n }\n debugMessage({\n message: `PolicySetOps.exportPolicySetDependencies: end`,\n state,\n });\n}\n\n/**\n * Export policy set\n * @param {string} policySetName policy set name\n * @param {PolicySetExportOptions} options export options\n * @returns {Promise<PolicySetExportInterface>} a promise that resolves to an PolicySetExportInterface object\n */\nexport async function exportPolicySet({\n policySetName,\n options = {\n deps: true,\n prereqs: false,\n useStringArrays: true,\n },\n state,\n}: {\n policySetName: string;\n options?: PolicySetExportOptions;\n state: State;\n}): Promise<PolicySetExportInterface> {\n debugMessage({ message: `PolicySetOps.exportPolicySet: start`, state });\n const exportData = createPolicySetExportTemplate({ state });\n const errors = [];\n try {\n const policySetData = await getPolicySet({ policySetName, state });\n exportData.policyset[policySetData.name] = policySetData;\n if (options.prereqs) {\n try {\n await exportPolicySetPrerequisites({\n policySetData,\n exportData,\n state,\n });\n } catch (error) {\n errors.push(error);\n }\n }\n if (options.deps) {\n try {\n await exportPolicySetDependencies({\n policySetData,\n options,\n exportData,\n state,\n });\n } catch (error) {\n errors.push(error);\n }\n }\n } catch (error) {\n errors.push(error);\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n throw new Error(`Export error:\\n${errorMessages}`);\n }\n debugMessage({ message: `PolicySetOps.exportPolicySet: end`, state });\n return exportData;\n}\n\n/**\n * Export policy sets\n * @param {PolicySetExportOptions} options export options\n * @returns {Promise<PolicySetExportInterface>} a promise that resolves to an PolicySetExportInterface object\n */\nexport async function exportPolicySets({\n options = {\n deps: true,\n prereqs: false,\n useStringArrays: true,\n },\n state,\n}: {\n options: PolicySetExportOptions;\n state: State;\n}): Promise<PolicySetExportInterface> {\n debugMessage({ message: `PolicySetOps.exportPolicySet: start`, state });\n const exportData = createPolicySetExportTemplate({ state });\n const errors = [];\n try {\n const policySets = await getPolicySets({ state });\n for (const policySetData of policySets) {\n exportData.policyset[policySetData.name] = policySetData;\n if (options.prereqs) {\n try {\n await exportPolicySetPrerequisites({\n policySetData,\n exportData,\n state,\n });\n } catch (error) {\n errors.push(error);\n }\n }\n if (options.deps) {\n try {\n await exportPolicySetDependencies({\n policySetData,\n options,\n exportData,\n state,\n });\n } catch (error) {\n errors.push(error);\n }\n }\n }\n } catch (error) {\n errors.push(error);\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n throw new Error(`Export error:\\n${errorMessages}`);\n }\n debugMessage({ message: `PolicySetOps.exportPolicySet: end`, state });\n return exportData;\n}\n\n/**\n * Helper function to import prerequisites of a policy set (resource types)\n * @param {PolicySetSkeleton} policySetData policy set data\n * @param {PolicySetExportInterface} exportData export data\n */\nasync function importPolicySetPrerequisites({\n policySetData,\n exportData,\n state,\n}: {\n policySetData: PolicySetSkeleton;\n exportData: PolicySetExportInterface;\n state: State;\n}) {\n debugMessage({\n message: `PolicySetOps.importPolicySetHardDependencies: start [policySet=${policySetData['name']}]`,\n state,\n });\n const errors = [];\n try {\n // resource types\n for (const resourceTypeUuid of policySetData.resourceTypeUuids) {\n if (exportData.resourcetype[resourceTypeUuid]) {\n try {\n debugMessage({\n message: `Importing resource type ${resourceTypeUuid}`,\n state,\n });\n await putResourceType({\n resourceTypeUuid,\n resourceTypeData: exportData.resourcetype[resourceTypeUuid],\n state,\n });\n } catch (error) {\n debugMessage({ message: error.response?.data, state });\n errors.push(error);\n }\n } else {\n errors.push(\n new Error(\n `No resource type definition with id ${resourceTypeUuid} found in import data.`\n )\n );\n }\n }\n } catch (error) {\n error.message = `Error importing hard dependencies for policy set ${policySetData.name}: ${error.message}`;\n errors.push(error);\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n throw new Error(`Import hard dependencies error:\\n${errorMessages}`);\n }\n debugMessage({\n message: `PolicySetOps.importPolicySetHardDependencies: end`,\n state,\n });\n}\n\n/**\n * Helper function to import dependencies of a policy set (policies and scripts)\n * @param {PolicySetSkeleton} policySetData policy set data\n * @param {PolicySetExportInterface} exportData export data\n */\nasync function importPolicySetDependencies({\n policySetData,\n exportData,\n state,\n}: {\n policySetData: PolicySetSkeleton;\n exportData: PolicySetExportInterface;\n state: State;\n}) {\n debugMessage({\n message: `PolicySetOps.importPolicySetSoftDependencies: start [policySet=${policySetData['name']}]`,\n state,\n });\n const errors = [];\n try {\n // policies\n try {\n const policies = Object.values(exportData.policy).filter(\n (policy) => policy.applicationName === policySetData.name\n );\n for (const policyData of policies) {\n try {\n debugMessage({\n message: `Importing policy ${policyData._id}`,\n state,\n });\n await putPolicy({ policyId: policyData._id, policyData, state });\n } catch (error) {\n debugMessage({ message: error.response?.data, state });\n error.message = `Error importing policy ${policyData._id} in policy set ${policySetData.name}: ${error.message}`;\n errors.push(error);\n }\n // scripts\n const scriptUuids = findScriptUuids(policyData.condition);\n for (const scriptUuid of scriptUuids) {\n try {\n const scriptData = exportData.script[scriptUuid];\n debugMessage({ message: `Importing script ${scriptUuid}`, state });\n await putScript({ scriptId: scriptUuid, scriptData, state });\n } catch (error) {\n debugMessage({ message: error.response?.data, state });\n error.message = `Error importing script ${scriptUuid} for policy ${policyData._id} in policy set ${policySetData.name}: ${error.message}`;\n errors.push(error);\n }\n }\n }\n } catch (error) {\n error.message = `Error importing policies in policy set ${policySetData.name}: ${error.message}`;\n errors.push(error);\n }\n } catch (error) {\n error.message = `Error importing soft dependencies for policy set ${policySetData.name}: ${error.message}`;\n errors.push(error);\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n throw new Error(`Import soft dependencies error:\\n${errorMessages}`);\n }\n debugMessage({\n message: `PolicySetOps.importPolicySetSoftDependencies: end`,\n state,\n });\n}\n\n/**\n * Import policy set\n * @param {string} policySetName policy set name\n * @param {PolicySetExportInterface} importData import data\n * @param {PolicySetImportOptions} options import options\n */\nexport async function importPolicySet({\n policySetName,\n importData,\n options = { deps: true, prereqs: false },\n state,\n}: {\n policySetName: string;\n importData: PolicySetExportInterface;\n options?: PolicySetImportOptions;\n state: State;\n}) {\n let response = null;\n const errors = [];\n const imported = [];\n for (const id of Object.keys(importData.policyset)) {\n if (id === policySetName) {\n try {\n const policySetData = importData.policyset[id];\n delete policySetData._rev;\n if (options.prereqs) {\n try {\n await importPolicySetPrerequisites({\n policySetData,\n exportData: importData,\n state,\n });\n } catch (error) {\n errors.push(error);\n }\n }\n try {\n response = await createPolicySet({ policySetData, state });\n imported.push(id);\n } catch (error) {\n if (error.response?.status === 409) {\n response = await updatePolicySet({ policySetData, state });\n imported.push(id);\n } else throw error;\n }\n if (options.deps) {\n try {\n await importPolicySetDependencies({\n policySetData,\n exportData: importData,\n state,\n });\n } catch (error) {\n errors.push(error);\n }\n }\n } catch (error) {\n errors.push(error);\n }\n }\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n throw new Error(`Import error:\\n${errorMessages}`);\n }\n if (0 === imported.length) {\n throw new Error(\n `Import error:\\n${policySetName} not found in import data!`\n );\n }\n return response;\n}\n\n/**\n * Import first policy set\n * @param {PolicySetExportInterface} importData import data\n * @param {PolicySetImportOptions} options import options\n */\nexport async function importFirstPolicySet({\n importData,\n options = { deps: true, prereqs: false },\n state,\n}: {\n importData: PolicySetExportInterface;\n options?: PolicySetImportOptions;\n state: State;\n}) {\n let response = null;\n const errors = [];\n const imported = [];\n for (const id of Object.keys(importData.policyset)) {\n try {\n const policySetData = importData.policyset[id];\n delete policySetData._provider;\n delete policySetData._rev;\n if (options.prereqs) {\n try {\n await importPolicySetPrerequisites({\n policySetData,\n exportData: importData,\n state,\n });\n } catch (error) {\n errors.push(error);\n }\n }\n try {\n response = await createPolicySet({ policySetData, state });\n imported.push(id);\n } catch (error) {\n if (error.response?.status === 409) {\n response = await updatePolicySet({ policySetData, state });\n imported.push(id);\n } else throw error;\n }\n if (options.deps) {\n try {\n await importPolicySetDependencies({\n policySetData,\n exportData: importData,\n state,\n });\n } catch (error) {\n errors.push(error);\n }\n }\n } catch (error) {\n errors.push(error);\n }\n break;\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n throw new Error(`Import error:\\n${errorMessages}`);\n }\n if (0 === imported.length) {\n throw new Error(`Import error:\\nNo policy sets found in import data!`);\n }\n return response;\n}\n\n/**\n * Import policy sets\n * @param {PolicySetExportInterface} importData import data\n * @param {PolicySetImportOptions} options import options\n */\nexport async function importPolicySets({\n importData,\n options = { deps: true, prereqs: false },\n state,\n}: {\n importData: PolicySetExportInterface;\n options?: PolicySetImportOptions;\n state: State;\n}) {\n let response = null;\n const errors = [];\n const imported = [];\n for (const id of Object.keys(importData.policyset)) {\n try {\n const policySetData = importData.policyset[id];\n delete policySetData._rev;\n if (options.prereqs) {\n try {\n await importPolicySetPrerequisites({\n policySetData,\n exportData: importData,\n state,\n });\n } catch (error) {\n errors.push(error);\n }\n }\n try {\n response = await createPolicySet({ policySetData, state });\n imported.push(id);\n } catch (error) {\n if (error.response?.status === 409) {\n response = await updatePolicySet({ policySetData, state });\n imported.push(id);\n } else throw error;\n }\n if (options.deps) {\n try {\n await importPolicySetDependencies({\n policySetData,\n exportData: importData,\n state,\n });\n } catch (error) {\n errors.push(error);\n }\n }\n } catch (error) {\n errors.push(error);\n }\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n throw new Error(`Import error:\\n${errorMessages}`);\n }\n if (0 === imported.length) {\n throw new Error(`Import error:\\nNo policy sets found in import data!`);\n }\n return response;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PolicySetOps.js","names":["deletePolicySet","getPolicySets","_getPolicySets","getPolicySet","createPolicySet","updatePolicySet","putScript","convertBase64TextToArray","getMetadata","debugMessage","getResourceType","putResourceType","findScriptUuids","getPoliciesByPolicySet","getScripts","putPolicy","state","policySetName","policySetData","exportPolicySet","options","deps","prereqs","useStringArrays","exportPolicySets","importPolicySet","importData","importFirstPolicySet","importPolicySets","createPolicySetExportTemplate","meta","script","policy","resourcetype","policyset","result","exportPolicySetPrerequisites","exportData","message","errors","resourceTypeUuid","resourceTypeUuids","resourceType","error","name","push","length","errorMessages","map","join","Error","exportPolicySetDependencies","policies","policySetId","scripts","policyData","scriptData","_id","policySets","importPolicySetPrerequisites","resourceTypeData","_error$response","response","data","importPolicySetDependencies","Object","values","filter","applicationName","policyId","_error$response2","scriptUuids","condition","scriptUuid","scriptId","_error$response3","imported","id","keys","_rev","_error$response4","status","_provider","_error$response5","_error$response6"],"sources":["../../src/ops/PolicySetOps.ts"],"sourcesContent":["import {\n deletePolicySet,\n getPolicySets as _getPolicySets,\n getPolicySet,\n createPolicySet,\n updatePolicySet,\n} from '../api/PolicySetApi';\nimport { putScript } from './ScriptOps';\nimport { convertBase64TextToArray } from './utils/ExportImportUtils';\nimport { ExportMetaData } from './OpsTypes';\nimport {\n PolicySetSkeleton,\n PolicySkeleton,\n ResourceTypeSkeleton,\n ScriptSkeleton,\n} from '../api/ApiTypes';\nimport { getMetadata } from './utils/ExportImportUtils';\nimport { debugMessage } from './utils/Console';\nimport { getResourceType, putResourceType } from '../api/ResourceTypesApi';\nimport {\n findScriptUuids,\n getPoliciesByPolicySet,\n getScripts,\n putPolicy,\n} from './PolicyOps';\nimport { State } from '../shared/State';\n\nexport type PolicySet = {\n /**\n * Get all policy sets\n * @returns {Promise} a promise that resolves to an array of policy set objects\n */\n getPolicySets(): Promise<PolicySetSkeleton[]>;\n getPolicySet(policySetName: string): Promise<PolicySetSkeleton>;\n createPolicySet(policySetData: PolicySetSkeleton): Promise<any>;\n updatePolicySet(policySetData: PolicySetSkeleton): Promise<any>;\n deletePolicySet(policySetName: string): Promise<any>;\n /**\n * Export policy set\n * @param {string} policySetName policy set name\n * @param {PolicySetExportOptions} options export options\n * @returns {Promise<PolicySetExportInterface>} a promise that resolves to an PolicySetExportInterface object\n */\n exportPolicySet(\n policySetName: string,\n options?: PolicySetExportOptions\n ): Promise<PolicySetExportInterface>;\n /**\n * Export policy sets\n * @param {PolicySetExportOptions} options export options\n * @returns {Promise<PolicySetExportInterface>} a promise that resolves to an PolicySetExportInterface object\n */\n exportPolicySets(\n options?: PolicySetExportOptions\n ): Promise<PolicySetExportInterface>;\n /**\n * Import policy set\n * @param {string} policySetName policy set name\n * @param {PolicySetExportInterface} importData import data\n * @param {PolicySetImportOptions} options import options\n */\n importPolicySet(\n policySetName: string,\n importData: PolicySetExportInterface,\n options?: PolicySetImportOptions\n ): Promise<any>;\n /**\n * Import first policy set\n * @param {PolicySetExportInterface} importData import data\n * @param {PolicySetImportOptions} options import options\n */\n importFirstPolicySet(\n importData: PolicySetExportInterface,\n options?: PolicySetImportOptions\n ): Promise<any>;\n /**\n * Import policy sets\n * @param {PolicySetExportInterface} importData import data\n * @param {PolicySetImportOptions} options import options\n */\n importPolicySets(\n importData: PolicySetExportInterface,\n options?: PolicySetImportOptions\n ): Promise<any>;\n};\n\nexport default (state: State): PolicySet => {\n return {\n /**\n * Get all policy sets\n * @returns {Promise} a promise that resolves to an array of policy set objects\n */\n async getPolicySets(): Promise<PolicySetSkeleton[]> {\n return getPolicySets({ state });\n },\n\n async getPolicySet(policySetName: string) {\n return getPolicySet({ policySetName, state });\n },\n\n async createPolicySet(policySetData: PolicySetSkeleton) {\n return createPolicySet({ policySetData, state });\n },\n\n async updatePolicySet(policySetData: PolicySetSkeleton) {\n return updatePolicySet({ policySetData, state });\n },\n\n async deletePolicySet(policySetName: string) {\n return deletePolicySet({ policySetName, state });\n },\n\n /**\n * Export policy set\n * @param {string} policySetName policy set name\n * @param {PolicySetExportOptions} options export options\n * @returns {Promise<PolicySetExportInterface>} a promise that resolves to an PolicySetExportInterface object\n */\n async exportPolicySet(\n policySetName: string,\n options: PolicySetExportOptions = {\n deps: true,\n prereqs: false,\n useStringArrays: true,\n }\n ): Promise<PolicySetExportInterface> {\n return exportPolicySet({ policySetName, options, state });\n },\n\n /**\n * Export policy sets\n * @param {PolicySetExportOptions} options export options\n * @returns {Promise<PolicySetExportInterface>} a promise that resolves to an PolicySetExportInterface object\n */\n async exportPolicySets(\n options: PolicySetExportOptions = {\n deps: true,\n prereqs: false,\n useStringArrays: true,\n }\n ): Promise<PolicySetExportInterface> {\n return exportPolicySets({ options, state });\n },\n\n /**\n * Import policy set\n * @param {string} policySetName policy set name\n * @param {PolicySetExportInterface} importData import data\n * @param {PolicySetImportOptions} options import options\n */\n async importPolicySet(\n policySetName: string,\n importData: PolicySetExportInterface,\n options: PolicySetImportOptions = { deps: true, prereqs: false }\n ) {\n return importPolicySet({\n policySetName,\n importData,\n options,\n state,\n });\n },\n\n /**\n * Import first policy set\n * @param {PolicySetExportInterface} importData import data\n * @param {PolicySetImportOptions} options import options\n */\n async importFirstPolicySet(\n importData: PolicySetExportInterface,\n options: PolicySetImportOptions = { deps: true, prereqs: false }\n ) {\n return importFirstPolicySet({ importData, options, state });\n },\n\n /**\n * Import policy sets\n * @param {PolicySetExportInterface} importData import data\n * @param {PolicySetImportOptions} options import options\n */\n async importPolicySets(\n importData: PolicySetExportInterface,\n options: PolicySetImportOptions = { deps: true, prereqs: false }\n ) {\n return importPolicySets({ importData, options, state });\n },\n };\n};\n\nexport interface PolicySetExportInterface {\n meta?: ExportMetaData;\n script: Record<string, ScriptSkeleton>;\n resourcetype: Record<string, ResourceTypeSkeleton>;\n policy: Record<string, PolicySkeleton>;\n policyset: Record<string, PolicySetSkeleton>;\n}\n\n/**\n * Application/policy set export options\n */\nexport interface PolicySetExportOptions {\n /**\n * Include any dependencies (policies, scripts, resource types).\n */\n deps: boolean;\n /**\n * Include any prerequisites (policy sets, resource types).\n */\n prereqs: boolean;\n /**\n * Use string arrays to store multi-line text in scripts.\n */\n useStringArrays: boolean;\n}\n\n/**\n * Policy set import options\n */\nexport interface PolicySetImportOptions {\n /**\n * Include any dependencies (policies, scripts, resource types).\n */\n deps: boolean;\n /**\n * Include any prerequisites (policy sets, resource types).\n */\n prereqs: boolean;\n}\n\n/**\n * Create an empty export template\n * @returns {PolicySetExportInterface} an empty export template\n */\nfunction createPolicySetExportTemplate({\n state,\n}: {\n state: State;\n}): PolicySetExportInterface {\n return {\n meta: getMetadata({ state }),\n script: {},\n policy: {},\n resourcetype: {},\n policyset: {},\n } as PolicySetExportInterface;\n}\n\n/**\n * Get all policy sets\n * @returns {Promise} a promise that resolves to an array of policy set objects\n */\nexport async function getPolicySets({\n state,\n}: {\n state: State;\n}): Promise<PolicySetSkeleton[]> {\n const { result } = await _getPolicySets({ state });\n return result;\n}\n\nexport { getPolicySet, createPolicySet, updatePolicySet, deletePolicySet };\n\n/**\n * Helper function to export prerequisites of a policy set\n * @param {PolicySetSkeleton} policySetData policy set object\n * @param {PolicySetExportInterface} exportData export data\n */\nasync function exportPolicySetPrerequisites({\n policySetData,\n exportData,\n state,\n}: {\n policySetData: PolicySetSkeleton;\n exportData: PolicySetExportInterface;\n state: State;\n}) {\n debugMessage({\n message: `PolicySetOps.exportPolicySetPrerequisites: start [policySet=${policySetData['name']}]`,\n state,\n });\n const errors = [];\n // resource types\n for (const resourceTypeUuid of policySetData.resourceTypeUuids) {\n try {\n const resourceType = await getResourceType({ resourceTypeUuid, state });\n exportData.resourcetype[resourceTypeUuid] = resourceType;\n } catch (error) {\n error.message = `Error retrieving resource type ${resourceTypeUuid} for policy set ${policySetData.name}: ${error.message}`;\n errors.push(error);\n }\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n throw new Error(`Export dependencies error:\\n${errorMessages}`);\n }\n debugMessage({\n message: `PolicySetOps.exportPolicySetPrerequisites: end`,\n state,\n });\n}\n\n/**\n * Helper function to export dependencies of a policy set\n * @param {PolicySetSkeleton} policySetData policy set object\n * @param {PolicySetExportOptions} options export options\n * @param {PolicySetExportInterface} exportData export data\n */\nasync function exportPolicySetDependencies({\n policySetData,\n options,\n exportData,\n state,\n}: {\n policySetData: PolicySetSkeleton;\n options: PolicySetExportOptions;\n exportData: PolicySetExportInterface;\n state: State;\n}) {\n debugMessage({\n message: `PolicySetOps.exportPolicySetDependencies: start [policySet=${policySetData['name']}]`,\n state,\n });\n const errors = [];\n // policies\n try {\n const policies = await getPoliciesByPolicySet({\n policySetId: policySetData.name,\n state,\n });\n for (const policy of policies) {\n exportData.policy[policy.name] = policy;\n // scripts\n try {\n const scripts = await getScripts({ policyData: policy, state });\n for (const scriptData of scripts) {\n if (options.useStringArrays) {\n scriptData.script = convertBase64TextToArray(\n scriptData.script as string\n );\n }\n exportData.script[scriptData._id] = scriptData;\n }\n } catch (error) {\n errors.push(error);\n }\n }\n } catch (error) {\n error.message = `Error retrieving policies in policy set ${policySetData.name}: ${error.message}`;\n errors.push(error);\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n throw new Error(`Export dependencies error:\\n${errorMessages}`);\n }\n debugMessage({\n message: `PolicySetOps.exportPolicySetDependencies: end`,\n state,\n });\n}\n\n/**\n * Export policy set\n * @param {string} policySetName policy set name\n * @param {PolicySetExportOptions} options export options\n * @returns {Promise<PolicySetExportInterface>} a promise that resolves to an PolicySetExportInterface object\n */\nexport async function exportPolicySet({\n policySetName,\n options = {\n deps: true,\n prereqs: false,\n useStringArrays: true,\n },\n state,\n}: {\n policySetName: string;\n options?: PolicySetExportOptions;\n state: State;\n}): Promise<PolicySetExportInterface> {\n debugMessage({ message: `PolicySetOps.exportPolicySet: start`, state });\n const exportData = createPolicySetExportTemplate({ state });\n const errors = [];\n try {\n const policySetData = await getPolicySet({ policySetName, state });\n exportData.policyset[policySetData.name] = policySetData;\n if (options.prereqs) {\n try {\n await exportPolicySetPrerequisites({\n policySetData,\n exportData,\n state,\n });\n } catch (error) {\n errors.push(error);\n }\n }\n if (options.deps) {\n try {\n await exportPolicySetDependencies({\n policySetData,\n options,\n exportData,\n state,\n });\n } catch (error) {\n errors.push(error);\n }\n }\n } catch (error) {\n errors.push(error);\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n throw new Error(`Export error:\\n${errorMessages}`);\n }\n debugMessage({ message: `PolicySetOps.exportPolicySet: end`, state });\n return exportData;\n}\n\n/**\n * Export policy sets\n * @param {PolicySetExportOptions} options export options\n * @returns {Promise<PolicySetExportInterface>} a promise that resolves to an PolicySetExportInterface object\n */\nexport async function exportPolicySets({\n options = {\n deps: true,\n prereqs: false,\n useStringArrays: true,\n },\n state,\n}: {\n options: PolicySetExportOptions;\n state: State;\n}): Promise<PolicySetExportInterface> {\n debugMessage({ message: `PolicySetOps.exportPolicySet: start`, state });\n const exportData = createPolicySetExportTemplate({ state });\n const errors = [];\n try {\n const policySets = await getPolicySets({ state });\n for (const policySetData of policySets) {\n exportData.policyset[policySetData.name] = policySetData;\n if (options.prereqs) {\n try {\n await exportPolicySetPrerequisites({\n policySetData,\n exportData,\n state,\n });\n } catch (error) {\n errors.push(error);\n }\n }\n if (options.deps) {\n try {\n await exportPolicySetDependencies({\n policySetData,\n options,\n exportData,\n state,\n });\n } catch (error) {\n errors.push(error);\n }\n }\n }\n } catch (error) {\n errors.push(error);\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n throw new Error(`Export error:\\n${errorMessages}`);\n }\n debugMessage({ message: `PolicySetOps.exportPolicySet: end`, state });\n return exportData;\n}\n\n/**\n * Helper function to import prerequisites of a policy set (resource types)\n * @param {PolicySetSkeleton} policySetData policy set data\n * @param {PolicySetExportInterface} exportData export data\n */\nasync function importPolicySetPrerequisites({\n policySetData,\n exportData,\n state,\n}: {\n policySetData: PolicySetSkeleton;\n exportData: PolicySetExportInterface;\n state: State;\n}) {\n debugMessage({\n message: `PolicySetOps.importPolicySetHardDependencies: start [policySet=${policySetData['name']}]`,\n state,\n });\n const errors = [];\n try {\n // resource types\n for (const resourceTypeUuid of policySetData.resourceTypeUuids) {\n if (exportData.resourcetype[resourceTypeUuid]) {\n try {\n debugMessage({\n message: `Importing resource type ${resourceTypeUuid}`,\n state,\n });\n await putResourceType({\n resourceTypeUuid,\n resourceTypeData: exportData.resourcetype[resourceTypeUuid],\n state,\n });\n } catch (error) {\n debugMessage({ message: error.response?.data, state });\n errors.push(error);\n }\n } else {\n errors.push(\n new Error(\n `No resource type definition with id ${resourceTypeUuid} found in import data.`\n )\n );\n }\n }\n } catch (error) {\n error.message = `Error importing hard dependencies for policy set ${policySetData.name}: ${error.message}`;\n errors.push(error);\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n throw new Error(`Import hard dependencies error:\\n${errorMessages}`);\n }\n debugMessage({\n message: `PolicySetOps.importPolicySetHardDependencies: end`,\n state,\n });\n}\n\n/**\n * Helper function to import dependencies of a policy set (policies and scripts)\n * @param {PolicySetSkeleton} policySetData policy set data\n * @param {PolicySetExportInterface} exportData export data\n */\nasync function importPolicySetDependencies({\n policySetData,\n exportData,\n state,\n}: {\n policySetData: PolicySetSkeleton;\n exportData: PolicySetExportInterface;\n state: State;\n}) {\n debugMessage({\n message: `PolicySetOps.importPolicySetSoftDependencies: start [policySet=${policySetData['name']}]`,\n state,\n });\n const errors = [];\n try {\n // policies\n try {\n const policies = Object.values(exportData.policy).filter(\n (policy) => policy.applicationName === policySetData.name\n );\n for (const policyData of policies) {\n try {\n debugMessage({\n message: `Importing policy ${policyData._id}`,\n state,\n });\n await putPolicy({ policyId: policyData._id, policyData, state });\n } catch (error) {\n debugMessage({ message: error.response?.data, state });\n error.message = `Error importing policy ${policyData._id} in policy set ${policySetData.name}: ${error.message}`;\n errors.push(error);\n }\n // scripts\n const scriptUuids = findScriptUuids(policyData.condition);\n for (const scriptUuid of scriptUuids) {\n try {\n const scriptData = exportData.script[scriptUuid];\n debugMessage({ message: `Importing script ${scriptUuid}`, state });\n await putScript({ scriptId: scriptUuid, scriptData, state });\n } catch (error) {\n debugMessage({ message: error.response?.data, state });\n error.message = `Error importing script ${scriptUuid} for policy ${policyData._id} in policy set ${policySetData.name}: ${error.message}`;\n errors.push(error);\n }\n }\n }\n } catch (error) {\n error.message = `Error importing policies in policy set ${policySetData.name}: ${error.message}`;\n errors.push(error);\n }\n } catch (error) {\n error.message = `Error importing soft dependencies for policy set ${policySetData.name}: ${error.message}`;\n errors.push(error);\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n throw new Error(`Import soft dependencies error:\\n${errorMessages}`);\n }\n debugMessage({\n message: `PolicySetOps.importPolicySetSoftDependencies: end`,\n state,\n });\n}\n\n/**\n * Import policy set\n * @param {string} policySetName policy set name\n * @param {PolicySetExportInterface} importData import data\n * @param {PolicySetImportOptions} options import options\n */\nexport async function importPolicySet({\n policySetName,\n importData,\n options = { deps: true, prereqs: false },\n state,\n}: {\n policySetName: string;\n importData: PolicySetExportInterface;\n options?: PolicySetImportOptions;\n state: State;\n}) {\n let response = null;\n const errors = [];\n const imported = [];\n for (const id of Object.keys(importData.policyset)) {\n if (id === policySetName) {\n try {\n const policySetData = importData.policyset[id];\n delete policySetData._rev;\n if (options.prereqs) {\n try {\n await importPolicySetPrerequisites({\n policySetData,\n exportData: importData,\n state,\n });\n } catch (error) {\n errors.push(error);\n }\n }\n try {\n response = await createPolicySet({ policySetData, state });\n imported.push(id);\n } catch (error) {\n if (error.response?.status === 409) {\n response = await updatePolicySet({ policySetData, state });\n imported.push(id);\n } else throw error;\n }\n if (options.deps) {\n try {\n await importPolicySetDependencies({\n policySetData,\n exportData: importData,\n state,\n });\n } catch (error) {\n errors.push(error);\n }\n }\n } catch (error) {\n errors.push(error);\n }\n }\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n throw new Error(`Import error:\\n${errorMessages}`);\n }\n if (0 === imported.length) {\n throw new Error(\n `Import error:\\n${policySetName} not found in import data!`\n );\n }\n return response;\n}\n\n/**\n * Import first policy set\n * @param {PolicySetExportInterface} importData import data\n * @param {PolicySetImportOptions} options import options\n */\nexport async function importFirstPolicySet({\n importData,\n options = { deps: true, prereqs: false },\n state,\n}: {\n importData: PolicySetExportInterface;\n options?: PolicySetImportOptions;\n state: State;\n}) {\n let response = null;\n const errors = [];\n const imported = [];\n for (const id of Object.keys(importData.policyset)) {\n try {\n const policySetData = importData.policyset[id];\n delete policySetData._provider;\n delete policySetData._rev;\n if (options.prereqs) {\n try {\n await importPolicySetPrerequisites({\n policySetData,\n exportData: importData,\n state,\n });\n } catch (error) {\n errors.push(error);\n }\n }\n try {\n response = await createPolicySet({ policySetData, state });\n imported.push(id);\n } catch (error) {\n if (error.response?.status === 409) {\n response = await updatePolicySet({ policySetData, state });\n imported.push(id);\n } else throw error;\n }\n if (options.deps) {\n try {\n await importPolicySetDependencies({\n policySetData,\n exportData: importData,\n state,\n });\n } catch (error) {\n errors.push(error);\n }\n }\n } catch (error) {\n errors.push(error);\n }\n break;\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n throw new Error(`Import error:\\n${errorMessages}`);\n }\n if (0 === imported.length) {\n throw new Error(`Import error:\\nNo policy sets found in import data!`);\n }\n return response;\n}\n\n/**\n * Import policy sets\n * @param {PolicySetExportInterface} importData import data\n * @param {PolicySetImportOptions} options import options\n */\nexport async function importPolicySets({\n importData,\n options = { deps: true, prereqs: false },\n state,\n}: {\n importData: PolicySetExportInterface;\n options?: PolicySetImportOptions;\n state: State;\n}) {\n let response = null;\n const errors = [];\n const imported = [];\n for (const id of Object.keys(importData.policyset)) {\n try {\n const policySetData = importData.policyset[id];\n delete policySetData._rev;\n if (options.prereqs) {\n try {\n await importPolicySetPrerequisites({\n policySetData,\n exportData: importData,\n state,\n });\n } catch (error) {\n errors.push(error);\n }\n }\n try {\n response = await createPolicySet({ policySetData, state });\n imported.push(id);\n } catch (error) {\n if (error.response?.status === 409) {\n response = await updatePolicySet({ policySetData, state });\n imported.push(id);\n } else throw error;\n }\n if (options.deps) {\n try {\n await importPolicySetDependencies({\n policySetData,\n exportData: importData,\n state,\n });\n } catch (error) {\n errors.push(error);\n }\n }\n } catch (error) {\n errors.push(error);\n }\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n throw new Error(`Import error:\\n${errorMessages}`);\n }\n if (0 === imported.length) {\n throw new Error(`Import error:\\nNo policy sets found in import data!`);\n }\n return response;\n}\n"],"mappings":"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"}
|
package/esm/ops/RealmOps.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RealmOps.js","names":["getRealms","_getRealms","putRealm","getRealmName","state","getRealmByName","realmName","realmId","realmData","addCustomDomain","domain","removeCustomDomain","result","realms","realm","name","Error","realmConfig","exists","aliases","forEach","alias","toLowerCase","push","_id","error","message","filter","length"],"sources":["../../src/ops/RealmOps.ts"],"sourcesContent":["import { getRealms as _getRealms, putRealm } from '../api/RealmApi';\nimport State from '../shared/State';\nimport { getRealmName } from './utils/OpsUtils';\n\nexport default (state: State) => {\n return {\n getRealms() {\n return getRealms({ state });\n },\n\n getRealmByName(realmName: string) {\n return getRealmByName({ realmName, state });\n },\n\n putRealm(realmId: string, realmData: object) {\n return putRealm({ realmId, realmData, state });\n },\n\n /**\n * Add custom DNS domain name (realm DNS alias)\n * @param {string} realm realm name\n * @param {string} domain domain name\n */\n async addCustomDomain(realmName: string, domain: string) {\n return addCustomDomain({ realmName, domain, state });\n },\n\n /**\n * Remove custom DNS domain name (realm DNS alias)\n * @param {String} realm realm name\n * @param {String} domain domain name\n */\n async removeCustomDomain(realmName: string, domain: string) {\n return removeCustomDomain({ realmName, domain, state });\n },\n };\n};\n\n/**\n * Get all realms\n * @returns {Promise} a promise that resolves to an object containing an array of realm objects\n */\nexport async function getRealms({ state }: { state: State }) {\n const { result } = await _getRealms({ state });\n return result;\n}\n\n/**\n * Get realm by name\n * @param {String} realmName realm name\n * @returns {Promise} a promise that resolves to a realm object\n */\nexport async function getRealmByName({\n realmName,\n state,\n}: {\n realmName: string;\n state: State;\n}) {\n const realms = await getRealms({ state });\n for (const realm of realms) {\n if (getRealmName(realmName) === realm.name) {\n return realm;\n }\n }\n throw new Error(`Realm ${realmName} not found!`);\n}\n\n/**\n * Add custom DNS domain name (realm DNS alias)\n * @param {string} realm realm name\n * @param {string} domain domain name\n */\nexport async function addCustomDomain({\n realmName,\n domain,\n state,\n}: {\n realmName: string;\n domain: string;\n state: State;\n}) {\n try {\n let realmConfig = await getRealmByName({ realmName, state });\n let exists = false;\n realmConfig.aliases.forEach((alias: string) => {\n if (domain.toLowerCase() === alias.toLowerCase()) {\n exists = true;\n }\n });\n if (!exists) {\n try {\n realmConfig.aliases.push(domain.toLowerCase());\n realmConfig = await putRealm({\n realmId: realmConfig._id,\n realmData: realmConfig,\n state,\n });\n return realmConfig;\n } catch (error) {\n error.message = `Error adding custom domain ${domain} to realm ${realmName}: ${error.message}`;\n throw error;\n }\n }\n } catch (error) {\n error.message = `Error reading realm ${realmName}: ${error.message}`;\n throw error;\n }\n}\n\n/**\n * Remove custom DNS domain name (realm DNS alias)\n * @param {String} realm realm name\n * @param {String} domain domain name\n */\nexport async function removeCustomDomain({\n realmName,\n domain,\n state,\n}: {\n realmName: string;\n domain: string;\n state: State;\n}) {\n try {\n let realmConfig = await getRealmByName({ realmName, state });\n const aliases = realmConfig.aliases.filter(\n (alias: string) => domain.toLowerCase() !== alias.toLowerCase()\n );\n if (aliases.length < realmConfig.aliases.length) {\n try {\n realmConfig.aliases = aliases;\n realmConfig = await putRealm({\n realmId: realmConfig._id,\n realmData: realmConfig,\n state,\n });\n return realmConfig;\n } catch (error) {\n error.message = `Error removing custom domain ${domain} from realm ${realmName}: ${error.message}`;\n throw error;\n }\n }\n } catch (error) {\n error.message = `Error reading realm ${realmName}: ${error.message}`;\n throw error;\n }\n}\n\nexport { putRealm };\n"],"mappings":"SAASA,SAAS,IAAIC,UAAU,EAAEC,QAAQ;AAAA,SAEjCC,YAAY;
|
|
1
|
+
{"version":3,"file":"RealmOps.js","names":["getRealms","_getRealms","putRealm","getRealmName","state","getRealmByName","realmName","realmId","realmData","addCustomDomain","domain","removeCustomDomain","result","realms","realm","name","Error","realmConfig","exists","aliases","forEach","alias","toLowerCase","push","_id","error","message","filter","length"],"sources":["../../src/ops/RealmOps.ts"],"sourcesContent":["import { getRealms as _getRealms, putRealm } from '../api/RealmApi';\nimport { State } from '../shared/State';\nimport { getRealmName } from './utils/OpsUtils';\n\nexport type Realm = {\n getRealms(): Promise<any>;\n getRealmByName(realmName: string): Promise<any>;\n putRealm(realmId: string, realmData: object): Promise<any>;\n /**\n * Add custom DNS domain name (realm DNS alias)\n * @param {string} realm realm name\n * @param {string} domain domain name\n */\n addCustomDomain(realmName: string, domain: string): Promise<any>;\n /**\n * Remove custom DNS domain name (realm DNS alias)\n * @param {String} realm realm name\n * @param {String} domain domain name\n */\n removeCustomDomain(realmName: string, domain: string): Promise<any>;\n};\n\nexport default (state: State): Realm => {\n return {\n getRealms() {\n return getRealms({ state });\n },\n\n getRealmByName(realmName: string) {\n return getRealmByName({ realmName, state });\n },\n\n putRealm(realmId: string, realmData: object) {\n return putRealm({ realmId, realmData, state });\n },\n\n /**\n * Add custom DNS domain name (realm DNS alias)\n * @param {string} realm realm name\n * @param {string} domain domain name\n */\n async addCustomDomain(realmName: string, domain: string) {\n return addCustomDomain({ realmName, domain, state });\n },\n\n /**\n * Remove custom DNS domain name (realm DNS alias)\n * @param {String} realm realm name\n * @param {String} domain domain name\n */\n async removeCustomDomain(realmName: string, domain: string) {\n return removeCustomDomain({ realmName, domain, state });\n },\n };\n};\n\n/**\n * Get all realms\n * @returns {Promise} a promise that resolves to an object containing an array of realm objects\n */\nexport async function getRealms({ state }: { state: State }) {\n const { result } = await _getRealms({ state });\n return result;\n}\n\n/**\n * Get realm by name\n * @param {String} realmName realm name\n * @returns {Promise} a promise that resolves to a realm object\n */\nexport async function getRealmByName({\n realmName,\n state,\n}: {\n realmName: string;\n state: State;\n}) {\n const realms = await getRealms({ state });\n for (const realm of realms) {\n if (getRealmName(realmName) === realm.name) {\n return realm;\n }\n }\n throw new Error(`Realm ${realmName} not found!`);\n}\n\n/**\n * Add custom DNS domain name (realm DNS alias)\n * @param {string} realm realm name\n * @param {string} domain domain name\n */\nexport async function addCustomDomain({\n realmName,\n domain,\n state,\n}: {\n realmName: string;\n domain: string;\n state: State;\n}) {\n try {\n let realmConfig = await getRealmByName({ realmName, state });\n let exists = false;\n realmConfig.aliases.forEach((alias: string) => {\n if (domain.toLowerCase() === alias.toLowerCase()) {\n exists = true;\n }\n });\n if (!exists) {\n try {\n realmConfig.aliases.push(domain.toLowerCase());\n realmConfig = await putRealm({\n realmId: realmConfig._id,\n realmData: realmConfig,\n state,\n });\n return realmConfig;\n } catch (error) {\n error.message = `Error adding custom domain ${domain} to realm ${realmName}: ${error.message}`;\n throw error;\n }\n }\n } catch (error) {\n error.message = `Error reading realm ${realmName}: ${error.message}`;\n throw error;\n }\n}\n\n/**\n * Remove custom DNS domain name (realm DNS alias)\n * @param {String} realm realm name\n * @param {String} domain domain name\n */\nexport async function removeCustomDomain({\n realmName,\n domain,\n state,\n}: {\n realmName: string;\n domain: string;\n state: State;\n}) {\n try {\n let realmConfig = await getRealmByName({ realmName, state });\n const aliases = realmConfig.aliases.filter(\n (alias: string) => domain.toLowerCase() !== alias.toLowerCase()\n );\n if (aliases.length < realmConfig.aliases.length) {\n try {\n realmConfig.aliases = aliases;\n realmConfig = await putRealm({\n realmId: realmConfig._id,\n realmData: realmConfig,\n state,\n });\n return realmConfig;\n } catch (error) {\n error.message = `Error removing custom domain ${domain} from realm ${realmName}: ${error.message}`;\n throw error;\n }\n }\n } catch (error) {\n error.message = `Error reading realm ${realmName}: ${error.message}`;\n throw error;\n }\n}\n\nexport { putRealm };\n"],"mappings":"SAASA,SAAS,IAAIC,UAAU,EAAEC,QAAQ;AAAA,SAEjCC,YAAY;AAoBrB,gBAAgBC,KAAY,IAAY;EACtC,OAAO;IACLJ,SAASA,CAAA,EAAG;MACV,OAAOA,SAAS,CAAC;QAAEI;MAAM,CAAC,CAAC;IAC7B,CAAC;IAEDC,cAAcA,CAACC,SAAiB,EAAE;MAChC,OAAOD,cAAc,CAAC;QAAEC,SAAS;QAAEF;MAAM,CAAC,CAAC;IAC7C,CAAC;IAEDF,QAAQA,CAACK,OAAe,EAAEC,SAAiB,EAAE;MAC3C,OAAON,QAAQ,CAAC;QAAEK,OAAO;QAAEC,SAAS;QAAEJ;MAAM,CAAC,CAAC;IAChD,CAAC;IAED;AACJ;AACA;AACA;AACA;IACI,MAAMK,eAAeA,CAACH,SAAiB,EAAEI,MAAc,EAAE;MACvD,OAAOD,eAAe,CAAC;QAAEH,SAAS;QAAEI,MAAM;QAAEN;MAAM,CAAC,CAAC;IACtD,CAAC;IAED;AACJ;AACA;AACA;AACA;IACI,MAAMO,kBAAkBA,CAACL,SAAiB,EAAEI,MAAc,EAAE;MAC1D,OAAOC,kBAAkB,CAAC;QAAEL,SAAS;QAAEI,MAAM;QAAEN;MAAM,CAAC,CAAC;IACzD;EACF,CAAC;AACH,CAAC;;AAED;AACA;AACA;AACA;AACA,OAAO,eAAeJ,SAASA,CAAC;EAAEI;AAAwB,CAAC,EAAE;EAC3D,MAAM;IAAEQ;EAAO,CAAC,GAAG,MAAMX,UAAU,CAAC;IAAEG;EAAM,CAAC,CAAC;EAC9C,OAAOQ,MAAM;AACf;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeP,cAAcA,CAAC;EACnCC,SAAS;EACTF;AAIF,CAAC,EAAE;EACD,MAAMS,MAAM,GAAG,MAAMb,SAAS,CAAC;IAAEI;EAAM,CAAC,CAAC;EACzC,KAAK,MAAMU,KAAK,IAAID,MAAM,EAAE;IAC1B,IAAIV,YAAY,CAACG,SAAS,CAAC,KAAKQ,KAAK,CAACC,IAAI,EAAE;MAC1C,OAAOD,KAAK;IACd;EACF;EACA,MAAM,IAAIE,KAAK,CAAE,SAAQV,SAAU,aAAY,CAAC;AAClD;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeG,eAAeA,CAAC;EACpCH,SAAS;EACTI,MAAM;EACNN;AAKF,CAAC,EAAE;EACD,IAAI;IACF,IAAIa,WAAW,GAAG,MAAMZ,cAAc,CAAC;MAAEC,SAAS;MAAEF;IAAM,CAAC,CAAC;IAC5D,IAAIc,MAAM,GAAG,KAAK;IAClBD,WAAW,CAACE,OAAO,CAACC,OAAO,CAAEC,KAAa,IAAK;MAC7C,IAAIX,MAAM,CAACY,WAAW,CAAC,CAAC,KAAKD,KAAK,CAACC,WAAW,CAAC,CAAC,EAAE;QAChDJ,MAAM,GAAG,IAAI;MACf;IACF,CAAC,CAAC;IACF,IAAI,CAACA,MAAM,EAAE;MACX,IAAI;QACFD,WAAW,CAACE,OAAO,CAACI,IAAI,CAACb,MAAM,CAACY,WAAW,CAAC,CAAC,CAAC;QAC9CL,WAAW,GAAG,MAAMf,QAAQ,CAAC;UAC3BK,OAAO,EAAEU,WAAW,CAACO,GAAG;UACxBhB,SAAS,EAAES,WAAW;UACtBb;QACF,CAAC,CAAC;QACF,OAAOa,WAAW;MACpB,CAAC,CAAC,OAAOQ,KAAK,EAAE;QACdA,KAAK,CAACC,OAAO,GAAI,8BAA6BhB,MAAO,aAAYJ,SAAU,KAAImB,KAAK,CAACC,OAAQ,EAAC;QAC9F,MAAMD,KAAK;MACb;IACF;EACF,CAAC,CAAC,OAAOA,KAAK,EAAE;IACdA,KAAK,CAACC,OAAO,GAAI,uBAAsBpB,SAAU,KAAImB,KAAK,CAACC,OAAQ,EAAC;IACpE,MAAMD,KAAK;EACb;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAed,kBAAkBA,CAAC;EACvCL,SAAS;EACTI,MAAM;EACNN;AAKF,CAAC,EAAE;EACD,IAAI;IACF,IAAIa,WAAW,GAAG,MAAMZ,cAAc,CAAC;MAAEC,SAAS;MAAEF;IAAM,CAAC,CAAC;IAC5D,MAAMe,OAAO,GAAGF,WAAW,CAACE,OAAO,CAACQ,MAAM,CACvCN,KAAa,IAAKX,MAAM,CAACY,WAAW,CAAC,CAAC,KAAKD,KAAK,CAACC,WAAW,CAAC,CAChE,CAAC;IACD,IAAIH,OAAO,CAACS,MAAM,GAAGX,WAAW,CAACE,OAAO,CAACS,MAAM,EAAE;MAC/C,IAAI;QACFX,WAAW,CAACE,OAAO,GAAGA,OAAO;QAC7BF,WAAW,GAAG,MAAMf,QAAQ,CAAC;UAC3BK,OAAO,EAAEU,WAAW,CAACO,GAAG;UACxBhB,SAAS,EAAES,WAAW;UACtBb;QACF,CAAC,CAAC;QACF,OAAOa,WAAW;MACpB,CAAC,CAAC,OAAOQ,KAAK,EAAE;QACdA,KAAK,CAACC,OAAO,GAAI,gCAA+BhB,MAAO,eAAcJ,SAAU,KAAImB,KAAK,CAACC,OAAQ,EAAC;QAClG,MAAMD,KAAK;MACb;IACF;EACF,CAAC,CAAC,OAAOA,KAAK,EAAE;IACdA,KAAK,CAACC,OAAO,GAAI,uBAAsBpB,SAAU,KAAImB,KAAK,CAACC,OAAQ,EAAC;IACpE,MAAMD,KAAK;EACb;AACF;AAEA,SAASvB,QAAQ"}
|