auth0-deploy-cli 8.13.0 → 8.14.0-beta.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.
Files changed (98) hide show
  1. package/.circleci/config.yml +42 -1
  2. package/CHANGELOG.md +9 -1
  3. package/README.md +1 -0
  4. package/lib/args.d.ts +1 -0
  5. package/lib/args.js +6 -0
  6. package/lib/args.js.map +1 -1
  7. package/lib/commands/import.js +10 -3
  8. package/lib/commands/import.js.map +1 -1
  9. package/lib/context/directory/handlers/connections.js +1 -1
  10. package/lib/context/directory/handlers/connections.js.map +1 -1
  11. package/lib/context/directory/handlers/guardianFactors.js +3 -1
  12. package/lib/context/directory/handlers/guardianFactors.js.map +1 -1
  13. package/lib/context/directory/handlers/prompts.js +9 -2
  14. package/lib/context/directory/handlers/prompts.js.map +1 -1
  15. package/lib/context/directory/handlers/tenant.d.ts +0 -3
  16. package/lib/context/directory/handlers/tenant.js +4 -18
  17. package/lib/context/directory/handlers/tenant.js.map +1 -1
  18. package/lib/context/yaml/handlers/connections.js +1 -11
  19. package/lib/context/yaml/handlers/connections.js.map +1 -1
  20. package/lib/context/yaml/handlers/guardianFactors.js +3 -1
  21. package/lib/context/yaml/handlers/guardianFactors.js.map +1 -1
  22. package/lib/context/yaml/handlers/tenant.js +3 -16
  23. package/lib/context/yaml/handlers/tenant.js.map +1 -1
  24. package/lib/sessionDurationsToMinutes.d.ts +3 -4
  25. package/lib/sessionDurationsToMinutes.js +5 -5
  26. package/lib/sessionDurationsToMinutes.js.map +1 -1
  27. package/lib/tools/auth0/handlers/attackProtection.js +7 -0
  28. package/lib/tools/auth0/handlers/attackProtection.js.map +1 -1
  29. package/lib/tools/auth0/handlers/branding.js +7 -0
  30. package/lib/tools/auth0/handlers/branding.js.map +1 -1
  31. package/lib/tools/auth0/handlers/connections.d.ts +0 -5
  32. package/lib/tools/auth0/handlers/connections.js +1 -11
  33. package/lib/tools/auth0/handlers/connections.js.map +1 -1
  34. package/lib/tools/auth0/handlers/customDomains.js +10 -1
  35. package/lib/tools/auth0/handlers/customDomains.js.map +1 -1
  36. package/lib/tools/auth0/handlers/default.d.ts +4 -0
  37. package/lib/tools/auth0/handlers/default.js +75 -1
  38. package/lib/tools/auth0/handlers/default.js.map +1 -1
  39. package/lib/tools/auth0/handlers/emailProvider.js +8 -1
  40. package/lib/tools/auth0/handlers/emailProvider.js.map +1 -1
  41. package/lib/tools/auth0/handlers/emailTemplates.js +7 -0
  42. package/lib/tools/auth0/handlers/emailTemplates.js.map +1 -1
  43. package/lib/tools/auth0/handlers/flowVaultConnections.js +6 -1
  44. package/lib/tools/auth0/handlers/flowVaultConnections.js.map +1 -1
  45. package/lib/tools/auth0/handlers/flows.js +14 -6
  46. package/lib/tools/auth0/handlers/flows.js.map +1 -1
  47. package/lib/tools/auth0/handlers/forms.js +14 -6
  48. package/lib/tools/auth0/handlers/forms.js.map +1 -1
  49. package/lib/tools/auth0/handlers/guardianFactors.js +7 -1
  50. package/lib/tools/auth0/handlers/guardianFactors.js.map +1 -1
  51. package/lib/tools/auth0/handlers/guardianPhoneFactorMessageTypes.js +8 -1
  52. package/lib/tools/auth0/handlers/guardianPhoneFactorMessageTypes.js.map +1 -1
  53. package/lib/tools/auth0/handlers/guardianPhoneFactorSelectedProvider.js +8 -1
  54. package/lib/tools/auth0/handlers/guardianPhoneFactorSelectedProvider.js.map +1 -1
  55. package/lib/tools/auth0/handlers/guardianPolicies.js +8 -1
  56. package/lib/tools/auth0/handlers/guardianPolicies.js.map +1 -1
  57. package/lib/tools/auth0/handlers/organizations.js +7 -0
  58. package/lib/tools/auth0/handlers/organizations.js.map +1 -1
  59. package/lib/tools/auth0/handlers/pages.js +7 -0
  60. package/lib/tools/auth0/handlers/pages.js.map +1 -1
  61. package/lib/tools/auth0/handlers/phoneProvider.js +7 -0
  62. package/lib/tools/auth0/handlers/phoneProvider.js.map +1 -1
  63. package/lib/tools/auth0/handlers/prompts.js +7 -0
  64. package/lib/tools/auth0/handlers/prompts.js.map +1 -1
  65. package/lib/tools/auth0/handlers/resourceServers.d.ts +2 -2
  66. package/lib/tools/auth0/handlers/resourceServers.js +45 -20
  67. package/lib/tools/auth0/handlers/resourceServers.js.map +1 -1
  68. package/lib/tools/auth0/handlers/roles.js +7 -0
  69. package/lib/tools/auth0/handlers/roles.js.map +1 -1
  70. package/lib/tools/auth0/handlers/scimHandler.js +8 -1
  71. package/lib/tools/auth0/handlers/scimHandler.js.map +1 -1
  72. package/lib/tools/auth0/handlers/selfServiceProfiles.js +9 -17
  73. package/lib/tools/auth0/handlers/selfServiceProfiles.js.map +1 -1
  74. package/lib/tools/auth0/handlers/tenant.js +25 -3
  75. package/lib/tools/auth0/handlers/tenant.js.map +1 -1
  76. package/lib/tools/auth0/handlers/themes.js +12 -3
  77. package/lib/tools/auth0/handlers/themes.js.map +1 -1
  78. package/lib/tools/auth0/handlers/triggers.js +6 -0
  79. package/lib/tools/auth0/handlers/triggers.js.map +1 -1
  80. package/lib/tools/auth0/index.d.ts +2 -1
  81. package/lib/tools/auth0/index.js +62 -0
  82. package/lib/tools/auth0/index.js.map +1 -1
  83. package/lib/tools/calculateChanges.d.ts +53 -3
  84. package/lib/tools/calculateChanges.js +347 -6
  85. package/lib/tools/calculateChanges.js.map +1 -1
  86. package/lib/tools/deploy.d.ts +1 -1
  87. package/lib/tools/deploy.js +134 -3
  88. package/lib/tools/deploy.js.map +1 -1
  89. package/lib/tools/utils.d.ts +4 -0
  90. package/lib/tools/utils.js +26 -0
  91. package/lib/tools/utils.js.map +1 -1
  92. package/lib/types.d.ts +14 -0
  93. package/lib/types.js.map +1 -1
  94. package/lib/utils.d.ts +6 -0
  95. package/lib/utils.js +23 -1
  96. package/lib/utils.js.map +1 -1
  97. package/package.json +6 -4
  98. package/.github/workflows/semgrep.yml +0 -18
@@ -1,11 +1,30 @@
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
+ };
2
11
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
13
  };
5
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.exportDiffLog = void 0;
6
16
  exports.processChangedObjectFields = processChangedObjectFields;
7
17
  exports.calculateChanges = calculateChanges;
18
+ exports.getObjectDifferences = getObjectDifferences;
19
+ exports.hasObjectDifferences = hasObjectDifferences;
20
+ exports.calculateDryRunChanges = calculateDryRunChanges;
21
+ exports.dryRunFormatAssets = dryRunFormatAssets;
22
+ const chalk_1 = __importDefault(require("chalk"));
23
+ const promises_1 = __importDefault(require("node:fs/promises"));
8
24
  const logger_1 = __importDefault(require("../logger"));
25
+ const utils_1 = require("./utils");
26
+ const client_1 = require("./auth0/client");
27
+ const utils_2 = require("../utils");
9
28
  /**
10
29
  * @template T
11
30
  * @param {typeof import('./auth0/handlers/default').default} handler
@@ -67,8 +86,14 @@ function processChangedObjectFields({ handler, desiredAssetState, currentAssetSt
67
86
  function calculateChanges({ handler, assets, existing, identifiers = ['id', 'name'], allowDelete, }) {
68
87
  // Calculate the changes required between two sets of assets.
69
88
  const update = [];
70
- let del = [...(existing || [])];
71
- let create = [...assets];
89
+ let del = [];
90
+ if (existing) {
91
+ del = Array.isArray(existing) ? [...existing] : [existing];
92
+ }
93
+ let create = [];
94
+ if (assets) {
95
+ create = Array.isArray(assets) ? [...assets] : [assets];
96
+ }
72
97
  const conflicts = [];
73
98
  const findByKeyValue = (key, value, arr) => arr.find((e) => {
74
99
  if (Array.isArray(key)) {
@@ -117,10 +142,9 @@ function calculateChanges({ handler, assets, existing, identifiers = ['id', 'nam
117
142
  // Loop through identifiers (in order) to try match assets to existing
118
143
  // If existing then update if not create
119
144
  // The remainder will be deleted
120
- for (const id of identifiers) {
121
- // eslint-disable-line
145
+ identifiers.forEach((id) => {
122
146
  processAssets(id, [...create]);
123
- }
147
+ });
124
148
  // Check if there are assets with names that will conflict with existing names during the update process
125
149
  // This will rename those assets to a temp random name first
126
150
  // This assumes the first identifiers is the unique identifier
@@ -131,7 +155,17 @@ function calculateChanges({ handler, assets, existing, identifiers = ['id', 'nam
131
155
  // If the conflicting item is going to be deleted then skip
132
156
  const inDeleted = del.filter((e) => e.name === a.name && e[uniqueID] !== a[uniqueID])[0];
133
157
  if (!inDeleted) {
134
- const conflict = (existing || []).filter((e) => e.name === a.name && e[uniqueID] !== a[uniqueID])[0];
158
+ let existingArray;
159
+ if (Array.isArray(existing)) {
160
+ existingArray = existing;
161
+ }
162
+ else if (existing) {
163
+ existingArray = [existing];
164
+ }
165
+ else {
166
+ existingArray = [];
167
+ }
168
+ const conflict = existingArray.filter((e) => e.name === a.name && e[uniqueID] !== a[uniqueID])[0];
135
169
  if (conflict) {
136
170
  const temp = Math.random().toString(36).substr(2, 5);
137
171
  conflicts.push(Object.assign(Object.assign({}, conflict), { name: `${conflict.name}-${temp}` }));
@@ -146,4 +180,311 @@ function calculateChanges({ handler, assets, existing, identifiers = ['id', 'nam
146
180
  create,
147
181
  };
148
182
  }
183
+ const logStore = {};
184
+ const diffLog = (resourceTypeName, message) => {
185
+ if (!logStore[resourceTypeName]) {
186
+ logStore[resourceTypeName] = [];
187
+ }
188
+ logStore[resourceTypeName].push(...message);
189
+ };
190
+ const getDiffLog = (resourceTypeName) => resourceTypeName ? logStore[resourceTypeName] || [] : logStore;
191
+ const exportDiffLog = (fileName, resourceTypeName) => __awaiter(void 0, void 0, void 0, function* () {
192
+ const diffLogData = getDiffLog(resourceTypeName);
193
+ try {
194
+ yield promises_1.default.writeFile(`./${fileName}`, JSON.stringify(diffLogData, null, 2));
195
+ }
196
+ catch (error) {
197
+ logger_1.default.error(`Failed to export diff log: ${String(error)}`);
198
+ }
199
+ });
200
+ exports.exportDiffLog = exportDiffLog;
201
+ /**
202
+ * Compares two objects and returns an array of differences found.
203
+ * Only considers keys that exist in obj1 - extra keys in obj2 are ignored.
204
+ * @param localObj - The first object (preferred values)
205
+ * @param remoteObj - The second object to compare against
206
+ * @param keyObjPath - The current JSON path for nested object tracking
207
+ * @param resourceTypeName - The resource type name for logging
208
+ * @returns Array of difference descriptions, empty array if no differences
209
+ */
210
+ function getObjectDifferences(localObj, remoteObj, keyObjPath = '', resourceTypeName = '', ignoreDryRunFields = []) {
211
+ const differences = [];
212
+ Object.keys(localObj).forEach((key) => {
213
+ const localValue = localObj[key];
214
+ const remoteValue = remoteObj[key];
215
+ const currentPath = keyObjPath ? `${keyObjPath}.${key}` : key;
216
+ // If key doesn't exist in remoteObj, there's a difference
217
+ if (!(key in remoteObj)) {
218
+ if (ignoreDryRunFields.includes(currentPath)) {
219
+ logger_1.default.debug(`[${chalk_1.default.blue(resourceTypeName)}] Ignoring key ${chalk_1.default.yellow(`"${currentPath}"`)} due to ignoreDryRunFields configuration.`);
220
+ return;
221
+ }
222
+ const message = `Key [${currentPath}] found in 'localObj' but not in 'remoteObj'.`;
223
+ logger_1.default.debug(`[${chalk_1.default.blue(resourceTypeName)}] Key ${chalk_1.default.yellow(`"${currentPath}"`)} found in 'localObj' but not in 'remoteObj'.`);
224
+ differences.push(message);
225
+ return;
226
+ }
227
+ // Handle arrays
228
+ if (Array.isArray(localValue) && Array.isArray(remoteValue)) {
229
+ if (localValue.length !== remoteValue.length) {
230
+ const message = `Array length difference for [${currentPath}]: local:${localValue.length} vs remote:${remoteValue.length}`;
231
+ logger_1.default.debug(`[${chalk_1.default.blue(resourceTypeName)}] Array length difference for ${chalk_1.default.yellow(`"${currentPath}"`)}: local:${localValue.length} vs remote:${remoteValue.length}`);
232
+ differences.push(message);
233
+ }
234
+ // For arrays with objects, compare in order; for primitive arrays, ignore order
235
+ const hasObjects = localValue.some((item) => typeof item === 'object' && item !== null);
236
+ if (hasObjects) {
237
+ localValue.forEach((item, index) => {
238
+ if (typeof item === 'object' &&
239
+ item !== null &&
240
+ typeof remoteValue[index] === 'object' &&
241
+ remoteValue[index] !== null) {
242
+ const nestedDifferences = getObjectDifferences(item, remoteValue[index], `${currentPath}[${index}]`, resourceTypeName, ignoreDryRunFields);
243
+ differences.push(...nestedDifferences);
244
+ }
245
+ else if (item !== remoteValue[index]) {
246
+ const message = `Array item difference at [${currentPath}[${index}]]: local:${item} vs remote:${remoteValue[index]}`;
247
+ differences.push(message);
248
+ }
249
+ });
250
+ }
251
+ else {
252
+ // Compare primitive arrays ignoring order
253
+ const sorted1 = [...localValue].sort();
254
+ const sorted2 = [...remoteValue].sort();
255
+ const isDifferent = sorted1.some((item, index) => item !== sorted2[index]);
256
+ if (isDifferent) {
257
+ const message = `Array content difference found for key [${currentPath}]`;
258
+ logger_1.default.debug(`[${chalk_1.default.blue(resourceTypeName)}] Array content difference found for key ${chalk_1.default.yellow(`"${currentPath}"`)}`);
259
+ differences.push(message);
260
+ }
261
+ }
262
+ return;
263
+ }
264
+ // Handle nested objects
265
+ if (typeof localValue === 'object' &&
266
+ localValue !== null &&
267
+ typeof remoteValue === 'object' &&
268
+ remoteValue !== null) {
269
+ const nestedDifferences = getObjectDifferences(localValue, remoteValue, currentPath, resourceTypeName, ignoreDryRunFields);
270
+ differences.push(...nestedDifferences);
271
+ return;
272
+ }
273
+ // Compare primitive values
274
+ if (localValue !== remoteValue) {
275
+ const message = `Value difference for [${currentPath}]: local:${localValue} vs remote:${remoteValue}`;
276
+ logger_1.default.debug(`[${chalk_1.default.blue(resourceTypeName)}] Value difference for ${chalk_1.default.yellow(`"${currentPath}"`)}: local:${localValue} vs remote:${remoteValue}`);
277
+ differences.push(message);
278
+ }
279
+ });
280
+ return differences;
281
+ }
282
+ /**
283
+ * Compares two objects and returns true if there are differences.
284
+ * Only considers keys that exist in obj1 - extra keys in obj2 are ignored.
285
+ * @param obj1 - The first object (preferred values)
286
+ * @param obj2 - The second object to compare against
287
+ * @param keyObjPath - The current JSON path for nested object tracking
288
+ * @returns true if objects differ, false if they are the same
289
+ */
290
+ function hasObjectDifferences(localObj, remoteObj, keyObjPath = '', resourceTypeName = '', ignoreDryRunFields = []) {
291
+ const differences = getObjectDifferences(localObj, remoteObj, keyObjPath, resourceTypeName, ignoreDryRunFields);
292
+ diffLog(resourceTypeName, differences);
293
+ return differences.length > 0;
294
+ }
295
+ /**
296
+ * Calculates the changes required between local and remote asset sets for dry run operations.
297
+ *
298
+ * This function compares local assets with existing remote assets to determine what operations
299
+ * need to be performed: create new assets, update existing ones, or delete removed assets.
300
+ * Assets are matched using configurable identifier fields.
301
+ *
302
+ * @param params - The configuration object for calculating changes
303
+ * @param params.type - The type of assets being compared (used for logging)
304
+ * @param params.assets - Array of local assets to be deployed
305
+ * @param params.existing - Array of existing remote assets, or null if none exist
306
+ * @param params.identifiers - Array of field names or field name arrays used to match assets between local and remote sets. Default is ['id', 'name']
307
+ *
308
+ */
309
+ function calculateDryRunChanges({ type, assets, existing, identifiers = ['id', 'name'], ignoreDryRunFields = [], }) {
310
+ // Calculate the changes required between two sets of assets.
311
+ const update = [];
312
+ const del = [];
313
+ const create = [];
314
+ const conflicts = [];
315
+ const localAssets = Array.isArray(assets) ? [...assets] : [assets]; // Local assets (what we have locally)
316
+ const remoteAssets = Array.isArray(existing) ? [...existing] : [existing]; // Remote assets (what exists remotely)
317
+ // identify created
318
+ const createdAssets = localAssets.filter((localAsset) => !remoteAssets.some((remoteAsset) => identifiers.some((id) => {
319
+ if (Array.isArray(id)) {
320
+ const localValues = id.map((i) => localAsset[i]);
321
+ const remoteValues = id.map((i) => remoteAsset[i]);
322
+ return (localValues.every((v) => v) &&
323
+ remoteValues.every((v) => v) &&
324
+ localValues.join('-') === remoteValues.join('-'));
325
+ }
326
+ return localAsset[id] === remoteAsset[id];
327
+ })));
328
+ create.push(...createdAssets);
329
+ // identify updated
330
+ const updatedAssets = localAssets.filter((localAsset) => {
331
+ var _a;
332
+ const matchingRemoteAsset = remoteAssets.find((remoteAsset) => identifiers.some((id) => {
333
+ if (Array.isArray(id)) {
334
+ const localValues = id.map((i) => localAsset[i]);
335
+ const remoteValues = id.map((i) => remoteAsset[i]);
336
+ return (localValues.every((v) => v !== undefined && v !== null) &&
337
+ remoteValues.every((v) => v !== undefined && v !== null) &&
338
+ localValues.join('-') === remoteValues.join('-'));
339
+ }
340
+ return (localAsset[id] !== undefined &&
341
+ remoteAsset[id] !== undefined &&
342
+ localAsset[id] === remoteAsset[id]);
343
+ }));
344
+ if (matchingRemoteAsset) {
345
+ // Add missing identifiers from remote asset to local asset
346
+ identifiers.forEach((id) => {
347
+ if (Array.isArray(id)) {
348
+ // Handle array identifiers - ensure all parts exist
349
+ id.forEach((idPart) => {
350
+ if (!localAsset[idPart] && matchingRemoteAsset[idPart]) {
351
+ localAsset[idPart] = matchingRemoteAsset[idPart];
352
+ }
353
+ });
354
+ }
355
+ else if (!localAsset[id] && matchingRemoteAsset[id]) {
356
+ // Handle single identifier
357
+ localAsset[id] = matchingRemoteAsset[id];
358
+ }
359
+ });
360
+ return hasObjectDifferences(localAsset, matchingRemoteAsset, (_a = matchingRemoteAsset.name) !== null && _a !== void 0 ? _a : '', type, ignoreDryRunFields);
361
+ }
362
+ // If no match found, check with hasObjectDifferences against all remote assets
363
+ return remoteAssets.some((remoteAsset) => {
364
+ var _a;
365
+ return hasObjectDifferences(localAsset, remoteAsset, (_a = remoteAsset.name) !== null && _a !== void 0 ? _a : '', type, ignoreDryRunFields);
366
+ });
367
+ });
368
+ update.push(...updatedAssets);
369
+ // identify deleted
370
+ const deletedAssets = remoteAssets
371
+ .filter((remoteAsset) => !localAssets.some((localAsset) => identifiers.some((id) => {
372
+ if (Array.isArray(id)) {
373
+ const localValues = id.map((i) => localAsset[i]);
374
+ const remoteValues = id.map((i) => remoteAsset[i]);
375
+ return (localValues.every((v) => v) &&
376
+ remoteValues.every((v) => v) &&
377
+ localValues.join('-') === remoteValues.join('-'));
378
+ }
379
+ return localAsset[id] === remoteAsset[id];
380
+ })))
381
+ .map((remoteAsset) => {
382
+ // Add missing identifiers from remote asset for proper tracking
383
+ const assetWithIdentifiers = Object.assign({}, remoteAsset);
384
+ identifiers.forEach((id) => {
385
+ if (Array.isArray(id)) {
386
+ // Handle array identifiers - ensure all parts exist
387
+ id.forEach((idPart) => {
388
+ if (remoteAsset[idPart]) {
389
+ assetWithIdentifiers[idPart] = remoteAsset[idPart];
390
+ }
391
+ });
392
+ }
393
+ else if (remoteAsset[id]) {
394
+ // Handle single identifier
395
+ assetWithIdentifiers[id] = remoteAsset[id];
396
+ }
397
+ });
398
+ return assetWithIdentifiers;
399
+ });
400
+ del.push(...deletedAssets);
401
+ const hasChanges = del.length > 0 || create.length > 0 || conflicts.length > 0 || update.length > 0;
402
+ if (hasChanges) {
403
+ logger_1.default.debug(`[DryRun] calculated changes for [${type}]:${JSON.stringify({
404
+ create: create.length,
405
+ update: update.length,
406
+ del: del.length,
407
+ conflicts: conflicts.length,
408
+ })}`);
409
+ }
410
+ return {
411
+ del,
412
+ create,
413
+ conflicts,
414
+ update,
415
+ };
416
+ }
417
+ /**
418
+ * Performs a dry run formatting of assets for dry run compare.
419
+ * - converting client names to client IDs or vice versa
420
+ *
421
+ * @param assets - The assets object containing databases and clients configurations
422
+ * @param authAPIclient - The Auth0 API client instance used to fetch remote client data
423
+ * @returns A Promise that resolves to the formatted assets object with client names converted to IDs
424
+ */
425
+ function dryRunFormatAssets(localAssets, authAPIclient) {
426
+ return __awaiter(this, void 0, void 0, function* () {
427
+ // get client remote data
428
+ const clientsRemoteData = yield (0, client_1.paginate)(authAPIclient.clients.getAll, {
429
+ paginate: true,
430
+ include_totals: true,
431
+ });
432
+ // check assets clientGrants and clients together and have values
433
+ if (localAssets.clientGrants) {
434
+ const { clientGrants } = localAssets;
435
+ localAssets.clientGrants = clientGrants.map((clientGrant) => {
436
+ if (clientGrant.client_id) {
437
+ clientGrant.client_id = (0, utils_1.convertClientNameToId)(clientGrant.client_id, clientsRemoteData);
438
+ }
439
+ return clientGrant;
440
+ });
441
+ }
442
+ // check assets databases and clients together and have values
443
+ if (localAssets.databases && localAssets.clients) {
444
+ const { databases } = localAssets;
445
+ localAssets.databases = databases.map((db) => {
446
+ if (db.enabled_clients && db.enabled_clients.length > 0) {
447
+ db.enabled_clients = db.enabled_clients.map((enabledClientName) => (0, utils_1.convertClientNameToId)(enabledClientName, clientsRemoteData));
448
+ }
449
+ return db;
450
+ });
451
+ }
452
+ // format assets actions
453
+ if (localAssets.actions) {
454
+ const { actions } = localAssets;
455
+ localAssets.actions = actions.map((action) => {
456
+ if ('deployed' in action) {
457
+ action.all_changes_deployed = action.deployed;
458
+ delete action.deployed;
459
+ }
460
+ return action;
461
+ });
462
+ }
463
+ // format assets connections
464
+ if (localAssets.connections) {
465
+ const { connections } = localAssets;
466
+ localAssets.connections = connections.map((connection) => {
467
+ if (connection.strategy === 'samlp' && connection.options) {
468
+ if ('cert' in connection.options) {
469
+ connection.options.cert = (0, utils_2.decodeBase64ToCertString)(connection.options.cert);
470
+ }
471
+ }
472
+ if (localAssets.clients && connection.enabled_clients) {
473
+ connection.enabled_clients = connection.enabled_clients.map((clientName) => (0, utils_1.convertClientNameToId)(clientName, clientsRemoteData));
474
+ }
475
+ return connection;
476
+ });
477
+ }
478
+ // format assets branding
479
+ if (localAssets.branding) {
480
+ const { branding } = localAssets;
481
+ // if empty templates do not compare with remote
482
+ if (branding.templates && branding.templates.length === 0) {
483
+ delete branding.templates;
484
+ }
485
+ localAssets.branding = branding;
486
+ }
487
+ return localAssets;
488
+ });
489
+ }
149
490
  //# sourceMappingURL=calculateChanges.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"calculateChanges.js","sourceRoot":"","sources":["../../src/tools/calculateChanges.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"calculateChanges.js","sourceRoot":"","sources":["../../src/tools/calculateChanges.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  import { ConfigFunction } from '../configFactory';
2
2
  import { Assets, Auth0APIClient } from '../types';
3
- export default function deploy(assets: Assets, client: Auth0APIClient, config: ConfigFunction): Promise<{}>;
3
+ export default function deploy(assets: Assets, client: Auth0APIClient, config: ConfigFunction): Promise<{} | undefined>;
@@ -13,18 +13,149 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.default = deploy;
16
+ const chalk_1 = __importDefault(require("chalk"));
17
+ const prompts_1 = require("@clack/prompts");
16
18
  const auth0_1 = __importDefault(require("./auth0"));
17
19
  const logger_1 = __importDefault(require("../logger"));
20
+ const calculateChanges_1 = require("./calculateChanges");
21
+ const utils_1 = require("./utils");
18
22
  function deploy(assets, client, config) {
19
23
  return __awaiter(this, void 0, void 0, function* () {
20
24
  // Setup log level
21
- logger_1.default.level = process.env.AUTH0_DEBUG === 'true' ? 'debug' : 'info';
25
+ const isDebug = process.env.AUTH0_DEBUG === 'true';
26
+ logger_1.default.level = isDebug ? 'debug' : 'info';
27
+ const isDryRun = config('AUTH0_DRY_RUN') === true || config('AUTH0_DRY_RUN') === 'true';
22
28
  logger_1.default.info(`Getting access token for ${config('AUTH0_CLIENT_ID') !== undefined ? `${config('AUTH0_CLIENT_ID')}/` : ''}${config('AUTH0_DOMAIN')}`);
23
29
  const auth0 = new auth0_1.default(client, assets, config);
24
30
  // Validate Assets
25
31
  yield auth0.validate();
26
- // Process changes
27
- yield auth0.processChanges();
32
+ if (isDryRun) {
33
+ const s = (0, prompts_1.spinner)();
34
+ if (isDebug) {
35
+ prompts_1.log.info('Preparing dry run preview...\n');
36
+ }
37
+ else {
38
+ s.start('Preparing dry run preview...');
39
+ }
40
+ // In dry run mode, perform a dry run instead of processing changes
41
+ const allChanges = yield auth0.dryRun();
42
+ if (!isDebug) {
43
+ (0, utils_1.printCLIMessage)('');
44
+ s.stop('Done\n');
45
+ }
46
+ // Build formatted output
47
+ const allowDelete = config('AUTH0_ALLOW_DELETE') === 'true' || config('AUTH0_ALLOW_DELETE') === true;
48
+ // Get tenant domain and input path for header
49
+ const tenantDomain = config('AUTH0_DOMAIN');
50
+ const inputPath = config('AUTH0_INPUT_FILE') || './tenant-config-directory/';
51
+ let output = '\n';
52
+ output += chalk_1.default.bold('Auth0 Deploy CLI - Dry Run Preview\n\n');
53
+ output += chalk_1.default.bold('Tenant:') + ` ${tenantDomain}\n`;
54
+ output += chalk_1.default.bold('Input:') + ` ${inputPath}\n\n`;
55
+ output += 'Simulating deployment... The following changes are proposed:\n\n';
56
+ const tableData = [];
57
+ const resourceTypes = Object.keys(allChanges).sort();
58
+ resourceTypes.forEach((type) => {
59
+ const typeChanges = allChanges[type];
60
+ if (typeChanges.changes.length > 0) {
61
+ // Format type name for display
62
+ const typeName = type.charAt(0).toUpperCase() + type.slice(1);
63
+ // Add each change to table data
64
+ typeChanges.changes.forEach((change, index) => {
65
+ const deleteNote = change.action === 'DELETE' && !allowDelete ? ' *' : '';
66
+ tableData.push({
67
+ resource: index === 0 ? typeName : '', // Only show resource name for first item in group
68
+ status: change.action + deleteNote,
69
+ name: change.identifier,
70
+ });
71
+ });
72
+ }
73
+ });
74
+ // Create table
75
+ if (tableData.length > 0) {
76
+ // Calculate column widths
77
+ const resourceWidth = Math.max(10, ...tableData.map((d) => d.resource.length));
78
+ const statusWidth = Math.max(8, ...tableData.map((d) => d.status.length));
79
+ const nameWidth = Math.max(25, ...tableData.map((d) => d.name.length));
80
+ // Table header
81
+ const separator = `|${'-'.repeat(resourceWidth + 2)}|${'-'.repeat(statusWidth + 2)}|${'-'.repeat(nameWidth + 2)}|`;
82
+ output += `| ${chalk_1.default.bold('Resource'.padEnd(resourceWidth))} | ${chalk_1.default.bold('Status'.padEnd(statusWidth))} | ${chalk_1.default.bold('Name / Identifier'.padEnd(nameWidth))} |\n`;
83
+ output += `${separator}\n`;
84
+ // Table rows
85
+ tableData.forEach((row) => {
86
+ let statusColor;
87
+ const baseStatus = row.status.replace(' *', '');
88
+ switch (baseStatus) {
89
+ case 'CREATE':
90
+ statusColor = chalk_1.default.green;
91
+ break;
92
+ case 'UPDATE':
93
+ statusColor = chalk_1.default.yellow;
94
+ break;
95
+ case 'DELETE':
96
+ statusColor = chalk_1.default.red;
97
+ break;
98
+ default:
99
+ statusColor = chalk_1.default.white;
100
+ }
101
+ const status = row.status.includes('*')
102
+ ? statusColor(baseStatus) + chalk_1.default.dim(' *')
103
+ : statusColor(baseStatus);
104
+ output += `| ${row.resource.padEnd(resourceWidth)} | ${status.padEnd(statusWidth + (row.status.includes('*') ? 10 : 10))} | ${row.name.padEnd(nameWidth)} |\n`;
105
+ });
106
+ if (!allowDelete && tableData.some((d) => d.status.includes('*'))) {
107
+ output += '\n' + chalk_1.default.dim('* Requires AUTH0_ALLOW_DELETE to be enabled');
108
+ }
109
+ }
110
+ else {
111
+ output += chalk_1.default.dim('No changes detected.');
112
+ }
113
+ output += '\n\n';
114
+ output += chalk_1.default.green('Dry Run completed successfully.') + '\n';
115
+ // Print the complete formatted output
116
+ (0, utils_1.printCLIMessage)(output);
117
+ if (tableData.length === 0) {
118
+ // Exit early if no changes are detected
119
+ return;
120
+ }
121
+ (0, prompts_1.intro)(chalk_1.default.inverse(' dry-run '));
122
+ const selectedType = yield (0, prompts_1.select)({
123
+ message: 'What would you like to do?',
124
+ options: [
125
+ { value: 'dry-run-apply', label: 'Apply changes' },
126
+ {
127
+ value: 'dry-run-export',
128
+ label: 'Export changes in a file',
129
+ hint: 'No Apply',
130
+ },
131
+ { value: 'dry-run-exit', label: 'Exit', hint: '' },
132
+ ],
133
+ });
134
+ // Handle selectedType
135
+ switch (selectedType) {
136
+ case 'dry-run-apply':
137
+ (0, utils_1.printCLIMessage)('\n' + chalk_1.default.green('Applying changes...') + '\n');
138
+ yield auth0.processChanges();
139
+ break;
140
+ case 'dry-run-export': {
141
+ const fileName = 'dry-run-diff-log.json';
142
+ yield (0, calculateChanges_1.exportDiffLog)(fileName);
143
+ (0, utils_1.printCLIMessage)('\n' + chalk_1.default.cyan(`Exported on ./${fileName}`) + '\n');
144
+ break;
145
+ }
146
+ case 'dry-run-exit':
147
+ (0, utils_1.printCLIMessage)('\n' + chalk_1.default.yellow('Deployment cancelled. No changes were made.') + '\n');
148
+ process.exit(0);
149
+ break;
150
+ default:
151
+ (0, utils_1.printCLIMessage)(chalk_1.default.red('Invalid option selected.'));
152
+ process.exit(1);
153
+ }
154
+ }
155
+ else {
156
+ // Process changes normally
157
+ yield auth0.processChanges();
158
+ }
28
159
  return auth0.handlers.reduce((accum, h) => {
29
160
  accum[h.type] = {
30
161
  deleted: h.deleted,
@@ -1 +1 @@
1
- {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/tools/deploy.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAKA,yBA8BC;AAnCD,oDAA4B;AAC5B,uDAA4B;AAI5B,SAA8B,MAAM,CAClC,MAAc,EACd,MAAsB,EACtB,MAAsB;;QAEtB,kBAAkB;QAClB,gBAAG,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;QAElE,gBAAG,CAAC,IAAI,CACN,4BACE,MAAM,CAAC,iBAAiB,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAC9E,GAAG,MAAM,CAAC,cAAc,CAAC,EAAE,CAC5B,CAAC;QAEF,MAAM,KAAK,GAAG,IAAI,eAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAEhD,kBAAkB;QAClB,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC;QAEvB,kBAAkB;QAClB,MAAM,KAAK,CAAC,cAAc,EAAE,CAAC;QAE7B,OAAO,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;YACxC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG;gBACd,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,OAAO,EAAE,CAAC,CAAC,OAAO;aACnB,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC,EAAE,EAAE,CAAC,CAAC;IACT,CAAC;CAAA"}
1
+ {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/tools/deploy.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { Asset, Assets, CalculatedChanges, KeywordMappings } from '../types';
2
+ import { ConfigFunction } from '../configFactory';
2
3
  export declare const keywordReplaceArrayRegExp: (key: any) => RegExp;
3
4
  export declare const keywordReplaceStringRegExp: (key: any) => RegExp;
4
5
  export declare function keywordArrayReplace(input: string, mappings: KeywordMappings): string;
@@ -43,3 +44,6 @@ export declare function maskSecretAtPath({ resourceTypeName, maskedKeyName, mask
43
44
  maskOnObj: object;
44
45
  keyJsonPath: string;
45
46
  }): any;
47
+ export declare function sortGuardianFactors(factors: Asset[]): Asset[];
48
+ export declare function isDryRun(config: ConfigFunction): boolean;
49
+ export declare function printCLIMessage(message: string): void;