auth0-deploy-cli 8.22.0 → 8.23.0
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/.circleci/config.yml +57 -5
- package/CHANGELOG.md +31 -2
- package/README.md +1 -1
- package/eslint.config.js +131 -0
- package/lib/args.js +0 -1
- package/lib/commands/export.js +41 -49
- package/lib/commands/import.js +36 -43
- package/lib/commands/index.js +0 -1
- package/lib/configFactory.js +0 -1
- package/lib/context/defaults.d.ts +1 -0
- package/lib/context/defaults.js +57 -10
- package/lib/context/directory/handlers/actions.js +40 -39
- package/lib/context/directory/handlers/attackProtection.js +22 -34
- package/lib/context/directory/handlers/branding.js +12 -21
- package/lib/context/directory/handlers/clientGrants.js +52 -62
- package/lib/context/directory/handlers/clients.js +44 -57
- package/lib/context/directory/handlers/connectionProfiles.d.ts +1 -1
- package/lib/context/directory/handlers/connectionProfiles.js +20 -30
- package/lib/context/directory/handlers/connections.js +32 -41
- package/lib/context/directory/handlers/customDomains.js +9 -21
- package/lib/context/directory/handlers/databases.js +37 -35
- package/lib/context/directory/handlers/emailProvider.js +22 -36
- package/lib/context/directory/handlers/emailTemplates.js +20 -29
- package/lib/context/directory/handlers/flowVaultConnections.js +40 -49
- package/lib/context/directory/handlers/flows.js +38 -48
- package/lib/context/directory/handlers/forms.js +38 -48
- package/lib/context/directory/handlers/guardianFactorProviders.js +9 -21
- package/lib/context/directory/handlers/guardianFactorTemplates.js +9 -21
- package/lib/context/directory/handlers/guardianFactors.js +9 -21
- package/lib/context/directory/handlers/guardianPhoneFactorMessageTypes.js +8 -20
- package/lib/context/directory/handlers/guardianPhoneFactorSelectedProvider.js +8 -20
- package/lib/context/directory/handlers/guardianPolicies.js +8 -20
- package/lib/context/directory/handlers/hooks.js +24 -34
- package/lib/context/directory/handlers/index.js +4 -1
- package/lib/context/directory/handlers/logStreams.js +12 -24
- package/lib/context/directory/handlers/networkACLs.js +22 -34
- package/lib/context/directory/handlers/organizations.js +39 -44
- package/lib/context/directory/handlers/pages.js +31 -37
- package/lib/context/directory/handlers/phoneProvider.js +12 -24
- package/lib/context/directory/handlers/phoneTemplates.d.ts +6 -0
- package/lib/context/directory/handlers/phoneTemplates.js +39 -0
- package/lib/context/directory/handlers/prompts.js +58 -76
- package/lib/context/directory/handlers/resourceServers.d.ts +1 -1
- package/lib/context/directory/handlers/resourceServers.js +18 -30
- package/lib/context/directory/handlers/roles.js +21 -31
- package/lib/context/directory/handlers/rules.js +22 -32
- package/lib/context/directory/handlers/rulesConfigs.js +3 -15
- package/lib/context/directory/handlers/selfServiceProfiles.js +28 -40
- package/lib/context/directory/handlers/tenant.js +14 -34
- package/lib/context/directory/handlers/themes.js +9 -21
- package/lib/context/directory/handlers/tokenExchangeProfiles.d.ts +5 -0
- package/lib/context/directory/handlers/tokenExchangeProfiles.js +41 -0
- package/lib/context/directory/handlers/triggers.d.ts +1 -1
- package/lib/context/directory/handlers/triggers.js +16 -26
- package/lib/context/directory/handlers/userAttributeProfiles.d.ts +1 -1
- package/lib/context/directory/handlers/userAttributeProfiles.js +16 -26
- package/lib/context/directory/index.js +66 -80
- package/lib/context/index.js +7 -18
- package/lib/context/yaml/handlers/actions.js +39 -41
- package/lib/context/yaml/handlers/attackProtection.js +27 -41
- package/lib/context/yaml/handlers/branding.js +47 -69
- package/lib/context/yaml/handlers/clientGrants.js +26 -40
- package/lib/context/yaml/handlers/clients.js +69 -84
- package/lib/context/yaml/handlers/connectionProfiles.d.ts +1 -1
- package/lib/context/yaml/handlers/connectionProfiles.js +20 -34
- package/lib/context/yaml/handlers/connections.js +63 -67
- package/lib/context/yaml/handlers/customDomains.js +7 -19
- package/lib/context/yaml/handlers/databases.js +63 -65
- package/lib/context/yaml/handlers/emailProvider.js +22 -37
- package/lib/context/yaml/handlers/emailTemplates.js +28 -39
- package/lib/context/yaml/handlers/flowVaultConnections.js +37 -50
- package/lib/context/yaml/handlers/flows.js +55 -66
- package/lib/context/yaml/handlers/forms.js +55 -66
- package/lib/context/yaml/handlers/guardianFactorProviders.js +7 -19
- package/lib/context/yaml/handlers/guardianFactorTemplates.js +7 -19
- package/lib/context/yaml/handlers/guardianFactors.js +7 -19
- package/lib/context/yaml/handlers/guardianPhoneFactorMessageTypes.js +7 -19
- package/lib/context/yaml/handlers/guardianPhoneFactorSelectedProvider.js +7 -19
- package/lib/context/yaml/handlers/guardianPolicies.js +7 -19
- package/lib/context/yaml/handlers/hooks.js +34 -48
- package/lib/context/yaml/handlers/index.js +4 -1
- package/lib/context/yaml/handlers/logStreams.js +16 -30
- package/lib/context/yaml/handlers/networkACLs.js +25 -39
- package/lib/context/yaml/handlers/organizations.js +37 -46
- package/lib/context/yaml/handlers/pages.js +31 -39
- package/lib/context/yaml/handlers/phoneProvider.js +17 -31
- package/lib/context/yaml/handlers/phoneTemplates.d.ts +6 -0
- package/lib/context/yaml/handlers/phoneTemplates.js +25 -0
- package/lib/context/yaml/handlers/prompts.js +22 -47
- package/lib/context/yaml/handlers/resourceServers.d.ts +1 -1
- package/lib/context/yaml/handlers/resourceServers.js +21 -33
- package/lib/context/yaml/handlers/roles.js +19 -33
- package/lib/context/yaml/handlers/rules.js +28 -39
- package/lib/context/yaml/handlers/rulesConfigs.js +14 -28
- package/lib/context/yaml/handlers/selfServiceProfiles.js +29 -43
- package/lib/context/yaml/handlers/tenant.js +19 -41
- package/lib/context/yaml/handlers/themes.js +7 -19
- package/lib/context/yaml/handlers/tokenExchangeProfiles.d.ts +5 -0
- package/lib/context/yaml/handlers/tokenExchangeProfiles.js +27 -0
- package/lib/context/yaml/handlers/triggers.d.ts +1 -1
- package/lib/context/yaml/handlers/triggers.js +15 -29
- package/lib/context/yaml/handlers/userAttributeProfiles.d.ts +1 -1
- package/lib/context/yaml/handlers/userAttributeProfiles.js +7 -19
- package/lib/context/yaml/index.js +120 -128
- package/lib/index.d.ts +4 -96
- package/lib/index.js +24 -34
- package/lib/keywordPreservation.d.ts +1 -1
- package/lib/keywordPreservation.js +11 -6
- package/lib/logger.js +0 -1
- package/lib/readonly.js +3 -4
- package/lib/sessionDurationsToMinutes.js +0 -1
- package/lib/tools/auth0/client.js +108 -127
- package/lib/tools/auth0/handlers/actions.d.ts +8 -26
- package/lib/tools/auth0/handlers/actions.js +138 -149
- package/lib/tools/auth0/handlers/attackProtection.js +80 -92
- package/lib/tools/auth0/handlers/branding.js +75 -99
- package/lib/tools/auth0/handlers/clientGrants.d.ts +2 -9
- package/lib/tools/auth0/handlers/clientGrants.js +68 -73
- package/lib/tools/auth0/handlers/clients.d.ts +17 -16
- package/lib/tools/auth0/handlers/clients.js +120 -106
- package/lib/tools/auth0/handlers/connectionProfiles.d.ts +3 -1
- package/lib/tools/auth0/handlers/connectionProfiles.js +36 -32
- package/lib/tools/auth0/handlers/connections.d.ts +3 -1
- package/lib/tools/auth0/handlers/connections.js +130 -135
- package/lib/tools/auth0/handlers/customDomains.d.ts +4 -1
- package/lib/tools/auth0/handlers/customDomains.js +43 -53
- package/lib/tools/auth0/handlers/databases.js +94 -114
- package/lib/tools/auth0/handlers/default.d.ts +2 -2
- package/lib/tools/auth0/handlers/default.js +210 -171
- package/lib/tools/auth0/handlers/emailProvider.js +41 -52
- package/lib/tools/auth0/handlers/emailTemplates.d.ts +1 -0
- package/lib/tools/auth0/handlers/emailTemplates.js +54 -70
- package/lib/tools/auth0/handlers/flowVaultConnections.d.ts +5 -12
- package/lib/tools/auth0/handlers/flowVaultConnections.js +108 -143
- package/lib/tools/auth0/handlers/flows.d.ts +2 -3
- package/lib/tools/auth0/handlers/flows.js +92 -129
- package/lib/tools/auth0/handlers/forms.d.ts +3 -3
- package/lib/tools/auth0/handlers/forms.js +98 -112
- package/lib/tools/auth0/handlers/guardianFactorProviders.js +61 -84
- package/lib/tools/auth0/handlers/guardianFactorTemplates.js +46 -68
- package/lib/tools/auth0/handlers/guardianFactors.js +35 -45
- package/lib/tools/auth0/handlers/guardianPhoneFactorMessageTypes.js +29 -45
- package/lib/tools/auth0/handlers/guardianPhoneFactorSelectedProvider.js +29 -45
- package/lib/tools/auth0/handlers/guardianPolicies.js +20 -35
- package/lib/tools/auth0/handlers/hooks.js +123 -153
- package/lib/tools/auth0/handlers/index.js +4 -1
- package/lib/tools/auth0/handlers/logStreams.js +42 -47
- package/lib/tools/auth0/handlers/networkACLs.d.ts +5 -4
- package/lib/tools/auth0/handlers/networkACLs.js +115 -133
- package/lib/tools/auth0/handlers/organizations.d.ts +10 -9
- package/lib/tools/auth0/handlers/organizations.js +360 -429
- package/lib/tools/auth0/handlers/pages.js +74 -83
- package/lib/tools/auth0/handlers/phoneProvider.d.ts +2 -2
- package/lib/tools/auth0/handlers/phoneProvider.js +69 -82
- package/lib/tools/auth0/handlers/phoneTemplates.d.ts +63 -0
- package/lib/tools/auth0/handlers/phoneTemplates.js +229 -0
- package/lib/tools/auth0/handlers/prompts.d.ts +7 -7
- package/lib/tools/auth0/handlers/prompts.js +246 -240
- package/lib/tools/auth0/handlers/resourceServers.d.ts +6 -2
- package/lib/tools/auth0/handlers/resourceServers.js +94 -105
- package/lib/tools/auth0/handlers/roles.js +162 -178
- package/lib/tools/auth0/handlers/rules.js +144 -162
- package/lib/tools/auth0/handlers/rulesConfigs.js +30 -39
- package/lib/tools/auth0/handlers/scimHandler.d.ts +4 -3
- package/lib/tools/auth0/handlers/scimHandler.js +110 -132
- package/lib/tools/auth0/handlers/selfServiceProfiles.d.ts +12 -3
- package/lib/tools/auth0/handlers/selfServiceProfiles.js +173 -203
- package/lib/tools/auth0/handlers/tenant.d.ts +5 -3
- package/lib/tools/auth0/handlers/tenant.js +46 -52
- package/lib/tools/auth0/handlers/themes.d.ts +12 -12
- package/lib/tools/auth0/handlers/themes.js +86 -102
- package/lib/tools/auth0/handlers/tokenExchangeProfiles.d.ts +60 -0
- package/lib/tools/auth0/handlers/tokenExchangeProfiles.js +271 -0
- package/lib/tools/auth0/handlers/triggers.js +59 -75
- package/lib/tools/auth0/handlers/userAttributeProfiles.d.ts +3 -2
- package/lib/tools/auth0/handlers/userAttributeProfiles.js +41 -43
- package/lib/tools/auth0/index.js +35 -48
- package/lib/tools/auth0/schema.js +6 -4
- package/lib/tools/calculateChanges.js +24 -15
- package/lib/tools/constants.d.ts +4 -2
- package/lib/tools/constants.js +3 -1
- package/lib/tools/deploy.js +17 -29
- package/lib/tools/index.d.ts +3 -89
- package/lib/tools/index.js +3 -2
- package/lib/tools/utils.d.ts +1 -1
- package/lib/tools/utils.js +12 -22
- package/lib/tools/validationError.js +0 -1
- package/lib/types.d.ts +13 -5
- package/lib/types.js +0 -1
- package/lib/utils.d.ts +3 -58
- package/lib/utils.js +8 -5
- package/package.json +11 -10
- package/tsconfig.json +4 -3
- package/.eslintignore +0 -5
- package/.eslintrc +0 -69
- package/lib/args.js.map +0 -1
- package/lib/commands/export.js.map +0 -1
- package/lib/commands/import.js.map +0 -1
- package/lib/commands/index.js.map +0 -1
- package/lib/configFactory.js.map +0 -1
- package/lib/context/defaults.js.map +0 -1
- package/lib/context/directory/handlers/actions.js.map +0 -1
- package/lib/context/directory/handlers/attackProtection.js.map +0 -1
- package/lib/context/directory/handlers/branding.js.map +0 -1
- package/lib/context/directory/handlers/clientGrants.js.map +0 -1
- package/lib/context/directory/handlers/clients.js.map +0 -1
- package/lib/context/directory/handlers/connectionProfiles.js.map +0 -1
- package/lib/context/directory/handlers/connections.js.map +0 -1
- package/lib/context/directory/handlers/customDomains.js.map +0 -1
- package/lib/context/directory/handlers/databases.js.map +0 -1
- package/lib/context/directory/handlers/emailProvider.js.map +0 -1
- package/lib/context/directory/handlers/emailTemplates.js.map +0 -1
- package/lib/context/directory/handlers/flowVaultConnections.js.map +0 -1
- package/lib/context/directory/handlers/flows.js.map +0 -1
- package/lib/context/directory/handlers/forms.js.map +0 -1
- package/lib/context/directory/handlers/guardianFactorProviders.js.map +0 -1
- package/lib/context/directory/handlers/guardianFactorTemplates.js.map +0 -1
- package/lib/context/directory/handlers/guardianFactors.js.map +0 -1
- package/lib/context/directory/handlers/guardianPhoneFactorMessageTypes.js.map +0 -1
- package/lib/context/directory/handlers/guardianPhoneFactorSelectedProvider.js.map +0 -1
- package/lib/context/directory/handlers/guardianPolicies.js.map +0 -1
- package/lib/context/directory/handlers/hooks.js.map +0 -1
- package/lib/context/directory/handlers/index.js.map +0 -1
- package/lib/context/directory/handlers/logStreams.js.map +0 -1
- package/lib/context/directory/handlers/networkACLs.js.map +0 -1
- package/lib/context/directory/handlers/organizations.js.map +0 -1
- package/lib/context/directory/handlers/pages.js.map +0 -1
- package/lib/context/directory/handlers/phoneProvider.js.map +0 -1
- package/lib/context/directory/handlers/prompts.js.map +0 -1
- package/lib/context/directory/handlers/resourceServers.js.map +0 -1
- package/lib/context/directory/handlers/roles.js.map +0 -1
- package/lib/context/directory/handlers/rules.js.map +0 -1
- package/lib/context/directory/handlers/rulesConfigs.js.map +0 -1
- package/lib/context/directory/handlers/selfServiceProfiles.js.map +0 -1
- package/lib/context/directory/handlers/tenant.js.map +0 -1
- package/lib/context/directory/handlers/themes.js.map +0 -1
- package/lib/context/directory/handlers/triggers.js.map +0 -1
- package/lib/context/directory/handlers/userAttributeProfiles.js.map +0 -1
- package/lib/context/directory/index.js.map +0 -1
- package/lib/context/index.js.map +0 -1
- package/lib/context/yaml/handlers/actions.js.map +0 -1
- package/lib/context/yaml/handlers/attackProtection.js.map +0 -1
- package/lib/context/yaml/handlers/branding.js.map +0 -1
- package/lib/context/yaml/handlers/clientGrants.js.map +0 -1
- package/lib/context/yaml/handlers/clients.js.map +0 -1
- package/lib/context/yaml/handlers/connectionProfiles.js.map +0 -1
- package/lib/context/yaml/handlers/connections.js.map +0 -1
- package/lib/context/yaml/handlers/customDomains.js.map +0 -1
- package/lib/context/yaml/handlers/databases.js.map +0 -1
- package/lib/context/yaml/handlers/emailProvider.js.map +0 -1
- package/lib/context/yaml/handlers/emailTemplates.js.map +0 -1
- package/lib/context/yaml/handlers/flowVaultConnections.js.map +0 -1
- package/lib/context/yaml/handlers/flows.js.map +0 -1
- package/lib/context/yaml/handlers/forms.js.map +0 -1
- package/lib/context/yaml/handlers/guardianFactorProviders.js.map +0 -1
- package/lib/context/yaml/handlers/guardianFactorTemplates.js.map +0 -1
- package/lib/context/yaml/handlers/guardianFactors.js.map +0 -1
- package/lib/context/yaml/handlers/guardianPhoneFactorMessageTypes.js.map +0 -1
- package/lib/context/yaml/handlers/guardianPhoneFactorSelectedProvider.js.map +0 -1
- package/lib/context/yaml/handlers/guardianPolicies.js.map +0 -1
- package/lib/context/yaml/handlers/hooks.js.map +0 -1
- package/lib/context/yaml/handlers/index.js.map +0 -1
- package/lib/context/yaml/handlers/logStreams.js.map +0 -1
- package/lib/context/yaml/handlers/networkACLs.js.map +0 -1
- package/lib/context/yaml/handlers/organizations.js.map +0 -1
- package/lib/context/yaml/handlers/pages.js.map +0 -1
- package/lib/context/yaml/handlers/phoneProvider.js.map +0 -1
- package/lib/context/yaml/handlers/prompts.js.map +0 -1
- package/lib/context/yaml/handlers/resourceServers.js.map +0 -1
- package/lib/context/yaml/handlers/roles.js.map +0 -1
- package/lib/context/yaml/handlers/rules.js.map +0 -1
- package/lib/context/yaml/handlers/rulesConfigs.js.map +0 -1
- package/lib/context/yaml/handlers/selfServiceProfiles.js.map +0 -1
- package/lib/context/yaml/handlers/tenant.js.map +0 -1
- package/lib/context/yaml/handlers/themes.js.map +0 -1
- package/lib/context/yaml/handlers/triggers.js.map +0 -1
- package/lib/context/yaml/handlers/userAttributeProfiles.js.map +0 -1
- package/lib/context/yaml/index.js.map +0 -1
- package/lib/index.js.map +0 -1
- package/lib/keywordPreservation.js.map +0 -1
- package/lib/logger.js.map +0 -1
- package/lib/readonly.js.map +0 -1
- package/lib/sessionDurationsToMinutes.js.map +0 -1
- package/lib/tools/auth0/client.js.map +0 -1
- package/lib/tools/auth0/handlers/actions.js.map +0 -1
- package/lib/tools/auth0/handlers/attackProtection.js.map +0 -1
- package/lib/tools/auth0/handlers/branding.js.map +0 -1
- package/lib/tools/auth0/handlers/clientGrants.js.map +0 -1
- package/lib/tools/auth0/handlers/clients.js.map +0 -1
- package/lib/tools/auth0/handlers/connectionProfiles.js.map +0 -1
- package/lib/tools/auth0/handlers/connections.js.map +0 -1
- package/lib/tools/auth0/handlers/customDomains.js.map +0 -1
- package/lib/tools/auth0/handlers/databases.js.map +0 -1
- package/lib/tools/auth0/handlers/default.js.map +0 -1
- package/lib/tools/auth0/handlers/emailProvider.js.map +0 -1
- package/lib/tools/auth0/handlers/emailTemplates.js.map +0 -1
- package/lib/tools/auth0/handlers/flowVaultConnections.js.map +0 -1
- package/lib/tools/auth0/handlers/flows.js.map +0 -1
- package/lib/tools/auth0/handlers/forms.js.map +0 -1
- package/lib/tools/auth0/handlers/guardianFactorProviders.js.map +0 -1
- package/lib/tools/auth0/handlers/guardianFactorTemplates.js.map +0 -1
- package/lib/tools/auth0/handlers/guardianFactors.js.map +0 -1
- package/lib/tools/auth0/handlers/guardianPhoneFactorMessageTypes.js.map +0 -1
- package/lib/tools/auth0/handlers/guardianPhoneFactorSelectedProvider.js.map +0 -1
- package/lib/tools/auth0/handlers/guardianPolicies.js.map +0 -1
- package/lib/tools/auth0/handlers/hooks.js.map +0 -1
- package/lib/tools/auth0/handlers/index.js.map +0 -1
- package/lib/tools/auth0/handlers/logStreams.js.map +0 -1
- package/lib/tools/auth0/handlers/networkACLs.js.map +0 -1
- package/lib/tools/auth0/handlers/organizations.js.map +0 -1
- package/lib/tools/auth0/handlers/pages.js.map +0 -1
- package/lib/tools/auth0/handlers/phoneProvider.js.map +0 -1
- package/lib/tools/auth0/handlers/prompts.js.map +0 -1
- package/lib/tools/auth0/handlers/resourceServers.js.map +0 -1
- package/lib/tools/auth0/handlers/roles.js.map +0 -1
- package/lib/tools/auth0/handlers/rules.js.map +0 -1
- package/lib/tools/auth0/handlers/rulesConfigs.js.map +0 -1
- package/lib/tools/auth0/handlers/scimHandler.js.map +0 -1
- package/lib/tools/auth0/handlers/selfServiceProfiles.js.map +0 -1
- package/lib/tools/auth0/handlers/tenant.js.map +0 -1
- package/lib/tools/auth0/handlers/themes.js.map +0 -1
- package/lib/tools/auth0/handlers/triggers.js.map +0 -1
- package/lib/tools/auth0/handlers/userAttributeProfiles.js.map +0 -1
- package/lib/tools/auth0/index.js.map +0 -1
- package/lib/tools/auth0/schema.js.map +0 -1
- package/lib/tools/calculateChanges.js.map +0 -1
- package/lib/tools/constants.js.map +0 -1
- package/lib/tools/deploy.js.map +0 -1
- package/lib/tools/index.js.map +0 -1
- package/lib/tools/utils.js.map +0 -1
- package/lib/tools/validationError.js.map +0 -1
- package/lib/types.js.map +0 -1
- package/lib/utils.js.map +0 -1
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
4
|
};
|
|
@@ -46,34 +37,39 @@ class ScimHandler {
|
|
|
46
37
|
* So, we need this map to perform `create`, `update` or `delete` actions on SCIM.
|
|
47
38
|
* @param connections
|
|
48
39
|
*/
|
|
49
|
-
createIdMap(connections) {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
40
|
+
async createIdMap(connections) {
|
|
41
|
+
this.idMap.clear();
|
|
42
|
+
logger_1.default.info('Reviewing connections for SCIM support. This may take a while...');
|
|
43
|
+
await this.poolClient
|
|
44
|
+
.addEachTask({
|
|
45
|
+
data: connections || [],
|
|
46
|
+
generator: (connection) => {
|
|
47
|
+
if (!this.scimScopes.read)
|
|
48
|
+
return Promise.resolve(null);
|
|
49
|
+
if (!this.isScimStrategy(connection.strategy))
|
|
50
|
+
return Promise.resolve(null);
|
|
51
|
+
this.idMap.set(connection.id, { strategy: connection.strategy });
|
|
52
|
+
return this.getScimConfiguration({ id: connection.id })
|
|
53
|
+
.then((response) => {
|
|
54
|
+
const scimConfiguration = response;
|
|
55
|
+
if (scimConfiguration) {
|
|
56
|
+
// eslint-disable-next-line camelcase
|
|
57
|
+
const { mapping, user_id_attribute, connection_id } = scimConfiguration;
|
|
58
|
+
// eslint-disable-next-line camelcase
|
|
59
|
+
if (connection_id) {
|
|
60
|
+
this.idMap.set(connection_id, {
|
|
61
|
+
...this.idMap.get(connection_id),
|
|
62
|
+
scimConfiguration: { mapping, user_id_attribute },
|
|
63
|
+
});
|
|
68
64
|
}
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
|
|
65
|
+
}
|
|
66
|
+
})
|
|
67
|
+
.catch((error) => {
|
|
68
|
+
throw new Error(`Problem fetching SCIM configurations while running \"createIdMap\".\n${error}`);
|
|
69
|
+
});
|
|
70
|
+
},
|
|
71
|
+
})
|
|
72
|
+
.promise();
|
|
77
73
|
}
|
|
78
74
|
/**
|
|
79
75
|
* Iterate through all the connections and add property `scim_configuration` to only `SCIM` connections.
|
|
@@ -83,22 +79,20 @@ class ScimHandler {
|
|
|
83
79
|
*
|
|
84
80
|
* This method mutates the incoming `connections`.
|
|
85
81
|
*/
|
|
86
|
-
applyScimConfiguration(connections) {
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
if (this.
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
connection.scim_configuration = scimConfiguration;
|
|
99
|
-
}
|
|
82
|
+
async applyScimConfiguration(connections) {
|
|
83
|
+
// If `this.idMap` is empty, it means we haven't created the idMap yet. Create it.
|
|
84
|
+
// If `this.scimScopes.read` is false, it means we don't have `read:scim_config` scope. Return connections as is.
|
|
85
|
+
if (this.idMap.size === 0) {
|
|
86
|
+
if (!this.scimScopes.read)
|
|
87
|
+
return connections;
|
|
88
|
+
await this.createIdMap(connections);
|
|
89
|
+
}
|
|
90
|
+
for (const connection of connections) {
|
|
91
|
+
const { scimConfiguration } = this.idMap.get(connection.id) || {};
|
|
92
|
+
if (scimConfiguration) {
|
|
93
|
+
connection.scim_configuration = scimConfiguration;
|
|
100
94
|
}
|
|
101
|
-
}
|
|
95
|
+
}
|
|
102
96
|
}
|
|
103
97
|
/**
|
|
104
98
|
* Wrapper over scimClient methods.
|
|
@@ -120,21 +114,18 @@ class ScimHandler {
|
|
|
120
114
|
/**
|
|
121
115
|
* Error handler wrapper.
|
|
122
116
|
*/
|
|
123
|
-
withErrorHandling(callback, method, connectionId) {
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
}
|
|
131
|
-
});
|
|
117
|
+
async withErrorHandling(callback, method, connectionId) {
|
|
118
|
+
try {
|
|
119
|
+
return await callback();
|
|
120
|
+
}
|
|
121
|
+
catch (error) {
|
|
122
|
+
return this.handleExpectedErrors(error, method, connectionId);
|
|
123
|
+
}
|
|
132
124
|
}
|
|
133
125
|
/**
|
|
134
126
|
* Handle expected errors.
|
|
135
127
|
*/
|
|
136
128
|
handleExpectedErrors(error, method, connectionId) {
|
|
137
|
-
var _a;
|
|
138
129
|
// Skip the connection if it returns 404. This can happen if `SCIM` is not enabled on a `SCIM` connection.
|
|
139
130
|
if (error && error.statusCode === 404) {
|
|
140
131
|
logger_1.default.debug(`SCIM configuration is not enabled on connection \"${connectionId}\".`);
|
|
@@ -150,7 +141,7 @@ class ScimHandler {
|
|
|
150
141
|
return null;
|
|
151
142
|
}
|
|
152
143
|
// Skip the connection if it returns 400. This can happen if `SCIM` configuration already exists on a `SCIM` connection.
|
|
153
|
-
if (error && error.statusCode === 400 &&
|
|
144
|
+
if (error && error.statusCode === 400 && error.message?.includes('already exists')) {
|
|
154
145
|
logger_1.default.warn(`SCIM configuration already exists on connection \"${connectionId}\".`);
|
|
155
146
|
return null;
|
|
156
147
|
}
|
|
@@ -165,94 +156,81 @@ class ScimHandler {
|
|
|
165
156
|
/**
|
|
166
157
|
* Creates a new `SCIM` configuration.
|
|
167
158
|
*/
|
|
168
|
-
createScimConfiguration(
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
return this.withErrorHandling(() => __awaiter(this, void 0, void 0, function* () { return this.connectionsManager.createScimConfiguration({ id }, { user_id_attribute, mapping }); }), 'create', id);
|
|
174
|
-
});
|
|
159
|
+
async createScimConfiguration({ id },
|
|
160
|
+
// eslint-disable-next-line camelcase
|
|
161
|
+
{ user_id_attribute, mapping }) {
|
|
162
|
+
logger_1.default.debug(`Creating SCIM configuration on connection ${id}`);
|
|
163
|
+
return this.withErrorHandling(async () => this.connectionsManager.scimConfiguration.create(id, { user_id_attribute, mapping }), 'create', id);
|
|
175
164
|
}
|
|
176
165
|
/**
|
|
177
166
|
* Retrieves `SCIM` configuration of an enterprise connection.
|
|
178
167
|
*/
|
|
179
|
-
getScimConfiguration(
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
return this.withErrorHandling(() => __awaiter(this, void 0, void 0, function* () { return this.connectionsManager.getScimConfiguration({ id }); }), 'get', id);
|
|
183
|
-
});
|
|
168
|
+
async getScimConfiguration({ id, }) {
|
|
169
|
+
logger_1.default.debug(`Getting SCIM configuration from connection ${id}`);
|
|
170
|
+
return this.withErrorHandling(async () => this.connectionsManager.scimConfiguration.get(id), 'get', id);
|
|
184
171
|
}
|
|
185
172
|
/**
|
|
186
173
|
* Updates an existing `SCIM` configuration.
|
|
187
174
|
*/
|
|
188
|
-
updateScimConfiguration(
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
return this.withErrorHandling(() => __awaiter(this, void 0, void 0, function* () { return this.connectionsManager.updateScimConfiguration({ id }, { user_id_attribute, mapping }); }), 'patch', id);
|
|
194
|
-
});
|
|
175
|
+
async updateScimConfiguration({ id },
|
|
176
|
+
// eslint-disable-next-line camelcase
|
|
177
|
+
{ user_id_attribute, mapping }) {
|
|
178
|
+
logger_1.default.debug(`Updating SCIM configuration on connection ${id}`);
|
|
179
|
+
return this.withErrorHandling(async () => this.connectionsManager.scimConfiguration.update(id, { user_id_attribute, mapping }), 'patch', id);
|
|
195
180
|
}
|
|
196
181
|
/**
|
|
197
182
|
* Deletes an existing `SCIM` configuration.
|
|
198
183
|
*/
|
|
199
|
-
deleteScimConfiguration(
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
return this.withErrorHandling(() => __awaiter(this, void 0, void 0, function* () { return this.connectionsManager.deleteScimConfiguration({ id }); }), 'delete', id);
|
|
203
|
-
});
|
|
184
|
+
async deleteScimConfiguration({ id }) {
|
|
185
|
+
logger_1.default.debug(`Deleting SCIM configuration on connection ${id}`);
|
|
186
|
+
return this.withErrorHandling(async () => this.connectionsManager.scimConfiguration.delete(id), 'delete', id);
|
|
204
187
|
}
|
|
205
|
-
updateOverride(requestParams, bodyParams) {
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
if (
|
|
219
|
-
if (
|
|
220
|
-
|
|
221
|
-
yield this.updateScimConfiguration(requestParams, scimBodyParams);
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
else if (this.config('AUTH0_ALLOW_DELETE')) {
|
|
225
|
-
if (this.scimScopes.delete) {
|
|
226
|
-
yield this.deleteScimConfiguration(requestParams);
|
|
227
|
-
}
|
|
188
|
+
async updateOverride(requestParams, bodyParams) {
|
|
189
|
+
// Extract `scim_configuration` from `bodyParams`.
|
|
190
|
+
// Remove `scim_configuration` from `bodyParams`, because `connections.update` doesn't accept it.
|
|
191
|
+
const { scim_configuration: scimBodyParams } = bodyParams;
|
|
192
|
+
delete bodyParams.scim_configuration;
|
|
193
|
+
// First, update `connections`.
|
|
194
|
+
const updated = await this.connectionsManager.update(requestParams.id, bodyParams);
|
|
195
|
+
const idMapEntry = this.idMap.get(requestParams.id);
|
|
196
|
+
// Now, update `scim_configuration` inside the updated connection.
|
|
197
|
+
// If `scim_configuration` exists in both local and remote -> updateScimConfiguration(...)
|
|
198
|
+
// If `scim_configuration` exists in remote but local -> deleteScimConfiguration(...)
|
|
199
|
+
// If `scim_configuration` exists in local but remote -> createScimConfiguration(...)
|
|
200
|
+
if (idMapEntry?.scimConfiguration) {
|
|
201
|
+
if (scimBodyParams) {
|
|
202
|
+
if (this.scimScopes.update) {
|
|
203
|
+
await this.updateScimConfiguration(requestParams, scimBodyParams);
|
|
228
204
|
}
|
|
229
|
-
|
|
230
|
-
|
|
205
|
+
}
|
|
206
|
+
else if (this.config('AUTH0_ALLOW_DELETE')) {
|
|
207
|
+
if (this.scimScopes.delete) {
|
|
208
|
+
await this.deleteScimConfiguration(requestParams);
|
|
231
209
|
}
|
|
232
210
|
}
|
|
233
|
-
else
|
|
234
|
-
|
|
211
|
+
else {
|
|
212
|
+
logger_1.default.warn(`Skipping DELETE scim_configuration on \"${requestParams.id}\". Enable deletes by setting \"AUTH0_ALLOW_DELETE\" to true in your config.`);
|
|
235
213
|
}
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
214
|
+
}
|
|
215
|
+
else if (scimBodyParams && this.scimScopes.create) {
|
|
216
|
+
await this.createScimConfiguration(requestParams, scimBodyParams);
|
|
217
|
+
}
|
|
218
|
+
// Return response from connections.update(...).
|
|
219
|
+
return updated;
|
|
239
220
|
}
|
|
240
|
-
createOverride(bodyParams) {
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
return data;
|
|
254
|
-
});
|
|
221
|
+
async createOverride(bodyParams) {
|
|
222
|
+
// Extract `scim_configuration` from `bodyParams`.
|
|
223
|
+
// Remove `scim_configuration` from `bodyParams`, because `connections.create` doesn't accept it.
|
|
224
|
+
const { scim_configuration: scimBodyParams } = bodyParams;
|
|
225
|
+
delete bodyParams.scim_configuration;
|
|
226
|
+
// First, create the new `connection`.
|
|
227
|
+
const data = await this.connectionsManager.create(bodyParams);
|
|
228
|
+
if (data?.id && scimBodyParams && this.scimScopes.create) {
|
|
229
|
+
// Now, create the `scim_configuration` for newly created `connection`.
|
|
230
|
+
await this.createScimConfiguration({ id: data.id }, scimBodyParams);
|
|
231
|
+
}
|
|
232
|
+
// Return response from connections.create(...).
|
|
233
|
+
return data;
|
|
255
234
|
}
|
|
256
235
|
}
|
|
257
236
|
exports.default = ScimHandler;
|
|
258
|
-
//# sourceMappingURL=scimHandler.js.map
|
|
@@ -1,11 +1,19 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Management } from 'auth0';
|
|
2
2
|
import { Asset, Assets, Auth0APIClient, CalculatedChanges } from '../../../types';
|
|
3
3
|
import DefaultAPIHandler from './default';
|
|
4
|
+
import { UserAttributeProfile } from './userAttributeProfiles';
|
|
5
|
+
declare const SelfServiceProfileCustomTextLanguageEnum: {
|
|
6
|
+
readonly en: "en";
|
|
7
|
+
};
|
|
8
|
+
declare const SelfServiceProfileCustomTextPageEnum: {
|
|
9
|
+
readonly getStarted: "get-started";
|
|
10
|
+
};
|
|
4
11
|
type customTextType = {
|
|
5
|
-
[
|
|
6
|
-
[
|
|
12
|
+
[SelfServiceProfileCustomTextLanguageEnum.en]: {
|
|
13
|
+
[SelfServiceProfileCustomTextPageEnum.getStarted]: Object;
|
|
7
14
|
};
|
|
8
15
|
};
|
|
16
|
+
type SsProfile = Management.SelfServiceProfile;
|
|
9
17
|
export type SsProfileWithCustomText = Omit<SsProfile, 'created_at' | 'updated_at'> & {
|
|
10
18
|
customText?: customTextType;
|
|
11
19
|
};
|
|
@@ -80,6 +88,7 @@ export declare const schema: {
|
|
|
80
88
|
export default class SelfServiceProfileHandler extends DefaultAPIHandler {
|
|
81
89
|
existing: SsProfileWithCustomText[];
|
|
82
90
|
constructor(config: DefaultAPIHandler);
|
|
91
|
+
objString(item: any): string;
|
|
83
92
|
getType(): Promise<SsProfileWithCustomText[]>;
|
|
84
93
|
processChanges(assets: Assets): Promise<void>;
|
|
85
94
|
updateCustomText(ssProfileId: string, customText: customTextType): Promise<void>;
|