auth0-deploy-cli 8.25.0 → 8.26.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 (30) hide show
  1. package/.github/workflows/claude-code-review.yml +1 -4
  2. package/CHANGELOG.md +30 -1
  3. package/lib/tools/auth0/handlers/actions.js +1 -1
  4. package/lib/tools/auth0/handlers/clientGrants.d.ts +5 -0
  5. package/lib/tools/auth0/handlers/clientGrants.js +18 -3
  6. package/lib/tools/auth0/handlers/clients.d.ts +43 -8
  7. package/lib/tools/auth0/handlers/clients.js +106 -35
  8. package/lib/tools/auth0/handlers/connectionProfiles.js +0 -3
  9. package/lib/tools/auth0/handlers/connections.d.ts +5 -6
  10. package/lib/tools/auth0/handlers/connections.js +34 -49
  11. package/lib/tools/auth0/handlers/customDomains.d.ts +4 -0
  12. package/lib/tools/auth0/handlers/customDomains.js +6 -3
  13. package/lib/tools/auth0/handlers/databases.d.ts +57 -0
  14. package/lib/tools/auth0/handlers/databases.js +52 -2
  15. package/lib/tools/auth0/handlers/default.js +2 -4
  16. package/lib/tools/auth0/handlers/flowVaultConnections.js +6 -3
  17. package/lib/tools/auth0/handlers/flows.js +0 -3
  18. package/lib/tools/auth0/handlers/forms.js +0 -3
  19. package/lib/tools/auth0/handlers/logStreams.js +0 -3
  20. package/lib/tools/auth0/handlers/organizations.d.ts +4 -1
  21. package/lib/tools/auth0/handlers/organizations.js +61 -32
  22. package/lib/tools/auth0/handlers/prompts.d.ts +2 -2
  23. package/lib/tools/auth0/handlers/prompts.js +1 -0
  24. package/lib/tools/auth0/handlers/resourceServers.d.ts +1 -3
  25. package/lib/tools/auth0/handlers/resourceServers.js +4 -4
  26. package/lib/tools/auth0/handlers/roles.js +6 -3
  27. package/lib/tools/auth0/handlers/scimHandler.d.ts +5 -8
  28. package/lib/tools/auth0/handlers/scimHandler.js +13 -13
  29. package/lib/tools/auth0/handlers/userAttributeProfiles.js +0 -3
  30. package/package.json +8 -8
@@ -1,10 +1,7 @@
1
1
  name: Claude Code PR Review
2
2
 
3
3
  on:
4
- issue_comment:
5
- types: [created]
6
- pull_request_review_comment:
7
- types: [created]
4
+ workflow_dispatch:
8
5
 
9
6
  jobs:
10
7
  claude-review:
package/CHANGELOG.md CHANGED
@@ -7,6 +7,25 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [8.26.0] - 2026-01-30
11
+
12
+ ### Added
13
+
14
+ - Add support for `use_for_organization_discovery` in organizations `discovery-domains`. [#1283]
15
+ - Add support for passwordless authentication methods (`email_otp` and `phone_otp`) in `databases`. [#1282]
16
+ - Add support for `relying_party_identifier` in `customDomains`. [#1280]
17
+ - Add support for `allow_all_scopes` property in `clientGrants`. [#1278]
18
+ - Add OIDC logout configuration support with session metadata in `clients`. [#1263]
19
+
20
+ ### Changed
21
+
22
+ - Optimize directory provisioning configuration fetching for `connections`. [#1284]
23
+
24
+ ### Fixed
25
+
26
+ - Fix exclude read-only `is_default` from `customDomains`. [#1279]
27
+ - Fix pagination skipping last page. [#1277]
28
+
10
29
  ## [8.25.0] - 2026-01-08
11
30
 
12
31
  ### Added
@@ -1606,7 +1625,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1606
1625
  [#1244]: https://github.com/auth0/auth0-deploy-cli/issues/1244
1607
1626
  [#1246]: https://github.com/auth0/auth0-deploy-cli/issues/1246
1608
1627
  [#1253]: https://github.com/auth0/auth0-deploy-cli/issues/1253
1609
- [Unreleased]: https://github.com/auth0/auth0-deploy-cli/compare/v8.25.0...HEAD
1628
+ [#1261]: https://github.com/auth0/auth0-deploy-cli/issues/1261
1629
+ [#1263]: https://github.com/auth0/auth0-deploy-cli/issues/1263
1630
+ [#1277]: https://github.com/auth0/auth0-deploy-cli/issues/1277
1631
+ [#1278]: https://github.com/auth0/auth0-deploy-cli/issues/1278
1632
+ [#1279]: https://github.com/auth0/auth0-deploy-cli/issues/1279
1633
+ [#1280]: https://github.com/auth0/auth0-deploy-cli/issues/1280
1634
+ [#1282]: https://github.com/auth0/auth0-deploy-cli/issues/1282
1635
+ [#1283]: https://github.com/auth0/auth0-deploy-cli/issues/1283
1636
+ [#1284]: https://github.com/auth0/auth0-deploy-cli/issues/1284
1637
+ [Unreleased]: https://github.com/auth0/auth0-deploy-cli/compare/v8.26.0...HEAD
1638
+ [8.26.0]: https://github.com/auth0/auth0-deploy-cli/compare/v8.25.0...v8.26.0
1610
1639
  [8.25.0]: https://github.com/auth0/auth0-deploy-cli/compare/v8.24.0...v8.25.0
1611
1640
  [8.24.0]: https://github.com/auth0/auth0-deploy-cli/compare/v8.23.2...v8.24.0
1612
1641
  [8.23.2]: https://github.com/auth0/auth0-deploy-cli/compare/v8.23.1...v8.23.2
@@ -114,7 +114,7 @@ class ActionHandler extends default_1.default {
114
114
  type: 'actions',
115
115
  functions: {
116
116
  create: (action) => this.createAction(action),
117
- update: ({ id }, action) => this.updateAction(id, action),
117
+ update: (id, action) => this.updateAction(id, action),
118
118
  delete: (actionId) => this.deleteAction(actionId),
119
119
  },
120
120
  stripUpdateFields: ['deployed', 'status'],
@@ -33,6 +33,10 @@ export declare const schema: {
33
33
  };
34
34
  uniqueItems: boolean;
35
35
  };
36
+ allow_all_scopes: {
37
+ type: string;
38
+ description: string;
39
+ };
36
40
  };
37
41
  required: string[];
38
42
  };
@@ -42,6 +46,7 @@ export default class ClientGrantsHandler extends DefaultHandler {
42
46
  existing: ClientGrant[] | null;
43
47
  constructor(config: DefaultAPIHandler);
44
48
  objString(item: any): string;
49
+ validate(assets: Assets): Promise<void>;
45
50
  getType(): Promise<ClientGrant[]>;
46
51
  processChanges(assets: Assets): Promise<void>;
47
52
  }
@@ -69,6 +69,10 @@ exports.schema = {
69
69
  },
70
70
  uniqueItems: true,
71
71
  },
72
+ allow_all_scopes: {
73
+ type: 'boolean',
74
+ description: 'When enabled, all scopes configured on the resource server are allowed for by this client grant.',
75
+ },
72
76
  },
73
77
  required: ['client_id', 'audience'],
74
78
  },
@@ -81,15 +85,26 @@ class ClientGrantsHandler extends default_1.default {
81
85
  id: 'id',
82
86
  // @ts-ignore because not sure why two-dimensional array passed in
83
87
  identifiers: ['id', ['client_id', 'audience']],
84
- functions: {
85
- update: async ({ id }, bodyParams) => this.client.clientGrants.update(id, bodyParams),
86
- },
87
88
  stripUpdateFields: ['audience', 'client_id', 'subject_type', 'is_system'],
88
89
  });
89
90
  }
90
91
  objString(item) {
91
92
  return super.objString({ id: item.id, client_id: item.client_id, audience: item.audience });
92
93
  }
94
+ async validate(assets) {
95
+ const { clientGrants } = assets;
96
+ // Do nothing if not set
97
+ if (!clientGrants)
98
+ return;
99
+ // Validate each client grant
100
+ clientGrants.forEach((grant) => {
101
+ // When allow_all_scopes is true, scope should not be present
102
+ if (grant.allow_all_scopes === true && grant.scope && grant.scope.length > 0) {
103
+ throw new Error(`Client grant for client_id "${grant.client_id}" and audience "${grant.audience}": Cannot specify "scope" when "allow_all_scopes" is set to true. Remove the "scope" property or set "allow_all_scopes" to false.`);
104
+ }
105
+ });
106
+ await super.validate(assets);
107
+ }
93
108
  async getType() {
94
109
  if (this.existing) {
95
110
  return this.existing;
@@ -263,6 +263,49 @@ export declare const schema: {
263
263
  };
264
264
  };
265
265
  };
266
+ oidc_logout: {
267
+ type: string[];
268
+ description: string;
269
+ properties: {
270
+ backchannel_logout_urls: {
271
+ type: string;
272
+ description: string;
273
+ items: {
274
+ type: string;
275
+ };
276
+ };
277
+ backchannel_logout_initiators: {
278
+ type: string;
279
+ description: string;
280
+ properties: {
281
+ mode: {
282
+ type: string;
283
+ schemaName: string;
284
+ enum: string[];
285
+ description: string;
286
+ };
287
+ selected_initiators: {
288
+ type: string;
289
+ items: {
290
+ type: string;
291
+ enum: string[];
292
+ description: string;
293
+ };
294
+ };
295
+ };
296
+ };
297
+ backchannel_logout_session_metadata: {
298
+ type: string[];
299
+ description: string;
300
+ properties: {
301
+ include: {
302
+ type: string;
303
+ description: string;
304
+ };
305
+ };
306
+ };
307
+ };
308
+ };
266
309
  };
267
310
  required: string[];
268
311
  };
@@ -273,14 +316,6 @@ export default class ClientHandler extends DefaultAPIHandler {
273
316
  constructor(config: DefaultAPIHandler);
274
317
  objString(item: any): string;
275
318
  processChanges(assets: Assets): Promise<void>;
276
- /**
277
- * @description
278
- * Sanitize the deprecated field `cross_origin_auth` to `cross_origin_authentication`
279
- *
280
- * @param {Client[]} clients - The client array to sanitize.
281
- * @returns {Client[]} The sanitized array of clients.
282
- */
283
- private sanitizeCrossOriginAuth;
284
319
  getType(): Promise<Management.Client[]>;
285
320
  sanitizeMapExpressConfiguration(auth0Client: Auth0APIClient, clientList: Client[]): Promise<Client[]>;
286
321
  }
@@ -263,10 +263,111 @@ exports.schema = {
263
263
  },
264
264
  },
265
265
  },
266
+ oidc_logout: {
267
+ type: ['object', 'null'],
268
+ description: 'Configuration for OIDC backchannel logout',
269
+ properties: {
270
+ backchannel_logout_urls: {
271
+ type: 'array',
272
+ description: 'Comma-separated list of URLs that are valid to call back from Auth0 for OIDC backchannel logout. Currently only one URL is allowed.',
273
+ items: {
274
+ type: 'string',
275
+ },
276
+ },
277
+ backchannel_logout_initiators: {
278
+ type: 'object',
279
+ description: 'Configuration for OIDC backchannel logout initiators',
280
+ properties: {
281
+ mode: {
282
+ type: 'string',
283
+ schemaName: 'ClientOIDCBackchannelLogoutInitiatorsModeEnum',
284
+ enum: ['custom', 'all'],
285
+ description: 'The `mode` property determines the configuration method for enabling initiators. `custom` enables only the initiators listed in the selected_initiators array, `all` enables all current and future initiators.',
286
+ },
287
+ selected_initiators: {
288
+ type: 'array',
289
+ items: {
290
+ type: 'string',
291
+ enum: [
292
+ 'rp-logout',
293
+ 'idp-logout',
294
+ 'password-changed',
295
+ 'session-expired',
296
+ 'session-revoked',
297
+ 'account-deleted',
298
+ 'email-identifier-changed',
299
+ 'mfa-phone-unenrolled',
300
+ 'account-deactivated',
301
+ ],
302
+ description: 'The `selected_initiators` property contains the list of initiators to be enabled for the given application.',
303
+ },
304
+ },
305
+ },
306
+ },
307
+ backchannel_logout_session_metadata: {
308
+ type: ['object', 'null'],
309
+ description: 'Controls whether session metadata is included in the logout token. Default value is null.',
310
+ properties: {
311
+ include: {
312
+ type: 'boolean',
313
+ description: 'The `include` property determines whether session metadata is included in the logout token.',
314
+ },
315
+ },
316
+ },
317
+ },
318
+ },
266
319
  },
267
320
  required: ['name'],
268
321
  },
269
322
  };
323
+ const createClientSanitizer = (clients) => {
324
+ let sanitized = clients;
325
+ return {
326
+ sanitizeCrossOriginAuth() {
327
+ const deprecatedClients = [];
328
+ sanitized = sanitized.map((client) => {
329
+ let updated = { ...client };
330
+ if ((0, lodash_1.has)(updated, 'cross_origin_auth')) {
331
+ const clientName = client.name || client.client_id || 'unknown client';
332
+ deprecatedClients.push(clientName);
333
+ if (!(0, lodash_1.has)(updated, 'cross_origin_authentication')) {
334
+ updated.cross_origin_authentication = updated.cross_origin_auth;
335
+ }
336
+ updated = (0, lodash_1.omit)(updated, 'cross_origin_auth');
337
+ }
338
+ return updated;
339
+ });
340
+ if (deprecatedClients.length > 0) {
341
+ logger_1.default.warn("The 'cross_origin_auth' parameter is deprecated in clients and scheduled for removal in future releases.\n" +
342
+ `Use 'cross_origin_authentication' going forward. Clients using the deprecated setting: [${deprecatedClients.join(', ')}]`);
343
+ }
344
+ return this;
345
+ },
346
+ sanitizeOidcLogout() {
347
+ const deprecatedClients = [];
348
+ sanitized = sanitized.map((client) => {
349
+ let updated = { ...client };
350
+ if ((0, lodash_1.has)(updated, 'oidc_backchannel_logout')) {
351
+ const clientName = client.name || client.client_id || 'unknown client';
352
+ deprecatedClients.push(clientName);
353
+ if (!(0, lodash_1.has)(updated, 'oidc_logout')) {
354
+ updated.oidc_logout = updated.oidc_backchannel_logout;
355
+ }
356
+ updated = (0, lodash_1.omit)(updated, 'oidc_backchannel_logout');
357
+ }
358
+ return updated;
359
+ });
360
+ if (deprecatedClients.length > 0) {
361
+ logger_1.default.warn("The 'oidc_backchannel_logout' parameter is deprecated in clients and scheduled for removal in future releases.\n" +
362
+ `Use 'oidc_logout' going forward. Clients using the deprecated setting: [${deprecatedClients.join(', ')}]`);
363
+ }
364
+ return this;
365
+ },
366
+ get: () => {
367
+ return sanitized;
368
+ },
369
+ };
370
+ };
270
371
  class ClientHandler extends default_1.default {
271
372
  constructor(config) {
272
373
  super({
@@ -284,11 +385,6 @@ class ClientHandler extends default_1.default {
284
385
  'jwt_configuration.secret_encoded',
285
386
  'resource_server_identifier',
286
387
  ],
287
- functions: {
288
- update: async (
289
- // eslint-disable-next-line camelcase
290
- { client_id }, bodyParams) => this.client.clients.update(client_id, bodyParams),
291
- },
292
388
  });
293
389
  }
294
390
  objString(item) {
@@ -319,7 +415,10 @@ class ClientHandler extends default_1.default {
319
415
  (!excludeThirdPartyClients || item.is_first_party));
320
416
  // Sanitize client fields
321
417
  const sanitizeClientFields = (list) => {
322
- const sanitizedClients = this.sanitizeCrossOriginAuth(list);
418
+ const sanitizedClients = createClientSanitizer(list)
419
+ .sanitizeCrossOriginAuth()
420
+ .sanitizeOidcLogout()
421
+ .get();
323
422
  return sanitizedClients.map((item) => {
324
423
  if (item.app_type === 'resource_server') {
325
424
  if ('oidc_backchannel_logout' in item) {
@@ -345,33 +444,6 @@ class ClientHandler extends default_1.default {
345
444
  ...changes,
346
445
  });
347
446
  }
348
- /**
349
- * @description
350
- * Sanitize the deprecated field `cross_origin_auth` to `cross_origin_authentication`
351
- *
352
- * @param {Client[]} clients - The client array to sanitize.
353
- * @returns {Client[]} The sanitized array of clients.
354
- */
355
- sanitizeCrossOriginAuth(clients) {
356
- const deprecatedClients = [];
357
- const updatedClients = clients.map((client) => {
358
- let updated = { ...client };
359
- if ((0, lodash_1.has)(updated, 'cross_origin_auth')) {
360
- const clientName = client.name || client.client_id || 'unknown client';
361
- deprecatedClients.push(clientName);
362
- if (!(0, lodash_1.has)(updated, 'cross_origin_authentication')) {
363
- updated.cross_origin_authentication = updated.cross_origin_auth;
364
- }
365
- updated = (0, lodash_1.omit)(updated, 'cross_origin_auth');
366
- }
367
- return updated;
368
- });
369
- if (deprecatedClients.length > 0) {
370
- logger_1.default.warn("The 'cross_origin_auth' parameter is deprecated in clients and scheduled for removal in future releases.\n" +
371
- `Use 'cross_origin_authentication' going forward. Clients using the deprecated setting: [${deprecatedClients.join(', ')}]`);
372
- }
373
- return updatedClients;
374
- }
375
447
  async getType() {
376
448
  if (this.existing)
377
449
  return this.existing;
@@ -382,8 +454,7 @@ class ClientHandler extends default_1.default {
382
454
  is_global: false,
383
455
  ...(excludeThirdPartyClients && { is_first_party: true }),
384
456
  });
385
- const sanitizedClients = this.sanitizeCrossOriginAuth(clients);
386
- this.existing = sanitizedClients;
457
+ this.existing = createClientSanitizer(clients).sanitizeCrossOriginAuth().get();
387
458
  return this.existing;
388
459
  }
389
460
  // convert names back to IDs for express configuration
@@ -206,9 +206,6 @@ class ConnectionProfilesHandler extends default_1.default {
206
206
  type: 'connectionProfiles',
207
207
  id: 'id',
208
208
  identifiers: ['id', 'name'],
209
- functions: {
210
- update: (args, data) => this.client.connectionProfiles.update(args?.id, data),
211
- },
212
209
  });
213
210
  }
214
211
  objString(item) {
@@ -107,10 +107,10 @@ export declare const schema: {
107
107
  required: string[];
108
108
  };
109
109
  };
110
- type DirectoryProvisioningConfig = Management.GetDirectoryProvisioningResponseContent;
110
+ type DirectoryProvisioningConfig = Management.DirectoryProvisioning;
111
111
  export type Connection = Management.ConnectionForList & {
112
112
  enabled_clients?: string[];
113
- directory_provisioning_configuration?: DirectoryProvisioningConfig;
113
+ directory_provisioning_configuration?: Pick<DirectoryProvisioningConfig, 'mapping' | 'synchronize_automatically'>;
114
114
  };
115
115
  export declare const addExcludedConnectionPropertiesToChanges: ({ proposedChanges, existingConnections, config, }: {
116
116
  proposedChanges: CalculatedChanges;
@@ -165,11 +165,10 @@ export default class ConnectionsHandler extends DefaultAPIHandler {
165
165
  options?: undefined;
166
166
  };
167
167
  /**
168
- * Retrieves directory provisioning configuration for a specific Auth0 connection.
169
- * @param connectionId - The unique identifier of the connection
170
- * @returns A promise that resolves to the configuration object, or null if not configured/supported
168
+ * Retrieves all directory provisioning configurations for all connections.
169
+ * @returns A promise that resolves to the configurations object, or null if not configured/supported
171
170
  */
172
- getConnectionDirectoryProvisioning(connectionId: string): Promise<DirectoryProvisioningConfig | null>;
171
+ getConnectionDirectoryProvisionings(): Promise<DirectoryProvisioningConfig[] | null>;
173
172
  /**
174
173
  * Creates directory provisioning configuration for a connection.
175
174
  */
@@ -168,16 +168,21 @@ const getConnectionEnabledClients = async (auth0Client, connectionId) => {
168
168
  try {
169
169
  const enabledClientsFormatted = [];
170
170
  let enabledClients = await auth0Client.connections.clients.get(connectionId);
171
- do {
172
- if (enabledClients && enabledClients.data?.length > 0) {
173
- enabledClients.data.forEach((client) => {
174
- if (client?.client_id) {
175
- enabledClientsFormatted.push(client.client_id);
176
- }
177
- });
171
+ // Process first page
172
+ enabledClients.data?.forEach((client) => {
173
+ if (client?.client_id) {
174
+ enabledClientsFormatted.push(client.client_id);
178
175
  }
176
+ });
177
+ // Fetch remaining pages
178
+ while (enabledClients.hasNextPage()) {
179
179
  enabledClients = await enabledClients.getNextPage();
180
- } while (enabledClients.hasNextPage());
180
+ enabledClients.data?.forEach((client) => {
181
+ if (client?.client_id) {
182
+ enabledClientsFormatted.push(client.client_id);
183
+ }
184
+ });
185
+ }
181
186
  return enabledClientsFormatted;
182
187
  }
183
188
  catch (error) {
@@ -277,7 +282,7 @@ class ConnectionsHandler extends default_1.default {
277
282
  functions: {
278
283
  // When `connections` is updated, it can result in `update`,`create` or `delete` action on SCIM.
279
284
  // Because, `scim_configuration` is inside `connections`.
280
- update: async (requestParams, bodyParams) => this.scimHandler.updateOverride(requestParams, bodyParams),
285
+ update: async (connectionId, bodyParams) => this.scimHandler.updateOverride(connectionId, bodyParams),
281
286
  // When a new `connection` is created. We can perform only `create` option on SCIM.
282
287
  // When a connection is `deleted`. `scim_configuration` is also deleted along with it; no action on SCIM is required.
283
288
  create: async (bodyParams) => this.scimHandler.createOverride(bodyParams),
@@ -306,45 +311,19 @@ class ConnectionsHandler extends default_1.default {
306
311
  }
307
312
  }
308
313
  /**
309
- * Retrieves directory provisioning configuration for a specific Auth0 connection.
310
- * @param connectionId - The unique identifier of the connection
311
- * @returns A promise that resolves to the configuration object, or null if not configured/supported
314
+ * Retrieves all directory provisioning configurations for all connections.
315
+ * @returns A promise that resolves to the configurations object, or null if not configured/supported
312
316
  */
313
- async getConnectionDirectoryProvisioning(connectionId) {
314
- if (!connectionId)
315
- return null;
316
- const creates = [connectionId];
317
- let config = null;
317
+ async getConnectionDirectoryProvisionings() {
318
+ let directoryProvisioningConfigs;
318
319
  try {
319
- await this.client.pool
320
- .addEachTask({
321
- data: creates || [],
322
- generator: async (id) => this.client.connections.directoryProvisioning
323
- .get(id)
324
- .then((resp) => {
325
- config = resp;
326
- })
327
- .catch((err) => {
328
- throw new auth0_1.ManagementError(err);
329
- }),
330
- })
331
- .promise();
332
- const stripKeysFromOutput = [
333
- 'connection_id',
334
- 'connection_name',
335
- 'strategy',
336
- 'created_at',
337
- 'updated_at',
338
- ];
339
- stripKeysFromOutput.forEach((key) => {
340
- if (config && key in config) {
341
- delete config[key];
342
- }
320
+ directoryProvisioningConfigs = await (0, client_1.paginate)(this.client.connections.directoryProvisioning.list, {
321
+ checkpoint: true,
343
322
  });
344
- return config;
323
+ return directoryProvisioningConfigs;
345
324
  }
346
325
  catch (error) {
347
- const errLog = `Unable to fetch directory provisioning for connection '${connectionId}'. `;
326
+ const errLog = `Unable to fetch directory provisioning for connections. `;
348
327
  if (error instanceof auth0_1.ManagementError) {
349
328
  const bodyMessage = error.body?.message;
350
329
  logger_1.default.warn(errLog + bodyMessage);
@@ -471,9 +450,12 @@ class ConnectionsHandler extends default_1.default {
471
450
  async getType() {
472
451
  if (this.existing)
473
452
  return this.existing;
474
- const connections = await (0, client_1.paginate)(this.client.connections.list, {
475
- checkpoint: true,
476
- });
453
+ const [connections, directoryProvisioningConfigs] = await Promise.all([
454
+ (0, client_1.paginate)(this.client.connections.list, {
455
+ checkpoint: true,
456
+ }),
457
+ this.getConnectionDirectoryProvisionings(),
458
+ ]);
477
459
  // Filter out database connections as we have separate handler for it
478
460
  const filteredConnections = connections.filter((c) => c.strategy !== 'auth0');
479
461
  // If options option is empty for all connection, log the missing options scope.
@@ -493,10 +475,13 @@ class ConnectionsHandler extends default_1.default {
493
475
  if (enabledClients && enabledClients?.length) {
494
476
  connection.enabled_clients = enabledClients;
495
477
  }
496
- if (connection.strategy === 'google-apps') {
497
- const dirProvConfig = await this.getConnectionDirectoryProvisioning(con.id);
478
+ if (connection.strategy === 'google-apps' && directoryProvisioningConfigs) {
479
+ const dirProvConfig = directoryProvisioningConfigs.find((congigCon) => congigCon.connection_id === con.id);
498
480
  if (dirProvConfig) {
499
- connection.directory_provisioning_configuration = dirProvConfig;
481
+ connection.directory_provisioning_configuration = {
482
+ mapping: dirProvConfig.mapping,
483
+ synchronize_automatically: dirProvConfig.synchronize_automatically,
484
+ };
500
485
  }
501
486
  }
502
487
  return connection;
@@ -46,6 +46,10 @@ export declare const schema: {
46
46
  description: string;
47
47
  defaultValue: string;
48
48
  };
49
+ relying_party_identifier: {
50
+ type: string[];
51
+ description: string;
52
+ };
49
53
  };
50
54
  required: string[];
51
55
  };
@@ -77,6 +77,10 @@ exports.schema = {
77
77
  description: 'Custom domain verification method. Must be `txt`.',
78
78
  defaultValue: 'txt',
79
79
  },
80
+ relying_party_identifier: {
81
+ type: ['string'],
82
+ description: 'Relying Party ID (rpId) to be used for Passkeys on this custom domain. If not provided or set to null, the full domain will be used.',
83
+ },
80
84
  },
81
85
  required: ['domain', 'type'],
82
86
  },
@@ -95,6 +99,7 @@ class CustomDomainsHadnler extends default_1.default {
95
99
  'certificate',
96
100
  'created_at',
97
101
  'updated_at',
102
+ 'is_default',
98
103
  ],
99
104
  stripUpdateFields: [
100
105
  'status',
@@ -106,10 +111,8 @@ class CustomDomainsHadnler extends default_1.default {
106
111
  'certificate',
107
112
  'created_at',
108
113
  'updated_at',
114
+ 'is_default',
109
115
  ],
110
- functions: {
111
- update: (args, data) => this.client.customDomains.update(args.custom_domain_id, data),
112
- },
113
116
  });
114
117
  }
115
118
  objString(item) {