@rockcarver/frodo-lib 0.19.2 → 2.0.0-1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +5 -1
- package/cjs/api/AgentApi.js +91 -37
- package/cjs/api/AgentApi.js.map +1 -1
- package/cjs/api/AgentApi.test.js.map +1 -1
- package/cjs/api/ApiTypes.js.map +1 -1
- package/cjs/api/AuthenticateApi.js +18 -11
- package/cjs/api/AuthenticateApi.js.map +1 -1
- package/cjs/api/AuthenticateApi.test.js.map +1 -1
- package/cjs/api/BaseApi.js +50 -26
- package/cjs/api/BaseApi.js.map +1 -1
- package/cjs/api/CirclesOfTrustApi.js +47 -23
- package/cjs/api/CirclesOfTrustApi.js.map +1 -1
- package/cjs/api/IdmConfigApi.js +54 -21
- package/cjs/api/IdmConfigApi.js.map +1 -1
- package/cjs/api/IdmSystemApi.js +9 -6
- package/cjs/api/IdmSystemApi.js.map +1 -1
- package/cjs/api/ManagedObjectApi.js +49 -27
- package/cjs/api/ManagedObjectApi.js.map +1 -1
- package/cjs/api/NodeApi.js +71 -32
- package/cjs/api/NodeApi.js.map +1 -1
- package/cjs/api/NodeApi.test.js.map +1 -1
- package/cjs/api/OAuth2ClientApi.js +43 -20
- package/cjs/api/OAuth2ClientApi.js.map +1 -1
- package/cjs/api/OAuth2OIDCApi.js +74 -27
- package/cjs/api/OAuth2OIDCApi.js.map +1 -1
- package/cjs/api/OAuth2OIDCApi.test.js.map +1 -1
- package/cjs/api/OAuth2ProviderApi.js +10 -9
- package/cjs/api/OAuth2ProviderApi.js.map +1 -1
- package/cjs/api/PoliciesApi.js +54 -22
- package/cjs/api/PoliciesApi.js.map +1 -1
- package/cjs/api/PoliciesApi.test.js.map +1 -1
- package/cjs/api/PolicySetApi.js +54 -23
- package/cjs/api/PolicySetApi.js.map +1 -1
- package/cjs/api/PolicySetApi.test.js.map +1 -1
- package/cjs/api/RealmApi.js +73 -29
- package/cjs/api/RealmApi.js.map +1 -1
- package/cjs/api/ResourceTypesApi.js +67 -28
- package/cjs/api/ResourceTypesApi.js.map +1 -1
- package/cjs/api/ResourceTypesApi.test.js.map +1 -1
- package/cjs/api/Saml2Api.js +90 -122
- package/cjs/api/Saml2Api.js.map +1 -1
- package/cjs/api/ScriptApi.js +54 -23
- package/cjs/api/ScriptApi.js.map +1 -1
- package/cjs/api/ServerInfoApi.js +23 -10
- package/cjs/api/ServerInfoApi.js.map +1 -1
- package/cjs/api/ServiceApi.js +91 -42
- package/cjs/api/ServiceApi.js.map +1 -1
- package/cjs/api/SocialIdentityProvidersApi.js +70 -31
- package/cjs/api/SocialIdentityProvidersApi.js.map +1 -1
- package/cjs/api/TreeApi.js +43 -20
- package/cjs/api/TreeApi.js.map +1 -1
- package/cjs/api/TreeApi.test.js.map +1 -1
- package/cjs/api/cloud/EnvInfoApi.js +10 -6
- package/cjs/api/cloud/EnvInfoApi.js.map +1 -1
- package/cjs/api/cloud/FeatureApi.js +9 -6
- package/cjs/api/cloud/FeatureApi.js.map +1 -1
- package/cjs/api/cloud/LogApi.js +48 -18
- package/cjs/api/cloud/LogApi.js.map +1 -1
- package/cjs/api/cloud/SecretsApi.js +109 -35
- package/cjs/api/cloud/SecretsApi.js.map +1 -1
- package/cjs/api/cloud/SecretsApi.test.js.map +1 -1
- package/cjs/api/cloud/StartupApi.js +21 -10
- package/cjs/api/cloud/StartupApi.js.map +1 -1
- package/cjs/api/cloud/StartupApi.test.js.map +1 -1
- package/cjs/api/cloud/VariablesApi.js +52 -20
- package/cjs/api/cloud/VariablesApi.js.map +1 -1
- package/cjs/api/cloud/VariablesApi.test.js.map +1 -1
- package/cjs/api/utils/ApiUtils.js +2 -5
- package/cjs/api/utils/ApiUtils.js.map +1 -1
- package/cjs/api/utils/ApiUtils.test.js.map +1 -1
- package/cjs/index.js +22 -17
- package/cjs/index.js.map +1 -1
- package/cjs/lib/FrodoLib.js +142 -0
- package/cjs/lib/FrodoLib.js.map +1 -0
- package/cjs/ops/AdminOps.js +578 -90
- package/cjs/ops/AdminOps.js.map +1 -1
- package/cjs/ops/AgentOps.js +956 -118
- package/cjs/ops/AgentOps.js.map +1 -1
- package/cjs/ops/AgentOps.test.js.map +1 -1
- package/cjs/ops/AuthenticateOps.js +155 -87
- package/cjs/ops/AuthenticateOps.js.map +1 -1
- package/cjs/ops/AuthenticateOps.test.js.map +1 -1
- package/cjs/ops/CirclesOfTrustOps.js +334 -291
- package/cjs/ops/CirclesOfTrustOps.js.map +1 -1
- package/cjs/ops/ConnectionProfileOps.js +241 -46
- package/cjs/ops/ConnectionProfileOps.js.map +1 -1
- package/cjs/ops/ConnectionProfileOps.test.js.map +1 -1
- package/cjs/ops/EmailTemplateOps.js +84 -10
- package/cjs/ops/EmailTemplateOps.js.map +1 -1
- package/cjs/ops/EmailTemplateOps.test.js.map +1 -1
- package/cjs/ops/IdmOps.js +97 -81
- package/cjs/ops/IdmOps.js.map +1 -1
- package/cjs/ops/IdmOps.test.js.map +1 -1
- package/cjs/ops/IdpOps.js +275 -42
- package/cjs/ops/IdpOps.js.map +1 -1
- package/cjs/ops/IdpOps.test.js.map +1 -1
- package/cjs/ops/InfoOps.js +42 -27
- package/cjs/ops/InfoOps.js.map +1 -1
- package/cjs/ops/JoseOps.test.js.map +1 -1
- package/cjs/ops/JourneyOps.js +721 -126
- package/cjs/ops/JourneyOps.js.map +1 -1
- package/cjs/ops/JourneyOps.test.js.map +1 -1
- package/cjs/ops/ManagedObjectOps.js +79 -12
- package/cjs/ops/ManagedObjectOps.js.map +1 -1
- package/cjs/ops/NodeOps.js +127 -100
- package/cjs/ops/NodeOps.js.map +1 -1
- package/cjs/ops/OAuth2ClientOps.js +323 -65
- package/cjs/ops/OAuth2ClientOps.js.map +1 -1
- package/cjs/ops/OAuth2ClientOps.test.js.map +1 -1
- package/cjs/ops/OAuth2ProviderOps.js +20 -13
- package/cjs/ops/OAuth2ProviderOps.js.map +1 -1
- package/cjs/ops/OpsTypes.js.map +1 -1
- package/cjs/ops/OrganizationOps.js +67 -12
- package/cjs/ops/OrganizationOps.js.map +1 -1
- package/cjs/ops/PolicyOps.js +476 -136
- package/cjs/ops/PolicyOps.js.map +1 -1
- package/cjs/ops/PolicyOps.test.js.map +1 -1
- package/cjs/ops/PolicySetOps.js +402 -132
- package/cjs/ops/PolicySetOps.js.map +1 -1
- package/cjs/ops/PolicySetOps.test.js.map +1 -1
- package/cjs/ops/RealmOps.js +119 -84
- package/cjs/ops/RealmOps.js.map +1 -1
- package/cjs/ops/ResourceTypeOps.js +348 -95
- package/cjs/ops/ResourceTypeOps.js.map +1 -1
- package/cjs/ops/ResourceTypeOps.test.js.map +1 -1
- package/cjs/ops/Saml2Ops.js +407 -145
- package/cjs/ops/Saml2Ops.js.map +1 -1
- package/cjs/ops/Saml2Ops.test.js.map +1 -1
- package/cjs/ops/ScriptOps.js +256 -79
- package/cjs/ops/ScriptOps.js.map +1 -1
- package/cjs/ops/ScriptOps.test.js.map +1 -1
- package/cjs/ops/ServiceOps.js +328 -55
- package/cjs/ops/ServiceOps.js.map +1 -1
- package/cjs/ops/ThemeOps.js +349 -54
- package/cjs/ops/ThemeOps.js.map +1 -1
- package/cjs/ops/ThemeOps.test.js.map +1 -1
- package/cjs/ops/cloud/FeatureOps.js +57 -12
- package/cjs/ops/cloud/FeatureOps.js.map +1 -1
- package/cjs/ops/cloud/LogOps.js +136 -6
- package/cjs/ops/cloud/LogOps.js.map +1 -1
- package/cjs/ops/cloud/SecretsOps.js +230 -289
- package/cjs/ops/cloud/SecretsOps.js.map +1 -1
- package/cjs/ops/cloud/ServiceAccountOps.js +101 -18
- package/cjs/ops/cloud/ServiceAccountOps.js.map +1 -1
- package/cjs/ops/cloud/ServiceAccountOps.test.js.map +1 -1
- package/cjs/ops/cloud/StartupOps.js +64 -9
- package/cjs/ops/cloud/StartupOps.js.map +1 -1
- package/cjs/ops/cloud/VariablesOps.js +100 -175
- package/cjs/ops/cloud/VariablesOps.js.map +1 -1
- package/cjs/ops/utils/Console.js +9 -10
- package/cjs/ops/utils/Console.js.map +1 -1
- package/cjs/ops/utils/DataProtection.js +2 -2
- package/cjs/ops/utils/DataProtection.js.map +1 -1
- package/cjs/ops/utils/ExportImportUtils.js +35 -13
- package/cjs/ops/utils/ExportImportUtils.js.map +1 -1
- package/cjs/ops/utils/OpsUtils.js +7 -5
- package/cjs/ops/utils/OpsUtils.js.map +1 -1
- package/cjs/ops/utils/OpsUtils.test.js.map +1 -1
- package/cjs/ops/utils/{ValidationUtils.js → ScriptValidationUtils.js} +1 -1
- package/cjs/ops/utils/ScriptValidationUtils.js.map +1 -0
- package/cjs/ops/utils/ScriptValidationUtils.test.js.map +1 -0
- package/cjs/ops/utils/Version.js +9 -2
- package/cjs/ops/utils/Version.js.map +1 -1
- package/cjs/shared/State.js +455 -210
- package/cjs/shared/State.js.map +1 -1
- package/cjs/shared/State.test.js.map +1 -1
- package/cjs/utils/AutoSetupPolly.js +4 -1
- package/cjs/utils/AutoSetupPolly.js.map +1 -1
- package/esm/api/AgentApi.mjs +75 -27
- package/esm/api/AgentApi.test.mjs +319 -71
- package/esm/api/AuthenticateApi.mjs +15 -4
- package/esm/api/AuthenticateApi.test.mjs +27 -8
- package/esm/api/BaseApi.mjs +43 -19
- package/esm/api/CirclesOfTrustApi.mjs +39 -17
- package/esm/api/IdmConfigApi.mjs +44 -13
- package/esm/api/IdmSystemApi.mjs +7 -3
- package/esm/api/ManagedObjectApi.mjs +44 -20
- package/esm/api/NodeApi.mjs +59 -24
- package/esm/api/NodeApi.test.mjs +158 -40
- package/esm/api/OAuth2ClientApi.mjs +36 -15
- package/esm/api/OAuth2OIDCApi.mjs +69 -20
- package/esm/api/OAuth2OIDCApi.test.mjs +21 -3
- package/esm/api/OAuth2ProviderApi.mjs +8 -6
- package/esm/api/PoliciesApi.mjs +45 -16
- package/esm/api/PoliciesApi.test.mjs +63 -15
- package/esm/api/PolicySetApi.mjs +44 -16
- package/esm/api/PolicySetApi.test.mjs +48 -12
- package/esm/api/RealmApi.mjs +65 -24
- package/esm/api/ResourceTypesApi.mjs +56 -21
- package/esm/api/ResourceTypesApi.test.mjs +58 -14
- package/esm/api/Saml2Api.mjs +75 -89
- package/esm/api/ScriptApi.mjs +45 -17
- package/esm/api/ServerInfoApi.mjs +19 -6
- package/esm/api/ServiceApi.mjs +77 -26
- package/esm/api/SocialIdentityProvidersApi.mjs +58 -23
- package/esm/api/TreeApi.mjs +36 -15
- package/esm/api/TreeApi.test.mjs +129 -34
- package/esm/api/cloud/EnvInfoApi.mjs +8 -3
- package/esm/api/cloud/FeatureApi.mjs +7 -3
- package/esm/api/cloud/LogApi.mjs +38 -11
- package/esm/api/cloud/SecretsApi.mjs +89 -21
- package/esm/api/cloud/SecretsApi.test.mjs +193 -50
- package/esm/api/cloud/StartupApi.mjs +17 -6
- package/esm/api/cloud/StartupApi.test.mjs +28 -11
- package/esm/api/cloud/VariablesApi.mjs +43 -14
- package/esm/api/cloud/VariablesApi.test.mjs +124 -33
- package/esm/api/utils/ApiUtils.mjs +2 -4
- package/esm/api/utils/ApiUtils.test.mjs +14 -6
- package/esm/index.mjs +3 -4
- package/esm/lib/FrodoLib.mjs +127 -0
- package/esm/ops/AdminOps.mjs +500 -71
- package/esm/ops/AgentOps.mjs +773 -81
- package/esm/ops/AgentOps.test.mjs +296 -113
- package/esm/ops/AuthenticateOps.mjs +136 -64
- package/esm/ops/AuthenticateOps.test.mjs +7 -4
- package/esm/ops/CirclesOfTrustOps.mjs +278 -229
- package/esm/ops/ConnectionProfileOps.mjs +206 -35
- package/esm/ops/ConnectionProfileOps.test.mjs +25 -5
- package/esm/ops/EmailTemplateOps.mjs +66 -6
- package/esm/ops/EmailTemplateOps.test.mjs +32 -11
- package/esm/ops/IdmOps.mjs +60 -47
- package/esm/ops/IdmOps.test.mjs +54 -18
- package/esm/ops/IdpOps.mjs +227 -31
- package/esm/ops/IdpOps.test.mjs +57 -20
- package/esm/ops/InfoOps.mjs +36 -23
- package/esm/ops/JoseOps.test.mjs +8 -0
- package/esm/ops/JourneyOps.mjs +634 -96
- package/esm/ops/JourneyOps.test.mjs +73 -31
- package/esm/ops/ManagedObjectOps.mjs +66 -10
- package/esm/ops/NodeOps.mjs +108 -85
- package/esm/ops/OAuth2ClientOps.mjs +258 -42
- package/esm/ops/OAuth2ClientOps.test.mjs +80 -29
- package/esm/ops/OAuth2ProviderOps.mjs +11 -8
- package/esm/ops/OrganizationOps.mjs +56 -8
- package/esm/ops/PolicyOps.mjs +379 -93
- package/esm/ops/PolicyOps.test.mjs +180 -65
- package/esm/ops/PolicySetOps.mjs +311 -88
- package/esm/ops/PolicySetOps.test.mjs +108 -39
- package/esm/ops/RealmOps.mjs +85 -65
- package/esm/ops/ResourceTypeOps.mjs +268 -61
- package/esm/ops/ResourceTypeOps.test.mjs +113 -27
- package/esm/ops/Saml2Ops.mjs +346 -106
- package/esm/ops/Saml2Ops.test.mjs +117 -81
- package/esm/ops/ScriptOps.mjs +202 -56
- package/esm/ops/ScriptOps.test.mjs +64 -23
- package/esm/ops/ServiceOps.mjs +258 -27
- package/esm/ops/ThemeOps.mjs +300 -33
- package/esm/ops/ThemeOps.test.mjs +197 -47
- package/esm/ops/cloud/FeatureOps.mjs +45 -10
- package/esm/ops/cloud/LogOps.mjs +117 -4
- package/esm/ops/cloud/SecretsOps.mjs +123 -204
- package/esm/ops/cloud/ServiceAccountOps.mjs +85 -15
- package/esm/ops/cloud/ServiceAccountOps.test.mjs +16 -6
- package/esm/ops/cloud/StartupOps.mjs +49 -6
- package/esm/ops/cloud/VariablesOps.mjs +58 -120
- package/esm/ops/utils/Console.mjs +9 -8
- package/esm/ops/utils/DataProtection.mjs +2 -3
- package/esm/ops/utils/ExportImportUtils.mjs +28 -8
- package/esm/ops/utils/OpsUtils.mjs +4 -3
- package/esm/ops/utils/OpsUtils.test.mjs +21 -5
- package/esm/ops/utils/{ValidationUtils.mjs → ScriptValidationUtils.mjs} +1 -1
- package/esm/ops/utils/{ValidationUtils.test.mjs → ScriptValidationUtils.test.mjs} +2 -2
- package/esm/ops/utils/Version.mjs +8 -2
- package/esm/shared/State.mjs +459 -145
- package/esm/shared/State.test.mjs +8 -0
- package/esm/utils/AutoSetupPolly.mjs +4 -1
- package/package.json +1 -1
- package/types/api/AgentApi.d.ts +37 -8
- package/types/api/AgentApi.d.ts.map +1 -1
- package/types/api/ApiTypes.d.ts +12 -0
- package/types/api/ApiTypes.d.ts.map +1 -1
- package/types/api/AuthenticateApi.d.ts +13 -3
- package/types/api/AuthenticateApi.d.ts.map +1 -1
- package/types/api/BaseApi.d.ts +36 -7
- package/types/api/BaseApi.d.ts.map +1 -1
- package/types/api/CirclesOfTrustApi.d.ts +21 -7
- package/types/api/CirclesOfTrustApi.d.ts.map +1 -1
- package/types/api/IdmConfigApi.d.ts +28 -13
- package/types/api/IdmConfigApi.d.ts.map +1 -1
- package/types/api/IdmSystemApi.d.ts +4 -1
- package/types/api/IdmSystemApi.d.ts.map +1 -1
- package/types/api/ManagedObjectApi.d.ts +25 -10
- package/types/api/ManagedObjectApi.d.ts.map +1 -1
- package/types/api/NodeApi.d.ts +31 -9
- package/types/api/NodeApi.d.ts.map +1 -1
- package/types/api/OAuth2ClientApi.d.ts +18 -5
- package/types/api/OAuth2ClientApi.d.ts.map +1 -1
- package/types/api/OAuth2OIDCApi.d.ts +45 -11
- package/types/api/OAuth2OIDCApi.d.ts.map +1 -1
- package/types/api/OAuth2ProviderApi.d.ts +4 -1
- package/types/api/OAuth2ProviderApi.d.ts.map +1 -1
- package/types/api/PoliciesApi.d.ts +21 -5
- package/types/api/PoliciesApi.d.ts.map +1 -1
- package/types/api/PolicySetApi.d.ts +20 -5
- package/types/api/PolicySetApi.d.ts.map +1 -1
- package/types/api/RealmApi.d.ts +26 -10
- package/types/api/RealmApi.d.ts.map +1 -1
- package/types/api/ResourceTypesApi.d.ts +27 -8
- package/types/api/ResourceTypesApi.d.ts.map +1 -1
- package/types/api/Saml2Api.d.ts +39 -32
- package/types/api/Saml2Api.d.ts.map +1 -1
- package/types/api/ScriptApi.d.ts +21 -5
- package/types/api/ScriptApi.d.ts.map +1 -1
- package/types/api/ServerInfoApi.d.ts +9 -2
- package/types/api/ServerInfoApi.d.ts.map +1 -1
- package/types/api/ServiceApi.d.ts +41 -7
- package/types/api/ServiceApi.d.ts.map +1 -1
- package/types/api/SocialIdentityProvidersApi.d.ts +30 -8
- package/types/api/SocialIdentityProvidersApi.d.ts.map +1 -1
- package/types/api/TreeApi.d.ts +18 -4
- package/types/api/TreeApi.d.ts.map +1 -1
- package/types/api/cloud/EnvInfoApi.d.ts +4 -1
- package/types/api/cloud/EnvInfoApi.d.ts.map +1 -1
- package/types/api/cloud/FeatureApi.d.ts +4 -1
- package/types/api/cloud/FeatureApi.d.ts.map +1 -1
- package/types/api/cloud/LogApi.d.ts +24 -6
- package/types/api/cloud/LogApi.d.ts.map +1 -1
- package/types/api/cloud/SecretsApi.d.ts +50 -10
- package/types/api/cloud/SecretsApi.d.ts.map +1 -1
- package/types/api/cloud/StartupApi.d.ts +7 -2
- package/types/api/cloud/StartupApi.d.ts.map +1 -1
- package/types/api/cloud/VariablesApi.d.ts +23 -5
- package/types/api/cloud/VariablesApi.d.ts.map +1 -1
- package/types/api/utils/ApiUtils.d.ts +3 -2
- package/types/api/utils/ApiUtils.d.ts.map +1 -1
- package/types/index.d.ts +2 -2
- package/types/index.d.ts.map +1 -1
- package/types/lib/FrodoLib.d.ts +95 -0
- package/types/lib/FrodoLib.d.ts.map +1 -0
- package/types/ops/AdminOps.d.ts +71 -12
- package/types/ops/AdminOps.d.ts.map +1 -1
- package/types/ops/AgentOps.d.ts +345 -36
- package/types/ops/AgentOps.d.ts.map +1 -1
- package/types/ops/AuthenticateOps.d.ts +18 -5
- package/types/ops/AuthenticateOps.d.ts.map +1 -1
- package/types/ops/CirclesOfTrustOps.d.ts +76 -26
- package/types/ops/CirclesOfTrustOps.d.ts.map +1 -1
- package/types/ops/ConnectionProfileOps.d.ts +88 -9
- package/types/ops/ConnectionProfileOps.d.ts.map +1 -1
- package/types/ops/EmailTemplateOps.d.ts +36 -3
- package/types/ops/EmailTemplateOps.d.ts.map +1 -1
- package/types/ops/IdmOps.d.ts +28 -40
- package/types/ops/IdmOps.d.ts.map +1 -1
- package/types/ops/IdpOps.d.ts +88 -10
- package/types/ops/IdpOps.d.ts.map +1 -1
- package/types/ops/InfoOps.d.ts +12 -1
- package/types/ops/InfoOps.d.ts.map +1 -1
- package/types/ops/JourneyOps.d.ts +237 -34
- package/types/ops/JourneyOps.d.ts.map +1 -1
- package/types/ops/ManagedObjectOps.d.ts +37 -8
- package/types/ops/ManagedObjectOps.d.ts.map +1 -1
- package/types/ops/NodeOps.d.ts +61 -6
- package/types/ops/NodeOps.d.ts.map +1 -1
- package/types/ops/OAuth2ClientOps.d.ts +104 -10
- package/types/ops/OAuth2ClientOps.d.ts.map +1 -1
- package/types/ops/OAuth2ProviderOps.d.ts +8 -5
- package/types/ops/OAuth2ProviderOps.d.ts.map +1 -1
- package/types/ops/OpsTypes.d.ts +12 -1
- package/types/ops/OpsTypes.d.ts.map +1 -1
- package/types/ops/OrganizationOps.d.ts +24 -3
- package/types/ops/OrganizationOps.d.ts.map +1 -1
- package/types/ops/PolicyOps.d.ts +103 -28
- package/types/ops/PolicyOps.d.ts.map +1 -1
- package/types/ops/PolicySetOps.d.ts +76 -30
- package/types/ops/PolicySetOps.d.ts.map +1 -1
- package/types/ops/RealmOps.d.ts +34 -14
- package/types/ops/RealmOps.d.ts.map +1 -1
- package/types/ops/ResourceTypeOps.d.ts +116 -29
- package/types/ops/ResourceTypeOps.d.ts.map +1 -1
- package/types/ops/Saml2Ops.d.ts +124 -41
- package/types/ops/Saml2Ops.d.ts.map +1 -1
- package/types/ops/ScriptOps.d.ts +88 -23
- package/types/ops/ScriptOps.d.ts.map +1 -1
- package/types/ops/ServiceOps.d.ts +94 -8
- package/types/ops/ServiceOps.d.ts.map +1 -1
- package/types/ops/ThemeOps.d.ts +113 -9
- package/types/ops/ThemeOps.d.ts.map +1 -1
- package/types/ops/cloud/FeatureOps.d.ts +23 -2
- package/types/ops/cloud/FeatureOps.d.ts.map +1 -1
- package/types/ops/cloud/LogOps.d.ts +61 -3
- package/types/ops/cloud/LogOps.d.ts.map +1 -1
- package/types/ops/cloud/SecretsOps.d.ts +77 -63
- package/types/ops/cloud/SecretsOps.d.ts.map +1 -1
- package/types/ops/cloud/ServiceAccountOps.d.ts +48 -3
- package/types/ops/cloud/ServiceAccountOps.d.ts.map +1 -1
- package/types/ops/cloud/StartupOps.d.ts +25 -2
- package/types/ops/cloud/StartupOps.d.ts.map +1 -1
- package/types/ops/cloud/VariablesOps.d.ts +39 -39
- package/types/ops/cloud/VariablesOps.d.ts.map +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 +29 -11
- package/types/ops/utils/ExportImportUtils.d.ts.map +1 -1
- package/types/ops/utils/OpsUtils.d.ts +4 -1
- package/types/ops/utils/OpsUtils.d.ts.map +1 -1
- package/types/ops/utils/ScriptValidationUtils.d.ts.map +1 -0
- package/types/ops/utils/Version.d.ts +5 -1
- package/types/ops/utils/Version.d.ts.map +1 -1
- package/types/shared/State.d.ts +80 -177
- package/types/shared/State.d.ts.map +1 -1
- package/types/utils/AutoSetupPolly.d.ts.map +1 -1
- package/cjs/ops/utils/ValidationUtils.js.map +0 -1
- package/cjs/ops/utils/ValidationUtils.test.js.map +0 -1
- package/types/ops/utils/ValidationUtils.d.ts.map +0 -1
- /package/types/ops/utils/{ValidationUtils.d.ts → ScriptValidationUtils.d.ts} +0 -0
|
@@ -1,227 +1,146 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* List secrets
|
|
8
|
-
* @param {boolean} long Long version, all the fields
|
|
9
|
-
*/
|
|
10
|
-
export async function listSecrets(long) {
|
|
11
|
-
let secrets = [];
|
|
12
|
-
try {
|
|
13
|
-
secrets = (await getSecrets()).result;
|
|
14
|
-
secrets.sort((a, b) => a._id.localeCompare(b._id));
|
|
15
|
-
} catch (error) {
|
|
16
|
-
printMessage(`${error.message}`, 'error');
|
|
17
|
-
printMessage(error.response.data, 'error');
|
|
1
|
+
import { createNewVersionOfSecret, deleteSecret, deleteVersionOfSecret, getSecret, getSecrets, getSecretVersions, getVersionOfSecret, putSecret, setSecretDescription, setStatusOfVersionOfSecret } from '../../api/cloud/SecretsApi';
|
|
2
|
+
export default class SecretsOps {
|
|
3
|
+
constructor(state) {
|
|
4
|
+
this.state = state;
|
|
18
5
|
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
for (const secret of secrets) {
|
|
28
|
-
table.push([secret._id, {
|
|
29
|
-
hAlign: 'right',
|
|
30
|
-
content: secret.activeVersion
|
|
31
|
-
}, {
|
|
32
|
-
hAlign: 'right',
|
|
33
|
-
content: secret.loadedVersion
|
|
34
|
-
}, secret.loaded ? 'loaded'['brightGreen'] : 'unloaded'['brightRed'], wordwrap(secret.description, 40),
|
|
35
|
-
// eslint-disable-next-line no-await-in-loop
|
|
36
|
-
await resolveUserName('teammember', secret.lastChangedBy), new Date(secret.lastChangeDate).toLocaleString()]);
|
|
37
|
-
}
|
|
38
|
-
printMessage(table.toString(), 'data');
|
|
39
|
-
} else {
|
|
40
|
-
secrets.forEach(secret => {
|
|
41
|
-
printMessage(secret._id, 'data');
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Get all secrets
|
|
9
|
+
* @returns {Promise<unknown[]>} a promise that resolves to an array of secrets
|
|
10
|
+
*/
|
|
11
|
+
async getSecrets() {
|
|
12
|
+
return getSecrets({
|
|
13
|
+
state: this.state
|
|
42
14
|
});
|
|
43
15
|
}
|
|
44
|
-
}
|
|
45
16
|
|
|
46
|
-
/**
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
try {
|
|
57
|
-
await putSecret(id, value, description, encoding, useInPlaceholders);
|
|
58
|
-
stopProgressIndicator(`Created secret ${id}`, 'success');
|
|
59
|
-
} catch (error) {
|
|
60
|
-
stopProgressIndicator(`Error: ${error.response.data.code} - ${error.response.data.message}`, 'fail');
|
|
17
|
+
/**
|
|
18
|
+
* Get secret
|
|
19
|
+
* @param secretId secret id/name
|
|
20
|
+
* @returns {Promise<unknown>} a promise that resolves to a secret
|
|
21
|
+
*/
|
|
22
|
+
async getSecret(secretId) {
|
|
23
|
+
return getSecret({
|
|
24
|
+
secretId,
|
|
25
|
+
state: this.state
|
|
26
|
+
});
|
|
61
27
|
}
|
|
62
|
-
}
|
|
63
28
|
|
|
64
|
-
/**
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
29
|
+
/**
|
|
30
|
+
* Create secret
|
|
31
|
+
* @param {string} secretId secret id/name
|
|
32
|
+
* @param {string} value secret value
|
|
33
|
+
* @param {string} description secret description
|
|
34
|
+
* @param {string} encoding secret encoding (only `generic` is supported)
|
|
35
|
+
* @param {boolean} useInPlaceholders flag indicating if the secret can be used in placeholders
|
|
36
|
+
* @returns {Promise<unknown>} a promise that resolves to a secret
|
|
37
|
+
*/
|
|
38
|
+
async putSecret(secretId, value, description, encoding = 'generic', useInPlaceholders = true) {
|
|
39
|
+
return putSecret({
|
|
40
|
+
secretId,
|
|
41
|
+
value,
|
|
42
|
+
description,
|
|
43
|
+
encoding,
|
|
44
|
+
useInPlaceholders,
|
|
45
|
+
state: this.state
|
|
46
|
+
});
|
|
76
47
|
}
|
|
77
|
-
}
|
|
78
48
|
|
|
79
|
-
/**
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
49
|
+
/**
|
|
50
|
+
* Set secret description
|
|
51
|
+
* @param {string} secretId secret id/name
|
|
52
|
+
* @param {string} description secret description
|
|
53
|
+
* @returns {Promise<unknown>} a promise that resolves to a status object
|
|
54
|
+
*/
|
|
55
|
+
async setSecretDescription(secretId, description) {
|
|
56
|
+
return setSecretDescription({
|
|
57
|
+
secretId,
|
|
58
|
+
description,
|
|
59
|
+
state: this.state
|
|
60
|
+
});
|
|
90
61
|
}
|
|
91
|
-
}
|
|
92
62
|
|
|
93
|
-
/**
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
await deleteSecret(secret._id);
|
|
104
|
-
updateProgressIndicator(`Deleted secret ${secret._id}`);
|
|
105
|
-
} catch (error) {
|
|
106
|
-
printMessage(`Error: ${error.response.data.code} - ${error.response.data.message}`, 'error');
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
stopProgressIndicator(`Secrets deleted.`);
|
|
110
|
-
} catch (error) {
|
|
111
|
-
printMessage(`Error: ${error.response.data.code} - ${error.response.data.message}`, 'error');
|
|
63
|
+
/**
|
|
64
|
+
* Delete secret
|
|
65
|
+
* @param {string} secretId secret id/name
|
|
66
|
+
* @returns {Promise<unknown>} a promise that resolves to a secret object
|
|
67
|
+
*/
|
|
68
|
+
async deleteSecret(secretId) {
|
|
69
|
+
return deleteSecret({
|
|
70
|
+
secretId,
|
|
71
|
+
state: this.state
|
|
72
|
+
});
|
|
112
73
|
}
|
|
113
|
-
}
|
|
114
74
|
|
|
115
|
-
/**
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
printMessage(error.response.data, 'error');
|
|
126
|
-
}
|
|
127
|
-
const table = createTable([{
|
|
128
|
-
hAlign: 'right',
|
|
129
|
-
content: 'Version'['brightCyan']
|
|
130
|
-
}, 'Status'['brightCyan'], 'Loaded'['brightCyan'], 'Created'['brightCyan']]);
|
|
131
|
-
// versions.sort((a, b) => a._id.localeCompare(b._id));
|
|
132
|
-
const statusMap = {
|
|
133
|
-
ENABLED: 'active'['brightGreen'],
|
|
134
|
-
DISABLED: 'inactive'['brightRed'],
|
|
135
|
-
DESTROYED: 'deleted'['brightRed']
|
|
136
|
-
};
|
|
137
|
-
for (const version of versions) {
|
|
138
|
-
table.push([{
|
|
139
|
-
hAlign: 'right',
|
|
140
|
-
content: version.version
|
|
141
|
-
}, statusMap[version.status], version.loaded ? 'loaded'['brightGreen'] : 'unloaded'['brightRed'], new Date(version.createDate).toLocaleString()]);
|
|
75
|
+
/**
|
|
76
|
+
* Get secret versions
|
|
77
|
+
* @param {string} secretId secret id/name
|
|
78
|
+
* @returns {Promise<unknown>} a promise that resolves to an array of secret versions
|
|
79
|
+
*/
|
|
80
|
+
async getSecretVersions(secretId) {
|
|
81
|
+
return getSecretVersions({
|
|
82
|
+
secretId,
|
|
83
|
+
state: this.state
|
|
84
|
+
});
|
|
142
85
|
}
|
|
143
|
-
printMessage(table.toString());
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
/**
|
|
147
|
-
* Describe a secret
|
|
148
|
-
* @param {String} secretId Secret id
|
|
149
|
-
*/
|
|
150
|
-
export async function describeSecret(secretId) {
|
|
151
|
-
const secret = await getSecret(secretId);
|
|
152
|
-
const table = createKeyValueTable();
|
|
153
|
-
table.push(['Name'['brightCyan'], secret._id]);
|
|
154
|
-
table.push(['Active Version'['brightCyan'], secret.activeVersion]);
|
|
155
|
-
table.push(['Loaded Version'['brightCyan'], secret.loadedVersion]);
|
|
156
|
-
table.push(['Status'['brightCyan'], secret.loaded ? 'loaded'['brightGreen'] : 'unloaded'['brightRed']]);
|
|
157
|
-
table.push(['Description'['brightCyan'], wordwrap(secret.description, 60)]);
|
|
158
|
-
table.push(['Modified'['brightCyan'], new Date(secret.lastChangeDate).toLocaleString()]);
|
|
159
|
-
table.push(['Modifier'['brightCyan'], await resolveUserName('teammember', secret.lastChangedBy)]);
|
|
160
|
-
table.push(['Modifier UUID'['brightCyan'], secret.lastChangedBy]);
|
|
161
|
-
table.push(['Encoding'['brightCyan'], secret.encoding]);
|
|
162
|
-
table.push(['Use In Placeholders'['brightCyan'], secret.useInPlaceholders]);
|
|
163
|
-
printMessage(table.toString());
|
|
164
|
-
printMessage('\nSecret Versions:');
|
|
165
|
-
await listSecretVersionsCmd(secretId);
|
|
166
|
-
}
|
|
167
86
|
|
|
168
|
-
/**
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
87
|
+
/**
|
|
88
|
+
* Create new secret version
|
|
89
|
+
* @param {string} secretId secret id/name
|
|
90
|
+
* @param {string} value secret value
|
|
91
|
+
* @returns {Promise<unknown>} a promise that resolves to a version object
|
|
92
|
+
*/
|
|
93
|
+
async createNewVersionOfSecret(secretId, value) {
|
|
94
|
+
return createNewVersionOfSecret({
|
|
95
|
+
secretId,
|
|
96
|
+
value,
|
|
97
|
+
state: this.state
|
|
98
|
+
});
|
|
180
99
|
}
|
|
181
|
-
}
|
|
182
100
|
|
|
183
|
-
/**
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
101
|
+
/**
|
|
102
|
+
* Get version of secret
|
|
103
|
+
* @param {string} secretId secret id/name
|
|
104
|
+
* @param {string} version secret version
|
|
105
|
+
* @returns {Promise<unknown>} a promise that resolves to a version object
|
|
106
|
+
*/
|
|
107
|
+
async getVersionOfSecret(secretId, version) {
|
|
108
|
+
return getVersionOfSecret({
|
|
109
|
+
secretId,
|
|
110
|
+
version,
|
|
111
|
+
state: this.state
|
|
112
|
+
});
|
|
195
113
|
}
|
|
196
|
-
}
|
|
197
114
|
|
|
198
|
-
/**
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
115
|
+
/**
|
|
116
|
+
* Update the status of a version of a secret
|
|
117
|
+
* @param {string} secretId secret id/name
|
|
118
|
+
* @param {string} version secret version
|
|
119
|
+
* @param {VersionOfSecretStatus} status status
|
|
120
|
+
* @returns {Promise<unknown>} a promise that resolves to a status object
|
|
121
|
+
*/
|
|
122
|
+
async setStatusOfVersionOfSecret(secretId, version, status) {
|
|
123
|
+
return setStatusOfVersionOfSecret({
|
|
124
|
+
secretId,
|
|
125
|
+
version,
|
|
126
|
+
status,
|
|
127
|
+
state: this.state
|
|
128
|
+
});
|
|
210
129
|
}
|
|
211
|
-
}
|
|
212
130
|
|
|
213
|
-
/**
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
131
|
+
/**
|
|
132
|
+
* Delete version of secret
|
|
133
|
+
* @param {string} secretId secret id/name
|
|
134
|
+
* @param {string} version secret version
|
|
135
|
+
* @returns {Promise<unknown>} a promise that resolves to a version object
|
|
136
|
+
*/
|
|
137
|
+
async deleteVersionOfSecret(secretId, version) {
|
|
138
|
+
return deleteVersionOfSecret({
|
|
139
|
+
secretId,
|
|
140
|
+
version,
|
|
141
|
+
state: this.state
|
|
142
|
+
});
|
|
225
143
|
}
|
|
226
144
|
}
|
|
145
|
+
export { createNewVersionOfSecret, deleteSecret, deleteVersionOfSecret, getSecret, getSecrets, getSecretVersions, putSecret, setSecretDescription, setStatusOfVersionOfSecret };
|
|
227
146
|
//# sourceMappingURL=SecretsOps.js.map
|
|
@@ -1,23 +1,69 @@
|
|
|
1
1
|
import { createManagedObject, getManagedObject } from '../../api/ManagedObjectApi';
|
|
2
2
|
import { debugMessage } from '../utils/Console';
|
|
3
3
|
import { hasFeature } from './FeatureOps';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
import { getTenantURL } from '../../api/utils/ApiUtils';
|
|
5
|
+
export default class ServiceAccountOps {
|
|
6
|
+
constructor(state) {
|
|
7
|
+
this.state = state;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Check if service accounts are available
|
|
12
|
+
* @returns {Promise<boolean>} true if service accounts are available, false otherwise
|
|
13
|
+
*/
|
|
14
|
+
async isServiceAccountsFeatureAvailable() {
|
|
15
|
+
return isServiceAccountsFeatureAvailable({
|
|
16
|
+
state: this.state
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Create service account
|
|
22
|
+
* @param {string} name Human-readable name of service account
|
|
23
|
+
* @param {string} description Description of service account
|
|
24
|
+
* @param {'Active' | 'Inactive'} accountStatus Service account status
|
|
25
|
+
* @param {string[]} scopes Scopes.
|
|
26
|
+
* @param {JwksInterface} jwks Java Web Key Set
|
|
27
|
+
* @returns {Promise<IdObjectSkeletonInterface>} A promise resolving to a service account object
|
|
28
|
+
*/
|
|
29
|
+
async createServiceAccount(name, description, accountStatus, scopes, jwks) {
|
|
30
|
+
return createServiceAccount({
|
|
31
|
+
name,
|
|
32
|
+
description,
|
|
33
|
+
accountStatus,
|
|
34
|
+
scopes,
|
|
35
|
+
jwks,
|
|
36
|
+
state: this.state
|
|
37
|
+
});
|
|
38
|
+
}
|
|
9
39
|
|
|
40
|
+
/**
|
|
41
|
+
* Get service account
|
|
42
|
+
* @param {string} serviceAccountId service account id
|
|
43
|
+
* @returns {Promise<ServiceAccount>} a promise resolving to a service account object
|
|
44
|
+
*/
|
|
45
|
+
async getServiceAccount(serviceAccountId) {
|
|
46
|
+
return getServiceAccount({
|
|
47
|
+
serviceAccountId,
|
|
48
|
+
state: this.state
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
const moType = 'svcacct';
|
|
10
53
|
/**
|
|
11
54
|
* Check if service accounts are available
|
|
12
55
|
* @returns {Promise<boolean>} true if service accounts are available, false otherwise
|
|
13
56
|
*/
|
|
14
|
-
export async function isServiceAccountsFeatureAvailable(
|
|
57
|
+
export async function isServiceAccountsFeatureAvailable({
|
|
58
|
+
state
|
|
59
|
+
}) {
|
|
15
60
|
debugMessage(`ServiceAccountOps.isServiceAccountsFeatureAvailable: start`);
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
61
|
+
const featureAvailable = await hasFeature({
|
|
62
|
+
featureId: 'service-accounts',
|
|
63
|
+
state
|
|
64
|
+
});
|
|
65
|
+
debugMessage(`ServiceAccountOps.isServiceAccountsFeatureAvailable: end, available=${featureAvailable}`);
|
|
66
|
+
return featureAvailable;
|
|
21
67
|
}
|
|
22
68
|
|
|
23
69
|
/**
|
|
@@ -27,9 +73,17 @@ export async function isServiceAccountsFeatureAvailable() {
|
|
|
27
73
|
* @param {'Active' | 'Inactive'} accountStatus Service account status
|
|
28
74
|
* @param {string[]} scopes Scopes.
|
|
29
75
|
* @param {JwksInterface} jwks Java Web Key Set
|
|
76
|
+
* @param {State} state library state
|
|
30
77
|
* @returns {Promise<IdObjectSkeletonInterface>} A promise resolving to a service account object
|
|
31
78
|
*/
|
|
32
|
-
export async function createServiceAccount(
|
|
79
|
+
export async function createServiceAccount({
|
|
80
|
+
name,
|
|
81
|
+
description,
|
|
82
|
+
accountStatus,
|
|
83
|
+
scopes,
|
|
84
|
+
jwks,
|
|
85
|
+
state
|
|
86
|
+
}) {
|
|
33
87
|
debugMessage(`ServiceAccountOps.createServiceAccount: start`);
|
|
34
88
|
const payload = {
|
|
35
89
|
name,
|
|
@@ -40,12 +94,28 @@ export async function createServiceAccount(name, description, accountStatus, sco
|
|
|
40
94
|
};
|
|
41
95
|
debugMessage(`ServiceAccountOps: createServiceAccount: payload:`);
|
|
42
96
|
debugMessage(payload);
|
|
43
|
-
const result = await createManagedObject(moType, payload);
|
|
97
|
+
const result = await createManagedObject(getTenantURL(state.getHost()), moType, payload, state);
|
|
44
98
|
debugMessage(`ServiceAccountOps.createServiceAccount: end`);
|
|
45
99
|
return result;
|
|
46
100
|
}
|
|
47
|
-
|
|
48
|
-
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* Get service account
|
|
104
|
+
* @param {string} serviceAccountId service account id
|
|
105
|
+
* @param {State} state library state
|
|
106
|
+
* @returns {Promise} a promise resolving to a service account object
|
|
107
|
+
*/
|
|
108
|
+
export async function getServiceAccount({
|
|
109
|
+
serviceAccountId,
|
|
110
|
+
state
|
|
111
|
+
}) {
|
|
112
|
+
const serviceAccount = await getManagedObject({
|
|
113
|
+
baseUrl: getTenantURL(state.getHost()),
|
|
114
|
+
type: moType,
|
|
115
|
+
id: serviceAccountId,
|
|
116
|
+
fields: ['*'],
|
|
117
|
+
state
|
|
118
|
+
});
|
|
49
119
|
return serviceAccount;
|
|
50
120
|
}
|
|
51
121
|
//# sourceMappingURL=ServiceAccountOps.js.map
|
|
@@ -27,13 +27,14 @@
|
|
|
27
27
|
* If 1 and 2 didn't produce any errors, you are ready to run the tests in
|
|
28
28
|
* replay mode and make sure they all succeed as well:
|
|
29
29
|
*
|
|
30
|
-
* npm run test:only ServiceAccountOps
|
|
30
|
+
* FRODO_DEBUG=1 npm run test:only ServiceAccountOps
|
|
31
31
|
*
|
|
32
32
|
* Note: FRODO_DEBUG=1 is optional and enables debug logging for some output
|
|
33
33
|
* in case things don't function as expected
|
|
34
34
|
*/
|
|
35
|
+
import { state } from '../../index';
|
|
36
|
+
import * as ServiceAccountOps from './ServiceAccountOps';
|
|
35
37
|
import { createJwkRsa, createJwks, getJwkRsaPublic } from '../JoseOps';
|
|
36
|
-
import * as ServiceAccount from './ServiceAccountOps';
|
|
37
38
|
import { autoSetupPolly, defaultMatchRequestsBy } from '../../utils/AutoSetupPolly';
|
|
38
39
|
|
|
39
40
|
// need to modify the default matching rules to allow the mocking to work for service account tests.
|
|
@@ -44,10 +45,12 @@ autoSetupPolly(matchConfig);
|
|
|
44
45
|
describe.only('ServiceAccountOps', () => {
|
|
45
46
|
describe('isServiceAccountsFeatureAvailable()', () => {
|
|
46
47
|
test('0: Method is implemented', async () => {
|
|
47
|
-
expect(
|
|
48
|
+
expect(ServiceAccountOps.isServiceAccountsFeatureAvailable).toBeDefined();
|
|
48
49
|
});
|
|
49
50
|
test('1: Check tenant supporting service accounts', async () => {
|
|
50
|
-
const response = await
|
|
51
|
+
const response = await ServiceAccountOps.isServiceAccountsFeatureAvailable({
|
|
52
|
+
state
|
|
53
|
+
});
|
|
51
54
|
expect(response).toBeTruthy();
|
|
52
55
|
});
|
|
53
56
|
|
|
@@ -65,7 +68,7 @@ describe.only('ServiceAccountOps', () => {
|
|
|
65
68
|
|
|
66
69
|
describe('createServiceAccount()', () => {
|
|
67
70
|
test('0: Method is implemented', async () => {
|
|
68
|
-
expect(
|
|
71
|
+
expect(ServiceAccountOps.createServiceAccount).toBeDefined();
|
|
69
72
|
});
|
|
70
73
|
test('1: Create service account', async () => {
|
|
71
74
|
const name = 'sa';
|
|
@@ -75,7 +78,14 @@ describe.only('ServiceAccountOps', () => {
|
|
|
75
78
|
const jwk = await createJwkRsa();
|
|
76
79
|
const publicJwk = await getJwkRsaPublic(jwk);
|
|
77
80
|
const jwks = createJwks(publicJwk);
|
|
78
|
-
const response = await
|
|
81
|
+
const response = await ServiceAccountOps.createServiceAccount({
|
|
82
|
+
name,
|
|
83
|
+
description,
|
|
84
|
+
accountStatus,
|
|
85
|
+
scopes,
|
|
86
|
+
jwks,
|
|
87
|
+
state
|
|
88
|
+
});
|
|
79
89
|
expect(response).toMatchSnapshot();
|
|
80
90
|
});
|
|
81
91
|
});
|
|
@@ -2,6 +2,35 @@ import { createProgressIndicator, updateProgressIndicator, stopProgressIndicator
|
|
|
2
2
|
import { getSecrets } from '../../api/cloud/SecretsApi';
|
|
3
3
|
import { getStatus, initiateRestart, RestartStatus } from '../../api/cloud/StartupApi';
|
|
4
4
|
import { getVariables } from '../../api/cloud/VariablesApi';
|
|
5
|
+
export default class StartupOps {
|
|
6
|
+
constructor(state) {
|
|
7
|
+
this.state = state;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Check for updates that need applying
|
|
12
|
+
* @returns {Promise<Updates>} true if there are updates that need to be applied, false otherwise
|
|
13
|
+
*/
|
|
14
|
+
async checkForUpdates() {
|
|
15
|
+
return checkForUpdates({
|
|
16
|
+
state: this.state
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Apply updates
|
|
22
|
+
* @param {boolean} wait wait for the operation to complete or not
|
|
23
|
+
* @param {number} timeout timeout in milliseconds
|
|
24
|
+
* @returns {Promise<boolean>} true if successful, false otherwise
|
|
25
|
+
*/
|
|
26
|
+
async applyUpdates(wait, timeout = 10 * 60 * 1000) {
|
|
27
|
+
return applyUpdates({
|
|
28
|
+
wait,
|
|
29
|
+
timeout,
|
|
30
|
+
state: this.state
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
}
|
|
5
34
|
|
|
6
35
|
/**
|
|
7
36
|
* Updates that need to be applied.
|
|
@@ -11,7 +40,9 @@ import { getVariables } from '../../api/cloud/VariablesApi';
|
|
|
11
40
|
* Check for updates that need applying
|
|
12
41
|
* @returns {Promise<boolean>} true if there are updates that need to be applied, false otherwise
|
|
13
42
|
*/
|
|
14
|
-
export async function checkForUpdates(
|
|
43
|
+
export async function checkForUpdates({
|
|
44
|
+
state
|
|
45
|
+
}) {
|
|
15
46
|
var _updates$secrets, _updates$variables;
|
|
16
47
|
const updates = {
|
|
17
48
|
secrets: [],
|
|
@@ -19,8 +50,12 @@ export async function checkForUpdates() {
|
|
|
19
50
|
};
|
|
20
51
|
createProgressIndicator(undefined, `Checking for updates to apply...`, 'indeterminate');
|
|
21
52
|
try {
|
|
22
|
-
updates.secrets = (await getSecrets(
|
|
23
|
-
|
|
53
|
+
updates.secrets = (await getSecrets({
|
|
54
|
+
state
|
|
55
|
+
})).result.filter(secret => !secret.loaded);
|
|
56
|
+
updates.variables = (await getVariables({
|
|
57
|
+
state
|
|
58
|
+
})).result.filter(variable => !variable.loaded);
|
|
24
59
|
} catch (error) {
|
|
25
60
|
stopProgressIndicator(`Error: ${error.response.data.code} - ${error.response.data.message}`, 'fail');
|
|
26
61
|
}
|
|
@@ -39,10 +74,16 @@ export async function checkForUpdates() {
|
|
|
39
74
|
* @param {number} timeout timeout in milliseconds
|
|
40
75
|
* @returns {Promise<boolean>} true if successful, false otherwise
|
|
41
76
|
*/
|
|
42
|
-
export async function applyUpdates(
|
|
77
|
+
export async function applyUpdates({
|
|
78
|
+
wait,
|
|
79
|
+
timeout = 10 * 60 * 1000,
|
|
80
|
+
state
|
|
81
|
+
}) {
|
|
43
82
|
createProgressIndicator(undefined, `Applying updates...`, 'indeterminate');
|
|
44
83
|
try {
|
|
45
|
-
let status = await initiateRestart(
|
|
84
|
+
let status = await initiateRestart({
|
|
85
|
+
state
|
|
86
|
+
});
|
|
46
87
|
if (wait) {
|
|
47
88
|
const start = new Date().getTime();
|
|
48
89
|
let runtime = 0;
|
|
@@ -51,7 +92,9 @@ export async function applyUpdates(wait, timeout = 10 * 60 * 1000) {
|
|
|
51
92
|
while (status !== RestartStatus.ready && start + timeout > new Date().getTime()) {
|
|
52
93
|
await new Promise(resolve => setTimeout(resolve, 5000));
|
|
53
94
|
try {
|
|
54
|
-
status = await getStatus(
|
|
95
|
+
status = await getStatus({
|
|
96
|
+
state
|
|
97
|
+
});
|
|
55
98
|
|
|
56
99
|
// reset errors after successful status call
|
|
57
100
|
if (errors) errors = 0;
|