@salesforce/b2c-tooling-sdk 0.4.0 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/cli/am-command.js +2 -0
- package/dist/cjs/cli/am-command.js.map +1 -1
- package/dist/cjs/cli/config.js +1 -1
- package/dist/cjs/cli/config.js.map +1 -1
- package/dist/cjs/cli/instance-command.d.ts +1 -1
- package/dist/cjs/cli/oauth-command.d.ts +1 -1
- package/dist/cjs/cli/oauth-command.js +1 -1
- package/dist/cjs/cli/oauth-command.js.map +1 -1
- package/dist/cjs/cli/ods-command.d.ts +1 -1
- package/dist/cjs/cli/webdav-command.d.ts +1 -1
- package/dist/cjs/clients/am-api.d.ts +40 -10
- package/dist/cjs/clients/am-api.js +171 -129
- package/dist/cjs/clients/am-api.js.map +1 -1
- package/dist/cjs/clients/am-users-api.generated.d.ts +63 -0
- package/dist/cjs/clients/index.d.ts +2 -2
- package/dist/cjs/clients/index.js +1 -1
- package/dist/cjs/clients/index.js.map +1 -1
- package/dist/cjs/index.d.ts +2 -2
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/operations/users/index.d.ts +12 -2
- package/dist/cjs/operations/users/index.js +22 -24
- package/dist/cjs/operations/users/index.js.map +1 -1
- package/dist/esm/cli/am-command.js +2 -0
- package/dist/esm/cli/am-command.js.map +1 -1
- package/dist/esm/cli/config.js +1 -1
- package/dist/esm/cli/config.js.map +1 -1
- package/dist/esm/cli/instance-command.d.ts +1 -1
- package/dist/esm/cli/oauth-command.d.ts +1 -1
- package/dist/esm/cli/oauth-command.js +1 -1
- package/dist/esm/cli/oauth-command.js.map +1 -1
- package/dist/esm/cli/ods-command.d.ts +1 -1
- package/dist/esm/cli/webdav-command.d.ts +1 -1
- package/dist/esm/clients/am-api.d.ts +40 -10
- package/dist/esm/clients/am-api.js +171 -129
- package/dist/esm/clients/am-api.js.map +1 -1
- package/dist/esm/clients/am-users-api.generated.d.ts +63 -0
- package/dist/esm/clients/index.d.ts +2 -2
- package/dist/esm/clients/index.js +1 -1
- package/dist/esm/clients/index.js.map +1 -1
- package/dist/esm/index.d.ts +2 -2
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/operations/users/index.d.ts +12 -2
- package/dist/esm/operations/users/index.js +22 -24
- package/dist/esm/operations/users/index.js.map +1 -1
- package/package.json +1 -1
- package/specs/am-users-api-v1.yaml +40 -0
|
@@ -10,6 +10,8 @@ const AM_ACCOUNT_ADMIN = 'Account Administrator';
|
|
|
10
10
|
const AM_API_ADMIN = 'API Administrator';
|
|
11
11
|
/** Patterns that indicate an authentication/authorization error */
|
|
12
12
|
const AUTH_ERROR_PATTERNS = [
|
|
13
|
+
'access is denied',
|
|
14
|
+
'accessdeniedexception',
|
|
13
15
|
'authentication invalid',
|
|
14
16
|
'operation forbidden',
|
|
15
17
|
'401',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"am-command.js","sourceRoot":"","sources":["../../../src/cli/am-command.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"am-command.js","sourceRoot":"","sources":["../../../src/cli/am-command.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/cli/config.js
CHANGED
|
@@ -20,7 +20,7 @@ export { findDwJson };
|
|
|
20
20
|
* ```
|
|
21
21
|
*/
|
|
22
22
|
export function extractOAuthFlags(flags) {
|
|
23
|
-
const scopes = flags
|
|
23
|
+
const scopes = flags['auth-scope'];
|
|
24
24
|
// Parse auth methods from --auth-methods or --user-auth flag
|
|
25
25
|
const authMethodValues = flags['auth-methods'];
|
|
26
26
|
let authMethods;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/cli/config.ts"],"names":[],"mappings":"AAcA,OAAO,EAAC,gBAAgB,EAAC,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAC,aAAa,EAAmE,MAAM,oBAAoB,CAAC;AACnH,OAAO,EAAC,UAAU,EAAC,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAC,SAAS,EAAC,MAAM,sBAAsB,CAAC;AAI/C,OAAO,EAAC,gBAAgB,EAAC,CAAC;AAC1B,OAAO,EAAC,UAAU,EAAC,CAAC;AAQpB;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAkB;IAClD,MAAM,MAAM,GAAG,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/cli/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -43,7 +43,7 @@ export declare abstract class InstanceCommand<T extends typeof Command> extends
|
|
|
43
43
|
verify: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
44
44
|
'client-id': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
45
45
|
'client-secret': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
46
|
-
scope: import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
46
|
+
'auth-scope': import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
47
47
|
'short-code': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
48
48
|
'tenant-id': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
49
49
|
'auth-methods': import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
@@ -18,7 +18,7 @@ export declare abstract class OAuthCommand<T extends typeof Command> extends Bas
|
|
|
18
18
|
static baseFlags: {
|
|
19
19
|
'client-id': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
20
20
|
'client-secret': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
21
|
-
scope: import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
21
|
+
'auth-scope': import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
22
22
|
'short-code': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
23
23
|
'tenant-id': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
24
24
|
'auth-methods': import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
@@ -38,7 +38,7 @@ export class OAuthCommand extends BaseCommand {
|
|
|
38
38
|
env: 'SFCC_CLIENT_SECRET',
|
|
39
39
|
helpGroup: 'AUTH',
|
|
40
40
|
}),
|
|
41
|
-
scope: Flags.string({
|
|
41
|
+
'auth-scope': Flags.string({
|
|
42
42
|
description: 'OAuth scopes to request (comma-separated)',
|
|
43
43
|
env: 'SFCC_OAUTH_SCOPES',
|
|
44
44
|
multiple: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth-command.js","sourceRoot":"","sources":["../../../src/cli/oauth-command.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAU,KAAK,EAAC,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAC,WAAW,EAAC,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAC,UAAU,EAAE,iBAAiB,EAAE,gBAAgB,EAAC,MAAM,aAAa,CAAC;AAG5E,OAAO,EAAC,aAAa,EAAC,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAC,qBAAqB,EAAC,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAC,CAAC,EAAC,MAAM,kBAAkB,CAAC;AACnC,OAAO,EAAC,4BAA4B,EAAC,MAAM,gBAAgB,CAAC;AAE5D;;;GAGG;AACH,MAAM,0BAA0B,GAAiB,CAAC,oBAAoB,EAAE,UAAU,CAAC,CAAC;AAEpF;;;;;;;;;GASG;AACH,MAAM,OAAgB,YAAuC,SAAQ,WAAc;IACjF,MAAM,CAAC,SAAS,GAAG;QACjB,GAAG,WAAW,CAAC,SAAS;QACxB,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC;YACxB,WAAW,EAAE,qBAAqB;YAClC,GAAG,EAAE,gBAAgB;YACrB,SAAS,EAAE,MAAM;SAClB,CAAC;QACF,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC;YAC5B,WAAW,EAAE,yBAAyB;YACtC,GAAG,EAAE,oBAAoB;YACzB,SAAS,EAAE,MAAM;SAClB,CAAC;QACF,
|
|
1
|
+
{"version":3,"file":"oauth-command.js","sourceRoot":"","sources":["../../../src/cli/oauth-command.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,7 +29,7 @@ export declare abstract class OdsCommand<T extends typeof Command> extends OAuth
|
|
|
29
29
|
'sandbox-api-host': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
30
30
|
'client-id': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
31
31
|
'client-secret': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
32
|
-
scope: import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
32
|
+
'auth-scope': import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
33
33
|
'short-code': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
34
34
|
'tenant-id': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
35
35
|
'auth-methods': import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
@@ -60,7 +60,7 @@ export declare abstract class WebDavCommand<T extends typeof Command> extends In
|
|
|
60
60
|
verify: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
61
61
|
'client-id': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
62
62
|
'client-secret': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
63
|
-
scope: import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
63
|
+
'auth-scope': import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
64
64
|
'short-code': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
65
65
|
'tenant-id': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
66
66
|
'auth-methods': import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
@@ -64,18 +64,44 @@ export interface ListUsersOptions {
|
|
|
64
64
|
page?: number;
|
|
65
65
|
}
|
|
66
66
|
/**
|
|
67
|
-
* Role
|
|
67
|
+
* Role mapping built from the Account Manager roles API.
|
|
68
|
+
* Maps between role `id` (e.g., `bm-admin`) and `roleEnumName` (e.g., `ECOM_ADMIN`).
|
|
69
|
+
*/
|
|
70
|
+
export interface RoleMapping {
|
|
71
|
+
/** Maps role id (e.g., 'bm-admin') to roleEnumName (e.g., 'ECOM_ADMIN') */
|
|
72
|
+
byId: Map<string, string>;
|
|
73
|
+
/** Maps roleEnumName (e.g., 'ECOM_ADMIN') to role id (e.g., 'bm-admin') */
|
|
74
|
+
byEnumName: Map<string, string>;
|
|
75
|
+
/** Maps roleEnumName (e.g., 'ECOM_ADMIN') to description (e.g., 'Business Manager Administrator') */
|
|
76
|
+
descriptions: Map<string, string>;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Organization mapping built from the Account Manager organizations API.
|
|
80
|
+
* Maps organization ID to name.
|
|
68
81
|
*/
|
|
69
|
-
export
|
|
70
|
-
|
|
82
|
+
export interface OrgMapping {
|
|
83
|
+
/** Maps organization ID to name */
|
|
84
|
+
byId: Map<string, string>;
|
|
85
|
+
}
|
|
71
86
|
/**
|
|
72
|
-
*
|
|
87
|
+
* Fetches all roles from the Account Manager roles API and builds a mapping
|
|
88
|
+
* between role `id` and `roleEnumName`.
|
|
89
|
+
*
|
|
90
|
+
* @param rolesClient - Account Manager Roles client
|
|
91
|
+
* @returns Role mapping
|
|
73
92
|
*/
|
|
74
|
-
export declare function
|
|
93
|
+
export declare function fetchRoleMapping(rolesClient: AccountManagerRolesClient): Promise<RoleMapping>;
|
|
75
94
|
/**
|
|
76
|
-
*
|
|
95
|
+
* Resolves a role to its internal `roleEnumName` using an API-fetched role mapping.
|
|
96
|
+
* Accepts either the role `id` (e.g., `bm-admin`) or `roleEnumName` (e.g., `ECOM_ADMIN`).
|
|
97
|
+
* Falls back to a generic transform (uppercase + replace hyphens with underscores) for unknown roles.
|
|
77
98
|
*/
|
|
78
|
-
export declare function
|
|
99
|
+
export declare function resolveToInternalRole(role: string, mapping: RoleMapping): string;
|
|
100
|
+
/**
|
|
101
|
+
* Resolves an internal `roleEnumName` to its external role `id` using an API-fetched role mapping.
|
|
102
|
+
* Falls back to a generic transform (lowercase + replace underscores with hyphens) for unknown roles.
|
|
103
|
+
*/
|
|
104
|
+
export declare function resolveFromInternalRole(roleEnumName: string, mapping: RoleMapping): string;
|
|
79
105
|
/**
|
|
80
106
|
* Configuration for creating Account Manager clients.
|
|
81
107
|
* Used for all Account Manager API clients (users, roles, orgs).
|
|
@@ -185,12 +211,12 @@ export declare function purgeUser(client: AccountManagerUsersClient, userId: str
|
|
|
185
211
|
*/
|
|
186
212
|
export declare function resetUser(client: AccountManagerUsersClient, userId: string): Promise<void>;
|
|
187
213
|
/**
|
|
188
|
-
*
|
|
189
|
-
* This is a convenience function since the API doesn't have a direct search by login endpoint.
|
|
214
|
+
* Finds a user by login (email) using the dedicated search endpoint.
|
|
190
215
|
*
|
|
191
216
|
* @param client - Account Manager Users client
|
|
192
217
|
* @param login - User login (email)
|
|
193
|
-
* @
|
|
218
|
+
* @param expand - Optional array of fields to expand (organizations, roles)
|
|
219
|
+
* @returns User if found, undefined if not found
|
|
194
220
|
* @throws Error if request fails
|
|
195
221
|
*/
|
|
196
222
|
export declare function findUserByLogin(client: AccountManagerUsersClient, login: string, expand?: UserExpandOption[]): Promise<AccountManagerUser | undefined>;
|
|
@@ -438,6 +464,10 @@ export interface AccountManagerClient {
|
|
|
438
464
|
getRole(roleId: string): Promise<AccountManagerRole>;
|
|
439
465
|
/** List roles with pagination */
|
|
440
466
|
listRoles(options?: ListRolesOptions): Promise<RoleCollection>;
|
|
467
|
+
/** Get the role mapping (id ↔ roleEnumName), lazily cached */
|
|
468
|
+
getRoleMapping(): Promise<RoleMapping>;
|
|
469
|
+
/** Get the org mapping (id → name), lazily cached */
|
|
470
|
+
getOrgMapping(): Promise<OrgMapping>;
|
|
441
471
|
/** List API clients with pagination */
|
|
442
472
|
listApiClients(options?: ListApiClientsOptions): Promise<APIClientCollection>;
|
|
443
473
|
/** Get API client by ID */
|
|
@@ -30,33 +30,57 @@ export function isValidRoleTenantFilter(value) {
|
|
|
30
30
|
return value.length > 0 && ROLE_TENANT_FILTER_PATTERN.test(value);
|
|
31
31
|
}
|
|
32
32
|
/**
|
|
33
|
-
*
|
|
33
|
+
* Fetches all roles from the Account Manager roles API and builds a mapping
|
|
34
|
+
* between role `id` and `roleEnumName`.
|
|
35
|
+
*
|
|
36
|
+
* @param rolesClient - Account Manager Roles client
|
|
37
|
+
* @returns Role mapping
|
|
34
38
|
*/
|
|
35
|
-
export
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
39
|
+
export async function fetchRoleMapping(rolesClient) {
|
|
40
|
+
const result = await listRoles(rolesClient, { size: 100 });
|
|
41
|
+
const byId = new Map();
|
|
42
|
+
const byEnumName = new Map();
|
|
43
|
+
const descriptions = new Map();
|
|
44
|
+
for (const role of result.content || []) {
|
|
45
|
+
if (role.id && role.roleEnumName) {
|
|
46
|
+
byId.set(role.id, role.roleEnumName);
|
|
47
|
+
byEnumName.set(role.roleEnumName, role.id);
|
|
48
|
+
if (role.description) {
|
|
49
|
+
descriptions.set(role.roleEnumName, role.description);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
return { byId, byEnumName, descriptions };
|
|
54
|
+
}
|
|
43
55
|
/**
|
|
44
|
-
*
|
|
56
|
+
* Resolves a role to its internal `roleEnumName` using an API-fetched role mapping.
|
|
57
|
+
* Accepts either the role `id` (e.g., `bm-admin`) or `roleEnumName` (e.g., `ECOM_ADMIN`).
|
|
58
|
+
* Falls back to a generic transform (uppercase + replace hyphens with underscores) for unknown roles.
|
|
45
59
|
*/
|
|
46
|
-
export function
|
|
47
|
-
|
|
48
|
-
|
|
60
|
+
export function resolveToInternalRole(role, mapping) {
|
|
61
|
+
// Already a known roleEnumName
|
|
62
|
+
if (mapping.byEnumName.has(role)) {
|
|
63
|
+
return role;
|
|
49
64
|
}
|
|
65
|
+
// Known role id → roleEnumName
|
|
66
|
+
const enumName = mapping.byId.get(role);
|
|
67
|
+
if (enumName) {
|
|
68
|
+
return enumName;
|
|
69
|
+
}
|
|
70
|
+
// Fallback: generic transform
|
|
50
71
|
return role.toUpperCase().replace(/-/g, '_');
|
|
51
72
|
}
|
|
52
73
|
/**
|
|
53
|
-
*
|
|
74
|
+
* Resolves an internal `roleEnumName` to its external role `id` using an API-fetched role mapping.
|
|
75
|
+
* Falls back to a generic transform (lowercase + replace underscores with hyphens) for unknown roles.
|
|
54
76
|
*/
|
|
55
|
-
export function
|
|
56
|
-
|
|
57
|
-
|
|
77
|
+
export function resolveFromInternalRole(roleEnumName, mapping) {
|
|
78
|
+
const id = mapping.byEnumName.get(roleEnumName);
|
|
79
|
+
if (id) {
|
|
80
|
+
return id;
|
|
58
81
|
}
|
|
59
|
-
|
|
82
|
+
// Fallback: generic transform
|
|
83
|
+
return roleEnumName.toLowerCase().replace(/_/g, '-');
|
|
60
84
|
}
|
|
61
85
|
/**
|
|
62
86
|
* Creates a typed Account Manager Users API client.
|
|
@@ -258,47 +282,35 @@ export async function resetUser(client, userId) {
|
|
|
258
282
|
}
|
|
259
283
|
}
|
|
260
284
|
/**
|
|
261
|
-
*
|
|
262
|
-
* This is a convenience function since the API doesn't have a direct search by login endpoint.
|
|
285
|
+
* Finds a user by login (email) using the dedicated search endpoint.
|
|
263
286
|
*
|
|
264
287
|
* @param client - Account Manager Users client
|
|
265
288
|
* @param login - User login (email)
|
|
266
|
-
* @
|
|
289
|
+
* @param expand - Optional array of fields to expand (organizations, roles)
|
|
290
|
+
* @returns User if found, undefined if not found
|
|
267
291
|
* @throws Error if request fails
|
|
268
292
|
*/
|
|
269
293
|
export async function findUserByLogin(client, login, expand) {
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
},
|
|
281
|
-
},
|
|
282
|
-
},
|
|
283
|
-
});
|
|
284
|
-
if (result.error) {
|
|
285
|
-
throw new Error(`Failed to search for user: ${JSON.stringify(result.error)}`);
|
|
286
|
-
}
|
|
287
|
-
const users = result.data?.content || [];
|
|
288
|
-
const found = users.find((u) => u.mail === login);
|
|
289
|
-
if (found) {
|
|
290
|
-
// If expand is requested, fetch the full user with expanded fields
|
|
291
|
-
if (expand && expand.length > 0 && found.id) {
|
|
292
|
-
return getUser(client, found.id, expand);
|
|
293
|
-
}
|
|
294
|
-
return found;
|
|
295
|
-
}
|
|
296
|
-
// If we got fewer results than page size, we've reached the end
|
|
297
|
-
if (users.length < pageSize) {
|
|
298
|
-
return undefined;
|
|
299
|
-
}
|
|
300
|
-
page++;
|
|
294
|
+
const result = await client.GET('/dw/rest/v1/users/search/findByLogin', {
|
|
295
|
+
params: {
|
|
296
|
+
query: { login },
|
|
297
|
+
},
|
|
298
|
+
});
|
|
299
|
+
if (result.response?.status === 404) {
|
|
300
|
+
return undefined;
|
|
301
|
+
}
|
|
302
|
+
if (result.error) {
|
|
303
|
+
throw new Error(`Failed to search for user: ${JSON.stringify(result.error)}`);
|
|
301
304
|
}
|
|
305
|
+
const found = result.data;
|
|
306
|
+
if (!found) {
|
|
307
|
+
return undefined;
|
|
308
|
+
}
|
|
309
|
+
// If expand is requested, fetch the full user with expanded fields
|
|
310
|
+
if (expand && expand.length > 0 && found.id) {
|
|
311
|
+
return getUser(client, found.id, expand);
|
|
312
|
+
}
|
|
313
|
+
return found;
|
|
302
314
|
}
|
|
303
315
|
/**
|
|
304
316
|
* Creates a typed Account Manager Roles API client.
|
|
@@ -823,12 +835,35 @@ function createPageableTransformMiddleware() {
|
|
|
823
835
|
* const org = await client.getOrg('org-id');
|
|
824
836
|
*/
|
|
825
837
|
export function createAccountManagerClient(config, auth) {
|
|
826
|
-
|
|
838
|
+
const logger = getLogger();
|
|
827
839
|
// Create internal clients (all use the same config, however, specifications are different)
|
|
828
840
|
const usersClient = createAccountManagerUsersClient(config, auth);
|
|
829
841
|
const rolesClient = createAccountManagerRolesClient(config, auth);
|
|
830
842
|
const apiClientsClient = createAccountManagerApiClientsClient(config, auth);
|
|
831
843
|
const orgsClient = createAccountManagerOrgsClient(config, auth);
|
|
844
|
+
// Lazily cached role mapping
|
|
845
|
+
let cachedRoleMapping;
|
|
846
|
+
async function getRoleMapping() {
|
|
847
|
+
if (!cachedRoleMapping) {
|
|
848
|
+
cachedRoleMapping = await fetchRoleMapping(rolesClient);
|
|
849
|
+
}
|
|
850
|
+
return cachedRoleMapping;
|
|
851
|
+
}
|
|
852
|
+
// Lazily cached org mapping
|
|
853
|
+
let cachedOrgMapping;
|
|
854
|
+
async function getOrgMapping() {
|
|
855
|
+
if (!cachedOrgMapping) {
|
|
856
|
+
const result = await orgsClient.listOrgs({ all: true });
|
|
857
|
+
const byId = new Map();
|
|
858
|
+
for (const org of result.content || []) {
|
|
859
|
+
if (org.id && org.name) {
|
|
860
|
+
byId.set(org.id, org.name);
|
|
861
|
+
}
|
|
862
|
+
}
|
|
863
|
+
cachedOrgMapping = { byId };
|
|
864
|
+
}
|
|
865
|
+
return cachedOrgMapping;
|
|
866
|
+
}
|
|
832
867
|
// Return unified client with all methods
|
|
833
868
|
return {
|
|
834
869
|
// Users API methods
|
|
@@ -840,94 +875,101 @@ export function createAccountManagerClient(config, auth) {
|
|
|
840
875
|
purgeUser: (userId) => purgeUser(usersClient, userId),
|
|
841
876
|
resetUser: (userId) => resetUser(usersClient, userId),
|
|
842
877
|
findUserByLogin: (login, expand) => findUserByLogin(usersClient, login, expand),
|
|
843
|
-
grantRole: (userId, role, scope) => {
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
878
|
+
grantRole: async (userId, role, scope) => {
|
|
879
|
+
const roleMapping = await getRoleMapping();
|
|
880
|
+
// Resolve to both formats: role ID for roles array, roleEnumName for roleTenantFilter
|
|
881
|
+
const enumName = resolveToInternalRole(role, roleMapping);
|
|
882
|
+
const roleId = resolveFromInternalRole(enumName, roleMapping);
|
|
883
|
+
logger.debug({ role, roleId, enumName }, `[AM] Resolved role '${role}' → id='${roleId}', enum='${enumName}'`);
|
|
884
|
+
const user = await getUser(usersClient, userId);
|
|
885
|
+
// Build updated roles (uses role ID format, e.g. 'bm-admin')
|
|
886
|
+
const currentRoles = Array.isArray(user.roles)
|
|
887
|
+
? user.roles.map((r) => (typeof r === 'string' ? r : r.id || ''))
|
|
888
|
+
: [];
|
|
889
|
+
const updatedRoles = currentRoles.includes(roleId) ? currentRoles : [...currentRoles, roleId];
|
|
890
|
+
// Build updated roleTenantFilter (uses roleEnumName format, e.g. 'ECOM_ADMIN')
|
|
891
|
+
let roleTenantFilter = user.roleTenantFilter || '';
|
|
892
|
+
if (scope) {
|
|
893
|
+
const scopes = scope.split(',');
|
|
894
|
+
// Parse existing filter
|
|
895
|
+
const filters = roleTenantFilter.split(';').filter(Boolean);
|
|
896
|
+
const filterMap = new Map();
|
|
897
|
+
for (const filter of filters) {
|
|
898
|
+
const [r, tenants] = filter.split(':');
|
|
899
|
+
if (tenants) {
|
|
900
|
+
filterMap.set(r, tenants.split(','));
|
|
863
901
|
}
|
|
864
|
-
// Add new scopes
|
|
865
|
-
const existingScopes = filterMap.get(role) || [];
|
|
866
|
-
const allScopes = [...new Set([...existingScopes, ...scopes])];
|
|
867
|
-
filterMap.set(role, allScopes);
|
|
868
|
-
// Rebuild filter string
|
|
869
|
-
roleTenantFilter = Array.from(filterMap.entries())
|
|
870
|
-
.map(([r, tenants]) => `${r}:${tenants.join(',')}`)
|
|
871
|
-
.join(';');
|
|
872
902
|
}
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
903
|
+
// Add new scopes
|
|
904
|
+
const existingScopes = filterMap.get(enumName) || [];
|
|
905
|
+
const allScopes = [...new Set([...existingScopes, ...scopes])];
|
|
906
|
+
filterMap.set(enumName, allScopes);
|
|
907
|
+
// Rebuild filter string
|
|
908
|
+
roleTenantFilter = Array.from(filterMap.entries())
|
|
909
|
+
.map(([r, tenants]) => `${r}:${tenants.join(',')}`)
|
|
910
|
+
.join(';');
|
|
911
|
+
}
|
|
912
|
+
return updateUser(usersClient, userId, {
|
|
913
|
+
roles: updatedRoles,
|
|
914
|
+
roleTenantFilter: roleTenantFilter || undefined,
|
|
877
915
|
});
|
|
878
916
|
},
|
|
879
|
-
revokeRole: (userId, role, scope) => {
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
917
|
+
revokeRole: async (userId, role, scope) => {
|
|
918
|
+
const roleMapping = await getRoleMapping();
|
|
919
|
+
const enumName = resolveToInternalRole(role, roleMapping);
|
|
920
|
+
const roleId = resolveFromInternalRole(enumName, roleMapping);
|
|
921
|
+
logger.debug({ role, roleId, enumName }, `[AM] Resolved role '${role}' → id='${roleId}', enum='${enumName}'`);
|
|
922
|
+
const user = await getUser(usersClient, userId);
|
|
923
|
+
// Build updated roles (uses role ID format, e.g. 'bm-admin')
|
|
924
|
+
const currentRoles = Array.isArray(user.roles)
|
|
925
|
+
? user.roles.map((r) => (typeof r === 'string' ? r : r.id || ''))
|
|
926
|
+
: [];
|
|
927
|
+
let updatedRoles = currentRoles;
|
|
928
|
+
// Build updated roleTenantFilter (uses roleEnumName format, e.g. 'ECOM_ADMIN')
|
|
929
|
+
let roleTenantFilter = user.roleTenantFilter || '';
|
|
930
|
+
if (!scope) {
|
|
931
|
+
// Remove entire role
|
|
932
|
+
updatedRoles = currentRoles.filter((r) => r !== roleId);
|
|
933
|
+
// Remove role from filter
|
|
934
|
+
const filters = roleTenantFilter.split(';').filter(Boolean);
|
|
935
|
+
roleTenantFilter = filters.filter((filter) => !filter.startsWith(`${enumName}:`)).join(';');
|
|
936
|
+
}
|
|
937
|
+
else {
|
|
938
|
+
// Remove specific scope
|
|
939
|
+
const scopes = scope.split(',');
|
|
940
|
+
const filters = roleTenantFilter.split(';').filter(Boolean);
|
|
941
|
+
const filterMap = new Map();
|
|
942
|
+
for (const filter of filters) {
|
|
943
|
+
const [r, tenants] = filter.split(':');
|
|
944
|
+
if (tenants) {
|
|
945
|
+
filterMap.set(r, tenants.split(','));
|
|
946
|
+
}
|
|
947
|
+
}
|
|
948
|
+
const existingScopes = filterMap.get(enumName) || [];
|
|
949
|
+
const remainingScopes = existingScopes.filter((s) => !scopes.includes(s));
|
|
950
|
+
if (remainingScopes.length === 0) {
|
|
951
|
+
// No scopes left, remove role entirely
|
|
952
|
+
updatedRoles = currentRoles.filter((r) => r !== roleId);
|
|
953
|
+
filterMap.delete(enumName);
|
|
895
954
|
}
|
|
896
955
|
else {
|
|
897
|
-
|
|
898
|
-
const scopes = scope.split(',');
|
|
899
|
-
const filters = roleTenantFilter.split(';').filter(Boolean);
|
|
900
|
-
const filterMap = new Map();
|
|
901
|
-
for (const filter of filters) {
|
|
902
|
-
const [r, tenants] = filter.split(':');
|
|
903
|
-
if (tenants) {
|
|
904
|
-
filterMap.set(r, tenants.split(','));
|
|
905
|
-
}
|
|
906
|
-
}
|
|
907
|
-
const existingScopes = filterMap.get(role) || [];
|
|
908
|
-
const remainingScopes = existingScopes.filter((s) => !scopes.includes(s));
|
|
909
|
-
if (remainingScopes.length === 0) {
|
|
910
|
-
// No scopes left, remove role entirely
|
|
911
|
-
updatedRoles = currentRoles.filter((r) => r !== role);
|
|
912
|
-
filterMap.delete(role);
|
|
913
|
-
}
|
|
914
|
-
else {
|
|
915
|
-
filterMap.set(role, remainingScopes);
|
|
916
|
-
}
|
|
917
|
-
// Rebuild filter string
|
|
918
|
-
roleTenantFilter = Array.from(filterMap.entries())
|
|
919
|
-
.map(([r, tenants]) => `${r}:${tenants.join(',')}`)
|
|
920
|
-
.join(';');
|
|
956
|
+
filterMap.set(enumName, remainingScopes);
|
|
921
957
|
}
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
958
|
+
// Rebuild filter string
|
|
959
|
+
roleTenantFilter = Array.from(filterMap.entries())
|
|
960
|
+
.map(([r, tenants]) => `${r}:${tenants.join(',')}`)
|
|
961
|
+
.join(';');
|
|
962
|
+
}
|
|
963
|
+
return updateUser(usersClient, userId, {
|
|
964
|
+
roles: updatedRoles,
|
|
965
|
+
roleTenantFilter: roleTenantFilter || undefined,
|
|
926
966
|
});
|
|
927
967
|
},
|
|
928
968
|
// Roles API methods
|
|
929
969
|
getRole: (roleId) => getRole(rolesClient, roleId),
|
|
930
970
|
listRoles: (options) => listRoles(rolesClient, options),
|
|
971
|
+
getRoleMapping: () => getRoleMapping(),
|
|
972
|
+
getOrgMapping: () => getOrgMapping(),
|
|
931
973
|
// API Clients API methods
|
|
932
974
|
listApiClients: (options) => listApiClients(apiClientsClient, options),
|
|
933
975
|
getApiClient: (apiClientId, expand) => getApiClient(apiClientsClient, apiClientId, expand),
|