auth0-deploy-cli 8.33.0 → 8.34.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/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [8.34.0] - 2026-05-11
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- Add support for `authorization_policy` on the Auth0 My Account API resource server, enabling ACR (Authentication Context Class Reference) policy configuration via Deploy CLI. [#1381]
|
|
15
|
+
- Add Google Workspace inbound group sync support to directory provisioning configuration. [#1380]
|
|
16
|
+
|
|
17
|
+
### Fixed
|
|
18
|
+
|
|
19
|
+
- Fix keyword replacement mappings (e.g. `##ENV##`) not being applied to `theme.json` during import. [#1379]
|
|
20
|
+
|
|
10
21
|
## [8.33.0] - 2026-05-05
|
|
11
22
|
|
|
12
23
|
### Added
|
|
@@ -1764,7 +1775,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
1764
1775
|
[#1372]: https://github.com/auth0/auth0-deploy-cli/issues/1372
|
|
1765
1776
|
[#1374]: https://github.com/auth0/auth0-deploy-cli/issues/1374
|
|
1766
1777
|
[#1375]: https://github.com/auth0/auth0-deploy-cli/issues/1375
|
|
1767
|
-
[
|
|
1778
|
+
[#1379]: https://github.com/auth0/auth0-deploy-cli/issues/1379
|
|
1779
|
+
[#1380]: https://github.com/auth0/auth0-deploy-cli/issues/1380
|
|
1780
|
+
[#1381]: https://github.com/auth0/auth0-deploy-cli/issues/1381
|
|
1781
|
+
[Unreleased]: https://github.com/auth0/auth0-deploy-cli/compare/v8.34.0...HEAD
|
|
1782
|
+
[8.34.0]: https://github.com/auth0/auth0-deploy-cli/compare/v8.33.0...v8.34.0
|
|
1768
1783
|
[8.33.0]: https://github.com/auth0/auth0-deploy-cli/compare/v8.32.0...v8.33.0
|
|
1769
1784
|
[8.32.0]: https://github.com/auth0/auth0-deploy-cli/compare/v8.31.0...v8.32.0
|
|
1770
1785
|
[8.31.0]: https://github.com/auth0/auth0-deploy-cli/compare/v8.30.0...v8.31.0
|
|
@@ -18,6 +18,9 @@ export declare const schema: {
|
|
|
18
18
|
type: string;
|
|
19
19
|
additionalProperties: boolean;
|
|
20
20
|
properties: {
|
|
21
|
+
api_enable_groups: {
|
|
22
|
+
type: string;
|
|
23
|
+
};
|
|
21
24
|
dpop_signing_alg: {
|
|
22
25
|
type: string;
|
|
23
26
|
};
|
|
@@ -122,6 +125,22 @@ export declare const schema: {
|
|
|
122
125
|
type: string;
|
|
123
126
|
description: string;
|
|
124
127
|
};
|
|
128
|
+
synchronize_groups: {
|
|
129
|
+
type: string;
|
|
130
|
+
enum: ("all" | "off" | "selected")[];
|
|
131
|
+
};
|
|
132
|
+
synchronized_groups: {
|
|
133
|
+
type: string;
|
|
134
|
+
items: {
|
|
135
|
+
type: string;
|
|
136
|
+
properties: {
|
|
137
|
+
id: {
|
|
138
|
+
type: string;
|
|
139
|
+
};
|
|
140
|
+
};
|
|
141
|
+
required: string[];
|
|
142
|
+
};
|
|
143
|
+
};
|
|
125
144
|
};
|
|
126
145
|
};
|
|
127
146
|
};
|
|
@@ -131,7 +150,11 @@ export declare const schema: {
|
|
|
131
150
|
type DirectoryProvisioningConfig = Management.DirectoryProvisioning;
|
|
132
151
|
export type Connection = Management.ConnectionForList & {
|
|
133
152
|
enabled_clients?: string[];
|
|
134
|
-
directory_provisioning_configuration?: Pick<DirectoryProvisioningConfig, 'mapping' | 'synchronize_automatically'
|
|
153
|
+
directory_provisioning_configuration?: Pick<DirectoryProvisioningConfig, 'mapping' | 'synchronize_automatically' | 'synchronize_groups'> & {
|
|
154
|
+
synchronized_groups?: Array<{
|
|
155
|
+
id: string;
|
|
156
|
+
}>;
|
|
157
|
+
};
|
|
135
158
|
};
|
|
136
159
|
export declare const addExcludedConnectionPropertiesToChanges: ({ proposedChanges, existingConnections, config, }: {
|
|
137
160
|
proposedChanges: CalculatedChanges;
|
|
@@ -203,6 +226,16 @@ export default class ConnectionsHandler extends DefaultAPIHandler {
|
|
|
203
226
|
* Deletes directory provisioning configuration for a connection.
|
|
204
227
|
*/
|
|
205
228
|
private deleteConnectionDirectoryProvisioning;
|
|
229
|
+
/**
|
|
230
|
+
* Retrieves all synchronized groups for a connection using checkpoint pagination.
|
|
231
|
+
*/
|
|
232
|
+
getConnectionSynchronizedGroups(connectionId: string): Promise<Array<{
|
|
233
|
+
id: string;
|
|
234
|
+
}> | null>;
|
|
235
|
+
/**
|
|
236
|
+
* Replaces the synchronized groups for a connection (PUT replace-all semantics).
|
|
237
|
+
*/
|
|
238
|
+
private updateConnectionSynchronizedGroups;
|
|
206
239
|
/**
|
|
207
240
|
* This function processes directory provisioning for create, update, and conflict operations.
|
|
208
241
|
* Directory provisioning is only supported for google-apps strategy connections.
|
|
@@ -56,6 +56,9 @@ const connectionOptionsSchema = {
|
|
|
56
56
|
type: 'object',
|
|
57
57
|
additionalProperties: true,
|
|
58
58
|
properties: {
|
|
59
|
+
api_enable_groups: {
|
|
60
|
+
type: 'boolean',
|
|
61
|
+
},
|
|
59
62
|
dpop_signing_alg: {
|
|
60
63
|
type: 'string',
|
|
61
64
|
},
|
|
@@ -141,6 +144,20 @@ exports.schema = {
|
|
|
141
144
|
type: 'boolean',
|
|
142
145
|
description: 'The field whether periodic automatic synchronization is enabled',
|
|
143
146
|
},
|
|
147
|
+
synchronize_groups: {
|
|
148
|
+
type: 'string',
|
|
149
|
+
enum: Object.values(auth0_1.Management.SynchronizeGroupsEnum),
|
|
150
|
+
},
|
|
151
|
+
synchronized_groups: {
|
|
152
|
+
type: 'array',
|
|
153
|
+
items: {
|
|
154
|
+
type: 'object',
|
|
155
|
+
properties: {
|
|
156
|
+
id: { type: 'string' },
|
|
157
|
+
},
|
|
158
|
+
required: ['id'],
|
|
159
|
+
},
|
|
160
|
+
},
|
|
144
161
|
},
|
|
145
162
|
},
|
|
146
163
|
},
|
|
@@ -411,6 +428,7 @@ class ConnectionsHandler extends default_1.default {
|
|
|
411
428
|
const createPayload = {
|
|
412
429
|
mapping: payload.mapping,
|
|
413
430
|
synchronize_automatically: payload.synchronize_automatically,
|
|
431
|
+
...(payload.synchronize_groups && { synchronize_groups: payload.synchronize_groups }),
|
|
414
432
|
};
|
|
415
433
|
await this.client.connections.directoryProvisioning.create(connectionId, createPayload);
|
|
416
434
|
logger_1.default.debug(`Created directory provisioning for connection '${connectionId}'`);
|
|
@@ -425,6 +443,7 @@ class ConnectionsHandler extends default_1.default {
|
|
|
425
443
|
const updatePayload = {
|
|
426
444
|
mapping: payload.mapping,
|
|
427
445
|
synchronize_automatically: payload.synchronize_automatically,
|
|
446
|
+
...(payload.synchronize_groups && { synchronize_groups: payload.synchronize_groups }),
|
|
428
447
|
};
|
|
429
448
|
await this.client.connections.directoryProvisioning.update(connectionId, updatePayload);
|
|
430
449
|
logger_1.default.debug(`Updated directory provisioning for connection '${connectionId}'`);
|
|
@@ -439,6 +458,40 @@ class ConnectionsHandler extends default_1.default {
|
|
|
439
458
|
await this.client.connections.directoryProvisioning.delete(connectionId);
|
|
440
459
|
logger_1.default.debug(`Deleted directory provisioning for connection '${connectionId}'`);
|
|
441
460
|
}
|
|
461
|
+
/**
|
|
462
|
+
* Retrieves all synchronized groups for a connection using checkpoint pagination.
|
|
463
|
+
*/
|
|
464
|
+
async getConnectionSynchronizedGroups(connectionId) {
|
|
465
|
+
try {
|
|
466
|
+
const groups = [];
|
|
467
|
+
let page = await this.client.connections.directoryProvisioning.listSynchronizedGroups(connectionId, {});
|
|
468
|
+
for (const g of page.data ?? [])
|
|
469
|
+
groups.push({ id: g.id });
|
|
470
|
+
while (page.hasNextPage?.()) {
|
|
471
|
+
page = await page.getNextPage();
|
|
472
|
+
for (const g of page.data ?? [])
|
|
473
|
+
groups.push({ id: g.id });
|
|
474
|
+
}
|
|
475
|
+
return groups;
|
|
476
|
+
}
|
|
477
|
+
catch (error) {
|
|
478
|
+
const errLog = `Unable to fetch synchronized groups for connection '${connectionId}'. `;
|
|
479
|
+
const statusCode = error?.statusCode;
|
|
480
|
+
if (statusCode != null && [403, 404, 501].includes(statusCode)) {
|
|
481
|
+
const bodyMessage = error instanceof auth0_1.ManagementError ? error.body?.message : error.message;
|
|
482
|
+
logger_1.default.warn(errLog + bodyMessage);
|
|
483
|
+
return null;
|
|
484
|
+
}
|
|
485
|
+
throw error;
|
|
486
|
+
}
|
|
487
|
+
}
|
|
488
|
+
/**
|
|
489
|
+
* Replaces the synchronized groups for a connection (PUT replace-all semantics).
|
|
490
|
+
*/
|
|
491
|
+
async updateConnectionSynchronizedGroups(connectionId, groups) {
|
|
492
|
+
await this.client.connections.directoryProvisioning.set(connectionId, { groups });
|
|
493
|
+
logger_1.default.debug(`Updated synchronized groups for connection '${connectionId}'`);
|
|
494
|
+
}
|
|
442
495
|
/**
|
|
443
496
|
* This function processes directory provisioning for create, update, and conflict operations.
|
|
444
497
|
* Directory provisioning is only supported for google-apps strategy connections.
|
|
@@ -513,6 +566,20 @@ class ConnectionsHandler extends default_1.default {
|
|
|
513
566
|
.map((i) => this.objString(i))
|
|
514
567
|
.join('\n')}`);
|
|
515
568
|
}
|
|
569
|
+
// Process synchronized groups for connections where synchronize_groups === 'selected'
|
|
570
|
+
const connectionsToSyncGroups = [
|
|
571
|
+
...directoryConnectionsToCreate,
|
|
572
|
+
...directoryConnectionsToUpdate,
|
|
573
|
+
].filter((conn) => conn.directory_provisioning_configuration?.synchronize_groups === 'selected' &&
|
|
574
|
+
conn.directory_provisioning_configuration?.synchronized_groups !== undefined);
|
|
575
|
+
await this.client.pool
|
|
576
|
+
.addEachTask({
|
|
577
|
+
data: connectionsToSyncGroups,
|
|
578
|
+
generator: (conn) => this.updateConnectionSynchronizedGroups(conn.id, conn.directory_provisioning_configuration.synchronized_groups).catch((err) => {
|
|
579
|
+
throw new Error(`Failed to update synchronized groups for connection '${conn.id}':\n${err}`);
|
|
580
|
+
}),
|
|
581
|
+
})
|
|
582
|
+
.promise();
|
|
516
583
|
}
|
|
517
584
|
async getType() {
|
|
518
585
|
if (this.existing)
|
|
@@ -552,7 +619,17 @@ class ConnectionsHandler extends default_1.default {
|
|
|
552
619
|
connection.directory_provisioning_configuration = {
|
|
553
620
|
mapping: dirProvConfig.mapping,
|
|
554
621
|
synchronize_automatically: dirProvConfig.synchronize_automatically,
|
|
622
|
+
...(dirProvConfig.synchronize_groups && {
|
|
623
|
+
synchronize_groups: dirProvConfig.synchronize_groups,
|
|
624
|
+
}),
|
|
555
625
|
};
|
|
626
|
+
if (dirProvConfig.synchronize_groups === 'selected') {
|
|
627
|
+
const syncedGroups = await this.getConnectionSynchronizedGroups(con.id);
|
|
628
|
+
if (syncedGroups?.length) {
|
|
629
|
+
connection.directory_provisioning_configuration.synchronized_groups =
|
|
630
|
+
syncedGroups;
|
|
631
|
+
}
|
|
632
|
+
}
|
|
556
633
|
}
|
|
557
634
|
}
|
|
558
635
|
return { index, connection };
|
|
@@ -117,6 +117,7 @@ class ResourceServersHandler extends default_1.default {
|
|
|
117
117
|
'identifier',
|
|
118
118
|
'id',
|
|
119
119
|
'is_system',
|
|
120
|
+
'authorization_policy',
|
|
120
121
|
];
|
|
121
122
|
const sanitized = {};
|
|
122
123
|
allowedKeys.forEach((key) => {
|
|
@@ -168,6 +169,7 @@ class ResourceServersHandler extends default_1.default {
|
|
|
168
169
|
proof_of_possession: update.proof_of_possession,
|
|
169
170
|
skip_consent_for_verifiable_first_party_clients: update.skip_consent_for_verifiable_first_party_clients,
|
|
170
171
|
subject_type_authorization: update.subject_type_authorization,
|
|
172
|
+
authorization_policy: update.authorization_policy,
|
|
171
173
|
};
|
|
172
174
|
return this.client.resourceServers.update(id, updateFields);
|
|
173
175
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "auth0-deploy-cli",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.34.0",
|
|
4
4
|
"description": "A command line tool for deploying updates to your Auth0 tenant",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"readme": "README.md",
|
|
34
34
|
"homepage": "https://github.com/auth0/auth0-deploy-cli#readme",
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@clack/prompts": "1.
|
|
36
|
+
"@clack/prompts": "1.3.0",
|
|
37
37
|
"ajv": "^6.12.6",
|
|
38
38
|
"chalk": "5.6.2",
|
|
39
39
|
"auth0": "^5.9.0",
|