@boxyhq/saml-jackson 1.9.2 → 1.9.5

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 (115) hide show
  1. package/dist/controller/admin.d.ts +10 -4
  2. package/dist/controller/admin.js +6 -6
  3. package/dist/controller/admin.js.map +1 -1
  4. package/dist/controller/api.d.ts +3 -1
  5. package/dist/controller/api.js +19 -12
  6. package/dist/controller/api.js.map +1 -1
  7. package/dist/controller/connection/saml.js +2 -2
  8. package/dist/controller/connection/saml.js.map +1 -1
  9. package/dist/controller/logout.js +4 -4
  10. package/dist/controller/logout.js.map +1 -1
  11. package/dist/controller/oauth.js +4 -3
  12. package/dist/controller/oauth.js.map +1 -1
  13. package/dist/controller/saml-handler.js +4 -4
  14. package/dist/controller/saml-handler.js.map +1 -1
  15. package/dist/controller/setup-link.d.ts +4 -1
  16. package/dist/controller/setup-link.js +8 -8
  17. package/dist/controller/setup-link.js.map +1 -1
  18. package/dist/controller/utils.d.ts +16 -2
  19. package/dist/controller/utils.js +11 -8
  20. package/dist/controller/utils.js.map +1 -1
  21. package/dist/db/db.d.ts +4 -3
  22. package/dist/db/db.js +24 -10
  23. package/dist/db/db.js.map +1 -1
  24. package/dist/db/defaultDb.js +4 -0
  25. package/dist/db/defaultDb.js.map +1 -1
  26. package/dist/db/dynamoDb.d.ts +18 -0
  27. package/dist/db/dynamoDb.js +336 -0
  28. package/dist/db/dynamoDb.js.map +1 -0
  29. package/dist/db/mem.d.ts +4 -3
  30. package/dist/db/mem.js +15 -5
  31. package/dist/db/mem.js.map +1 -1
  32. package/dist/db/mongo.d.ts +4 -3
  33. package/dist/db/mongo.js +16 -5
  34. package/dist/db/mongo.js.map +1 -1
  35. package/dist/db/planetscale/entity/JacksonIndex.js.map +1 -1
  36. package/dist/db/planetscale/entity/JacksonStore.js.map +1 -1
  37. package/dist/db/planetscale/entity/JacksonTTL.js.map +1 -1
  38. package/dist/db/redis.d.ts +4 -3
  39. package/dist/db/redis.js +26 -5
  40. package/dist/db/redis.js.map +1 -1
  41. package/dist/db/sql/entity/JacksonIndex.js.map +1 -1
  42. package/dist/db/sql/entity/JacksonStore.js.map +1 -1
  43. package/dist/db/sql/entity/JacksonTTL.js.map +1 -1
  44. package/dist/db/sql/mariadb/entity/JacksonIndex.js.map +1 -1
  45. package/dist/db/sql/mariadb/entity/JacksonStore.js.map +1 -1
  46. package/dist/db/sql/mariadb/entity/JacksonTTL.js.map +1 -1
  47. package/dist/db/sql/mssql/entity/JacksonIndex.js.map +1 -1
  48. package/dist/db/sql/mssql/entity/JacksonStore.js.map +1 -1
  49. package/dist/db/sql/mssql/entity/JacksonTTL.js.map +1 -1
  50. package/dist/db/sql/sql.d.ts +4 -3
  51. package/dist/db/sql/sql.js +33 -4
  52. package/dist/db/sql/sql.js.map +1 -1
  53. package/dist/db/store.js +9 -4
  54. package/dist/db/store.js.map +1 -1
  55. package/dist/directory-sync/Base.d.ts +1 -0
  56. package/dist/directory-sync/Base.js +1 -0
  57. package/dist/directory-sync/Base.js.map +1 -1
  58. package/dist/directory-sync/DirectoryConfig.d.ts +22 -8
  59. package/dist/directory-sync/DirectoryConfig.js +38 -15
  60. package/dist/directory-sync/DirectoryConfig.js.map +1 -1
  61. package/dist/directory-sync/DirectoryGroups.d.ts +4 -5
  62. package/dist/directory-sync/DirectoryGroups.js +55 -77
  63. package/dist/directory-sync/DirectoryGroups.js.map +1 -1
  64. package/dist/directory-sync/DirectoryUsers.js +6 -6
  65. package/dist/directory-sync/DirectoryUsers.js.map +1 -1
  66. package/dist/directory-sync/Groups.d.ts +3 -2
  67. package/dist/directory-sync/Groups.js +48 -18
  68. package/dist/directory-sync/Groups.js.map +1 -1
  69. package/dist/directory-sync/Users.d.ts +1 -1
  70. package/dist/directory-sync/Users.js +18 -14
  71. package/dist/directory-sync/Users.js.map +1 -1
  72. package/dist/directory-sync/WebhookEventsLogger.d.ts +7 -6
  73. package/dist/directory-sync/WebhookEventsLogger.js +26 -18
  74. package/dist/directory-sync/WebhookEventsLogger.js.map +1 -1
  75. package/dist/directory-sync/events.js +7 -18
  76. package/dist/directory-sync/events.js.map +1 -1
  77. package/dist/directory-sync/index.d.ts +3 -2
  78. package/dist/directory-sync/index.js +6 -5
  79. package/dist/directory-sync/index.js.map +1 -1
  80. package/dist/directory-sync/transform.d.ts +9 -5
  81. package/dist/directory-sync/transform.js +26 -2
  82. package/dist/directory-sync/transform.js.map +1 -1
  83. package/dist/directory-sync/types.d.ts +24 -4
  84. package/dist/directory-sync/utils.d.ts +23 -26
  85. package/dist/directory-sync/utils.js +50 -86
  86. package/dist/directory-sync/utils.js.map +1 -1
  87. package/dist/ee/federated-saml/app.d.ts +4 -3
  88. package/dist/ee/federated-saml/app.js +4 -4
  89. package/dist/ee/federated-saml/app.js.map +1 -1
  90. package/dist/event/axios.d.ts +2 -0
  91. package/dist/event/axios.js +32 -0
  92. package/dist/event/axios.js.map +1 -0
  93. package/dist/event/index.d.ts +10 -0
  94. package/dist/event/index.js +54 -0
  95. package/dist/event/index.js.map +1 -0
  96. package/dist/event/types.d.ts +21 -0
  97. package/dist/event/types.js +3 -0
  98. package/dist/event/types.js.map +1 -0
  99. package/dist/event/utils.d.ts +4 -0
  100. package/dist/event/utils.js +39 -0
  101. package/dist/event/utils.js.map +1 -0
  102. package/dist/event/webhook.d.ts +3 -0
  103. package/dist/event/webhook.js +39 -0
  104. package/dist/event/webhook.js.map +1 -0
  105. package/dist/index.js +4 -2
  106. package/dist/index.js.map +1 -1
  107. package/dist/loadConnection.js +1 -2
  108. package/dist/loadConnection.js.map +1 -1
  109. package/dist/saml-tracer/index.d.ts +2 -2
  110. package/dist/saml-tracer/index.js +5 -4
  111. package/dist/saml-tracer/index.js.map +1 -1
  112. package/dist/typings.d.ts +25 -7
  113. package/dist/typings.js +1 -0
  114. package/dist/typings.js.map +1 -1
  115. package/package.json +13 -10
@@ -111,6 +111,7 @@ class Groups extends Base_1.Base {
111
111
  throw error;
112
112
  }
113
113
  yield this.store('groups').delete(id);
114
+ yield this.removeAllUsers(id);
114
115
  return { data: null, error: null };
115
116
  }
116
117
  catch (err) {
@@ -121,7 +122,7 @@ class Groups extends Base_1.Base {
121
122
  // Get all users in a group
122
123
  getAllUsers(groupId) {
123
124
  return __awaiter(this, void 0, void 0, function* () {
124
- const users = yield this.store('members').getByIndex({
125
+ const { data: users } = yield this.store('members').getByIndex({
125
126
  name: 'groupId',
126
127
  value: groupId,
127
128
  });
@@ -136,6 +137,7 @@ class Groups extends Base_1.Base {
136
137
  return __awaiter(this, void 0, void 0, function* () {
137
138
  const id = dbutils.keyDigest(dbutils.keyFromParts(groupId, userId));
138
139
  yield this.store('members').put(id, {
140
+ id: id,
139
141
  group_id: groupId,
140
142
  user_id: userId,
141
143
  }, {
@@ -151,18 +153,6 @@ class Groups extends Base_1.Base {
151
153
  yield this.store('members').delete(id);
152
154
  });
153
155
  }
154
- // Remove all users from a group
155
- removeAllUsers(groupId) {
156
- return __awaiter(this, void 0, void 0, function* () {
157
- const users = yield this.getAllUsers(groupId);
158
- if (users.length === 0) {
159
- return;
160
- }
161
- for (const user of users) {
162
- yield this.removeUserFromGroup(groupId, user.user_id);
163
- }
164
- });
165
- }
166
156
  // Check if a user is a member of a group
167
157
  isUserInGroup(groupId, userId) {
168
158
  return __awaiter(this, void 0, void 0, function* () {
@@ -174,7 +164,7 @@ class Groups extends Base_1.Base {
174
164
  search(displayName, directoryId) {
175
165
  return __awaiter(this, void 0, void 0, function* () {
176
166
  try {
177
- const groups = yield this.store('groups').getByIndex({
167
+ const { data: groups } = yield this.store('groups').getByIndex({
178
168
  name: indexNames.directoryIdDisplayname,
179
169
  value: dbutils.keyFromParts(directoryId, displayName),
180
170
  });
@@ -186,19 +176,21 @@ class Groups extends Base_1.Base {
186
176
  });
187
177
  }
188
178
  // Get all groups in a directory
189
- getAll({ pageOffset, pageLimit, directoryId, } = {}) {
179
+ getAll(params) {
190
180
  return __awaiter(this, void 0, void 0, function* () {
181
+ const { pageOffset, pageLimit, directoryId } = params;
191
182
  try {
192
183
  let groups = [];
193
184
  // Filter by directoryId
194
185
  if (directoryId) {
195
- groups = yield this.store('groups').getByIndex({
186
+ const index = {
196
187
  name: indexNames.directoryId,
197
188
  value: directoryId,
198
- }, pageOffset, pageLimit);
189
+ };
190
+ groups = (yield this.store('groups').getByIndex(index, pageOffset, pageLimit)).data;
199
191
  }
200
192
  else {
201
- groups = yield this.store('groups').getAll(pageOffset, pageLimit);
193
+ groups = (yield this.store('groups').getAll(pageOffset, pageLimit)).data;
202
194
  }
203
195
  return { data: groups, error: null };
204
196
  }
@@ -207,6 +199,44 @@ class Groups extends Base_1.Base {
207
199
  }
208
200
  });
209
201
  }
202
+ // Delete all groups from a directory
203
+ deleteAll(directoryId) {
204
+ return __awaiter(this, void 0, void 0, function* () {
205
+ const index = {
206
+ name: indexNames.directoryId,
207
+ value: directoryId,
208
+ };
209
+ // eslint-disable-next-line no-constant-condition
210
+ while (true) {
211
+ const { data: groups } = yield this.store('groups').getByIndex(index, 0, this.bulkDeleteBatchSize);
212
+ if (!groups || groups.length === 0) {
213
+ break;
214
+ }
215
+ const keys = groups.map((group) => group.id);
216
+ yield this.store('groups').deleteMany(keys);
217
+ for (const key of keys) {
218
+ yield this.removeAllUsers(key);
219
+ }
220
+ }
221
+ });
222
+ }
223
+ // Remove all users from a group
224
+ removeAllUsers(groupId) {
225
+ return __awaiter(this, void 0, void 0, function* () {
226
+ const index = {
227
+ name: 'groupId',
228
+ value: groupId,
229
+ };
230
+ // eslint-disable-next-line no-constant-condition
231
+ while (true) {
232
+ const { data: members } = yield this.store('members').getByIndex(index, 0, this.bulkDeleteBatchSize);
233
+ if (!members || members.length === 0) {
234
+ break;
235
+ }
236
+ yield this.store('members').deleteMany(members.map((member) => member.id));
237
+ }
238
+ });
239
+ }
210
240
  }
211
241
  exports.Groups = Groups;
212
242
  //# sourceMappingURL=Groups.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Groups.js","sourceRoot":"","sources":["../../src/directory-sync/Groups.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Groups.js","sourceRoot":"","sources":["../../src/directory-sync/Groups.ts"],"names":[],"mappings":"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"}
@@ -44,6 +44,6 @@ export declare class Users extends Base {
44
44
  data: User[] | null;
45
45
  error: ApiError | null;
46
46
  }>;
47
- clear(): Promise<void>;
47
+ deleteAll(directoryId: string): Promise<void>;
48
48
  }
49
49
  export {};
@@ -106,10 +106,10 @@ class Users extends Base_1.Base {
106
106
  search(userName, directoryId) {
107
107
  return __awaiter(this, void 0, void 0, function* () {
108
108
  try {
109
- const users = yield this.store('users').getByIndex({
109
+ const users = (yield this.store('users').getByIndex({
110
110
  name: indexNames.directoryIdUsername,
111
111
  value: (0, utils_1.keyFromParts)(directoryId, userName),
112
- });
112
+ })).data;
113
113
  return { data: users, error: null };
114
114
  }
115
115
  catch (err) {
@@ -124,13 +124,13 @@ class Users extends Base_1.Base {
124
124
  let users = [];
125
125
  // Filter by directoryId
126
126
  if (directoryId) {
127
- users = yield this.store('users').getByIndex({
127
+ users = (yield this.store('users').getByIndex({
128
128
  name: indexNames.directoryId,
129
129
  value: directoryId,
130
- }, pageOffset, pageLimit);
130
+ }, pageOffset, pageLimit)).data;
131
131
  }
132
132
  else {
133
- users = yield this.store('users').getAll(pageOffset, pageLimit);
133
+ users = (yield this.store('users').getAll(pageOffset, pageLimit)).data;
134
134
  }
135
135
  return { data: users, error: null };
136
136
  }
@@ -139,17 +139,21 @@ class Users extends Base_1.Base {
139
139
  }
140
140
  });
141
141
  }
142
- // Clear all the users
143
- // This is used for testing
144
- clear() {
142
+ // Delete all users from a directory
143
+ deleteAll(directoryId) {
145
144
  return __awaiter(this, void 0, void 0, function* () {
146
- const { data: users, error } = yield this.getAll();
147
- if (!users || error) {
148
- return;
145
+ const index = {
146
+ name: indexNames.directoryId,
147
+ value: directoryId,
148
+ };
149
+ // eslint-disable-next-line no-constant-condition
150
+ while (true) {
151
+ const { data: users } = yield this.store('users').getByIndex(index, 0, this.bulkDeleteBatchSize);
152
+ if (!users || users.length === 0) {
153
+ break;
154
+ }
155
+ yield this.store('users').deleteMany(users.map((user) => user.id));
149
156
  }
150
- yield Promise.all(users.map((user) => __awaiter(this, void 0, void 0, function* () {
151
- return this.delete(user.id);
152
- })));
153
157
  });
154
158
  }
155
159
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Users.js","sourceRoot":"","sources":["../../src/directory-sync/Users.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,+CAA6D;AAC7D,iCAA8B;AAC9B,uCAA2C;AAW3C,MAAM,UAAU,GAAG;IACjB,mBAAmB,EAAE,qBAAqB;IAC1C,WAAW,EAAE,aAAa;CAC3B,CAAC;AAEF,MAAa,KAAM,SAAQ,WAAI;IAC7B,YAAY,EAAE,EAAE,EAAyB;QACvC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAChB,CAAC;IAED,oBAAoB;IACP,MAAM,CAAC,EAClB,WAAW,EACX,UAAU,EACV,SAAS,EACT,KAAK,EACL,MAAM,EACN,GAAG,GACe;;YAClB,IAAI;gBACF,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAE3B,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;gBAEf,MAAM,IAAI,GAAG;oBACX,EAAE;oBACF,UAAU;oBACV,SAAS;oBACT,KAAK;oBACL,MAAM;oBACN,GAAG;iBACJ,CAAC;gBAEF,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,CAC3B,EAAE,EACF,IAAI,EACJ;oBACE,IAAI,EAAE,UAAU,CAAC,mBAAmB;oBACpC,KAAK,EAAE,IAAA,oBAAY,EAAC,WAAW,EAAE,KAAK,CAAC;iBACxC,EACD;oBACE,IAAI,EAAE,UAAU,CAAC,WAAW;oBAC5B,KAAK,EAAE,WAAW;iBACnB,CACF,CAAC;gBAEF,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;aACpC;YAAC,OAAO,GAAQ,EAAE;gBACjB,OAAO,IAAA,gBAAQ,EAAC,GAAG,CAAC,CAAC;aACtB;QACH,CAAC;KAAA;IAED,mBAAmB;IACN,GAAG,CAAC,EAAU;;YACzB,IAAI;gBACF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAE/C,IAAI,IAAI,KAAK,IAAI,EAAE;oBACjB,MAAM,IAAI,oBAAY,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;iBAC/C;gBAED,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;aACpC;YAAC,OAAO,GAAQ,EAAE;gBACjB,OAAO,IAAA,gBAAQ,EAAC,GAAG,CAAC,CAAC;aACtB;QACH,CAAC;KAAA;IAED,uBAAuB;IACV,MAAM,CACjB,EAAU,EACV,KAMC;;YAED,IAAI;gBACF,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;gBAE5D,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;gBAEf,MAAM,IAAI,GAAG;oBACX,EAAE;oBACF,UAAU;oBACV,SAAS;oBACT,KAAK;oBACL,MAAM;oBACN,GAAG;iBACJ,CAAC;gBAEF,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;gBAExC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;aACpC;YAAC,OAAO,GAAQ,EAAE;gBACjB,OAAO,IAAA,gBAAQ,EAAC,GAAG,CAAC,CAAC;aACtB;QACH,CAAC;KAAA;IAED,sBAAsB;IACT,MAAM,CAAC,EAAU;;YAC5B,IAAI;gBACF,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAE3C,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE;oBAClB,MAAM,KAAK,CAAC;iBACb;gBAED,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAErC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;aACpC;YAAC,OAAO,GAAQ,EAAE;gBACjB,OAAO,IAAA,gBAAQ,EAAC,GAAG,CAAC,CAAC;aACtB;QACH,CAAC;KAAA;IAED,2BAA2B;IACd,MAAM,CACjB,QAAgB,EAChB,WAAmB;;YAEnB,IAAI;gBACF,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC;oBACjD,IAAI,EAAE,UAAU,CAAC,mBAAmB;oBACpC,KAAK,EAAE,IAAA,oBAAY,EAAC,WAAW,EAAE,QAAQ,CAAC;iBAC3C,CAAC,CAAC;gBAEH,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;aACrC;YAAC,OAAO,GAAQ,EAAE;gBACjB,OAAO,IAAA,gBAAQ,EAAC,GAAG,CAAC,CAAC;aACtB;QACH,CAAC;KAAA;IAED,+BAA+B;IAClB,MAAM,CAAC,EAClB,UAAU,EACV,SAAS,EACT,WAAW,MAGT,EAAE;;YAIJ,IAAI;gBACF,IAAI,KAAK,GAAW,EAAE,CAAC;gBAEvB,wBAAwB;gBACxB,IAAI,WAAW,EAAE;oBACf,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,UAAU,CAC1C;wBACE,IAAI,EAAE,UAAU,CAAC,WAAW;wBAC5B,KAAK,EAAE,WAAW;qBACnB,EACD,UAAU,EACV,SAAS,CACV,CAAC;iBACH;qBAAM;oBACL,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;iBACjE;gBAED,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;aACrC;YAAC,OAAO,GAAQ,EAAE;gBACjB,OAAO,IAAA,gBAAQ,EAAC,GAAG,CAAC,CAAC;aACtB;QACH,CAAC;KAAA;IAED,sBAAsB;IACtB,2BAA2B;IACd,KAAK;;YAChB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;YAEnD,IAAI,CAAC,KAAK,IAAI,KAAK,EAAE;gBACnB,OAAO;aACR;YAED,MAAM,OAAO,CAAC,GAAG,CACf,KAAK,CAAC,GAAG,CAAC,CAAO,IAAI,EAAE,EAAE;gBACvB,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC9B,CAAC,CAAA,CAAC,CACH,CAAC;QACJ,CAAC;KAAA;CACF;AAlLD,sBAkLC"}
1
+ {"version":3,"file":"Users.js","sourceRoot":"","sources":["../../src/directory-sync/Users.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,16 @@
1
1
  import type { Directory, DatabaseStore, WebhookEventLog, DirectorySyncEvent, PaginationParams } from '../typings';
2
2
  import { Base } from './Base';
3
+ type GetAllParams = PaginationParams & {
4
+ directoryId?: string;
5
+ };
3
6
  export declare class WebhookEventsLogger extends Base {
4
7
  constructor({ db }: {
5
8
  db: DatabaseStore;
6
9
  });
7
- log(directory: Directory, event: DirectorySyncEvent): Promise<WebhookEventLog>;
10
+ log(directory: Directory, event: DirectorySyncEvent, status: number): Promise<WebhookEventLog>;
8
11
  get(id: string): Promise<WebhookEventLog>;
9
- getAll({ pageOffset, pageLimit, directoryId, }?: PaginationParams & {
10
- directoryId?: string;
11
- }): Promise<WebhookEventLog[]>;
12
+ getAll(params?: GetAllParams): Promise<WebhookEventLog[]>;
12
13
  delete(id: string): Promise<void>;
13
- clear(): Promise<void>;
14
- updateStatus(log: WebhookEventLog, statusCode: number): Promise<WebhookEventLog>;
14
+ deleteAll(directoryId: string): Promise<void>;
15
15
  }
16
+ export {};
@@ -15,10 +15,10 @@ class WebhookEventsLogger extends Base_1.Base {
15
15
  constructor({ db }) {
16
16
  super({ db });
17
17
  }
18
- log(directory, event) {
18
+ log(directory, event, status) {
19
19
  return __awaiter(this, void 0, void 0, function* () {
20
20
  const id = this.createId();
21
- const log = Object.assign(Object.assign({}, event), { id, webhook_endpoint: directory.webhook.endpoint, created_at: new Date() });
21
+ const log = Object.assign(Object.assign({}, event), { id, webhook_endpoint: directory.webhook.endpoint, created_at: new Date(), status_code: status, delivered: status === 200 });
22
22
  yield this.store('logs').put(id, log, {
23
23
  name: 'directoryId',
24
24
  value: directory.id,
@@ -31,15 +31,21 @@ class WebhookEventsLogger extends Base_1.Base {
31
31
  return yield this.store('logs').get(id);
32
32
  });
33
33
  }
34
- getAll({ pageOffset, pageLimit, directoryId, } = {}) {
34
+ getAll(params = {}) {
35
35
  return __awaiter(this, void 0, void 0, function* () {
36
+ const { pageOffset, pageLimit, directoryId } = params;
37
+ let eventLogs = [];
36
38
  if (directoryId) {
37
- return (yield this.store('logs').getByIndex({
39
+ const index = {
38
40
  name: 'directoryId',
39
41
  value: directoryId,
40
- }, pageOffset, pageLimit));
42
+ };
43
+ eventLogs = (yield this.store('logs').getByIndex(index, pageOffset, pageLimit)).data;
41
44
  }
42
- return (yield this.store('logs').getAll(pageOffset, pageLimit));
45
+ else {
46
+ eventLogs = (yield this.store('logs').getAll(pageOffset, pageLimit)).data;
47
+ }
48
+ return eventLogs;
43
49
  });
44
50
  }
45
51
  delete(id) {
@@ -47,19 +53,21 @@ class WebhookEventsLogger extends Base_1.Base {
47
53
  yield this.store('logs').delete(id);
48
54
  });
49
55
  }
50
- clear() {
51
- return __awaiter(this, void 0, void 0, function* () {
52
- const events = yield this.getAll({});
53
- yield Promise.all(events.map((event) => __awaiter(this, void 0, void 0, function* () {
54
- yield this.delete(event.id);
55
- })));
56
- });
57
- }
58
- updateStatus(log, statusCode) {
56
+ // Delete all event logs for a directory
57
+ deleteAll(directoryId) {
59
58
  return __awaiter(this, void 0, void 0, function* () {
60
- const updatedLog = Object.assign(Object.assign({}, log), { status_code: statusCode, delivered: statusCode === 200 });
61
- yield this.store('logs').put(log.id, updatedLog);
62
- return updatedLog;
59
+ const index = {
60
+ name: 'directoryId',
61
+ value: directoryId,
62
+ };
63
+ // eslint-disable-next-line no-constant-condition
64
+ while (true) {
65
+ const { data: events } = yield this.store('logs').getByIndex(index, 0, this.bulkDeleteBatchSize);
66
+ if (!events || events.length === 0) {
67
+ break;
68
+ }
69
+ yield this.store('logs').deleteMany(events.map((event) => event.id));
70
+ }
63
71
  });
64
72
  }
65
73
  }
@@ -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,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
+ {"version":3,"file":"WebhookEventsLogger.js","sourceRoot":"","sources":["../../src/directory-sync/WebhookEventsLogger.ts"],"names":[],"mappings":";;;;;;;;;;;;AAOA,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,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,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;IAEY,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;AAtED,kDAsEC"}
@@ -8,15 +8,12 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
10
  };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
11
  Object.defineProperty(exports, "__esModule", { value: true });
15
12
  exports.handleEventCallback = exports.sendEvent = void 0;
16
- const utils_1 = require("./utils");
17
- const axios_1 = __importDefault(require("axios"));
13
+ const webhook_1 = require("../event/webhook");
14
+ const transform_1 = require("./transform");
18
15
  const sendEvent = (event, payload, callback) => __awaiter(void 0, void 0, void 0, function* () {
19
- const eventTransformed = (0, utils_1.transformEventPayload)(event, payload);
16
+ const eventTransformed = (0, transform_1.transformEventPayload)(event, payload);
20
17
  return callback ? yield callback(eventTransformed) : Promise.resolve();
21
18
  });
22
19
  exports.sendEvent = sendEvent;
@@ -27,26 +24,18 @@ const handleEventCallback = (directories, webhookEventsLogger) => __awaiter(void
27
24
  if (!directory) {
28
25
  return;
29
26
  }
30
- const { webhook } = directory;
31
- // If there is no webhook, then we don't need to send an event
32
- if (webhook.endpoint === '') {
27
+ if (!directory.webhook.endpoint || !directory.webhook.secret) {
33
28
  return;
34
29
  }
35
- webhookEventsLogger.setTenantAndProduct(tenant, product);
36
- const headers = yield (0, utils_1.createHeader)(webhook.secret, event);
37
- // Log the events only if `log_webhook_events` is enabled
38
- const log = directory.log_webhook_events ? yield webhookEventsLogger.log(directory, event) : undefined;
39
30
  let status = 200;
40
31
  try {
41
- yield axios_1.default.post(webhook.endpoint, event, {
42
- headers,
43
- });
32
+ yield (0, webhook_1.sendPayloadToWebhook)(directory.webhook, event);
44
33
  }
45
34
  catch (err) {
46
35
  status = err.response ? err.response.status : 500;
47
36
  }
48
- if (log) {
49
- yield webhookEventsLogger.updateStatus(log, status);
37
+ if (directory.log_webhook_events) {
38
+ yield webhookEventsLogger.setTenantAndProduct(tenant, product).log(directory, event, status);
50
39
  }
51
40
  });
52
41
  });
@@ -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,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
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/directory-sync/events.ts"],"names":[],"mappings":";;;;;;;;;;;;AAUA,8CAAwD;AACxD,2CAAoD;AAE7C,MAAM,SAAS,GAAG,CACvB,KAA6B,EAC7B,OAA2E,EAC3E,QAAwB,EACxB,EAAE;IACF,MAAM,gBAAgB,GAAG,IAAA,iCAAqB,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,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,12 +1,13 @@
1
- import type { DatabaseStore, JacksonOption } from '../typings';
1
+ import type { DatabaseStore, JacksonOption, IEventController } from '../typings';
2
2
  import { DirectoryConfig } from './DirectoryConfig';
3
3
  import { Users } from './Users';
4
4
  import { Groups } from './Groups';
5
5
  import { RequestHandler } from './request';
6
6
  import { WebhookEventsLogger } from './WebhookEventsLogger';
7
- declare const directorySync: ({ db, opts }: {
7
+ declare const directorySync: (params: {
8
8
  db: DatabaseStore;
9
9
  opts: JacksonOption;
10
+ eventController: IEventController;
10
11
  }) => Promise<{
11
12
  users: Users;
12
13
  groups: Groups;
@@ -18,21 +18,22 @@ 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* () {
22
- const directories = new DirectoryConfig_1.DirectoryConfig({ db, opts });
21
+ const directorySync = (params) => __awaiter(void 0, void 0, void 0, function* () {
22
+ const { db, opts, eventController } = params;
23
23
  const users = new Users_1.Users({ db });
24
24
  const groups = new Groups_1.Groups({ db });
25
+ const logger = new WebhookEventsLogger_1.WebhookEventsLogger({ db });
26
+ const directories = new DirectoryConfig_1.DirectoryConfig({ db, opts, users, groups, logger, eventController });
25
27
  const directoryUsers = new DirectoryUsers_1.DirectoryUsers({ directories, users });
26
28
  const directoryGroups = new DirectoryGroups_1.DirectoryGroups({ directories, users, groups });
27
- const webhookEventsLogger = new WebhookEventsLogger_1.WebhookEventsLogger({ db });
28
29
  return {
29
30
  users,
30
31
  groups,
31
32
  directories,
32
- webhookLogs: webhookEventsLogger,
33
+ webhookLogs: logger,
33
34
  requests: new request_1.RequestHandler(directoryUsers, directoryGroups),
34
35
  events: {
35
- callback: yield (0, events_1.handleEventCallback)(directories, webhookEventsLogger),
36
+ callback: yield (0, events_1.handleEventCallback)(directories, logger),
36
37
  },
37
38
  providers: () => {
38
39
  return (0, utils_1.getDirectorySyncProviders)();
@@ -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,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
+ {"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,MAI5B,EAAE,EAAE;IACH,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,MAAM,GAAG,IAAI,yCAAmB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAC/C,MAAM,WAAW,GAAG,IAAI,iCAAe,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC;IAE9F,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,OAAO;QACL,KAAK;QACL,MAAM;QACN,WAAW;QACX,WAAW,EAAE,MAAM;QACnB,QAAQ,EAAE,IAAI,wBAAc,CAAC,cAAc,EAAE,eAAe,CAAC;QAC7D,MAAM,EAAE;YACN,QAAQ,EAAE,MAAM,IAAA,4BAAmB,EAAC,WAAW,EAAE,MAAM,CAAC;SACzD;QACD,SAAS,EAAE,GAAG,EAAE;YACd,OAAO,IAAA,iCAAyB,GAAE,CAAC;QACrC,CAAC;KACF,CAAC;AACJ,CAAC,CAAA,CAAC;AAEF,kBAAe,aAAa,CAAC"}
@@ -1,7 +1,11 @@
1
- import { Group, User } from '../typings';
2
- declare const transformUser: (user: User) => User;
3
- declare const transformGroup: (group: Group) => Group;
4
- declare const transformUserGroup: (user: User, group: Group) => User & {
1
+ import { Directory, DirectorySyncEvent, DirectorySyncEventType, Group, User } from '../typings';
2
+ export declare const transformUser: (user: User) => User;
3
+ export declare const transformGroup: (group: Group) => Group;
4
+ export declare const transformUserGroup: (user: User, group: Group) => User & {
5
5
  group: Group;
6
6
  };
7
- export { transformUser, transformGroup, transformUserGroup };
7
+ export declare const transformEventPayload: (event: DirectorySyncEventType, payload: {
8
+ directory: Directory;
9
+ group?: Group | null;
10
+ user?: User | null;
11
+ }) => DirectorySyncEvent;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.transformUserGroup = exports.transformGroup = exports.transformUser = void 0;
3
+ exports.transformEventPayload = exports.transformUserGroup = exports.transformGroup = exports.transformUser = void 0;
4
4
  const transformUser = (user) => {
5
5
  return {
6
6
  id: user.id,
@@ -21,7 +21,31 @@ const transformGroup = (group) => {
21
21
  };
22
22
  exports.transformGroup = transformGroup;
23
23
  const transformUserGroup = (user, group) => {
24
- return Object.assign(Object.assign({}, transformUser(user)), { group: transformGroup(group) });
24
+ return Object.assign(Object.assign({}, (0, exports.transformUser)(user)), { group: (0, exports.transformGroup)(group) });
25
25
  };
26
26
  exports.transformUserGroup = transformUserGroup;
27
+ const transformEventPayload = (event, payload) => {
28
+ const { directory, group, user } = payload;
29
+ const { tenant, product, id: directory_id } = directory;
30
+ const eventPayload = {
31
+ event,
32
+ tenant,
33
+ product,
34
+ directory_id,
35
+ };
36
+ // User events
37
+ if (['user.created', 'user.updated', 'user.deleted'].includes(event) && user) {
38
+ eventPayload['data'] = (0, exports.transformUser)(user);
39
+ }
40
+ // Group events
41
+ if (['group.created', 'group.updated', 'group.deleted'].includes(event) && group) {
42
+ eventPayload['data'] = (0, exports.transformGroup)(group);
43
+ }
44
+ // Group membership events
45
+ if (['group.user_added', 'group.user_removed'].includes(event) && user && group) {
46
+ eventPayload['data'] = (0, exports.transformUserGroup)(user, group);
47
+ }
48
+ return eventPayload;
49
+ };
50
+ exports.transformEventPayload = transformEventPayload;
27
51
  //# sourceMappingURL=transform.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"transform.js","sourceRoot":"","sources":["../../src/directory-sync/transform.ts"],"names":[],"mappings":";;;AAEA,MAAM,aAAa,GAAG,CAAC,IAAU,EAAQ,EAAE;IACzC,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;AAiBO,sCAAa;AAftB,MAAM,cAAc,GAAG,CAAC,KAAY,EAAS,EAAE;IAC7C,OAAO;QACL,EAAE,EAAE,KAAK,CAAC,EAAE;QACZ,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,GAAG,EAAE,KAAK,CAAC,GAAG;KACf,CAAC;AACJ,CAAC,CAAC;AASsB,wCAAc;AAPtC,MAAM,kBAAkB,GAAG,CAAC,IAAU,EAAE,KAAY,EAA2B,EAAE;IAC/E,uCACK,aAAa,CAAC,IAAI,CAAC,KACtB,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,IAC5B;AACJ,CAAC,CAAC;AAEsC,gDAAkB"}
1
+ {"version":3,"file":"transform.js","sourceRoot":"","sources":["../../src/directory-sync/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"}
@@ -65,12 +65,11 @@ export interface DirectorySyncRequest {
65
65
  filter?: string;
66
66
  };
67
67
  }
68
+ export type DirectorySyncEventData = User | Group | UserWithGroup;
68
69
  export interface DirectorySyncEvent {
69
70
  directory_id: Directory['id'];
70
71
  event: DirectorySyncEventType;
71
- data: User | Group | (User & {
72
- group: Group;
73
- });
72
+ data: DirectorySyncEventData;
74
73
  tenant: string;
75
74
  product: string;
76
75
  }
@@ -97,12 +96,16 @@ export type Group = {
97
96
  name: string;
98
97
  raw?: any;
99
98
  };
99
+ export type UserWithGroup = User & {
100
+ group: Group;
101
+ };
100
102
  export type PaginationParams = {
101
103
  pageOffset?: number;
102
104
  pageLimit?: number;
105
+ pageToken?: string;
103
106
  };
104
107
  export type UserPatchOperation = {
105
- op: 'replace';
108
+ op: 'replace' | 'add';
106
109
  path?: string;
107
110
  value: boolean | {
108
111
  active: boolean;
@@ -110,5 +113,22 @@ export type UserPatchOperation = {
110
113
  'name.givenName': string;
111
114
  } | {
112
115
  'name.familyName': string;
116
+ } | {
117
+ 'emails[type eq "work"].value': string;
118
+ } | {
119
+ [key: string]: string | boolean;
113
120
  };
114
121
  };
122
+ export type GroupPatchOperation = {
123
+ op: 'add' | 'remove' | 'replace';
124
+ path?: 'members' | 'displayName';
125
+ value: {
126
+ value: string;
127
+ display?: string;
128
+ }[];
129
+ };
130
+ export type GroupMembership = {
131
+ id: string;
132
+ group_id: string;
133
+ user_id: string;
134
+ };