@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
@@ -1,8 +1,7 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.Base = void 0;
|
4
|
-
const utils_1 = require("
|
5
|
-
const crypto_1 = require("crypto");
|
4
|
+
const utils_1 = require("../../controller/utils");
|
6
5
|
class Base {
|
7
6
|
constructor({ db }) {
|
8
7
|
this.tenant = null;
|
@@ -17,25 +16,12 @@ class Base {
|
|
17
16
|
}
|
18
17
|
return this.db.store(`${utils_1.storeNamespacePrefix.dsync[type]}:${this.tenant}:${this.product}`);
|
19
18
|
}
|
20
|
-
|
19
|
+
// Set the tenant and product
|
20
|
+
setTenantAndProduct(tenant, product) {
|
21
21
|
this.tenant = tenant;
|
22
|
-
return this;
|
23
|
-
}
|
24
|
-
setProduct(product) {
|
25
22
|
this.product = product;
|
26
23
|
return this;
|
27
24
|
}
|
28
|
-
// Set the tenant and product
|
29
|
-
setTenantAndProduct(tenant, product) {
|
30
|
-
return this.setTenant(tenant).setProduct(product);
|
31
|
-
}
|
32
|
-
// Set the tenant and product
|
33
|
-
with(tenant, product) {
|
34
|
-
return this.setTenant(tenant).setProduct(product);
|
35
|
-
}
|
36
|
-
createId() {
|
37
|
-
return (0, crypto_1.randomUUID)();
|
38
|
-
}
|
39
25
|
}
|
40
26
|
exports.Base = Base;
|
41
27
|
//# sourceMappingURL=Base.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"Base.js","sourceRoot":"","sources":["../../../src/directory-sync/scim/Base.ts"],"names":[],"mappings":";;;AACA,kDAA8D;AAE9D,MAAa,IAAI;IAMf,YAAY,EAAE,EAAE,EAAyB;QAJ/B,WAAM,GAAkB,IAAI,CAAC;QAC7B,YAAO,GAAkB,IAAI,CAAC;QAC9B,wBAAmB,GAAG,GAAG,CAAC;QAGlC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,CAAC;IAED,4BAA4B;IAC5B,KAAK,CAAC,IAA6C;QACjD,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjC,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;SAC/D;QAED,OAAO,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,4BAAoB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAC7F,CAAC;IAED,6BAA6B;IAC7B,mBAAmB,CAAC,MAAc,EAAE,OAAe;QACjD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AA1BD,oBA0BC"}
|
@@ -1,12 +1,16 @@
|
|
1
|
-
import type { Directory, JacksonOption, DatabaseStore, DirectoryType,
|
2
|
-
|
1
|
+
import type { Directory, JacksonOption, DatabaseStore, DirectoryType, PaginationParams, IUsers, IGroups, IWebhookEventsLogger, IEventController, Response } from '../../typings';
|
2
|
+
interface DirectoryConfigParams {
|
3
3
|
db: DatabaseStore;
|
4
4
|
opts: JacksonOption;
|
5
5
|
users: IUsers;
|
6
6
|
groups: IGroups;
|
7
7
|
logger: IWebhookEventsLogger;
|
8
8
|
eventController: IEventController;
|
9
|
-
}
|
9
|
+
}
|
10
|
+
interface FilterByParams extends PaginationParams {
|
11
|
+
product?: string;
|
12
|
+
provider?: DirectoryType;
|
13
|
+
}
|
10
14
|
export declare class DirectoryConfig {
|
11
15
|
private _store;
|
12
16
|
private opts;
|
@@ -15,7 +19,7 @@ export declare class DirectoryConfig {
|
|
15
19
|
private groups;
|
16
20
|
private logger;
|
17
21
|
private eventController;
|
18
|
-
constructor({ db, opts, users, groups, logger, eventController }:
|
22
|
+
constructor({ db, opts, users, groups, logger, eventController }: DirectoryConfigParams);
|
19
23
|
private store;
|
20
24
|
create(params: {
|
21
25
|
name?: string;
|
@@ -24,31 +28,20 @@ export declare class DirectoryConfig {
|
|
24
28
|
webhook_url?: string;
|
25
29
|
webhook_secret?: string;
|
26
30
|
type?: DirectoryType;
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
}
|
31
|
-
get(id: string): Promise<
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
update(id: string, param: Omit<Partial<Directory>, 'id' | 'tenant' | 'prodct' | 'scim'>): Promise<{
|
36
|
-
data: Directory | null;
|
37
|
-
error: ApiError | null;
|
38
|
-
}>;
|
39
|
-
getByTenantAndProduct(tenant: string, product: string): Promise<{
|
40
|
-
data: Directory[] | null;
|
41
|
-
error: ApiError | null;
|
42
|
-
}>;
|
43
|
-
getAll({ pageOffset, pageLimit, pageToken }?: PaginationParams): Promise<{
|
44
|
-
data: Directory[] | null;
|
31
|
+
google_domain?: string;
|
32
|
+
google_access_token?: string;
|
33
|
+
google_refresh_token?: string;
|
34
|
+
}): Promise<Response<Directory>>;
|
35
|
+
get(id: string): Promise<Response<Directory>>;
|
36
|
+
update(id: string, param: Omit<Partial<Directory>, 'id' | 'tenant' | 'prodct' | 'scim' | 'type'>): Promise<Response<Directory>>;
|
37
|
+
getByTenantAndProduct(tenant: string, product: string): Promise<Response<Directory[]>>;
|
38
|
+
getAll(params?: PaginationParams): Promise<Response<Directory[]> & {
|
45
39
|
pageToken?: string;
|
46
|
-
error: ApiError | null;
|
47
|
-
}>;
|
48
|
-
delete(id: string): Promise<{
|
49
|
-
data: null;
|
50
|
-
error: ApiError | null;
|
51
40
|
}>;
|
41
|
+
delete(id: string): Promise<Response<null>>;
|
52
42
|
private transform;
|
43
|
+
filterBy(params?: FilterByParams): Promise<Response<Directory[]> & {
|
44
|
+
pageToken?: string;
|
45
|
+
}>;
|
53
46
|
}
|
54
47
|
export {};
|
@@ -33,13 +33,11 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
33
33
|
};
|
34
34
|
Object.defineProperty(exports, "__esModule", { value: true });
|
35
35
|
exports.DirectoryConfig = void 0;
|
36
|
-
const dbutils = __importStar(require("../db/utils"));
|
37
|
-
const utils_1 = require("../controller/utils");
|
38
|
-
const error_1 = require("../controller/error");
|
39
|
-
const utils_2 = require("../controller/utils");
|
40
36
|
const crypto_1 = require("crypto");
|
41
|
-
const
|
42
|
-
const
|
37
|
+
const dbutils = __importStar(require("../../db/utils"));
|
38
|
+
const utils_1 = require("../../controller/utils");
|
39
|
+
const error_1 = require("../../controller/error");
|
40
|
+
const utils_2 = require("./utils");
|
43
41
|
class DirectoryConfig {
|
44
42
|
constructor({ db, opts, users, groups, logger, eventController }) {
|
45
43
|
this._store = null;
|
@@ -52,44 +50,67 @@ class DirectoryConfig {
|
|
52
50
|
}
|
53
51
|
// Return the database store
|
54
52
|
store() {
|
55
|
-
return this._store || (this._store = this.db.store(
|
53
|
+
return this._store || (this._store = this.db.store(utils_1.storeNamespacePrefix.dsync.config));
|
56
54
|
}
|
57
55
|
// Create the configuration
|
58
56
|
create(params) {
|
59
57
|
return __awaiter(this, void 0, void 0, function* () {
|
60
58
|
try {
|
61
|
-
const { name, tenant, product, webhook_url, webhook_secret, type = 'generic-scim-v2' } = params;
|
59
|
+
const { name, tenant, product, webhook_url, webhook_secret, type = 'generic-scim-v2', google_domain, google_access_token, google_refresh_token, } = params;
|
62
60
|
if (!tenant || !product) {
|
63
61
|
throw new error_1.JacksonError('Missing required parameters.', 400);
|
64
62
|
}
|
65
63
|
// Validate the directory type
|
66
|
-
if (!Object.keys((0,
|
64
|
+
if (!Object.keys((0, utils_2.getDirectorySyncProviders)()).includes(type)) {
|
67
65
|
throw new error_1.JacksonError('Invalid directory type.', 400);
|
68
66
|
}
|
69
67
|
(0, utils_1.validateTenantAndProduct)(tenant, product);
|
70
68
|
const directoryName = name || `scim-${tenant}-${product}`;
|
71
69
|
const id = (0, crypto_1.randomUUID)();
|
72
70
|
const hasWebhook = webhook_url && webhook_secret;
|
73
|
-
const
|
71
|
+
const isSCIMProvider = (0, utils_2.isSCIMEnabledProvider)(type);
|
72
|
+
let directory = {
|
74
73
|
id,
|
75
74
|
name: directoryName,
|
76
75
|
tenant,
|
77
76
|
product,
|
78
77
|
type,
|
79
78
|
log_webhook_events: false,
|
80
|
-
scim: {
|
81
|
-
path: `${this.opts.scimPath}/${id}`,
|
82
|
-
secret: yield (0, utils_1.createRandomSecret)(16),
|
83
|
-
},
|
84
79
|
webhook: {
|
85
80
|
endpoint: hasWebhook ? webhook_url : '',
|
86
81
|
secret: hasWebhook ? webhook_secret : '',
|
87
82
|
},
|
83
|
+
scim: isSCIMProvider
|
84
|
+
? {
|
85
|
+
path: `${this.opts.scimPath}/${id}`,
|
86
|
+
secret: yield (0, utils_1.createRandomSecret)(16),
|
87
|
+
}
|
88
|
+
: {
|
89
|
+
path: '',
|
90
|
+
secret: '',
|
91
|
+
},
|
88
92
|
};
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
+
if (type === 'google') {
|
94
|
+
directory = Object.assign(Object.assign({}, directory), { google_domain: google_domain || '', google_access_token: google_access_token || '', google_refresh_token: google_refresh_token || '' });
|
95
|
+
}
|
96
|
+
const indexes = [
|
97
|
+
{
|
98
|
+
name: utils_1.IndexNames.TenantProduct,
|
99
|
+
value: dbutils.keyFromParts(tenant, product),
|
100
|
+
},
|
101
|
+
{
|
102
|
+
name: utils_1.IndexNames.Product,
|
103
|
+
value: product,
|
104
|
+
},
|
105
|
+
];
|
106
|
+
// Add secondary index for Non-SCIM providers
|
107
|
+
if (!isSCIMProvider) {
|
108
|
+
indexes.push({
|
109
|
+
name: utils_1.storeNamespacePrefix.dsync.providers,
|
110
|
+
value: type,
|
111
|
+
});
|
112
|
+
}
|
113
|
+
yield this.store().put(id, directory, ...indexes);
|
93
114
|
const connection = this.transform(directory);
|
94
115
|
yield this.eventController.notify('dsync.created', connection);
|
95
116
|
return { data: connection, error: null };
|
@@ -124,34 +145,20 @@ class DirectoryConfig {
|
|
124
145
|
if (!id) {
|
125
146
|
throw new error_1.JacksonError('Missing required parameters.', 400);
|
126
147
|
}
|
127
|
-
const { name, log_webhook_events, webhook,
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
if (log_webhook_events !== undefined) {
|
133
|
-
directory.log_webhook_events = log_webhook_events;
|
134
|
-
}
|
135
|
-
if (webhook) {
|
136
|
-
directory.webhook = webhook;
|
137
|
-
}
|
138
|
-
if (type) {
|
139
|
-
directory.type = type;
|
140
|
-
}
|
141
|
-
if ('deactivated' in param) {
|
142
|
-
directory['deactivated'] = param.deactivated;
|
143
|
-
}
|
144
|
-
yield this.store().put(id, Object.assign({}, directory));
|
145
|
-
directory = this.transform(directory);
|
148
|
+
const { name, log_webhook_events, webhook, deactivated, google_domain, google_access_token, google_refresh_token, } = param;
|
149
|
+
const directory = yield this.store().get(id);
|
150
|
+
let updatedDirectory = Object.assign(Object.assign({}, directory), { name: name || directory.name, webhook: webhook || directory.webhook, deactivated: deactivated !== undefined ? deactivated : directory.deactivated, log_webhook_events: log_webhook_events !== undefined ? log_webhook_events : directory.log_webhook_events, google_domain: google_domain || directory.google_domain, google_access_token: google_access_token || directory.google_access_token, google_refresh_token: google_refresh_token || directory.google_refresh_token });
|
151
|
+
yield this.store().put(id, updatedDirectory);
|
152
|
+
updatedDirectory = this.transform(updatedDirectory);
|
146
153
|
if ('deactivated' in param) {
|
147
|
-
if ((0, utils_1.isConnectionActive)(
|
148
|
-
yield this.eventController.notify('dsync.activated',
|
154
|
+
if ((0, utils_1.isConnectionActive)(updatedDirectory)) {
|
155
|
+
yield this.eventController.notify('dsync.activated', updatedDirectory);
|
149
156
|
}
|
150
157
|
else {
|
151
|
-
yield this.eventController.notify('dsync.deactivated',
|
158
|
+
yield this.eventController.notify('dsync.deactivated', updatedDirectory);
|
152
159
|
}
|
153
160
|
}
|
154
|
-
return { data:
|
161
|
+
return { data: updatedDirectory, error: null };
|
155
162
|
}
|
156
163
|
catch (err) {
|
157
164
|
return (0, error_1.apiError)(err);
|
@@ -166,7 +173,7 @@ class DirectoryConfig {
|
|
166
173
|
throw new error_1.JacksonError('Missing required parameters.', 400);
|
167
174
|
}
|
168
175
|
const { data: directories } = yield this.store().getByIndex({
|
169
|
-
name:
|
176
|
+
name: utils_1.IndexNames.TenantProduct,
|
170
177
|
value: dbutils.keyFromParts(tenant, product),
|
171
178
|
});
|
172
179
|
const transformedDirectories = directories.map((directory) => this.transform(directory));
|
@@ -177,9 +184,10 @@ class DirectoryConfig {
|
|
177
184
|
}
|
178
185
|
});
|
179
186
|
}
|
180
|
-
// Get
|
181
|
-
getAll(
|
187
|
+
// Get directory connections with pagination
|
188
|
+
getAll(params = {}) {
|
182
189
|
return __awaiter(this, void 0, void 0, function* () {
|
190
|
+
const { pageOffset, pageLimit, pageToken } = params;
|
183
191
|
try {
|
184
192
|
const { data: directories, pageToken: nextPageToken } = yield this.store().getAll(pageOffset, pageLimit, pageToken);
|
185
193
|
const transformedDirectories = directories
|
@@ -225,16 +233,54 @@ class DirectoryConfig {
|
|
225
233
|
});
|
226
234
|
}
|
227
235
|
transform(directory) {
|
228
|
-
|
229
|
-
|
230
|
-
directory.scim
|
236
|
+
if (directory.scim.path) {
|
237
|
+
// Add the flag to ensure SCIM compliance when using Azure AD
|
238
|
+
if (directory.type === 'azure-scim-v2') {
|
239
|
+
directory.scim.path = `${directory.scim.path}/?aadOptscim062020`;
|
240
|
+
}
|
241
|
+
// Construct the SCIM endpoint
|
242
|
+
directory.scim.endpoint = `${this.opts.externalUrl}${directory.scim.path}`;
|
231
243
|
}
|
232
|
-
directory.scim.endpoint = `${this.opts.externalUrl}${directory.scim.path}`;
|
233
244
|
if (!('deactivated' in directory)) {
|
234
245
|
directory.deactivated = false;
|
235
246
|
}
|
236
247
|
return directory;
|
237
248
|
}
|
249
|
+
// Filter connections by product or provider
|
250
|
+
filterBy(params = {}) {
|
251
|
+
return __awaiter(this, void 0, void 0, function* () {
|
252
|
+
const { product, provider, pageOffset, pageLimit, pageToken } = params;
|
253
|
+
let index = null;
|
254
|
+
if (product) {
|
255
|
+
// Filter by product
|
256
|
+
index = {
|
257
|
+
name: utils_1.IndexNames.Product,
|
258
|
+
value: product,
|
259
|
+
};
|
260
|
+
}
|
261
|
+
else if (provider) {
|
262
|
+
// Filter by provider
|
263
|
+
index = {
|
264
|
+
name: utils_1.storeNamespacePrefix.dsync.providers,
|
265
|
+
value: provider,
|
266
|
+
};
|
267
|
+
}
|
268
|
+
try {
|
269
|
+
if (!index) {
|
270
|
+
throw new error_1.JacksonError('Please provider a product or provider.', 400);
|
271
|
+
}
|
272
|
+
const { data: directories, pageToken: nextPageToken } = yield this.store().getByIndex(index, pageOffset, pageLimit, pageToken);
|
273
|
+
return {
|
274
|
+
data: directories.map((directory) => this.transform(directory)),
|
275
|
+
pageToken: nextPageToken,
|
276
|
+
error: null,
|
277
|
+
};
|
278
|
+
}
|
279
|
+
catch (err) {
|
280
|
+
return (0, error_1.apiError)(err);
|
281
|
+
}
|
282
|
+
});
|
283
|
+
}
|
238
284
|
}
|
239
285
|
exports.DirectoryConfig = DirectoryConfig;
|
240
286
|
//# sourceMappingURL=DirectoryConfig.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"DirectoryConfig.js","sourceRoot":"","sources":["../../../src/directory-sync/scim/DirectoryConfig.ts"],"names":[],"mappings":"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"}
|
@@ -1,14 +1,15 @@
|
|
1
|
-
import type { Group, DirectorySyncResponse, Directory, DirectorySyncGroupMember, DirectorySyncRequest, EventCallback, IDirectoryConfig, IUsers, IGroups } from '
|
1
|
+
import type { Group, DirectorySyncResponse, Directory, DirectorySyncGroupMember, DirectorySyncRequest, EventCallback, IDirectoryConfig, IUsers, IGroups } from '../../typings';
|
2
|
+
interface DirectoryGroupsParams {
|
3
|
+
directories: IDirectoryConfig;
|
4
|
+
users: IUsers;
|
5
|
+
groups: IGroups;
|
6
|
+
}
|
2
7
|
export declare class DirectoryGroups {
|
3
8
|
private directories;
|
4
9
|
private users;
|
5
10
|
private groups;
|
6
11
|
private callback;
|
7
|
-
constructor({ directories, users, groups
|
8
|
-
directories: IDirectoryConfig;
|
9
|
-
users: IUsers;
|
10
|
-
groups: IGroups;
|
11
|
-
});
|
12
|
+
constructor({ directories, users, groups }: DirectoryGroupsParams);
|
12
13
|
create(directory: Directory, body: any): Promise<DirectorySyncResponse>;
|
13
14
|
get(group: Group): Promise<DirectorySyncResponse>;
|
14
15
|
getAll(queryParams: {
|
@@ -24,3 +25,4 @@ export declare class DirectoryGroups {
|
|
24
25
|
private respondWithError;
|
25
26
|
handleRequest(request: DirectorySyncRequest, callback?: EventCallback): Promise<DirectorySyncResponse>;
|
26
27
|
}
|
28
|
+
export {};
|
@@ -13,18 +13,19 @@ exports.DirectoryGroups = void 0;
|
|
13
13
|
const utils_1 = require("./utils");
|
14
14
|
const events_1 = require("./events");
|
15
15
|
class DirectoryGroups {
|
16
|
-
constructor({ directories, users, groups
|
16
|
+
constructor({ directories, users, groups }) {
|
17
17
|
this.directories = directories;
|
18
18
|
this.users = users;
|
19
19
|
this.groups = groups;
|
20
20
|
}
|
21
21
|
create(directory, body) {
|
22
22
|
return __awaiter(this, void 0, void 0, function* () {
|
23
|
-
const { displayName } = body;
|
23
|
+
const { displayName, groupId } = body;
|
24
24
|
const { data: group } = yield this.groups.create({
|
25
25
|
directoryId: directory.id,
|
26
26
|
name: displayName,
|
27
|
-
|
27
|
+
id: groupId,
|
28
|
+
raw: 'rawAttributes' in body ? body.rawAttributes : Object.assign(Object.assign({}, body), { members: [] }),
|
28
29
|
});
|
29
30
|
yield (0, events_1.sendEvent)('group.created', { directory, group }, this.callback);
|
30
31
|
return {
|
@@ -63,7 +64,7 @@ class DirectoryGroups {
|
|
63
64
|
}
|
64
65
|
else {
|
65
66
|
// Fetch all the existing group
|
66
|
-
const { data } = yield this.groups.getAll({ pageOffset: undefined, pageLimit: undefined });
|
67
|
+
const { data } = yield this.groups.getAll({ directoryId, pageOffset: undefined, pageLimit: undefined });
|
67
68
|
groups = data;
|
68
69
|
}
|
69
70
|
return {
|
@@ -112,11 +113,7 @@ class DirectoryGroups {
|
|
112
113
|
}
|
113
114
|
update(directory, group, body) {
|
114
115
|
return __awaiter(this, void 0, void 0, function* () {
|
115
|
-
const
|
116
|
-
// Update group name
|
117
|
-
const updatedGroup = yield this.updateDisplayName(directory, group, {
|
118
|
-
displayName,
|
119
|
-
});
|
116
|
+
const updatedGroup = yield this.updateDisplayName(directory, group, body);
|
120
117
|
return {
|
121
118
|
status: 200,
|
122
119
|
data: {
|
@@ -141,10 +138,9 @@ class DirectoryGroups {
|
|
141
138
|
// Update group displayName
|
142
139
|
updateDisplayName(directory, group, body) {
|
143
140
|
return __awaiter(this, void 0, void 0, function* () {
|
144
|
-
const { displayName } = body;
|
145
141
|
const { data: updatedGroup, error } = yield this.groups.update(group.id, {
|
146
|
-
name: displayName,
|
147
|
-
raw: Object.assign(Object.assign({}, group.raw), body),
|
142
|
+
name: body.displayName,
|
143
|
+
raw: 'rawAttributes' in body ? body.rawAttributes : Object.assign(Object.assign({}, group.raw), body),
|
148
144
|
});
|
149
145
|
if (error || !updatedGroup) {
|
150
146
|
throw error;
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"DirectoryGroups.js","sourceRoot":"","sources":["../../../src/directory-sync/scim/DirectoryGroups.ts"],"names":[],"mappings":"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"}
|
@@ -1,12 +1,13 @@
|
|
1
|
-
import type { Directory, DirectorySyncResponse, DirectorySyncRequest, User, EventCallback, IDirectoryConfig, IUsers } from '
|
1
|
+
import type { Directory, DirectorySyncResponse, DirectorySyncRequest, User, EventCallback, IDirectoryConfig, IUsers } from '../../typings';
|
2
|
+
interface DirectoryUsersParams {
|
3
|
+
directories: IDirectoryConfig;
|
4
|
+
users: IUsers;
|
5
|
+
}
|
2
6
|
export declare class DirectoryUsers {
|
3
7
|
private directories;
|
4
8
|
private users;
|
5
9
|
private callback;
|
6
|
-
constructor({ directories, users }:
|
7
|
-
directories: IDirectoryConfig;
|
8
|
-
users: IUsers;
|
9
|
-
});
|
10
|
+
constructor({ directories, users }: DirectoryUsersParams);
|
10
11
|
create(directory: Directory, body: any): Promise<DirectorySyncResponse>;
|
11
12
|
get(user: User): Promise<DirectorySyncResponse>;
|
12
13
|
update(directory: Directory, user: User, body: any): Promise<DirectorySyncResponse>;
|
@@ -21,3 +22,4 @@ export declare class DirectoryUsers {
|
|
21
22
|
private respondWithError;
|
22
23
|
handleRequest(request: DirectorySyncRequest, callback?: EventCallback): Promise<DirectorySyncResponse>;
|
23
24
|
}
|
25
|
+
export {};
|
@@ -19,14 +19,15 @@ class DirectoryUsers {
|
|
19
19
|
}
|
20
20
|
create(directory, body) {
|
21
21
|
return __awaiter(this, void 0, void 0, function* () {
|
22
|
-
const { first_name, last_name, email, active } = (0, utils_1.extractStandardUserAttributes)(body);
|
22
|
+
const { id, first_name, last_name, email, active } = (0, utils_1.extractStandardUserAttributes)(body);
|
23
23
|
const { data: user } = yield this.users.create({
|
24
24
|
directoryId: directory.id,
|
25
|
+
id,
|
25
26
|
first_name,
|
26
27
|
last_name,
|
27
28
|
email,
|
28
29
|
active,
|
29
|
-
raw: body,
|
30
|
+
raw: 'rawAttributes' in body ? body.rawAttributes : body,
|
30
31
|
});
|
31
32
|
yield (0, events_1.sendEvent)('user.created', { directory, user }, this.callback);
|
32
33
|
return {
|
@@ -51,7 +52,7 @@ class DirectoryUsers {
|
|
51
52
|
last_name: name.familyName,
|
52
53
|
email: emails[0].value,
|
53
54
|
active,
|
54
|
-
raw: body,
|
55
|
+
raw: 'rawAttributes' in body ? body.rawAttributes : body,
|
55
56
|
});
|
56
57
|
yield (0, events_1.sendEvent)('user.updated', { directory, user: updatedUser }, this.callback);
|
57
58
|
return {
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"DirectoryUsers.js","sourceRoot":"","sources":["../../../src/directory-sync/scim/DirectoryUsers.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,38 @@
|
|
1
|
+
import type { Group, DatabaseStore, PaginationParams, Response, GroupMembership } from '../../typings';
|
2
|
+
import { Base } from './Base';
|
3
|
+
interface CreateGroupParams {
|
4
|
+
directoryId: string;
|
5
|
+
name: string;
|
6
|
+
raw: any;
|
7
|
+
id?: string;
|
8
|
+
}
|
9
|
+
export declare class Groups extends Base {
|
10
|
+
constructor({ db }: {
|
11
|
+
db: DatabaseStore;
|
12
|
+
});
|
13
|
+
create(params: CreateGroupParams): Promise<Response<Group>>;
|
14
|
+
get(id: string): Promise<Response<Group>>;
|
15
|
+
update(id: string, param: {
|
16
|
+
name: string;
|
17
|
+
raw: any;
|
18
|
+
}): Promise<Response<Group>>;
|
19
|
+
delete(id: string): Promise<Response<null>>;
|
20
|
+
addUserToGroup(groupId: string, userId: string): Promise<void>;
|
21
|
+
removeUserFromGroup(groupId: string, userId: string): Promise<void>;
|
22
|
+
isUserInGroup(groupId: string, userId: string): Promise<boolean>;
|
23
|
+
search(displayName: string, directoryId: string): Promise<Response<Group[]>>;
|
24
|
+
getAll(params: PaginationParams & {
|
25
|
+
directoryId?: string;
|
26
|
+
}): Promise<Response<Group[]>>;
|
27
|
+
/**
|
28
|
+
* Get members of a group paginated
|
29
|
+
* @param groupId
|
30
|
+
* @returns
|
31
|
+
*/
|
32
|
+
getGroupMembers(parmas: {
|
33
|
+
groupId: string;
|
34
|
+
} & PaginationParams): Promise<Response<GroupMembership['user_id'][]>>;
|
35
|
+
deleteAll(directoryId: string): Promise<void>;
|
36
|
+
removeAllUsers(groupId: string): Promise<void>;
|
37
|
+
}
|
38
|
+
export {};
|