@boxyhq/saml-jackson 1.6.0 → 1.7.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.
Files changed (35) hide show
  1. package/dist/controller/oauth.js +2 -6
  2. package/dist/controller/oauth.js.map +1 -1
  3. package/dist/directory-sync/DirectoryConfig.d.ts +3 -6
  4. package/dist/directory-sync/DirectoryConfig.js +19 -5
  5. package/dist/directory-sync/DirectoryConfig.js.map +1 -1
  6. package/dist/directory-sync/DirectoryGroups.d.ts +6 -5
  7. package/dist/directory-sync/DirectoryGroups.js +12 -3
  8. package/dist/directory-sync/DirectoryGroups.js.map +1 -1
  9. package/dist/directory-sync/DirectoryUsers.d.ts +5 -4
  10. package/dist/directory-sync/DirectoryUsers.js +9 -4
  11. package/dist/directory-sync/DirectoryUsers.js.map +1 -1
  12. package/dist/directory-sync/Groups.d.ts +6 -6
  13. package/dist/directory-sync/Groups.js +27 -11
  14. package/dist/directory-sync/Groups.js.map +1 -1
  15. package/dist/directory-sync/Users.d.ts +15 -13
  16. package/dist/directory-sync/Users.js +32 -11
  17. package/dist/directory-sync/Users.js.map +1 -1
  18. package/dist/directory-sync/WebhookEventsLogger.d.ts +4 -5
  19. package/dist/directory-sync/WebhookEventsLogger.js +11 -2
  20. package/dist/directory-sync/WebhookEventsLogger.js.map +1 -1
  21. package/dist/directory-sync/events.d.ts +2 -2
  22. package/dist/directory-sync/events.js.map +1 -1
  23. package/dist/directory-sync/index.d.ts +20 -3
  24. package/dist/directory-sync/index.js +2 -2
  25. package/dist/directory-sync/index.js.map +1 -1
  26. package/dist/directory-sync/request.d.ts +1 -1
  27. package/dist/directory-sync/request.js +6 -5
  28. package/dist/directory-sync/request.js.map +1 -1
  29. package/dist/directory-sync/types.d.ts +103 -0
  30. package/dist/directory-sync/types.js +12 -0
  31. package/dist/directory-sync/types.js.map +1 -0
  32. package/dist/typings.d.ts +2 -264
  33. package/dist/typings.js +1 -9
  34. package/dist/typings.js.map +1 -1
  35. package/package.json +4 -4
@@ -1,16 +1,18 @@
1
- import type { User, DatabaseStore, ApiError } from '../typings';
1
+ import type { User, DatabaseStore, ApiError, PaginationParams } from '../typings';
2
2
  import { Base } from './Base';
3
+ type CreateUserPayload = {
4
+ directoryId: string;
5
+ first_name: string;
6
+ last_name: string;
7
+ email: string;
8
+ active: boolean;
9
+ raw: any;
10
+ };
3
11
  export declare class Users extends Base {
4
12
  constructor({ db }: {
5
13
  db: DatabaseStore;
6
14
  });
7
- create(param: {
8
- first_name: string;
9
- last_name: string;
10
- email: string;
11
- active: boolean;
12
- raw: any;
13
- }): Promise<{
15
+ create({ directoryId, first_name, last_name, email, active, raw, }: CreateUserPayload): Promise<{
14
16
  data: User | null;
15
17
  error: ApiError | null;
16
18
  }>;
@@ -32,16 +34,16 @@ export declare class Users extends Base {
32
34
  data: null;
33
35
  error: ApiError | null;
34
36
  }>;
35
- list({ pageOffset, pageLimit, }: {
36
- pageOffset?: number;
37
- pageLimit?: number;
38
- }): Promise<{
37
+ search(userName: string, directoryId: string): Promise<{
39
38
  data: User[] | null;
40
39
  error: ApiError | null;
41
40
  }>;
42
- search(userName: string): Promise<{
41
+ getAll({ pageOffset, pageLimit, directoryId, }?: PaginationParams & {
42
+ directoryId?: string;
43
+ }): Promise<{
43
44
  data: User[] | null;
44
45
  error: ApiError | null;
45
46
  }>;
46
47
  clear(): Promise<void>;
47
48
  }
49
+ export {};
@@ -12,15 +12,19 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.Users = void 0;
13
13
  const error_1 = require("../controller/error");
14
14
  const Base_1 = require("./Base");
15
+ const utils_1 = require("../db/utils");
16
+ const indexNames = {
17
+ directoryIdUsername: 'directoryIdUsername',
18
+ directoryId: 'directoryId',
19
+ };
15
20
  class Users extends Base_1.Base {
16
21
  constructor({ db }) {
17
22
  super({ db });
18
23
  }
19
24
  // Create a new user
20
- create(param) {
25
+ create({ directoryId, first_name, last_name, email, active, raw, }) {
21
26
  return __awaiter(this, void 0, void 0, function* () {
22
27
  try {
23
- const { first_name, last_name, email, active, raw } = param;
24
28
  const id = this.createId();
25
29
  raw['id'] = id;
26
30
  const user = {
@@ -32,8 +36,11 @@ class Users extends Base_1.Base {
32
36
  raw,
33
37
  };
34
38
  yield this.store('users').put(id, user, {
35
- name: 'userName',
36
- value: email,
39
+ name: indexNames.directoryIdUsername,
40
+ value: (0, utils_1.keyFromParts)(directoryId, email),
41
+ }, {
42
+ name: indexNames.directoryId,
43
+ value: directoryId,
37
44
  });
38
45
  return { data: user, error: null };
39
46
  }
@@ -95,11 +102,14 @@ class Users extends Base_1.Base {
95
102
  }
96
103
  });
97
104
  }
98
- // Get all users in a directory
99
- list({ pageOffset, pageLimit, }) {
105
+ // Search users by userName
106
+ search(userName, directoryId) {
100
107
  return __awaiter(this, void 0, void 0, function* () {
101
108
  try {
102
- const users = (yield this.store('users').getAll(pageOffset, pageLimit));
109
+ const users = yield this.store('users').getByIndex({
110
+ name: indexNames.directoryIdUsername,
111
+ value: (0, utils_1.keyFromParts)(directoryId, userName),
112
+ });
103
113
  return { data: users, error: null };
104
114
  }
105
115
  catch (err) {
@@ -107,11 +117,21 @@ class Users extends Base_1.Base {
107
117
  }
108
118
  });
109
119
  }
110
- // Search users by userName
111
- search(userName) {
120
+ // Get all users in a directory
121
+ getAll({ pageOffset, pageLimit, directoryId, } = {}) {
112
122
  return __awaiter(this, void 0, void 0, function* () {
113
123
  try {
114
- const users = (yield this.store('users').getByIndex({ name: 'userName', value: userName }));
124
+ let users = [];
125
+ // Filter by directoryId
126
+ if (directoryId) {
127
+ users = yield this.store('users').getByIndex({
128
+ name: indexNames.directoryId,
129
+ value: directoryId,
130
+ }, pageOffset, pageLimit);
131
+ }
132
+ else {
133
+ users = yield this.store('users').getAll(pageOffset, pageLimit);
134
+ }
115
135
  return { data: users, error: null };
116
136
  }
117
137
  catch (err) {
@@ -120,9 +140,10 @@ class Users extends Base_1.Base {
120
140
  });
121
141
  }
122
142
  // Clear all the users
143
+ // This is used for testing
123
144
  clear() {
124
145
  return __awaiter(this, void 0, void 0, function* () {
125
- const { data: users, error } = yield this.list({});
146
+ const { data: users, error } = yield this.getAll();
126
147
  if (!users || error) {
127
148
  return;
128
149
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Users.js","sourceRoot":"","sources":["../../src/directory-sync/Users.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Users.js","sourceRoot":"","sources":["../../src/directory-sync/Users.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,13 @@
1
- import type { Directory, DatabaseStore, WebhookEventLog, DirectorySyncEvent, IWebhookEventsLogger } from '../typings';
1
+ import type { Directory, DatabaseStore, WebhookEventLog, DirectorySyncEvent, PaginationParams } from '../typings';
2
2
  import { Base } from './Base';
3
- export declare class WebhookEventsLogger extends Base implements IWebhookEventsLogger {
3
+ export declare class WebhookEventsLogger extends Base {
4
4
  constructor({ db }: {
5
5
  db: DatabaseStore;
6
6
  });
7
7
  log(directory: Directory, event: DirectorySyncEvent): Promise<WebhookEventLog>;
8
8
  get(id: string): Promise<WebhookEventLog>;
9
- getAll({ pageOffset, pageLimit, }: {
10
- pageOffset?: number;
11
- pageLimit?: number;
9
+ getAll({ pageOffset, pageLimit, directoryId, }?: PaginationParams & {
10
+ directoryId?: string;
12
11
  }): Promise<WebhookEventLog[]>;
13
12
  delete(id: string): Promise<void>;
14
13
  clear(): Promise<void>;
@@ -19,7 +19,10 @@ class WebhookEventsLogger extends Base_1.Base {
19
19
  return __awaiter(this, void 0, void 0, function* () {
20
20
  const id = this.createId();
21
21
  const log = Object.assign(Object.assign({}, event), { id, webhook_endpoint: directory.webhook.endpoint, created_at: new Date() });
22
- yield this.store('logs').put(id, log);
22
+ yield this.store('logs').put(id, log, {
23
+ name: 'directoryId',
24
+ value: directory.id,
25
+ });
23
26
  return log;
24
27
  });
25
28
  }
@@ -28,8 +31,14 @@ class WebhookEventsLogger extends Base_1.Base {
28
31
  return yield this.store('logs').get(id);
29
32
  });
30
33
  }
31
- getAll({ pageOffset, pageLimit, }) {
34
+ getAll({ pageOffset, pageLimit, directoryId, } = {}) {
32
35
  return __awaiter(this, void 0, void 0, function* () {
36
+ if (directoryId) {
37
+ return (yield this.store('logs').getByIndex({
38
+ name: 'directoryId',
39
+ value: directoryId,
40
+ }, pageOffset, pageLimit));
41
+ }
33
42
  return (yield this.store('logs').getAll(pageOffset, pageLimit));
34
43
  });
35
44
  }
@@ -1 +1 @@
1
- {"version":3,"file":"WebhookEventsLogger.js","sourceRoot":"","sources":["../../src/directory-sync/WebhookEventsLogger.ts"],"names":[],"mappings":";;;;;;;;;;;;AAOA,iCAA8B;AAE9B,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;;YAC9D,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAE3B,MAAM,GAAG,mCACJ,KAAK,KACR,EAAE,EACF,gBAAgB,EAAE,SAAS,CAAC,OAAO,CAAC,QAAQ,EAC5C,UAAU,EAAE,IAAI,IAAI,EAAE,GACvB,CAAC;YAEF,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;YAEtC,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;IAEY,MAAM,CAAC,EAClB,UAAU,EACV,SAAS,GAIV;;YACC,OAAO,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,CAAsB,CAAC;QACvF,CAAC;KAAA;IAEY,MAAM,CAAC,EAAU;;YAC5B,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACtC,CAAC;KAAA;IAEY,KAAK;;YAChB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAErC,MAAM,OAAO,CAAC,GAAG,CACf,MAAM,CAAC,GAAG,CAAC,CAAO,KAAK,EAAE,EAAE;gBACzB,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC9B,CAAC,CAAA,CAAC,CACH,CAAC;QACJ,CAAC;KAAA;IAEY,YAAY,CAAC,GAAoB,EAAE,UAAkB;;YAChE,MAAM,UAAU,mCACX,GAAG,KACN,WAAW,EAAE,UAAU,EACvB,SAAS,EAAE,UAAU,KAAK,GAAG,GAC9B,CAAC;YAEF,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;YAEjD,OAAO,UAAU,CAAC;QACpB,CAAC;KAAA;CACF;AA3DD,kDA2DC"}
1
+ {"version":3,"file":"WebhookEventsLogger.js","sourceRoot":"","sources":["../../src/directory-sync/WebhookEventsLogger.ts"],"names":[],"mappings":";;;;;;;;;;;;AAOA,iCAA8B;AAE9B,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;;YAC9D,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAE3B,MAAM,GAAG,mCACJ,KAAK,KACR,EAAE,EACF,gBAAgB,EAAE,SAAS,CAAC,OAAO,CAAC,QAAQ,EAC5C,UAAU,EAAE,IAAI,IAAI,EAAE,GACvB,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;IAEY,MAAM,CAAC,EAClB,UAAU,EACV,SAAS,EACT,WAAW,MAGT,EAAE;;YACJ,IAAI,WAAW,EAAE;gBACf,OAAO,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,UAAU,CACzC;oBACE,IAAI,EAAE,aAAa;oBACnB,KAAK,EAAE,WAAW;iBACnB,EACD,UAAU,EACV,SAAS,CACV,CAAsB,CAAC;aACzB;YAED,OAAO,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,CAAsB,CAAC;QACvF,CAAC;KAAA;IAEY,MAAM,CAAC,EAAU;;YAC5B,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACtC,CAAC;KAAA;IAEY,KAAK;;YAChB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAErC,MAAM,OAAO,CAAC,GAAG,CACf,MAAM,CAAC,GAAG,CAAC,CAAO,KAAK,EAAE,EAAE;gBACzB,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC9B,CAAC,CAAA,CAAC,CACH,CAAC;QACJ,CAAC;KAAA;IAEY,YAAY,CAAC,GAAoB,EAAE,UAAkB;;YAChE,MAAM,UAAU,mCACX,GAAG,KACN,WAAW,EAAE,UAAU,EACvB,SAAS,EAAE,UAAU,KAAK,GAAG,GAC9B,CAAC;YAEF,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;YAEjD,OAAO,UAAU,CAAC;QACpB,CAAC;KAAA;CACF;AAzED,kDAyEC"}
@@ -1,7 +1,7 @@
1
- import type { DirectorySyncEventType, Directory, User, Group, EventCallback, DirectorySyncEvent, DirectoryConfig, IWebhookEventsLogger } from '../typings';
1
+ import type { DirectorySyncEventType, Directory, User, Group, EventCallback, DirectorySyncEvent, IWebhookEventsLogger, IDirectoryConfig } from '../typings';
2
2
  export declare const sendEvent: (event: DirectorySyncEventType, payload: {
3
3
  directory: Directory;
4
4
  group?: Group | null;
5
5
  user?: User | null;
6
6
  }, callback?: EventCallback) => Promise<void>;
7
- export declare const handleEventCallback: (directories: DirectoryConfig, webhookEventsLogger: IWebhookEventsLogger) => Promise<(event: DirectorySyncEvent) => Promise<void>>;
7
+ export declare const handleEventCallback: (directories: IDirectoryConfig, webhookEventsLogger: IWebhookEventsLogger) => Promise<(event: DirectorySyncEvent) => Promise<void>>;
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/directory-sync/events.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAUA,mCAA8D;AAC9D,kDAA0B;AAEnB,MAAM,SAAS,GAAG,CACvB,KAA6B,EAC7B,OAA2E,EAC3E,QAAwB,EACxB,EAAE;IACF,MAAM,gBAAgB,GAAG,IAAA,6BAAqB,EAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAE/D,OAAO,QAAQ,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;AACzE,CAAC,CAAA,CAAC;AARW,QAAA,SAAS,aAQpB;AAEK,MAAM,mBAAmB,GAAG,CACjC,WAA4B,EAC5B,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,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC;QAE9B,8DAA8D;QAC9D,IAAI,OAAO,CAAC,QAAQ,KAAK,EAAE,EAAE;YAC3B,OAAO;SACR;QAED,mBAAmB,CAAC,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAEzD,MAAM,OAAO,GAAG,MAAM,IAAA,oBAAY,EAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAE1D,yDAAyD;QACzD,MAAM,GAAG,GAAG,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC,MAAM,mBAAmB,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAEvG,IAAI,MAAM,GAAG,GAAG,CAAC;QAEjB,IAAI;YACF,MAAM,eAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE;gBACxC,OAAO;aACR,CAAC,CAAC;SACJ;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,GAAG,EAAE;YACP,MAAM,mBAAmB,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;SACrD;IACH,CAAC,CAAA,CAAC;AACJ,CAAC,CAAA,CAAC;AAzCW,QAAA,mBAAmB,uBAyC9B"}
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/directory-sync/events.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAUA,mCAA8D;AAC9D,kDAA0B;AAEnB,MAAM,SAAS,GAAG,CACvB,KAA6B,EAC7B,OAA2E,EAC3E,QAAwB,EACxB,EAAE;IACF,MAAM,gBAAgB,GAAG,IAAA,6BAAqB,EAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAE/D,OAAO,QAAQ,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;AACzE,CAAC,CAAA,CAAC;AARW,QAAA,SAAS,aAQpB;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,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC;QAE9B,8DAA8D;QAC9D,IAAI,OAAO,CAAC,QAAQ,KAAK,EAAE,EAAE;YAC3B,OAAO;SACR;QAED,mBAAmB,CAAC,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAEzD,MAAM,OAAO,GAAG,MAAM,IAAA,oBAAY,EAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAE1D,yDAAyD;QACzD,MAAM,GAAG,GAAG,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC,MAAM,mBAAmB,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAEvG,IAAI,MAAM,GAAG,GAAG,CAAC;QAEjB,IAAI;YACF,MAAM,eAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE;gBACxC,OAAO;aACR,CAAC,CAAC;SACJ;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,GAAG,EAAE;YACP,MAAM,mBAAmB,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;SACrD;IACH,CAAC,CAAA,CAAC;AACJ,CAAC,CAAA,CAAC;AAzCW,QAAA,mBAAmB,uBAyC9B"}
@@ -1,6 +1,23 @@
1
- import type { DatabaseStore, IDirectorySyncController, JacksonOption } from '../typings';
2
- declare const directorySync: ({ db, opts, }: {
1
+ import type { DatabaseStore, JacksonOption } from '../typings';
2
+ import { DirectoryConfig } from './DirectoryConfig';
3
+ import { Users } from './Users';
4
+ import { Groups } from './Groups';
5
+ import { RequestHandler } from './request';
6
+ import { WebhookEventsLogger } from './WebhookEventsLogger';
7
+ declare const directorySync: ({ db, opts }: {
3
8
  db: DatabaseStore;
4
9
  opts: JacksonOption;
5
- }) => Promise<IDirectorySyncController>;
10
+ }) => Promise<{
11
+ users: Users;
12
+ groups: Groups;
13
+ directories: DirectoryConfig;
14
+ webhookLogs: WebhookEventsLogger;
15
+ requests: RequestHandler;
16
+ events: {
17
+ callback: (event: import("./types").DirectorySyncEvent) => Promise<void>;
18
+ };
19
+ providers: () => {
20
+ [K: string]: string;
21
+ };
22
+ }>;
6
23
  export default directorySync;
@@ -18,7 +18,7 @@ const utils_1 = require("./utils");
18
18
  const request_1 = require("./request");
19
19
  const events_1 = require("./events");
20
20
  const WebhookEventsLogger_1 = require("./WebhookEventsLogger");
21
- const directorySync = ({ db, opts, }) => __awaiter(void 0, void 0, void 0, function* () {
21
+ const directorySync = ({ db, opts }) => __awaiter(void 0, void 0, void 0, function* () {
22
22
  const directories = new DirectoryConfig_1.DirectoryConfig({ db, opts });
23
23
  const users = new Users_1.Users({ db });
24
24
  const groups = new Groups_1.Groups({ db });
@@ -30,7 +30,7 @@ const directorySync = ({ db, opts, }) => __awaiter(void 0, void 0, void 0, funct
30
30
  groups,
31
31
  directories,
32
32
  webhookLogs: webhookEventsLogger,
33
- requests: new request_1.DirectorySyncRequestHandler(directoryUsers, directoryGroups),
33
+ requests: new request_1.RequestHandler(directoryUsers, directoryGroups),
34
34
  events: {
35
35
  callback: yield (0, events_1.handleEventCallback)(directories, webhookEventsLogger),
36
36
  },
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/directory-sync/index.ts"],"names":[],"mappings":";;;;;;;;;;;AACA,uDAAoD;AACpD,qDAAkD;AAClD,uDAAoD;AACpD,mCAAgC;AAChC,qCAAkC;AAClC,mCAAoD;AACpD,uCAAwD;AACxD,qCAA+C;AAC/C,+DAA4D;AAE5D,MAAM,aAAa,GAAG,CAAO,EAC3B,EAAE,EACF,IAAI,GAIL,EAAqC,EAAE;IACtC,MAAM,WAAW,GAAG,IAAI,iCAAe,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IAEtD,MAAM,KAAK,GAAG,IAAI,aAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAChC,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAElC,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;IAE5E,MAAM,mBAAmB,GAAG,IAAI,yCAAmB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAE5D,OAAO;QACL,KAAK;QACL,MAAM;QACN,WAAW;QACX,WAAW,EAAE,mBAAmB;QAChC,QAAQ,EAAE,IAAI,qCAA2B,CAAC,cAAc,EAAE,eAAe,CAAC;QAC1E,MAAM,EAAE;YACN,QAAQ,EAAE,MAAM,IAAA,4BAAmB,EAAC,WAAW,EAAE,mBAAmB,CAAC;SACtE;QACD,SAAS,EAAE,GAAG,EAAE;YACd,OAAO,IAAA,iCAAyB,GAAE,CAAC;QACrC,CAAC;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":";;;;;;;;;;;AACA,uDAAoD;AACpD,qDAAkD;AAClD,uDAAoD;AACpD,mCAAgC;AAChC,qCAAkC;AAClC,mCAAoD;AACpD,uCAA2C;AAC3C,qCAA+C;AAC/C,+DAA4D;AAE5D,MAAM,aAAa,GAAG,CAAO,EAAE,EAAE,EAAE,IAAI,EAA8C,EAAE,EAAE;IACvF,MAAM,WAAW,GAAG,IAAI,iCAAe,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,MAAM,KAAK,GAAG,IAAI,aAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAChC,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAElC,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,mBAAmB,GAAG,IAAI,yCAAmB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAE5D,OAAO;QACL,KAAK;QACL,MAAM;QACN,WAAW;QACX,WAAW,EAAE,mBAAmB;QAChC,QAAQ,EAAE,IAAI,wBAAc,CAAC,cAAc,EAAE,eAAe,CAAC;QAC7D,MAAM,EAAE;YACN,QAAQ,EAAE,MAAM,IAAA,4BAAmB,EAAC,WAAW,EAAE,mBAAmB,CAAC;SACtE;QACD,SAAS,EAAE,GAAG,EAAE;YACd,OAAO,IAAA,iCAAyB,GAAE,CAAC;QACrC,CAAC;KACF,CAAC;AACJ,CAAC,CAAA,CAAC;AAEF,kBAAe,aAAa,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import type { DirectorySyncResponse, IDirectoryGroups, IDirectoryUsers, EventCallback, DirectorySyncRequest } from '../typings';
2
- export declare class DirectorySyncRequestHandler {
2
+ export declare class RequestHandler {
3
3
  private directoryUsers;
4
4
  private directoryGroups;
5
5
  constructor(directoryUsers: IDirectoryUsers, directoryGroups: IDirectoryGroups);
@@ -9,23 +9,24 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.DirectorySyncRequestHandler = void 0;
13
- class DirectorySyncRequestHandler {
12
+ exports.RequestHandler = void 0;
13
+ class RequestHandler {
14
14
  constructor(directoryUsers, directoryGroups) {
15
15
  this.directoryUsers = directoryUsers;
16
16
  this.directoryGroups = directoryGroups;
17
17
  }
18
18
  handle(request, callback) {
19
19
  return __awaiter(this, void 0, void 0, function* () {
20
- if (request.resourceType === 'users') {
20
+ const resourceType = request.resourceType.toLowerCase();
21
+ if (resourceType === 'users') {
21
22
  return yield this.directoryUsers.handleRequest(request, callback);
22
23
  }
23
- else if (request.resourceType === 'groups') {
24
+ else if (resourceType === 'groups') {
24
25
  return yield this.directoryGroups.handleRequest(request, callback);
25
26
  }
26
27
  return { status: 404, data: {} };
27
28
  });
28
29
  }
29
30
  }
30
- exports.DirectorySyncRequestHandler = DirectorySyncRequestHandler;
31
+ exports.RequestHandler = RequestHandler;
31
32
  //# sourceMappingURL=request.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"request.js","sourceRoot":"","sources":["../../src/directory-sync/request.ts"],"names":[],"mappings":";;;;;;;;;;;;AAQA,MAAa,2BAA2B;IACtC,YAAoB,cAA+B,EAAU,eAAiC;QAA1E,mBAAc,GAAd,cAAc,CAAiB;QAAU,oBAAe,GAAf,eAAe,CAAkB;IAAG,CAAC;IAE5F,MAAM,CAAC,OAA6B,EAAE,QAAwB;;YAClE,IAAI,OAAO,CAAC,YAAY,KAAK,OAAO,EAAE;gBACpC,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;aACnE;iBAAM,IAAI,OAAO,CAAC,YAAY,KAAK,QAAQ,EAAE;gBAC5C,OAAO,MAAM,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;aACpE;YAED,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;QACnC,CAAC;KAAA;CACF;AAZD,kEAYC"}
1
+ {"version":3,"file":"request.js","sourceRoot":"","sources":["../../src/directory-sync/request.ts"],"names":[],"mappings":";;;;;;;;;;;;AAQA,MAAa,cAAc;IACzB,YAAoB,cAA+B,EAAU,eAAiC;QAA1E,mBAAc,GAAd,cAAc,CAAiB;QAAU,oBAAe,GAAf,eAAe,CAAkB;IAAG,CAAC;IAE5F,MAAM,CAAC,OAA6B,EAAE,QAAwB;;YAClE,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;YAExD,IAAI,YAAY,KAAK,OAAO,EAAE;gBAC5B,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;aACnE;iBAAM,IAAI,YAAY,KAAK,QAAQ,EAAE;gBACpC,OAAO,MAAM,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;aACpE;YAED,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;QACnC,CAAC;KAAA;CACF;AAdD,wCAcC"}
@@ -0,0 +1,103 @@
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';
8
+ export type IDirectorySyncController = Awaited<ReturnType<typeof directorySync>>;
9
+ export type IDirectoryConfig = InstanceType<typeof DirectoryConfig>;
10
+ export type IDirectoryGroups = InstanceType<typeof DirectoryGroups>;
11
+ export type IDirectoryUsers = InstanceType<typeof DirectoryUsers>;
12
+ export type IUsers = InstanceType<typeof Users>;
13
+ export type IGroups = InstanceType<typeof Groups>;
14
+ export type IWebhookEventsLogger = InstanceType<typeof WebhookEventsLogger>;
15
+ export type DirectorySyncEventType = 'user.created' | 'user.updated' | 'user.deleted' | 'group.created' | 'group.updated' | 'group.deleted' | 'group.user_added' | 'group.user_removed';
16
+ export declare enum DirectorySyncProviders {
17
+ 'azure-scim-v2' = "Azure SCIM v2.0",
18
+ 'onelogin-scim-v2' = "OneLogin SCIM v2.0",
19
+ 'okta-scim-v2' = "Okta SCIM v2.0",
20
+ 'jumpcloud-scim-v2' = "JumpCloud v2.0",
21
+ 'generic-scim-v2' = "SCIM Generic v2.0"
22
+ }
23
+ export type DirectoryType = keyof typeof DirectorySyncProviders;
24
+ export type Directory = {
25
+ id: string;
26
+ name: string;
27
+ tenant: string;
28
+ product: string;
29
+ type: DirectoryType;
30
+ log_webhook_events: boolean;
31
+ scim: {
32
+ path: string;
33
+ endpoint?: string;
34
+ secret: string;
35
+ };
36
+ webhook: {
37
+ endpoint: string;
38
+ secret: string;
39
+ };
40
+ };
41
+ export type DirectorySyncGroupMember = {
42
+ value: string;
43
+ email?: string;
44
+ };
45
+ export type DirectorySyncResponse = {
46
+ status: number;
47
+ data?: any;
48
+ };
49
+ export interface DirectorySyncRequestHandler {
50
+ handle(request: DirectorySyncRequest, callback?: EventCallback): Promise<DirectorySyncResponse>;
51
+ }
52
+ export interface Events {
53
+ handle(event: DirectorySyncEvent): Promise<void>;
54
+ }
55
+ export interface DirectorySyncRequest {
56
+ method: string;
57
+ body: any | undefined;
58
+ directoryId: Directory['id'];
59
+ resourceType: string;
60
+ resourceId: string | undefined;
61
+ apiSecret: string | null;
62
+ query: {
63
+ count?: number;
64
+ startIndex?: number;
65
+ filter?: string;
66
+ };
67
+ }
68
+ export interface DirectorySyncEvent {
69
+ directory_id: Directory['id'];
70
+ event: DirectorySyncEventType;
71
+ data: User | Group | (User & {
72
+ group: Group;
73
+ });
74
+ tenant: string;
75
+ product: string;
76
+ }
77
+ export interface EventCallback {
78
+ (event: DirectorySyncEvent): Promise<void>;
79
+ }
80
+ export interface WebhookEventLog extends DirectorySyncEvent {
81
+ id: string;
82
+ webhook_endpoint: string;
83
+ created_at: Date;
84
+ status_code?: number;
85
+ delivered?: boolean;
86
+ }
87
+ export type User = {
88
+ id: string;
89
+ email: string;
90
+ first_name: string;
91
+ last_name: string;
92
+ active: boolean;
93
+ raw?: any;
94
+ };
95
+ export type Group = {
96
+ id: string;
97
+ name: string;
98
+ raw?: any;
99
+ };
100
+ export type PaginationParams = {
101
+ pageOffset?: number;
102
+ pageLimit?: number;
103
+ };
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DirectorySyncProviders = void 0;
4
+ var DirectorySyncProviders;
5
+ (function (DirectorySyncProviders) {
6
+ DirectorySyncProviders["azure-scim-v2"] = "Azure SCIM v2.0";
7
+ DirectorySyncProviders["onelogin-scim-v2"] = "OneLogin SCIM v2.0";
8
+ DirectorySyncProviders["okta-scim-v2"] = "Okta SCIM v2.0";
9
+ DirectorySyncProviders["jumpcloud-scim-v2"] = "JumpCloud v2.0";
10
+ DirectorySyncProviders["generic-scim-v2"] = "SCIM Generic v2.0";
11
+ })(DirectorySyncProviders = exports.DirectorySyncProviders || (exports.DirectorySyncProviders = {}));
12
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/directory-sync/types.ts"],"names":[],"mappings":";;;AA0BA,IAAY,sBAMX;AAND,WAAY,sBAAsB;IAChC,2DAAmC,CAAA;IACnC,iEAAyC,CAAA;IACzC,yDAAiC,CAAA;IACjC,8DAAsC,CAAA;IACtC,+DAAuC,CAAA;AACzC,CAAC,EANW,sBAAsB,GAAtB,8BAAsB,KAAtB,8BAAsB,QAMjC"}