@boxyhq/saml-jackson 1.21.2 → 1.21.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (36) hide show
  1. package/dist/controller/oauth.d.ts +1 -1
  2. package/dist/controller/oauth.js +74 -29
  3. package/dist/controller/oauth.js.map +1 -1
  4. package/dist/cron/lock.d.ts +18 -0
  5. package/dist/{directory-sync/batch-events → cron}/lock.js +40 -21
  6. package/dist/cron/lock.js.map +1 -0
  7. package/dist/directory-sync/batch-events/queue.d.ts +5 -2
  8. package/dist/directory-sync/batch-events/queue.js +47 -26
  9. package/dist/directory-sync/batch-events/queue.js.map +1 -1
  10. package/dist/directory-sync/index.d.ts +2 -3
  11. package/dist/directory-sync/index.js +30 -18
  12. package/dist/directory-sync/index.js.map +1 -1
  13. package/dist/directory-sync/non-scim/index.d.ts +16 -2
  14. package/dist/directory-sync/non-scim/index.js +70 -32
  15. package/dist/directory-sync/non-scim/index.js.map +1 -1
  16. package/dist/directory-sync/request.d.ts +8 -1
  17. package/dist/directory-sync/request.js +4 -3
  18. package/dist/directory-sync/request.js.map +1 -1
  19. package/dist/directory-sync/scim/Groups.js +15 -20
  20. package/dist/directory-sync/scim/Groups.js.map +1 -1
  21. package/dist/directory-sync/scim/Users.js +9 -13
  22. package/dist/directory-sync/scim/Users.js.map +1 -1
  23. package/dist/directory-sync/scim/WebhookEventsLogger.js +8 -8
  24. package/dist/directory-sync/scim/WebhookEventsLogger.js.map +1 -1
  25. package/dist/directory-sync/scim/utils.d.ts +6 -0
  26. package/dist/directory-sync/scim/utils.js +7 -1
  27. package/dist/directory-sync/scim/utils.js.map +1 -1
  28. package/dist/directory-sync/types.d.ts +2 -2
  29. package/dist/directory-sync/utils.d.ts +4 -2
  30. package/dist/directory-sync/utils.js +5 -3
  31. package/dist/directory-sync/utils.js.map +1 -1
  32. package/dist/sso-tracer/types.d.ts +3 -2
  33. package/dist/typings.d.ts +4 -0
  34. package/package.json +6 -6
  35. package/dist/directory-sync/batch-events/lock.d.ts +0 -18
  36. package/dist/directory-sync/batch-events/lock.js.map +0 -1
@@ -36,14 +36,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
36
36
  };
37
37
  Object.defineProperty(exports, "__esModule", { value: true });
38
38
  exports.EventProcessor = void 0;
39
- const os_1 = __importDefault(require("os"));
40
39
  const lodash_1 = __importDefault(require("lodash"));
41
40
  const crypto_1 = require("crypto");
42
- const utils_1 = require("../utils");
43
41
  const webhook_1 = require("../../event/webhook");
44
- const utils_2 = require("../../controller/utils");
42
+ const utils_1 = require("../../controller/utils");
45
43
  const error_1 = require("../../controller/error");
46
44
  const metrics = __importStar(require("../../opentelemetry/metrics"));
45
+ const utils_2 = require("../scim/utils");
47
46
  var EventStatus;
48
47
  (function (EventStatus) {
49
48
  EventStatus["PENDING"] = "PENDING";
@@ -51,15 +50,20 @@ var EventStatus;
51
50
  EventStatus["PROCESSING"] = "PROCESSING";
52
51
  })(EventStatus || (EventStatus = {}));
53
52
  let isJobRunning = false;
54
- const lockKey = os_1.default.hostname();
55
- const lockRenewalInterval = (utils_1.eventLockTTL / 2) * 1000;
53
+ let intervalId;
56
54
  class EventProcessor {
57
55
  constructor({ opts, eventStore, eventLock, directories, webhookLogs }) {
56
+ var _a;
58
57
  this.opts = opts;
59
58
  this.eventLock = eventLock;
60
59
  this.eventStore = eventStore;
61
60
  this.directories = directories;
62
61
  this.webhookLogs = webhookLogs;
62
+ this.cronInterval = (_a = this.opts.dsync) === null || _a === void 0 ? void 0 : _a.webhookBatchCronInterval;
63
+ if (this.cronInterval) {
64
+ this.scheduleWorker = this.scheduleWorker.bind(this);
65
+ this.scheduleWorker();
66
+ }
63
67
  }
64
68
  // Push the new event to the database
65
69
  push(event) {
@@ -74,7 +78,7 @@ class EventProcessor {
74
78
  };
75
79
  const index = [
76
80
  {
77
- name: 'directoryId',
81
+ name: utils_2.indexNames.directoryId,
78
82
  value: event.directory_id,
79
83
  },
80
84
  ];
@@ -82,32 +86,16 @@ class EventProcessor {
82
86
  return record;
83
87
  });
84
88
  }
85
- // Process the events and send them to the webhooks as a batch
86
- process() {
89
+ _process() {
87
90
  return __awaiter(this, void 0, void 0, function* () {
88
91
  var _a, _b;
89
- if (isJobRunning) {
90
- return;
91
- }
92
- if (!(yield this.eventLock.acquire(lockKey))) {
93
- return;
94
- }
95
- isJobRunning = true;
96
- // Renew the lock periodically
97
- const intervalId = setInterval(() => __awaiter(this, void 0, void 0, function* () {
98
- this.eventLock.renew(lockKey);
99
- }), lockRenewalInterval);
100
- const batchSize = (_a = this.opts.dsync) === null || _a === void 0 ? void 0 : _a.webhookBatchSize;
101
- if (!batchSize) {
102
- throw new error_1.JacksonError('Batch size not defined');
103
- }
92
+ const batchSize = ((_a = this.opts.dsync) === null || _a === void 0 ? void 0 : _a.webhookBatchSize) || 50;
104
93
  // eslint-disable-next-line no-constant-condition
105
94
  while (true) {
106
95
  const events = yield this.fetchNextBatch(0, batchSize);
107
96
  const eventsCount = events.length;
108
97
  if (eventsCount === 0) {
109
- clearInterval(intervalId);
110
- yield this.eventLock.release(lockKey);
98
+ yield this.eventLock.release();
111
99
  break;
112
100
  }
113
101
  // Group the events by directory
@@ -133,7 +121,7 @@ class EventProcessor {
133
121
  yield this.delete(events);
134
122
  continue;
135
123
  }
136
- if (!(0, utils_2.isConnectionActive)(directory)) {
124
+ if (!(0, utils_1.isConnectionActive)(directory)) {
137
125
  console.error(`Directory ${directoryId} is not active. Deleting the dsync events.`);
138
126
  yield this.delete(events);
139
127
  continue;
@@ -164,7 +152,29 @@ class EventProcessor {
164
152
  }
165
153
  }
166
154
  }
155
+ });
156
+ }
157
+ // Process the events and send them to the webhooks as a batch
158
+ process() {
159
+ return __awaiter(this, void 0, void 0, function* () {
160
+ if (isJobRunning) {
161
+ console.info('A batch process is already running, skipping.');
162
+ return;
163
+ }
164
+ if (!(yield this.eventLock.acquire())) {
165
+ return;
166
+ }
167
+ isJobRunning = true;
168
+ try {
169
+ this._process();
170
+ }
171
+ catch (e) {
172
+ console.error(' Error processing webhooks batch:', e);
173
+ }
167
174
  isJobRunning = false;
175
+ if (this.cronInterval) {
176
+ this.scheduleWorker();
177
+ }
168
178
  });
169
179
  }
170
180
  // Fetch next batch of events from the database
@@ -230,6 +240,17 @@ class EventProcessor {
230
240
  console.error('All events in the batch have failed. Please check the system.');
231
241
  });
232
242
  }
243
+ scheduleWorker() {
244
+ return __awaiter(this, void 0, void 0, function* () {
245
+ if (!this.cronInterval) {
246
+ return;
247
+ }
248
+ if (intervalId) {
249
+ clearInterval(intervalId);
250
+ }
251
+ intervalId = setInterval(() => this.process(), this.cronInterval * 1000);
252
+ });
253
+ }
233
254
  }
234
255
  exports.EventProcessor = EventProcessor;
235
256
  //# sourceMappingURL=queue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"queue.js","sourceRoot":"","sources":["../../../src/directory-sync/batch-events/queue.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"queue.js","sourceRoot":"","sources":["../../../src/directory-sync/batch-events/queue.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { JacksonOption, IEventController, EventCallback, DB } from '../typings';
1
+ import type { JacksonOption, IEventController, DB } from '../typings';
2
2
  import { DirectoryConfig } from './scim/DirectoryConfig';
3
3
  import { Users } from './scim/Users';
4
4
  import { Groups } from './scim/Groups';
@@ -19,10 +19,9 @@ declare const directorySync: (params: {
19
19
  [K: string]: string;
20
20
  };
21
21
  events: {
22
- callback: (event: import("./types").DirectorySyncEvent) => Promise<void>;
23
22
  batch: EventProcessor;
24
23
  };
25
24
  google: import("./non-scim/google/oauth").GoogleAuth;
26
- sync: (callback: EventCallback) => Promise<void>;
25
+ sync: () => Promise<void>;
27
26
  }>;
28
27
  export default directorySync;
@@ -22,8 +22,9 @@ const non_scim_1 = require("./non-scim");
22
22
  const utils_2 = require("../controller/utils");
23
23
  const utils_3 = require("./utils");
24
24
  const queue_1 = require("./batch-events/queue");
25
- const lock_1 = require("./batch-events/lock");
25
+ const lock_1 = require("../cron/lock");
26
26
  const directorySync = (params) => __awaiter(void 0, void 0, void 0, function* () {
27
+ var _a;
27
28
  const { db, opts, eventController } = params;
28
29
  const users = new Users_1.Users({ db });
29
30
  const groups = new Groups_1.Groups({ db });
@@ -38,7 +39,6 @@ const directorySync = (params) => __awaiter(void 0, void 0, void 0, function* ()
38
39
  });
39
40
  const directoryUsers = new DirectoryUsers_1.DirectoryUsers({ directories, users });
40
41
  const directoryGroups = new DirectoryGroups_1.DirectoryGroups({ directories, users, groups });
41
- const requestHandler = new request_1.RequestHandler(directoryUsers, directoryGroups);
42
42
  // Fetch the supported providers
43
43
  const getProviders = () => {
44
44
  return (0, utils_1.getDirectorySyncProviders)();
@@ -47,7 +47,8 @@ const directorySync = (params) => __awaiter(void 0, void 0, void 0, function* ()
47
47
  // Batch send events
48
48
  const eventStore = db.store(utils_2.storeNamespacePrefix.dsync.events);
49
49
  const lockStore = db.store(utils_2.storeNamespacePrefix.dsync.lock, utils_3.eventLockTTL);
50
- const eventLock = new lock_1.EventLock({ lockStore });
50
+ const eventLock = new lock_1.CronLock({ key: utils_3.eventLockKey, lockStore });
51
+ const googleLock = new lock_1.CronLock({ key: utils_3.googleLockKey, lockStore });
51
52
  const eventProcessor = new queue_1.EventProcessor({
52
53
  opts,
53
54
  eventStore,
@@ -55,6 +56,31 @@ const directorySync = (params) => __awaiter(void 0, void 0, void 0, function* ()
55
56
  directories,
56
57
  webhookLogs,
57
58
  });
59
+ // Internal callback handles sending webhooks
60
+ const internalCallback = yield (0, utils_3.handleEventCallback)({
61
+ opts,
62
+ directories,
63
+ webhookLogs,
64
+ eventProcessor,
65
+ });
66
+ // Use the provided callback (Embedded) or fallback to the internal callback (Hosted)
67
+ const _callback = ((_a = opts.dsync) === null || _a === void 0 ? void 0 : _a.callback) || internalCallback;
68
+ // SCIM handler
69
+ const requestHandler = new request_1.RequestHandler({
70
+ directoryUsers,
71
+ directoryGroups,
72
+ eventCallback: _callback,
73
+ });
74
+ // Google sync handler
75
+ const syncProviders = new non_scim_1.SyncProviders({
76
+ userController: users,
77
+ groupController: groups,
78
+ opts,
79
+ directories,
80
+ requestHandler,
81
+ eventCallback: _callback,
82
+ eventLock: googleLock,
83
+ });
58
84
  return {
59
85
  users,
60
86
  groups,
@@ -63,24 +89,10 @@ const directorySync = (params) => __awaiter(void 0, void 0, void 0, function* ()
63
89
  requests: requestHandler,
64
90
  providers: getProviders,
65
91
  events: {
66
- callback: yield (0, utils_3.handleEventCallback)({
67
- opts,
68
- directories,
69
- webhookLogs,
70
- eventProcessor,
71
- }),
72
92
  batch: eventProcessor,
73
93
  },
74
94
  google: googleProvider.oauth,
75
- sync: (callback) => __awaiter(void 0, void 0, void 0, function* () {
76
- return yield (0, non_scim_1.startSync)({
77
- userController: users,
78
- groupController: groups,
79
- opts,
80
- directories,
81
- requestHandler,
82
- }, callback);
83
- }),
95
+ sync: syncProviders.startSync.bind(syncProviders),
84
96
  };
85
97
  });
86
98
  exports.default = directorySync;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/directory-sync/index.ts"],"names":[],"mappings":";;;;;;;;;;;AACA,4DAAyD;AACzD,0DAAuD;AACvD,4DAAyD;AACzD,wCAAqC;AACrC,0CAAuC;AACvC,wCAAyD;AACzD,uCAA2C;AAC3C,oEAAiE;AACjE,8CAAsD;AACtD,yCAAuC;AACvC,+CAA2D;AAC3D,mCAA4D;AAC5D,gDAAsD;AACtD,8CAAgD;AAEhD,MAAM,aAAa,GAAG,CAAO,MAA0E,EAAE,EAAE;IACzG,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,MAAM,CAAC;IAE7C,MAAM,KAAK,GAAG,IAAI,aAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAChC,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAClC,MAAM,WAAW,GAAG,IAAI,yCAAmB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACpD,MAAM,WAAW,GAAG,IAAI,iCAAe,CAAC;QACtC,EAAE;QACF,IAAI;QACJ,KAAK;QACL,MAAM;QACN,MAAM,EAAE,WAAW;QACnB,eAAe;KAChB,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,IAAI,+BAAc,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;IAClE,MAAM,eAAe,GAAG,IAAI,iCAAe,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAC5E,MAAM,cAAc,GAAG,IAAI,wBAAc,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;IAE3E,gCAAgC;IAChC,MAAM,YAAY,GAAG,GAAG,EAAE;QACxB,OAAO,IAAA,iCAAyB,GAAE,CAAC;IACrC,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,IAAA,0BAAiB,EAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;IAEhE,oBAAoB;IACpB,MAAM,UAAU,GAAG,EAAE,CAAC,KAAK,CAAC,4BAAoB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC/D,MAAM,SAAS,GAAG,EAAE,CAAC,KAAK,CAAC,4BAAoB,CAAC,KAAK,CAAC,IAAI,EAAE,oBAAY,CAAC,CAAC;IAC1E,MAAM,SAAS,GAAG,IAAI,gBAAS,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;IAC/C,MAAM,cAAc,GAAG,IAAI,sBAAc,CAAC;QACxC,IAAI;QACJ,UAAU;QACV,SAAS;QACT,WAAW;QACX,WAAW;KACZ,CAAC,CAAC;IAEH,OAAO;QACL,KAAK;QACL,MAAM;QACN,WAAW;QACX,WAAW;QACX,QAAQ,EAAE,cAAc;QACxB,SAAS,EAAE,YAAY;QACvB,MAAM,EAAE;YACN,QAAQ,EAAE,MAAM,IAAA,2BAAmB,EAAC;gBAClC,IAAI;gBACJ,WAAW;gBACX,WAAW;gBACX,cAAc;aACf,CAAC;YACF,KAAK,EAAE,cAAc;SACtB;QACD,MAAM,EAAE,cAAc,CAAC,KAAK;QAC5B,IAAI,EAAE,CAAO,QAAuB,EAAE,EAAE;YACtC,OAAO,MAAM,IAAA,oBAAS,EACpB;gBACE,cAAc,EAAE,KAAK;gBACrB,eAAe,EAAE,MAAM;gBACvB,IAAI;gBACJ,WAAW;gBACX,cAAc;aACf,EACD,QAAQ,CACT,CAAC;QACJ,CAAC,CAAA;KACF,CAAC;AACJ,CAAC,CAAA,CAAC;AAEF,kBAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/directory-sync/index.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,24 @@
1
- import type { IDirectoryConfig, IUsers, IGroups, IRequestHandler, JacksonOption, EventCallback } from '../../typings';
1
+ import type { IDirectoryConfig, IUsers, IGroups, IRequestHandler, JacksonOption, EventCallback, CronLock } from '../../typings';
2
2
  interface SyncParams {
3
3
  userController: IUsers;
4
4
  groupController: IGroups;
5
5
  opts: JacksonOption;
6
6
  directories: IDirectoryConfig;
7
7
  requestHandler: IRequestHandler;
8
+ eventCallback: EventCallback;
9
+ eventLock: CronLock;
10
+ }
11
+ export declare class SyncProviders {
12
+ private userController;
13
+ private groupController;
14
+ private directories;
15
+ private requestHandler;
16
+ private opts;
17
+ private cronInterval;
18
+ private eventCallback;
19
+ private eventLock;
20
+ constructor({ userController, groupController, opts, directories, requestHandler, eventCallback, eventLock, }: SyncParams);
21
+ startSync(): Promise<void>;
22
+ private scheduleSync;
8
23
  }
9
- export declare const startSync: (params: SyncParams, callback: EventCallback) => Promise<void>;
10
24
  export {};
@@ -9,43 +9,81 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.startSync = void 0;
12
+ exports.SyncProviders = void 0;
13
13
  const google_1 = require("./google");
14
14
  const syncUsers_1 = require("./syncUsers");
15
15
  const syncGroups_1 = require("./syncGroups");
16
16
  const syncGroupMembers_1 = require("./syncGroupMembers");
17
- // Method to start the directory sync process
18
- // This method will be called by the directory sync cron job
19
- const startSync = (params, callback) => __awaiter(void 0, void 0, void 0, function* () {
20
- const { userController, groupController, opts, directories, requestHandler } = params;
21
- const { directory: provider } = (0, google_1.newGoogleProvider)({ directories, opts });
22
- const startTime = Date.now();
23
- console.info('Starting the sync process');
24
- const allDirectories = yield provider.getDirectories();
25
- if (allDirectories.length === 0) {
26
- console.info('No directories found. Skipping the sync process');
27
- return;
28
- }
29
- try {
30
- for (const directory of allDirectories) {
31
- const params = {
32
- directory,
33
- userController,
34
- groupController,
35
- provider,
36
- requestHandler,
37
- callback,
38
- };
39
- yield new syncUsers_1.SyncUsers(params).sync();
40
- yield new syncGroups_1.SyncGroups(params).sync();
41
- yield new syncGroupMembers_1.SyncGroupMembers(params).sync();
17
+ let isJobRunning = false;
18
+ let intervalId;
19
+ class SyncProviders {
20
+ constructor({ userController, groupController, opts, directories, requestHandler, eventCallback, eventLock, }) {
21
+ var _a, _b;
22
+ this.userController = userController;
23
+ this.groupController = groupController;
24
+ this.directories = directories;
25
+ this.requestHandler = requestHandler;
26
+ this.eventCallback = eventCallback;
27
+ this.opts = opts;
28
+ this.cronInterval = (_b = (_a = this.opts.dsync) === null || _a === void 0 ? void 0 : _a.providers) === null || _b === void 0 ? void 0 : _b.google.cronInterval;
29
+ this.eventLock = eventLock;
30
+ if (this.cronInterval) {
31
+ this.scheduleSync = this.scheduleSync.bind(this);
32
+ this.scheduleSync();
42
33
  }
43
34
  }
44
- catch (e) {
45
- console.error(e);
35
+ // Start the sync process
36
+ startSync() {
37
+ return __awaiter(this, void 0, void 0, function* () {
38
+ if (isJobRunning) {
39
+ console.info('A sync process is already running, skipping.');
40
+ return;
41
+ }
42
+ if (!(yield this.eventLock.acquire())) {
43
+ return;
44
+ }
45
+ isJobRunning = true;
46
+ const { directory: provider } = (0, google_1.newGoogleProvider)({ directories: this.directories, opts: this.opts });
47
+ const startTime = Date.now();
48
+ try {
49
+ const allDirectories = yield provider.getDirectories();
50
+ console.info(`Starting the sync process for ${allDirectories.length} directories`);
51
+ for (const directory of allDirectories) {
52
+ const params = {
53
+ directory,
54
+ provider,
55
+ userController: this.userController,
56
+ groupController: this.groupController,
57
+ requestHandler: this.requestHandler,
58
+ callback: this.eventCallback,
59
+ };
60
+ yield new syncUsers_1.SyncUsers(params).sync();
61
+ yield new syncGroups_1.SyncGroups(params).sync();
62
+ yield new syncGroupMembers_1.SyncGroupMembers(params).sync();
63
+ }
64
+ }
65
+ catch (e) {
66
+ console.error(' Error processing Google sync:', e);
67
+ }
68
+ yield this.eventLock.release();
69
+ const endTime = Date.now();
70
+ console.info(`Sync process completed in ${(endTime - startTime) / 1000} seconds`);
71
+ isJobRunning = false;
72
+ if (this.cronInterval) {
73
+ this.scheduleSync();
74
+ }
75
+ });
76
+ }
77
+ // Schedule the next sync process
78
+ scheduleSync() {
79
+ if (!this.cronInterval) {
80
+ return;
81
+ }
82
+ if (intervalId) {
83
+ clearInterval(intervalId);
84
+ }
85
+ intervalId = setInterval(() => this.startSync(), this.cronInterval * 1000);
46
86
  }
47
- const endTime = Date.now();
48
- console.info(`Sync process completed in ${(endTime - startTime) / 1000} seconds`);
49
- });
50
- exports.startSync = startSync;
87
+ }
88
+ exports.SyncProviders = SyncProviders;
51
89
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/directory-sync/non-scim/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCAA6C;AAS7C,2CAAwC;AACxC,6CAA0C;AAC1C,yDAAsD;AAUtD,6CAA6C;AAC7C,4DAA4D;AACrD,MAAM,SAAS,GAAG,CAAO,MAAkB,EAAE,QAAuB,EAAE,EAAE;IAC7E,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE,GAAG,MAAM,CAAC;IAEtF,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAA,0BAAiB,EAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;IAEzE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IAE1C,MAAM,cAAc,GAAG,MAAM,QAAQ,CAAC,cAAc,EAAE,CAAC;IAEvD,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;QAChE,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,KAAK,MAAM,SAAS,IAAI,cAAc,EAAE,CAAC;YACvC,MAAM,MAAM,GAAG;gBACb,SAAS;gBACT,cAAc;gBACd,eAAe;gBACf,QAAQ;gBACR,cAAc;gBACd,QAAQ;aACT,CAAC;YAEF,MAAM,IAAI,qBAAS,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;YACnC,MAAM,IAAI,uBAAU,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;YACpC,MAAM,IAAI,mCAAgB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5C,CAAC;IACH,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnB,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE3B,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,OAAO,GAAG,SAAS,CAAC,GAAG,IAAI,UAAU,CAAC,CAAC;AACpF,CAAC,CAAA,CAAC;AAtCW,QAAA,SAAS,aAsCpB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/directory-sync/non-scim/index.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,14 @@
1
1
  import type { DirectorySyncResponse, IDirectoryGroups, IDirectoryUsers, EventCallback, DirectorySyncRequest } from '../typings';
2
+ interface RequestHandlerParams {
3
+ directoryUsers: IDirectoryUsers;
4
+ directoryGroups: IDirectoryGroups;
5
+ eventCallback: EventCallback;
6
+ }
2
7
  export declare class RequestHandler {
3
8
  private directoryUsers;
4
9
  private directoryGroups;
5
- constructor(directoryUsers: IDirectoryUsers, directoryGroups: IDirectoryGroups);
10
+ private eventCallback;
11
+ constructor({ directoryUsers, directoryGroups, eventCallback }: RequestHandlerParams);
6
12
  handle(request: DirectorySyncRequest, callback?: EventCallback): Promise<DirectorySyncResponse>;
7
13
  }
14
+ export {};
@@ -11,18 +11,19 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.RequestHandler = void 0;
13
13
  class RequestHandler {
14
- constructor(directoryUsers, directoryGroups) {
14
+ constructor({ directoryUsers, directoryGroups, eventCallback }) {
15
15
  this.directoryUsers = directoryUsers;
16
16
  this.directoryGroups = directoryGroups;
17
+ this.eventCallback = eventCallback;
17
18
  }
18
19
  handle(request, callback) {
19
20
  return __awaiter(this, void 0, void 0, function* () {
20
21
  const resourceType = request.resourceType.toLowerCase();
21
22
  if (resourceType === 'users') {
22
- return yield this.directoryUsers.handleRequest(request, callback);
23
+ return yield this.directoryUsers.handleRequest(request, callback || this.eventCallback);
23
24
  }
24
25
  else if (resourceType === 'groups') {
25
- return yield this.directoryGroups.handleRequest(request, callback);
26
+ return yield this.directoryGroups.handleRequest(request, callback || this.eventCallback);
26
27
  }
27
28
  return { status: 404, data: {} };
28
29
  });
@@ -1 +1 @@
1
- {"version":3,"file":"request.js","sourceRoot":"","sources":["../../src/directory-sync/request.ts"],"names":[],"mappings":";;;;;;;;;;;;AAQA,MAAa,cAAc;IACzB,YACU,cAA+B,EAC/B,eAAiC;QADjC,mBAAc,GAAd,cAAc,CAAiB;QAC/B,oBAAe,GAAf,eAAe,CAAkB;IACxC,CAAC;IAEE,MAAM,CAAC,OAA6B,EAAE,QAAwB;;YAClE,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;YAExD,IAAI,YAAY,KAAK,OAAO,EAAE,CAAC;gBAC7B,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YACpE,CAAC;iBAAM,IAAI,YAAY,KAAK,QAAQ,EAAE,CAAC;gBACrC,OAAO,MAAM,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YACrE,CAAC;YAED,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;QACnC,CAAC;KAAA;CACF;AAjBD,wCAiBC"}
1
+ {"version":3,"file":"request.js","sourceRoot":"","sources":["../../src/directory-sync/request.ts"],"names":[],"mappings":";;;;;;;;;;;;AAcA,MAAa,cAAc;IAKzB,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,aAAa,EAAwB;QAClF,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;IAEK,MAAM,CAAC,OAA6B,EAAE,QAAwB;;YAClE,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;YAExD,IAAI,YAAY,KAAK,OAAO,EAAE,CAAC;gBAC7B,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,OAAO,EAAE,QAAQ,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC;YAC1F,CAAC;iBAAM,IAAI,YAAY,KAAK,QAAQ,EAAE,CAAC;gBACrC,OAAO,MAAM,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,OAAO,EAAE,QAAQ,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC;YAC3F,CAAC;YAED,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;QACnC,CAAC;KAAA;CACF;AAtBD,wCAsBC"}
@@ -37,10 +37,7 @@ const crypto_1 = require("crypto");
37
37
  const dbutils = __importStar(require("../../db/utils"));
38
38
  const error_1 = require("../../controller/error");
39
39
  const Base_1 = require("./Base");
40
- const indexNames = {
41
- directoryIdDisplayname: 'directoryIdDisplayname',
42
- directoryId: 'directoryId',
43
- };
40
+ const utils_1 = require("./utils");
44
41
  /**
45
42
  * @swagger
46
43
  * parameters:
@@ -84,10 +81,10 @@ class Groups extends Base_1.Base {
84
81
  };
85
82
  try {
86
83
  yield this.store('groups').put(id, group, {
87
- name: indexNames.directoryIdDisplayname,
84
+ name: utils_1.indexNames.directoryIdDisplayname,
88
85
  value: dbutils.keyFromParts(directoryId, name),
89
86
  }, {
90
- name: indexNames.directoryId,
87
+ name: utils_1.indexNames.directoryId,
91
88
  value: directoryId,
92
89
  });
93
90
  return { data: group, error: null };
@@ -174,7 +171,7 @@ class Groups extends Base_1.Base {
174
171
  group_id: groupId,
175
172
  user_id: userId,
176
173
  }, {
177
- name: 'groupId',
174
+ name: utils_1.indexNames.groupId,
178
175
  value: groupId,
179
176
  });
180
177
  });
@@ -198,7 +195,7 @@ class Groups extends Base_1.Base {
198
195
  return __awaiter(this, void 0, void 0, function* () {
199
196
  try {
200
197
  const { data: groups } = yield this.store('groups').getByIndex({
201
- name: indexNames.directoryIdDisplayname,
198
+ name: utils_1.indexNames.directoryIdDisplayname,
202
199
  value: dbutils.keyFromParts(directoryId, displayName),
203
200
  });
204
201
  return { data: groups, error: null };
@@ -248,7 +245,7 @@ class Groups extends Base_1.Base {
248
245
  // Filter by directoryId
249
246
  if (directoryId) {
250
247
  const index = {
251
- name: indexNames.directoryId,
248
+ name: utils_1.indexNames.directoryId,
252
249
  value: directoryId,
253
250
  };
254
251
  groups = (yield this.store('groups').getByIndex(index, pageOffset, pageLimit)).data;
@@ -305,7 +302,7 @@ class Groups extends Base_1.Base {
305
302
  const { groupId, pageOffset, pageLimit } = parmas;
306
303
  try {
307
304
  const { data } = (yield this.store('members').getByIndex({
308
- name: 'groupId',
305
+ name: utils_1.indexNames.groupId,
309
306
  value: groupId,
310
307
  }, pageOffset, pageLimit));
311
308
  const members = data.map((member) => {
@@ -323,13 +320,12 @@ class Groups extends Base_1.Base {
323
320
  // Delete all groups from a directory
324
321
  deleteAll(directoryId) {
325
322
  return __awaiter(this, void 0, void 0, function* () {
326
- const index = {
327
- name: indexNames.directoryId,
328
- value: directoryId,
329
- };
330
323
  // eslint-disable-next-line no-constant-condition
331
324
  while (true) {
332
- const { data: groups } = yield this.store('groups').getByIndex(index, 0, this.bulkDeleteBatchSize);
325
+ const { data: groups } = yield this.store('groups').getByIndex({
326
+ name: utils_1.indexNames.directoryId,
327
+ value: directoryId,
328
+ }, 0, this.bulkDeleteBatchSize);
333
329
  if (!groups || groups.length === 0) {
334
330
  break;
335
331
  }
@@ -344,13 +340,12 @@ class Groups extends Base_1.Base {
344
340
  // Remove all users from a group
345
341
  removeAllUsers(groupId) {
346
342
  return __awaiter(this, void 0, void 0, function* () {
347
- const index = {
348
- name: 'groupId',
349
- value: groupId,
350
- };
351
343
  // eslint-disable-next-line no-constant-condition
352
344
  while (true) {
353
- const { data: members } = yield this.store('members').getByIndex(index, 0, this.bulkDeleteBatchSize);
345
+ const { data: members } = yield this.store('members').getByIndex({
346
+ name: utils_1.indexNames.groupId,
347
+ value: groupId,
348
+ }, 0, this.bulkDeleteBatchSize);
354
349
  if (!members || members.length === 0) {
355
350
  break;
356
351
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Groups.js","sourceRoot":"","sources":["../../../src/directory-sync/scim/Groups.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Groups.js","sourceRoot":"","sources":["../../../src/directory-sync/scim/Groups.ts"],"names":[],"mappings":"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"}