@boxyhq/saml-jackson 1.9.11 → 1.10.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/controller/api.d.ts +9 -0
- package/dist/controller/api.js +14 -0
- package/dist/controller/api.js.map +1 -1
- package/dist/controller/connection/oidc.js +8 -0
- package/dist/controller/connection/oidc.js.map +1 -1
- package/dist/controller/connection/saml.js +8 -0
- package/dist/controller/connection/saml.js.map +1 -1
- package/dist/controller/utils.d.ts +3 -1
- package/dist/controller/utils.js +3 -1
- package/dist/controller/utils.js.map +1 -1
- package/dist/db/planetscale/entity/JacksonIndex.js +2 -3
- package/dist/db/planetscale/entity/JacksonIndex.js.map +1 -1
- package/dist/db/planetscale/entity/JacksonStore.js +2 -3
- package/dist/db/planetscale/entity/JacksonStore.js.map +1 -1
- package/dist/db/planetscale/entity/JacksonTTL.js +2 -3
- package/dist/db/planetscale/entity/JacksonTTL.js.map +1 -1
- package/dist/db/redis.js +16 -26
- package/dist/db/redis.js.map +1 -1
- package/dist/db/sql/entity/JacksonIndex.js +2 -3
- package/dist/db/sql/entity/JacksonIndex.js.map +1 -1
- package/dist/db/sql/entity/JacksonStore.js +2 -3
- package/dist/db/sql/entity/JacksonStore.js.map +1 -1
- package/dist/db/sql/entity/JacksonTTL.js +2 -3
- package/dist/db/sql/entity/JacksonTTL.js.map +1 -1
- package/dist/db/sql/mariadb/entity/JacksonIndex.js +2 -3
- package/dist/db/sql/mariadb/entity/JacksonIndex.js.map +1 -1
- package/dist/db/sql/mariadb/entity/JacksonStore.js +2 -3
- package/dist/db/sql/mariadb/entity/JacksonStore.js.map +1 -1
- package/dist/db/sql/mariadb/entity/JacksonTTL.js +2 -3
- package/dist/db/sql/mariadb/entity/JacksonTTL.js.map +1 -1
- package/dist/db/sql/mssql/entity/JacksonIndex.js +2 -3
- package/dist/db/sql/mssql/entity/JacksonIndex.js.map +1 -1
- package/dist/db/sql/mssql/entity/JacksonStore.js +2 -3
- package/dist/db/sql/mssql/entity/JacksonStore.js.map +1 -1
- package/dist/db/sql/mssql/entity/JacksonTTL.js +2 -3
- package/dist/db/sql/mssql/entity/JacksonTTL.js.map +1 -1
- package/dist/directory-sync/index.d.ts +10 -8
- package/dist/directory-sync/index.js +22 -12
- package/dist/directory-sync/index.js.map +1 -1
- package/dist/directory-sync/non-scim/google/api.d.ts +48 -0
- package/dist/directory-sync/non-scim/google/api.js +147 -0
- package/dist/directory-sync/non-scim/google/api.js.map +1 -0
- package/dist/directory-sync/non-scim/google/index.d.ts +12 -0
- package/dist/directory-sync/non-scim/google/index.js +14 -0
- package/dist/directory-sync/non-scim/google/index.js.map +1 -0
- package/dist/directory-sync/non-scim/google/oauth.d.ts +27 -0
- package/dist/directory-sync/non-scim/google/oauth.js +109 -0
- package/dist/directory-sync/non-scim/google/oauth.js.map +1 -0
- package/dist/directory-sync/non-scim/index.d.ts +10 -0
- package/dist/directory-sync/non-scim/index.js +51 -0
- package/dist/directory-sync/non-scim/index.js.map +1 -0
- package/dist/directory-sync/non-scim/syncGroupMembers.d.ts +23 -0
- package/dist/directory-sync/non-scim/syncGroupMembers.js +112 -0
- package/dist/directory-sync/non-scim/syncGroupMembers.js.map +1 -0
- package/dist/directory-sync/non-scim/syncGroups.d.ts +24 -0
- package/dist/directory-sync/non-scim/syncGroups.js +124 -0
- package/dist/directory-sync/non-scim/syncGroups.js.map +1 -0
- package/dist/directory-sync/non-scim/syncUsers.d.ts +24 -0
- package/dist/directory-sync/non-scim/syncUsers.js +124 -0
- package/dist/directory-sync/non-scim/syncUsers.js.map +1 -0
- package/dist/directory-sync/non-scim/utils.d.ts +36 -0
- package/dist/directory-sync/non-scim/utils.js +124 -0
- package/dist/directory-sync/non-scim/utils.js.map +1 -0
- package/dist/directory-sync/{Base.d.ts → scim/Base.d.ts} +1 -5
- package/dist/directory-sync/{Base.js → scim/Base.js} +3 -17
- package/dist/directory-sync/scim/Base.js.map +1 -0
- package/dist/directory-sync/{DirectoryConfig.d.ts → scim/DirectoryConfig.d.ts} +20 -27
- package/dist/directory-sync/{DirectoryConfig.js → scim/DirectoryConfig.js} +94 -48
- package/dist/directory-sync/scim/DirectoryConfig.js.map +1 -0
- package/dist/directory-sync/{DirectoryGroups.d.ts → scim/DirectoryGroups.d.ts} +8 -6
- package/dist/directory-sync/{DirectoryGroups.js → scim/DirectoryGroups.js} +8 -12
- package/dist/directory-sync/scim/DirectoryGroups.js.map +1 -0
- package/dist/directory-sync/{DirectoryUsers.d.ts → scim/DirectoryUsers.d.ts} +7 -5
- package/dist/directory-sync/{DirectoryUsers.js → scim/DirectoryUsers.js} +4 -3
- package/dist/directory-sync/scim/DirectoryUsers.js.map +1 -0
- package/dist/directory-sync/scim/Groups.d.ts +38 -0
- package/dist/directory-sync/{Groups.js → scim/Groups.js} +38 -29
- package/dist/directory-sync/scim/Groups.js.map +1 -0
- package/dist/directory-sync/scim/Users.d.ts +32 -0
- package/dist/directory-sync/{Users.js → scim/Users.js} +27 -25
- package/dist/directory-sync/scim/Users.js.map +1 -0
- package/dist/directory-sync/{WebhookEventsLogger.d.ts → scim/WebhookEventsLogger.d.ts} +1 -1
- package/dist/directory-sync/{WebhookEventsLogger.js → scim/WebhookEventsLogger.js} +3 -1
- package/dist/directory-sync/scim/WebhookEventsLogger.js.map +1 -0
- package/dist/directory-sync/{events.d.ts → scim/events.d.ts} +5 -3
- package/dist/directory-sync/{events.js → scim/events.js} +6 -4
- package/dist/directory-sync/scim/events.js.map +1 -0
- package/dist/directory-sync/{transform.d.ts → scim/transform.d.ts} +1 -1
- package/dist/directory-sync/scim/transform.js.map +1 -0
- package/dist/directory-sync/scim/utils.d.ts +33 -0
- package/dist/directory-sync/{utils.js → scim/utils.js} +8 -3
- package/dist/directory-sync/scim/utils.js.map +1 -0
- package/dist/directory-sync/types.d.ts +65 -13
- package/dist/directory-sync/types.js +3 -2
- package/dist/directory-sync/types.js.map +1 -1
- package/dist/typings.d.ts +18 -0
- package/package.json +15 -12
- package/dist/directory-sync/Base.js.map +0 -1
- package/dist/directory-sync/DirectoryConfig.js.map +0 -1
- package/dist/directory-sync/DirectoryGroups.js.map +0 -1
- package/dist/directory-sync/DirectoryUsers.js.map +0 -1
- package/dist/directory-sync/Groups.d.ts +0 -48
- package/dist/directory-sync/Groups.js.map +0 -1
- package/dist/directory-sync/Users.d.ts +0 -49
- package/dist/directory-sync/Users.js.map +0 -1
- package/dist/directory-sync/WebhookEventsLogger.js.map +0 -1
- package/dist/directory-sync/events.js.map +0 -1
- package/dist/directory-sync/transform.js.map +0 -1
- package/dist/directory-sync/utils.d.ts +0 -33
- package/dist/directory-sync/utils.js.map +0 -1
- /package/dist/directory-sync/{transform.js → scim/transform.js} +0 -0
@@ -33,8 +33,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
33
33
|
};
|
34
34
|
Object.defineProperty(exports, "__esModule", { value: true });
|
35
35
|
exports.Groups = void 0;
|
36
|
-
const
|
37
|
-
const
|
36
|
+
const crypto_1 = require("crypto");
|
37
|
+
const dbutils = __importStar(require("../../db/utils"));
|
38
|
+
const error_1 = require("../../controller/error");
|
38
39
|
const Base_1 = require("./Base");
|
39
40
|
const indexNames = {
|
40
41
|
directoryIdDisplayname: 'directoryIdDisplayname',
|
@@ -45,16 +46,17 @@ class Groups extends Base_1.Base {
|
|
45
46
|
super({ db });
|
46
47
|
}
|
47
48
|
// Create a new group
|
48
|
-
create(
|
49
|
+
create(params) {
|
49
50
|
return __awaiter(this, void 0, void 0, function* () {
|
51
|
+
const { directoryId, name, raw, id: groupId } = params;
|
52
|
+
const id = groupId || (0, crypto_1.randomUUID)();
|
53
|
+
raw['id'] = id;
|
54
|
+
const group = {
|
55
|
+
id,
|
56
|
+
name,
|
57
|
+
raw,
|
58
|
+
};
|
50
59
|
try {
|
51
|
-
const id = this.createId();
|
52
|
-
raw['id'] = id;
|
53
|
-
const group = {
|
54
|
-
id,
|
55
|
-
name,
|
56
|
-
raw,
|
57
|
-
};
|
58
60
|
yield this.store('groups').put(id, group, {
|
59
61
|
name: indexNames.directoryIdDisplayname,
|
60
62
|
value: dbutils.keyFromParts(directoryId, name),
|
@@ -87,13 +89,13 @@ class Groups extends Base_1.Base {
|
|
87
89
|
// Update the group data
|
88
90
|
update(id, param) {
|
89
91
|
return __awaiter(this, void 0, void 0, function* () {
|
92
|
+
const { name, raw } = param;
|
93
|
+
const group = {
|
94
|
+
id,
|
95
|
+
name,
|
96
|
+
raw,
|
97
|
+
};
|
90
98
|
try {
|
91
|
-
const { name, raw } = param;
|
92
|
-
const group = {
|
93
|
-
id,
|
94
|
-
name,
|
95
|
-
raw,
|
96
|
-
};
|
97
99
|
yield this.store('groups').put(id, group);
|
98
100
|
return { data: group, error: null };
|
99
101
|
}
|
@@ -119,19 +121,6 @@ class Groups extends Base_1.Base {
|
|
119
121
|
}
|
120
122
|
});
|
121
123
|
}
|
122
|
-
// Get all users in a group
|
123
|
-
getAllUsers(groupId) {
|
124
|
-
return __awaiter(this, void 0, void 0, function* () {
|
125
|
-
const { data: users } = yield this.store('members').getByIndex({
|
126
|
-
name: 'groupId',
|
127
|
-
value: groupId,
|
128
|
-
});
|
129
|
-
if (users.length === 0) {
|
130
|
-
return [];
|
131
|
-
}
|
132
|
-
return users;
|
133
|
-
});
|
134
|
-
}
|
135
124
|
// Add a user to a group
|
136
125
|
addUserToGroup(groupId, userId) {
|
137
126
|
return __awaiter(this, void 0, void 0, function* () {
|
@@ -199,6 +188,26 @@ class Groups extends Base_1.Base {
|
|
199
188
|
}
|
200
189
|
});
|
201
190
|
}
|
191
|
+
/**
|
192
|
+
* Get members of a group paginated
|
193
|
+
* @param groupId
|
194
|
+
* @returns
|
195
|
+
*/
|
196
|
+
getGroupMembers(parmas) {
|
197
|
+
return __awaiter(this, void 0, void 0, function* () {
|
198
|
+
const { groupId, pageOffset, pageLimit } = parmas;
|
199
|
+
try {
|
200
|
+
const { data: members } = yield this.store('members').getByIndex({
|
201
|
+
name: 'groupId',
|
202
|
+
value: groupId,
|
203
|
+
}, pageOffset, pageLimit);
|
204
|
+
return { data: members, error: null };
|
205
|
+
}
|
206
|
+
catch (err) {
|
207
|
+
return (0, error_1.apiError)(err);
|
208
|
+
}
|
209
|
+
});
|
210
|
+
}
|
202
211
|
// Delete all groups from a directory
|
203
212
|
deleteAll(directoryId) {
|
204
213
|
return __awaiter(this, void 0, void 0, function* () {
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"Groups.js","sourceRoot":"","sources":["../../../src/directory-sync/scim/Groups.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,32 @@
|
|
1
|
+
import type { User, DatabaseStore, PaginationParams, Response } from '../../typings';
|
2
|
+
import { Base } from './Base';
|
3
|
+
interface CreateUserParams {
|
4
|
+
directoryId: string;
|
5
|
+
first_name: string;
|
6
|
+
last_name: string;
|
7
|
+
email: string;
|
8
|
+
active: boolean;
|
9
|
+
raw: any;
|
10
|
+
id?: string;
|
11
|
+
}
|
12
|
+
export declare class Users extends Base {
|
13
|
+
constructor({ db }: {
|
14
|
+
db: DatabaseStore;
|
15
|
+
});
|
16
|
+
create(params: CreateUserParams): Promise<Response<User>>;
|
17
|
+
get(id: string): Promise<Response<User>>;
|
18
|
+
update(id: string, param: {
|
19
|
+
first_name: string;
|
20
|
+
last_name: string;
|
21
|
+
email: string;
|
22
|
+
active: boolean;
|
23
|
+
raw: object;
|
24
|
+
}): Promise<Response<User>>;
|
25
|
+
delete(id: string): Promise<Response<null>>;
|
26
|
+
search(userName: string, directoryId: string): Promise<Response<User[]>>;
|
27
|
+
getAll({ pageOffset, pageLimit, directoryId, }?: PaginationParams & {
|
28
|
+
directoryId?: string;
|
29
|
+
}): Promise<Response<User[]>>;
|
30
|
+
deleteAll(directoryId: string): Promise<void>;
|
31
|
+
}
|
32
|
+
export {};
|
@@ -10,9 +10,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
10
10
|
};
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
12
12
|
exports.Users = void 0;
|
13
|
-
const
|
13
|
+
const crypto_1 = require("crypto");
|
14
|
+
const error_1 = require("../../controller/error");
|
14
15
|
const Base_1 = require("./Base");
|
15
|
-
const utils_1 = require("
|
16
|
+
const utils_1 = require("../../db/utils");
|
16
17
|
const indexNames = {
|
17
18
|
directoryIdUsername: 'directoryIdUsername',
|
18
19
|
directoryId: 'directoryId',
|
@@ -22,19 +23,20 @@ class Users extends Base_1.Base {
|
|
22
23
|
super({ db });
|
23
24
|
}
|
24
25
|
// Create a new user
|
25
|
-
create(
|
26
|
+
create(params) {
|
26
27
|
return __awaiter(this, void 0, void 0, function* () {
|
28
|
+
const { directoryId, first_name, last_name, email, active, raw, id: userId } = params;
|
29
|
+
const id = userId || (0, crypto_1.randomUUID)();
|
30
|
+
raw['id'] = id;
|
31
|
+
const user = {
|
32
|
+
id,
|
33
|
+
first_name,
|
34
|
+
last_name,
|
35
|
+
email,
|
36
|
+
active,
|
37
|
+
raw,
|
38
|
+
};
|
27
39
|
try {
|
28
|
-
const id = this.createId();
|
29
|
-
raw['id'] = id;
|
30
|
-
const user = {
|
31
|
-
id,
|
32
|
-
first_name,
|
33
|
-
last_name,
|
34
|
-
email,
|
35
|
-
active,
|
36
|
-
raw,
|
37
|
-
};
|
38
40
|
yield this.store('users').put(id, user, {
|
39
41
|
name: indexNames.directoryIdUsername,
|
40
42
|
value: (0, utils_1.keyFromParts)(directoryId, email),
|
@@ -67,17 +69,17 @@ class Users extends Base_1.Base {
|
|
67
69
|
// Update the user data
|
68
70
|
update(id, param) {
|
69
71
|
return __awaiter(this, void 0, void 0, function* () {
|
72
|
+
const { first_name, last_name, email, active, raw } = param;
|
73
|
+
raw['id'] = id;
|
74
|
+
const user = {
|
75
|
+
id,
|
76
|
+
first_name,
|
77
|
+
last_name,
|
78
|
+
email,
|
79
|
+
active,
|
80
|
+
raw,
|
81
|
+
};
|
70
82
|
try {
|
71
|
-
const { first_name, last_name, email, active, raw } = param;
|
72
|
-
raw['id'] = id;
|
73
|
-
const user = {
|
74
|
-
id,
|
75
|
-
first_name,
|
76
|
-
last_name,
|
77
|
-
email,
|
78
|
-
active,
|
79
|
-
raw,
|
80
|
-
};
|
81
83
|
yield this.store('users').put(id, user);
|
82
84
|
return { data: user, error: null };
|
83
85
|
}
|
@@ -106,10 +108,10 @@ class Users extends Base_1.Base {
|
|
106
108
|
search(userName, directoryId) {
|
107
109
|
return __awaiter(this, void 0, void 0, function* () {
|
108
110
|
try {
|
109
|
-
const users =
|
111
|
+
const { data: users } = yield this.store('users').getByIndex({
|
110
112
|
name: indexNames.directoryIdUsername,
|
111
113
|
value: (0, utils_1.keyFromParts)(directoryId, userName),
|
112
|
-
})
|
114
|
+
});
|
113
115
|
return { data: users, error: null };
|
114
116
|
}
|
115
117
|
catch (err) {
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"Users.js","sourceRoot":"","sources":["../../../src/directory-sync/scim/Users.ts"],"names":[],"mappings":"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"}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import type { Directory, DatabaseStore, WebhookEventLog, DirectorySyncEvent, PaginationParams } from '
|
1
|
+
import type { Directory, DatabaseStore, WebhookEventLog, DirectorySyncEvent, PaginationParams } from '../../typings';
|
2
2
|
import { Base } from './Base';
|
3
3
|
type GetAllParams = PaginationParams & {
|
4
4
|
directoryId?: string;
|
@@ -10,6 +10,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
10
10
|
};
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
12
12
|
exports.WebhookEventsLogger = void 0;
|
13
|
+
const crypto_1 = require("crypto");
|
13
14
|
const Base_1 = require("./Base");
|
14
15
|
class WebhookEventsLogger extends Base_1.Base {
|
15
16
|
constructor({ db }) {
|
@@ -17,7 +18,7 @@ class WebhookEventsLogger extends Base_1.Base {
|
|
17
18
|
}
|
18
19
|
log(directory, event, status) {
|
19
20
|
return __awaiter(this, void 0, void 0, function* () {
|
20
|
-
const id =
|
21
|
+
const id = (0, crypto_1.randomUUID)();
|
21
22
|
const log = Object.assign(Object.assign({}, event), { id, webhook_endpoint: directory.webhook.endpoint, created_at: new Date(), status_code: status, delivered: status === 200 });
|
22
23
|
yield this.store('logs').put(id, log, {
|
23
24
|
name: 'directoryId',
|
@@ -31,6 +32,7 @@ class WebhookEventsLogger extends Base_1.Base {
|
|
31
32
|
return yield this.store('logs').get(id);
|
32
33
|
});
|
33
34
|
}
|
35
|
+
// Get the event logs for a directory paginated
|
34
36
|
getAll(params = {}) {
|
35
37
|
return __awaiter(this, void 0, void 0, function* () {
|
36
38
|
const { pageOffset, pageLimit, directoryId } = params;
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"WebhookEventsLogger.js","sourceRoot":"","sources":["../../../src/directory-sync/scim/WebhookEventsLogger.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mCAAoC;AASpC,iCAA8B;AAM9B,MAAa,mBAAoB,SAAQ,WAAI;IAC3C,YAAY,EAAE,EAAE,EAAyB;QACvC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAChB,CAAC;IAEY,GAAG,CAAC,SAAoB,EAAE,KAAyB,EAAE,MAAc;;YAC9E,MAAM,EAAE,GAAG,IAAA,mBAAU,GAAE,CAAC;YAExB,MAAM,GAAG,mCACJ,KAAK,KACR,EAAE,EACF,gBAAgB,EAAE,SAAS,CAAC,OAAO,CAAC,QAAQ,EAC5C,UAAU,EAAE,IAAI,IAAI,EAAE,EACtB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,KAAK,GAAG,GAC1B,CAAC;YAEF,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE;gBACpC,IAAI,EAAE,aAAa;gBACnB,KAAK,EAAE,SAAS,CAAC,EAAE;aACpB,CAAC,CAAC;YAEH,OAAO,GAAG,CAAC;QACb,CAAC;KAAA;IAEY,GAAG,CAAC,EAAU;;YACzB,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1C,CAAC;KAAA;IAED,+CAA+C;IAClC,MAAM,CAAC,SAAuB,EAAE;;YAC3C,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;YAEtD,IAAI,SAAS,GAAsB,EAAE,CAAC;YAEtC,IAAI,WAAW,EAAE;gBACf,MAAM,KAAK,GAAG;oBACZ,IAAI,EAAE,aAAa;oBACnB,KAAK,EAAE,WAAW;iBACnB,CAAC;gBAEF,SAAS,GAAG,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;aACtF;iBAAM;gBACL,SAAS,GAAG,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;aAC3E;YAED,OAAO,SAAS,CAAC;QACnB,CAAC;KAAA;IAEY,MAAM,CAAC,EAAU;;YAC5B,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACtC,CAAC;KAAA;IAED,wCAAwC;IAClC,SAAS,CAAC,WAAmB;;YACjC,MAAM,KAAK,GAAG;gBACZ,IAAI,EAAE,aAAa;gBACnB,KAAK,EAAE,WAAW;aACnB,CAAC;YAEF,iDAAiD;YACjD,OAAO,IAAI,EAAE;gBACX,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;gBAEjG,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;oBAClC,MAAM;iBACP;gBAED,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;aACtE;QACH,CAAC;KAAA;CACF;AAvED,kDAuEC"}
|
@@ -1,7 +1,9 @@
|
|
1
|
-
import type { DirectorySyncEventType, Directory, User, Group, EventCallback, DirectorySyncEvent, IWebhookEventsLogger, IDirectoryConfig } from '
|
2
|
-
|
1
|
+
import type { DirectorySyncEventType, Directory, User, Group, EventCallback, DirectorySyncEvent, IWebhookEventsLogger, IDirectoryConfig } from '../../typings';
|
2
|
+
type Payload = {
|
3
3
|
directory: Directory;
|
4
4
|
group?: Group | null;
|
5
5
|
user?: User | null;
|
6
|
-
}
|
6
|
+
};
|
7
|
+
export declare const sendEvent: (event: DirectorySyncEventType, payload: Payload, callback?: EventCallback) => Promise<void>;
|
7
8
|
export declare const handleEventCallback: (directories: IDirectoryConfig, webhookEventsLogger: IWebhookEventsLogger) => Promise<(event: DirectorySyncEvent) => Promise<void>>;
|
9
|
+
export {};
|
@@ -10,15 +10,17 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
10
10
|
};
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
12
12
|
exports.handleEventCallback = exports.sendEvent = void 0;
|
13
|
-
const webhook_1 = require("
|
13
|
+
const webhook_1 = require("../../event/webhook");
|
14
14
|
const transform_1 = require("./transform");
|
15
|
-
const utils_1 = require("
|
15
|
+
const utils_1 = require("../../controller/utils");
|
16
16
|
const sendEvent = (event, payload, callback) => __awaiter(void 0, void 0, void 0, function* () {
|
17
17
|
if (!(0, utils_1.isConnectionActive)(payload.directory)) {
|
18
18
|
return;
|
19
19
|
}
|
20
|
-
|
21
|
-
|
20
|
+
if (!callback) {
|
21
|
+
return;
|
22
|
+
}
|
23
|
+
yield callback((0, transform_1.transformEventPayload)(event, payload));
|
22
24
|
});
|
23
25
|
exports.sendEvent = sendEvent;
|
24
26
|
const handleEventCallback = (directories, webhookEventsLogger) => __awaiter(void 0, void 0, void 0, function* () {
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/directory-sync/scim/events.ts"],"names":[],"mappings":";;;;;;;;;;;;AAUA,iDAA2D;AAC3D,2CAAoD;AACpD,kDAA4D;AAIrD,MAAM,SAAS,GAAG,CACvB,KAA6B,EAC7B,OAAgB,EAChB,QAAwB,EACxB,EAAE;IACF,IAAI,CAAC,IAAA,0BAAkB,EAAC,OAAO,CAAC,SAAS,CAAC,EAAE;QAC1C,OAAO;KACR;IAED,IAAI,CAAC,QAAQ,EAAE;QACb,OAAO;KACR;IAED,MAAM,QAAQ,CAAC,IAAA,iCAAqB,EAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;AACxD,CAAC,CAAA,CAAC;AAdW,QAAA,SAAS,aAcpB;AAEK,MAAM,mBAAmB,GAAG,CACjC,WAA6B,EAC7B,mBAAyC,EACzC,EAAE;IACF,OAAO,CAAO,KAAyB,EAAE,EAAE;QACzC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC;QAE7D,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAE/D,IAAI,CAAC,SAAS,EAAE;YACd,OAAO;SACR;QAED,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE;YAC5D,OAAO;SACR;QAED,IAAI,MAAM,GAAG,GAAG,CAAC;QAEjB,IAAI;YACF,MAAM,IAAA,8BAAoB,EAAC,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;SACtD;QAAC,OAAO,GAAQ,EAAE;YACjB,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;SACnD;QAED,IAAI,SAAS,CAAC,kBAAkB,EAAE;YAChC,MAAM,mBAAmB,CAAC,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;SAC9F;IACH,CAAC,CAAA,CAAC;AACJ,CAAC,CAAA,CAAC;AA7BW,QAAA,mBAAmB,uBA6B9B"}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { Directory, DirectorySyncEvent, DirectorySyncEventType, Group, User } from '
|
1
|
+
import { Directory, DirectorySyncEvent, DirectorySyncEventType, Group, User } from '../../typings';
|
2
2
|
export declare const transformUser: (user: User) => User;
|
3
3
|
export declare const transformGroup: (group: Group) => Group;
|
4
4
|
export declare const transformUserGroup: (user: User, group: Group) => User & {
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"transform.js","sourceRoot":"","sources":["../../../src/directory-sync/scim/transform.ts"],"names":[],"mappings":";;;AAEO,MAAM,aAAa,GAAG,CAAC,IAAU,EAAQ,EAAE;IAChD,OAAO;QACL,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,GAAG,EAAE,IAAI,CAAC,GAAG;KACd,CAAC;AACJ,CAAC,CAAC;AATW,QAAA,aAAa,iBASxB;AAEK,MAAM,cAAc,GAAG,CAAC,KAAY,EAAS,EAAE;IACpD,OAAO;QACL,EAAE,EAAE,KAAK,CAAC,EAAE;QACZ,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,GAAG,EAAE,KAAK,CAAC,GAAG;KACf,CAAC;AACJ,CAAC,CAAC;AANW,QAAA,cAAc,kBAMzB;AAEK,MAAM,kBAAkB,GAAG,CAAC,IAAU,EAAE,KAAY,EAA2B,EAAE;IACtF,uCACK,IAAA,qBAAa,EAAC,IAAI,CAAC,KACtB,KAAK,EAAE,IAAA,sBAAc,EAAC,KAAK,CAAC,IAC5B;AACJ,CAAC,CAAC;AALW,QAAA,kBAAkB,sBAK7B;AAEK,MAAM,qBAAqB,GAAG,CACnC,KAA6B,EAC7B,OAA2E,EAC3E,EAAE;IACF,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IAC3C,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,YAAY,EAAE,GAAG,SAAS,CAAC;IAExD,MAAM,YAAY,GAAG;QACnB,KAAK;QACL,MAAM;QACN,OAAO;QACP,YAAY;KACb,CAAC;IAEF,cAAc;IACd,IAAI,CAAC,cAAc,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE;QAC5E,YAAY,CAAC,MAAM,CAAC,GAAG,IAAA,qBAAa,EAAC,IAAI,CAAC,CAAC;KAC5C;IAED,eAAe;IACf,IAAI,CAAC,eAAe,EAAE,eAAe,EAAE,eAAe,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,EAAE;QAChF,YAAY,CAAC,MAAM,CAAC,GAAG,IAAA,sBAAc,EAAC,KAAK,CAAC,CAAC;KAC9C;IAED,0BAA0B;IAC1B,IAAI,CAAC,kBAAkB,EAAE,oBAAoB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,KAAK,EAAE;QAC/E,YAAY,CAAC,MAAM,CAAC,GAAG,IAAA,0BAAkB,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC;KACxD;IAED,OAAO,YAAkC,CAAC;AAC5C,CAAC,CAAC;AA9BW,QAAA,qBAAqB,yBA8BhC"}
|
@@ -0,0 +1,33 @@
|
|
1
|
+
import type { DirectoryType, User, UserPatchOperation, GroupPatchOperation } from '../../typings';
|
2
|
+
export declare const parseGroupOperation: (operation: GroupPatchOperation) => {
|
3
|
+
action: string;
|
4
|
+
members: {
|
5
|
+
value: string;
|
6
|
+
display?: string | undefined;
|
7
|
+
}[];
|
8
|
+
displayName?: undefined;
|
9
|
+
} | {
|
10
|
+
action: string;
|
11
|
+
displayName: unknown;
|
12
|
+
members?: undefined;
|
13
|
+
} | {
|
14
|
+
action: string;
|
15
|
+
members?: undefined;
|
16
|
+
displayName?: undefined;
|
17
|
+
};
|
18
|
+
export declare const getDirectorySyncProviders: () => {
|
19
|
+
[K: string]: string;
|
20
|
+
};
|
21
|
+
export declare const parseUserPatchRequest: (operation: UserPatchOperation) => {
|
22
|
+
attributes: Partial<User>;
|
23
|
+
rawAttributes: {};
|
24
|
+
};
|
25
|
+
export declare const extractStandardUserAttributes: (body: any) => {
|
26
|
+
first_name: string;
|
27
|
+
last_name: string;
|
28
|
+
email: string;
|
29
|
+
active: true;
|
30
|
+
id: string | undefined;
|
31
|
+
};
|
32
|
+
export declare const updateRawUserAttributes: (raw: any, attributes: any) => any;
|
33
|
+
export declare const isSCIMEnabledProvider: (type: DirectoryType) => boolean;
|
@@ -3,9 +3,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
4
|
};
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
-
exports.updateRawUserAttributes = exports.extractStandardUserAttributes = exports.parseUserPatchRequest = exports.getDirectorySyncProviders = exports.parseGroupOperation = void 0;
|
7
|
-
const typings_1 = require("../typings");
|
6
|
+
exports.isSCIMEnabledProvider = exports.updateRawUserAttributes = exports.extractStandardUserAttributes = exports.parseUserPatchRequest = exports.getDirectorySyncProviders = exports.parseGroupOperation = void 0;
|
8
7
|
const lodash_1 = __importDefault(require("lodash"));
|
8
|
+
const typings_1 = require("../../typings");
|
9
9
|
const parseGroupOperation = (operation) => {
|
10
10
|
const { op, path, value } = operation;
|
11
11
|
if (path === 'members') {
|
@@ -88,12 +88,13 @@ const parseUserPatchRequest = (operation) => {
|
|
88
88
|
exports.parseUserPatchRequest = parseUserPatchRequest;
|
89
89
|
// Extract standard attributes from the user body
|
90
90
|
const extractStandardUserAttributes = (body) => {
|
91
|
-
const { name, emails, userName, active } = body;
|
91
|
+
const { name, emails, userName, active, userId } = body;
|
92
92
|
return {
|
93
93
|
first_name: name && 'givenName' in name ? name.givenName : '',
|
94
94
|
last_name: name && 'familyName' in name ? name.familyName : '',
|
95
95
|
email: emails && emails.length > 0 ? emails[0].value : userName,
|
96
96
|
active: active || true,
|
97
|
+
id: userId, // For non-SCIM providers, the id will exist in the body
|
97
98
|
};
|
98
99
|
};
|
99
100
|
exports.extractStandardUserAttributes = extractStandardUserAttributes;
|
@@ -109,4 +110,8 @@ const updateRawUserAttributes = (raw, attributes) => {
|
|
109
110
|
return raw;
|
110
111
|
};
|
111
112
|
exports.updateRawUserAttributes = updateRawUserAttributes;
|
113
|
+
const isSCIMEnabledProvider = (type) => {
|
114
|
+
return type !== 'google';
|
115
|
+
};
|
116
|
+
exports.isSCIMEnabledProvider = isSCIMEnabledProvider;
|
112
117
|
//# sourceMappingURL=utils.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/directory-sync/scim/utils.ts"],"names":[],"mappings":"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"}
|
@@ -1,10 +1,12 @@
|
|
1
1
|
import directorySync from '.';
|
2
|
-
import { DirectoryConfig } from './DirectoryConfig';
|
3
|
-
import { DirectoryGroups } from './DirectoryGroups';
|
4
|
-
import { DirectoryUsers } from './DirectoryUsers';
|
5
|
-
import { Users } from './Users';
|
6
|
-
import { Groups } from './Groups';
|
7
|
-
import { WebhookEventsLogger } from './WebhookEventsLogger';
|
2
|
+
import { DirectoryConfig } from './scim/DirectoryConfig';
|
3
|
+
import { DirectoryGroups } from './scim/DirectoryGroups';
|
4
|
+
import { DirectoryUsers } from './scim/DirectoryUsers';
|
5
|
+
import { Users } from './scim/Users';
|
6
|
+
import { Groups } from './scim/Groups';
|
7
|
+
import { WebhookEventsLogger } from './scim/WebhookEventsLogger';
|
8
|
+
import { ApiError } from '../typings';
|
9
|
+
import { RequestHandler } from './request';
|
8
10
|
export type IDirectorySyncController = Awaited<ReturnType<typeof directorySync>>;
|
9
11
|
export type IDirectoryConfig = InstanceType<typeof DirectoryConfig>;
|
10
12
|
export type IDirectoryGroups = InstanceType<typeof DirectoryGroups>;
|
@@ -12,13 +14,15 @@ export type IDirectoryUsers = InstanceType<typeof DirectoryUsers>;
|
|
12
14
|
export type IUsers = InstanceType<typeof Users>;
|
13
15
|
export type IGroups = InstanceType<typeof Groups>;
|
14
16
|
export type IWebhookEventsLogger = InstanceType<typeof WebhookEventsLogger>;
|
17
|
+
export type IRequestHandler = InstanceType<typeof RequestHandler>;
|
15
18
|
export type DirectorySyncEventType = 'user.created' | 'user.updated' | 'user.deleted' | 'group.created' | 'group.updated' | 'group.deleted' | 'group.user_added' | 'group.user_removed';
|
16
19
|
export declare enum DirectorySyncProviders {
|
17
20
|
'azure-scim-v2' = "Azure SCIM v2.0",
|
18
21
|
'onelogin-scim-v2' = "OneLogin SCIM v2.0",
|
19
22
|
'okta-scim-v2' = "Okta SCIM v2.0",
|
20
23
|
'jumpcloud-scim-v2' = "JumpCloud v2.0",
|
21
|
-
'generic-scim-v2' = "SCIM
|
24
|
+
'generic-scim-v2' = "Generic SCIM v2.0",
|
25
|
+
'google' = "Google"
|
22
26
|
}
|
23
27
|
export type DirectoryType = keyof typeof DirectorySyncProviders;
|
24
28
|
export type Directory = {
|
@@ -38,6 +42,9 @@ export type Directory = {
|
|
38
42
|
secret: string;
|
39
43
|
};
|
40
44
|
deactivated?: boolean;
|
45
|
+
google_domain?: string;
|
46
|
+
google_access_token?: string;
|
47
|
+
google_refresh_token?: string;
|
41
48
|
};
|
42
49
|
export type DirectorySyncGroupMember = {
|
43
50
|
value: string;
|
@@ -47,9 +54,6 @@ export type DirectorySyncResponse = {
|
|
47
54
|
status: number;
|
48
55
|
data?: any;
|
49
56
|
};
|
50
|
-
export interface DirectorySyncRequestHandler {
|
51
|
-
handle(request: DirectorySyncRequest, callback?: EventCallback): Promise<DirectorySyncResponse>;
|
52
|
-
}
|
53
57
|
export interface Events {
|
54
58
|
handle(event: DirectorySyncEvent): Promise<void>;
|
55
59
|
}
|
@@ -74,9 +78,6 @@ export interface DirectorySyncEvent {
|
|
74
78
|
tenant: string;
|
75
79
|
product: string;
|
76
80
|
}
|
77
|
-
export interface EventCallback {
|
78
|
-
(event: DirectorySyncEvent): Promise<void>;
|
79
|
-
}
|
80
81
|
export interface WebhookEventLog extends DirectorySyncEvent {
|
81
82
|
id: string;
|
82
83
|
webhook_endpoint: string;
|
@@ -97,6 +98,10 @@ export type Group = {
|
|
97
98
|
name: string;
|
98
99
|
raw?: any;
|
99
100
|
};
|
101
|
+
export type GroupMember = {
|
102
|
+
id: string;
|
103
|
+
raw?: any;
|
104
|
+
};
|
100
105
|
export type UserWithGroup = User & {
|
101
106
|
group: Group;
|
102
107
|
};
|
@@ -104,6 +109,7 @@ export type PaginationParams = {
|
|
104
109
|
pageOffset?: number;
|
105
110
|
pageLimit?: number;
|
106
111
|
pageToken?: string;
|
112
|
+
hasNextPage?: boolean;
|
107
113
|
};
|
108
114
|
export type UserPatchOperation = {
|
109
115
|
op: 'replace' | 'add';
|
@@ -133,3 +139,49 @@ export type GroupMembership = {
|
|
133
139
|
group_id: string;
|
134
140
|
user_id: string;
|
135
141
|
};
|
142
|
+
export type Response<T> = {
|
143
|
+
data: T;
|
144
|
+
error: null;
|
145
|
+
} | {
|
146
|
+
data: null;
|
147
|
+
error: ApiError;
|
148
|
+
};
|
149
|
+
export type EventCallback = (event: DirectorySyncEvent) => Promise<void>;
|
150
|
+
export interface IDirectoryProvider {
|
151
|
+
/**
|
152
|
+
* Fields to exclude from the user payload while comparing the user to find if it is updated
|
153
|
+
*/
|
154
|
+
userFieldsToExcludeWhenCompare?: string[];
|
155
|
+
/**
|
156
|
+
* Fields to exclude from the group payload while comparing the group to find if it is updated
|
157
|
+
*/
|
158
|
+
groupFieldsToExcludeWhenCompare?: string[];
|
159
|
+
/**
|
160
|
+
* Get all directories for the provider
|
161
|
+
*/
|
162
|
+
getDirectories(): Promise<Directory[]>;
|
163
|
+
/**
|
164
|
+
* Get all users for a directory
|
165
|
+
* @param directory
|
166
|
+
* @param options
|
167
|
+
*/
|
168
|
+
getUsers(directory: Directory, options: PaginationParams | null): Promise<{
|
169
|
+
data: User[];
|
170
|
+
metadata: PaginationParams | null;
|
171
|
+
}>;
|
172
|
+
/**
|
173
|
+
* Get all groups for a directory
|
174
|
+
* @param directory
|
175
|
+
* @param options
|
176
|
+
*/
|
177
|
+
getGroups(directory: Directory, options: PaginationParams | null): Promise<{
|
178
|
+
data: Group[];
|
179
|
+
metadata: PaginationParams | null;
|
180
|
+
}>;
|
181
|
+
/**
|
182
|
+
* Get all members of a group
|
183
|
+
* @param directory
|
184
|
+
* @param group
|
185
|
+
*/
|
186
|
+
getGroupMembers(directory: Directory, group: Group): Promise<GroupMember[]>;
|
187
|
+
}
|
@@ -7,6 +7,7 @@ var DirectorySyncProviders;
|
|
7
7
|
DirectorySyncProviders["onelogin-scim-v2"] = "OneLogin SCIM v2.0";
|
8
8
|
DirectorySyncProviders["okta-scim-v2"] = "Okta SCIM v2.0";
|
9
9
|
DirectorySyncProviders["jumpcloud-scim-v2"] = "JumpCloud v2.0";
|
10
|
-
DirectorySyncProviders["generic-scim-v2"] = "SCIM
|
11
|
-
|
10
|
+
DirectorySyncProviders["generic-scim-v2"] = "Generic SCIM v2.0";
|
11
|
+
DirectorySyncProviders["google"] = "Google";
|
12
|
+
})(DirectorySyncProviders || (exports.DirectorySyncProviders = DirectorySyncProviders = {}));
|
12
13
|
//# sourceMappingURL=types.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/directory-sync/types.ts"],"names":[],"mappings":";;;
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/directory-sync/types.ts"],"names":[],"mappings":";;;AA6BA,IAAY,sBAOX;AAPD,WAAY,sBAAsB;IAChC,2DAAmC,CAAA;IACnC,iEAAyC,CAAA;IACzC,yDAAiC,CAAA;IACjC,8DAAsC,CAAA;IACtC,+DAAuC,CAAA;IACvC,2CAAmB,CAAA;AACrB,CAAC,EAPW,sBAAsB,sCAAtB,sBAAsB,QAOjC"}
|
package/dist/typings.d.ts
CHANGED
@@ -142,6 +142,15 @@ export interface IConnectionAPIController {
|
|
142
142
|
* @deprecated Use `deleteConnections` instead.
|
143
143
|
*/
|
144
144
|
deleteConfig(body: DelConfigQuery): Promise<void>;
|
145
|
+
getConnectionsByProduct(body: {
|
146
|
+
product: string;
|
147
|
+
pageOffset?: number;
|
148
|
+
pageLimit?: number;
|
149
|
+
pageToken?: string;
|
150
|
+
}): Promise<{
|
151
|
+
data: (SAMLSSORecord | OIDCSSORecord)[];
|
152
|
+
pageToken?: string;
|
153
|
+
}>;
|
145
154
|
}
|
146
155
|
export interface IOAuthController {
|
147
156
|
authorize(body: OAuthReq): Promise<{
|
@@ -359,6 +368,15 @@ export interface JacksonOption {
|
|
359
368
|
adminToken?: string;
|
360
369
|
};
|
361
370
|
webhook?: Webhook;
|
371
|
+
dsync?: {
|
372
|
+
providers: {
|
373
|
+
google: {
|
374
|
+
clientId: string;
|
375
|
+
clientSecret: string;
|
376
|
+
callbackUrl: string;
|
377
|
+
};
|
378
|
+
};
|
379
|
+
};
|
362
380
|
}
|
363
381
|
export interface SLORequestParams {
|
364
382
|
nameId: string;
|