@boxyhq/saml-jackson 1.33.1-beta.1 → 1.34.0

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 (278) hide show
  1. package/dist/typings.d.ts +1 -1
  2. package/package.json +1 -1
  3. package/dist/controller/oauth/oidc-issuer.d.ts +0 -2
  4. package/dist/controller/oauth/oidc-issuer.js +0 -25
  5. package/dist/controller/oauth/oidc-issuer.js.map +0 -1
  6. package/dist/src/controller/admin.d.ts +0 -27
  7. package/dist/src/controller/admin.js +0 -60
  8. package/dist/src/controller/admin.js.map +0 -1
  9. package/dist/src/controller/analytics.d.ts +0 -16
  10. package/dist/src/controller/analytics.js +0 -79
  11. package/dist/src/controller/analytics.js.map +0 -1
  12. package/dist/src/controller/api.d.ts +0 -557
  13. package/dist/src/controller/api.js +0 -806
  14. package/dist/src/controller/api.js.map +0 -1
  15. package/dist/src/controller/connection/oidc.d.ts +0 -7
  16. package/dist/src/controller/connection/oidc.js +0 -181
  17. package/dist/src/controller/connection/oidc.js.map +0 -1
  18. package/dist/src/controller/connection/saml.d.ts +0 -7
  19. package/dist/src/controller/connection/saml.js +0 -250
  20. package/dist/src/controller/connection/saml.js.map +0 -1
  21. package/dist/src/controller/error.d.ts +0 -10
  22. package/dist/src/controller/error.js +0 -13
  23. package/dist/src/controller/error.js.map +0 -1
  24. package/dist/src/controller/health-check.d.ts +0 -11
  25. package/dist/src/controller/health-check.js +0 -51
  26. package/dist/src/controller/health-check.js.map +0 -1
  27. package/dist/src/controller/logout.d.ts +0 -18
  28. package/dist/src/controller/logout.js +0 -132
  29. package/dist/src/controller/logout.js.map +0 -1
  30. package/dist/src/controller/oauth/allowed.d.ts +0 -1
  31. package/dist/src/controller/oauth/allowed.js +0 -30
  32. package/dist/src/controller/oauth/allowed.js.map +0 -1
  33. package/dist/src/controller/oauth/code-verifier.d.ts +0 -1
  34. package/dist/src/controller/oauth/code-verifier.js +0 -8
  35. package/dist/src/controller/oauth/code-verifier.js.map +0 -1
  36. package/dist/src/controller/oauth/oidc-client.d.ts +0 -12
  37. package/dist/src/controller/oauth/oidc-client.js +0 -89
  38. package/dist/src/controller/oauth/oidc-client.js.map +0 -1
  39. package/dist/src/controller/oauth/redirect.d.ts +0 -1
  40. package/dist/src/controller/oauth/redirect.js +0 -13
  41. package/dist/src/controller/oauth/redirect.js.map +0 -1
  42. package/dist/src/controller/oauth.d.ts +0 -142
  43. package/dist/src/controller/oauth.js +0 -1112
  44. package/dist/src/controller/oauth.js.map +0 -1
  45. package/dist/src/controller/oidc-discovery.d.ts +0 -22
  46. package/dist/src/controller/oidc-discovery.js +0 -47
  47. package/dist/src/controller/oidc-discovery.js.map +0 -1
  48. package/dist/src/controller/setup-link.d.ts +0 -307
  49. package/dist/src/controller/setup-link.js +0 -462
  50. package/dist/src/controller/setup-link.js.map +0 -1
  51. package/dist/src/controller/sp-config.d.ts +0 -22
  52. package/dist/src/controller/sp-config.js +0 -89
  53. package/dist/src/controller/sp-config.js.map +0 -1
  54. package/dist/src/controller/sso-handler.d.ts +0 -66
  55. package/dist/src/controller/sso-handler.js +0 -306
  56. package/dist/src/controller/sso-handler.js.map +0 -1
  57. package/dist/src/controller/utils.d.ts +0 -84
  58. package/dist/src/controller/utils.js +0 -328
  59. package/dist/src/controller/utils.js.map +0 -1
  60. package/dist/src/cron/lock.d.ts +0 -18
  61. package/dist/src/cron/lock.js +0 -98
  62. package/dist/src/cron/lock.js.map +0 -1
  63. package/dist/src/db/db.d.ts +0 -5
  64. package/dist/src/db/db.js +0 -178
  65. package/dist/src/db/db.js.map +0 -1
  66. package/dist/src/db/defaultDb.d.ts +0 -2
  67. package/dist/src/db/defaultDb.js +0 -18
  68. package/dist/src/db/defaultDb.js.map +0 -1
  69. package/dist/src/db/dynamoDb.d.ts +0 -19
  70. package/dist/src/db/dynamoDb.js +0 -320
  71. package/dist/src/db/dynamoDb.js.map +0 -1
  72. package/dist/src/db/encrypter.d.ts +0 -3
  73. package/dist/src/db/encrypter.js +0 -22
  74. package/dist/src/db/encrypter.js.map +0 -1
  75. package/dist/src/db/mem.d.ts +0 -23
  76. package/dist/src/db/mem.js +0 -186
  77. package/dist/src/db/mem.js.map +0 -1
  78. package/dist/src/db/mongo.d.ts +0 -22
  79. package/dist/src/db/mongo.js +0 -177
  80. package/dist/src/db/mongo.js.map +0 -1
  81. package/dist/src/db/planetscale/entity/JacksonIndex.d.ts +0 -5
  82. package/dist/src/db/planetscale/entity/JacksonIndex.js +0 -32
  83. package/dist/src/db/planetscale/entity/JacksonIndex.js.map +0 -1
  84. package/dist/src/db/planetscale/entity/JacksonStore.d.ts +0 -9
  85. package/dist/src/db/planetscale/entity/JacksonStore.js +0 -63
  86. package/dist/src/db/planetscale/entity/JacksonStore.js.map +0 -1
  87. package/dist/src/db/planetscale/entity/JacksonTTL.d.ts +0 -4
  88. package/dist/src/db/planetscale/entity/JacksonTTL.js +0 -27
  89. package/dist/src/db/planetscale/entity/JacksonTTL.js.map +0 -1
  90. package/dist/src/db/redis.d.ts +0 -18
  91. package/dist/src/db/redis.js +0 -214
  92. package/dist/src/db/redis.js.map +0 -1
  93. package/dist/src/db/sql/entity/JacksonIndex.d.ts +0 -7
  94. package/dist/src/db/sql/entity/JacksonIndex.js +0 -39
  95. package/dist/src/db/sql/entity/JacksonIndex.js.map +0 -1
  96. package/dist/src/db/sql/entity/JacksonStore.d.ts +0 -9
  97. package/dist/src/db/sql/entity/JacksonStore.js +0 -61
  98. package/dist/src/db/sql/entity/JacksonStore.js.map +0 -1
  99. package/dist/src/db/sql/entity/JacksonTTL.d.ts +0 -4
  100. package/dist/src/db/sql/entity/JacksonTTL.js +0 -27
  101. package/dist/src/db/sql/entity/JacksonTTL.js.map +0 -1
  102. package/dist/src/db/sql/mariadb/entity/JacksonIndex.d.ts +0 -7
  103. package/dist/src/db/sql/mariadb/entity/JacksonIndex.js +0 -39
  104. package/dist/src/db/sql/mariadb/entity/JacksonIndex.js.map +0 -1
  105. package/dist/src/db/sql/mariadb/entity/JacksonStore.d.ts +0 -9
  106. package/dist/src/db/sql/mariadb/entity/JacksonStore.js +0 -63
  107. package/dist/src/db/sql/mariadb/entity/JacksonStore.js.map +0 -1
  108. package/dist/src/db/sql/mariadb/entity/JacksonTTL.d.ts +0 -4
  109. package/dist/src/db/sql/mariadb/entity/JacksonTTL.js +0 -27
  110. package/dist/src/db/sql/mariadb/entity/JacksonTTL.js.map +0 -1
  111. package/dist/src/db/sql/mssql/entity/JacksonIndex.d.ts +0 -7
  112. package/dist/src/db/sql/mssql/entity/JacksonIndex.js +0 -39
  113. package/dist/src/db/sql/mssql/entity/JacksonIndex.js.map +0 -1
  114. package/dist/src/db/sql/mssql/entity/JacksonStore.d.ts +0 -9
  115. package/dist/src/db/sql/mssql/entity/JacksonStore.js +0 -61
  116. package/dist/src/db/sql/mssql/entity/JacksonStore.js.map +0 -1
  117. package/dist/src/db/sql/mssql/entity/JacksonTTL.d.ts +0 -4
  118. package/dist/src/db/sql/mssql/entity/JacksonTTL.js +0 -27
  119. package/dist/src/db/sql/mssql/entity/JacksonTTL.js.map +0 -1
  120. package/dist/src/db/sql/mssql.d.ts +0 -1
  121. package/dist/src/db/sql/mssql.js +0 -44
  122. package/dist/src/db/sql/mssql.js.map +0 -1
  123. package/dist/src/db/sql/sql.d.ts +0 -32
  124. package/dist/src/db/sql/sql.js +0 -318
  125. package/dist/src/db/sql/sql.js.map +0 -1
  126. package/dist/src/db/sql/sqlite/entity/JacksonIndex.d.ts +0 -7
  127. package/dist/src/db/sql/sqlite/entity/JacksonIndex.js +0 -39
  128. package/dist/src/db/sql/sqlite/entity/JacksonIndex.js.map +0 -1
  129. package/dist/src/db/sql/sqlite/entity/JacksonStore.d.ts +0 -9
  130. package/dist/src/db/sql/sqlite/entity/JacksonStore.js +0 -61
  131. package/dist/src/db/sql/sqlite/entity/JacksonStore.js.map +0 -1
  132. package/dist/src/db/sql/sqlite/entity/JacksonTTL.d.ts +0 -4
  133. package/dist/src/db/sql/sqlite/entity/JacksonTTL.js +0 -27
  134. package/dist/src/db/sql/sqlite/entity/JacksonTTL.js.map +0 -1
  135. package/dist/src/db/store.d.ts +0 -5
  136. package/dist/src/db/store.js +0 -65
  137. package/dist/src/db/store.js.map +0 -1
  138. package/dist/src/db/utils.d.ts +0 -16
  139. package/dist/src/db/utils.js +0 -28
  140. package/dist/src/db/utils.js.map +0 -1
  141. package/dist/src/directory-sync/batch-events/queue.d.ts +0 -40
  142. package/dist/src/directory-sync/batch-events/queue.js +0 -225
  143. package/dist/src/directory-sync/batch-events/queue.js.map +0 -1
  144. package/dist/src/directory-sync/index.d.ts +0 -27
  145. package/dist/src/directory-sync/index.js +0 -97
  146. package/dist/src/directory-sync/index.js.map +0 -1
  147. package/dist/src/directory-sync/non-scim/google/api.d.ts +0 -36
  148. package/dist/src/directory-sync/non-scim/google/api.js +0 -143
  149. package/dist/src/directory-sync/non-scim/google/api.js.map +0 -1
  150. package/dist/src/directory-sync/non-scim/google/index.d.ts +0 -12
  151. package/dist/src/directory-sync/non-scim/google/index.js +0 -10
  152. package/dist/src/directory-sync/non-scim/google/index.js.map +0 -1
  153. package/dist/src/directory-sync/non-scim/google/oauth.d.ts +0 -27
  154. package/dist/src/directory-sync/non-scim/google/oauth.js +0 -105
  155. package/dist/src/directory-sync/non-scim/google/oauth.js.map +0 -1
  156. package/dist/src/directory-sync/non-scim/index.d.ts +0 -24
  157. package/dist/src/directory-sync/non-scim/index.js +0 -85
  158. package/dist/src/directory-sync/non-scim/index.js.map +0 -1
  159. package/dist/src/directory-sync/non-scim/syncGroupMembers.d.ts +0 -23
  160. package/dist/src/directory-sync/non-scim/syncGroupMembers.js +0 -105
  161. package/dist/src/directory-sync/non-scim/syncGroupMembers.js.map +0 -1
  162. package/dist/src/directory-sync/non-scim/syncGroups.d.ts +0 -24
  163. package/dist/src/directory-sync/non-scim/syncGroups.js +0 -120
  164. package/dist/src/directory-sync/non-scim/syncGroups.js.map +0 -1
  165. package/dist/src/directory-sync/non-scim/syncUsers.d.ts +0 -24
  166. package/dist/src/directory-sync/non-scim/syncUsers.js +0 -120
  167. package/dist/src/directory-sync/non-scim/syncUsers.js.map +0 -1
  168. package/dist/src/directory-sync/non-scim/utils.d.ts +0 -36
  169. package/dist/src/directory-sync/non-scim/utils.js +0 -109
  170. package/dist/src/directory-sync/non-scim/utils.js.map +0 -1
  171. package/dist/src/directory-sync/request.d.ts +0 -14
  172. package/dist/src/directory-sync/request.js +0 -29
  173. package/dist/src/directory-sync/request.js.map +0 -1
  174. package/dist/src/directory-sync/scim/Base.d.ts +0 -12
  175. package/dist/src/directory-sync/scim/Base.js +0 -23
  176. package/dist/src/directory-sync/scim/Base.js.map +0 -1
  177. package/dist/src/directory-sync/scim/DirectoryConfig.d.ts +0 -343
  178. package/dist/src/directory-sync/scim/DirectoryConfig.js +0 -580
  179. package/dist/src/directory-sync/scim/DirectoryConfig.js.map +0 -1
  180. package/dist/src/directory-sync/scim/DirectoryGroups.d.ts +0 -28
  181. package/dist/src/directory-sync/scim/DirectoryGroups.js +0 -252
  182. package/dist/src/directory-sync/scim/DirectoryGroups.js.map +0 -1
  183. package/dist/src/directory-sync/scim/DirectoryUsers.d.ts +0 -25
  184. package/dist/src/directory-sync/scim/DirectoryUsers.js +0 -193
  185. package/dist/src/directory-sync/scim/DirectoryUsers.js.map +0 -1
  186. package/dist/src/directory-sync/scim/Groups.d.ts +0 -166
  187. package/dist/src/directory-sync/scim/Groups.js +0 -348
  188. package/dist/src/directory-sync/scim/Groups.js.map +0 -1
  189. package/dist/src/directory-sync/scim/Users.d.ts +0 -99
  190. package/dist/src/directory-sync/scim/Users.js +0 -215
  191. package/dist/src/directory-sync/scim/Users.js.map +0 -1
  192. package/dist/src/directory-sync/scim/WebhookEventsLogger.d.ts +0 -101
  193. package/dist/src/directory-sync/scim/WebhookEventsLogger.js +0 -165
  194. package/dist/src/directory-sync/scim/WebhookEventsLogger.js.map +0 -1
  195. package/dist/src/directory-sync/scim/transform.d.ts +0 -6
  196. package/dist/src/directory-sync/scim/transform.js +0 -37
  197. package/dist/src/directory-sync/scim/transform.js.map +0 -1
  198. package/dist/src/directory-sync/scim/utils.d.ts +0 -33
  199. package/dist/src/directory-sync/scim/utils.js +0 -129
  200. package/dist/src/directory-sync/scim/utils.js.map +0 -1
  201. package/dist/src/directory-sync/types.d.ts +0 -195
  202. package/dist/src/directory-sync/types.js +0 -10
  203. package/dist/src/directory-sync/types.js.map +0 -1
  204. package/dist/src/directory-sync/utils.d.ts +0 -19
  205. package/dist/src/directory-sync/utils.js +0 -56
  206. package/dist/src/directory-sync/utils.js.map +0 -1
  207. package/dist/src/ee/branding/index.d.ts +0 -17
  208. package/dist/src/ee/branding/index.js +0 -49
  209. package/dist/src/ee/branding/index.js.map +0 -1
  210. package/dist/src/ee/common/checkLicense.d.ts +0 -3
  211. package/dist/src/ee/common/checkLicense.js +0 -23
  212. package/dist/src/ee/common/checkLicense.js.map +0 -1
  213. package/dist/src/ee/identity-federation/app.d.ts +0 -328
  214. package/dist/src/ee/identity-federation/app.js +0 -532
  215. package/dist/src/ee/identity-federation/app.js.map +0 -1
  216. package/dist/src/ee/identity-federation/idp-login.d.ts +0 -18
  217. package/dist/src/ee/identity-federation/idp-login.js +0 -98
  218. package/dist/src/ee/identity-federation/idp-login.js.map +0 -1
  219. package/dist/src/ee/identity-federation/index.d.ts +0 -15
  220. package/dist/src/ee/identity-federation/index.js +0 -43
  221. package/dist/src/ee/identity-federation/index.js.map +0 -1
  222. package/dist/src/ee/identity-federation/sso.d.ts +0 -24
  223. package/dist/src/ee/identity-federation/sso.js +0 -124
  224. package/dist/src/ee/identity-federation/sso.js.map +0 -1
  225. package/dist/src/ee/identity-federation/types.d.ts +0 -38
  226. package/dist/src/ee/identity-federation/types.js +0 -2
  227. package/dist/src/ee/identity-federation/types.js.map +0 -1
  228. package/dist/src/ee/ory/ory.d.ts +0 -18
  229. package/dist/src/ee/ory/ory.js +0 -195
  230. package/dist/src/ee/ory/ory.js.map +0 -1
  231. package/dist/src/ee/product/index.d.ts +0 -14
  232. package/dist/src/ee/product/index.js +0 -45
  233. package/dist/src/ee/product/index.js.map +0 -1
  234. package/dist/src/event/axios.d.ts +0 -2
  235. package/dist/src/event/axios.js +0 -27
  236. package/dist/src/event/axios.js.map +0 -1
  237. package/dist/src/event/index.d.ts +0 -11
  238. package/dist/src/event/index.js +0 -53
  239. package/dist/src/event/index.js.map +0 -1
  240. package/dist/src/event/types.d.ts +0 -21
  241. package/dist/src/event/types.js +0 -2
  242. package/dist/src/event/types.js.map +0 -1
  243. package/dist/src/event/utils.d.ts +0 -4
  244. package/dist/src/event/utils.js +0 -33
  245. package/dist/src/event/utils.js.map +0 -1
  246. package/dist/src/event/webhook.d.ts +0 -3
  247. package/dist/src/event/webhook.js +0 -34
  248. package/dist/src/event/webhook.js.map +0 -1
  249. package/dist/src/index.d.ts +0 -35
  250. package/dist/src/index.js +0 -161
  251. package/dist/src/index.js.map +0 -1
  252. package/dist/src/loadConnection.d.ts +0 -4
  253. package/dist/src/loadConnection.js +0 -38
  254. package/dist/src/loadConnection.js.map +0 -1
  255. package/dist/src/opentelemetry/metrics.d.ts +0 -14
  256. package/dist/src/opentelemetry/metrics.js +0 -64
  257. package/dist/src/opentelemetry/metrics.js.map +0 -1
  258. package/dist/src/saml/claims.d.ts +0 -12
  259. package/dist/src/saml/claims.js +0 -57
  260. package/dist/src/saml/claims.js.map +0 -1
  261. package/dist/src/saml/lib.d.ts +0 -8
  262. package/dist/src/saml/lib.js +0 -29
  263. package/dist/src/saml/lib.js.map +0 -1
  264. package/dist/src/saml/x509.d.ts +0 -9
  265. package/dist/src/saml/x509.js +0 -93
  266. package/dist/src/saml/x509.js.map +0 -1
  267. package/dist/src/sso-traces/index.d.ts +0 -114
  268. package/dist/src/sso-traces/index.js +0 -229
  269. package/dist/src/sso-traces/index.js.map +0 -1
  270. package/dist/src/sso-traces/types.d.ts +0 -44
  271. package/dist/src/sso-traces/types.js +0 -2
  272. package/dist/src/sso-traces/types.js.map +0 -1
  273. package/dist/src/typings.d.ts +0 -540
  274. package/dist/src/typings.js +0 -5
  275. package/dist/src/typings.js.map +0 -1
  276. package/dist/typeorm.d.ts +0 -3
  277. package/dist/typeorm.js +0 -58
  278. package/dist/typeorm.js.map +0 -1
@@ -1,101 +0,0 @@
1
- import type { Directory, DatabaseStore, WebhookEventLog, DirectorySyncEvent, PaginationParams } from '../../typings';
2
- import { Base } from './Base';
3
- type GetAllParams = PaginationParams & {
4
- directoryId?: string;
5
- };
6
- /**
7
- * @swagger
8
- * definitions:
9
- * Event:
10
- * type: object
11
- * example:
12
- * {
13
- * "id": "id1",
14
- * "webhook_endpoint": "https://example.com/webhook",
15
- * "created_at": "2024-03-05T17:06:26.074Z",
16
- * "status_code": 200,
17
- * "delivered": true,
18
- * "payload": {
19
- * "directory_id": "58b5cd9dfaa39d47eb8f5f88631f9a629a232016",
20
- * "event": "user.created",
21
- * "tenant": "boxyhq",
22
- * "product": "jackson",
23
- * "data": {
24
- * "id": "038e767b-9bc6-4dbd-975e-fbc38a8e7d82",
25
- * "first_name": "Deepak",
26
- * "last_name": "Prabhakara",
27
- * "email": "deepak@boxyhq.com",
28
- * "active": true,
29
- * "raw": {
30
- * "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"],
31
- * "userName": "deepak@boxyhq.com",
32
- * "name": {
33
- * "givenName": "Deepak",
34
- * "familyName": "Prabhakara"
35
- * },
36
- * "emails": [
37
- * {
38
- * "primary": true,
39
- * "value": "deepak@boxyhq.com",
40
- * "type": "work"
41
- * }
42
- * ],
43
- * "title": "CEO",
44
- * "displayName": "Deepak Prabhakara",
45
- * "locale": "en-US",
46
- * "externalId": "00u1ldzzogFkXFmvT5d7",
47
- * "groups": [],
48
- * "active": true,
49
- * "id": "038e767b-9bc6-4dbd-975e-fbc38a8e7d82"
50
- * }
51
- * }
52
- * }
53
- * }
54
- */
55
- export declare class WebhookEventsLogger extends Base {
56
- constructor({ db }: {
57
- db: DatabaseStore;
58
- });
59
- log(directory: Directory, event: DirectorySyncEvent | DirectorySyncEvent[], status: number): Promise<WebhookEventLog>;
60
- get(id: string): Promise<WebhookEventLog>;
61
- /**
62
- * @swagger
63
- * /api/v1/dsync/events:
64
- * get:
65
- * summary: Get event logs for a directory
66
- * parameters:
67
- * - $ref: '#/parameters/directoryId'
68
- * - $ref: '#/parameters/tenant'
69
- * - $ref: '#/parameters/product'
70
- * - $ref: '#/parameters/pageOffset'
71
- * - $ref: '#/parameters/pageLimit'
72
- * - $ref: '#/parameters/pageToken'
73
- * tags:
74
- * - Directory Sync
75
- * produces:
76
- * - application/json
77
- * responses:
78
- * 200:
79
- * description: Success
80
- * content:
81
- * application/json:
82
- * schema:
83
- * type: object
84
- * properties:
85
- * data:
86
- * type: array
87
- * items:
88
- * $ref: '#/definitions/Event'
89
- * pageToken:
90
- * type: string
91
- * description: token for pagination
92
- */
93
- getAll(params?: GetAllParams): Promise<{
94
- data: WebhookEventLog[];
95
- pageToken: string | undefined;
96
- }>;
97
- delete(id: string): Promise<void>;
98
- deleteAll(directoryId: string): Promise<void>;
99
- private eventStore;
100
- }
101
- export {};
@@ -1,165 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- import { randomUUID } from 'crypto';
11
- import { Base } from './Base';
12
- import { webhookLogsTTL } from '../utils';
13
- import { indexNames } from './utils';
14
- /**
15
- * @swagger
16
- * definitions:
17
- * Event:
18
- * type: object
19
- * example:
20
- * {
21
- * "id": "id1",
22
- * "webhook_endpoint": "https://example.com/webhook",
23
- * "created_at": "2024-03-05T17:06:26.074Z",
24
- * "status_code": 200,
25
- * "delivered": true,
26
- * "payload": {
27
- * "directory_id": "58b5cd9dfaa39d47eb8f5f88631f9a629a232016",
28
- * "event": "user.created",
29
- * "tenant": "boxyhq",
30
- * "product": "jackson",
31
- * "data": {
32
- * "id": "038e767b-9bc6-4dbd-975e-fbc38a8e7d82",
33
- * "first_name": "Deepak",
34
- * "last_name": "Prabhakara",
35
- * "email": "deepak@boxyhq.com",
36
- * "active": true,
37
- * "raw": {
38
- * "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"],
39
- * "userName": "deepak@boxyhq.com",
40
- * "name": {
41
- * "givenName": "Deepak",
42
- * "familyName": "Prabhakara"
43
- * },
44
- * "emails": [
45
- * {
46
- * "primary": true,
47
- * "value": "deepak@boxyhq.com",
48
- * "type": "work"
49
- * }
50
- * ],
51
- * "title": "CEO",
52
- * "displayName": "Deepak Prabhakara",
53
- * "locale": "en-US",
54
- * "externalId": "00u1ldzzogFkXFmvT5d7",
55
- * "groups": [],
56
- * "active": true,
57
- * "id": "038e767b-9bc6-4dbd-975e-fbc38a8e7d82"
58
- * }
59
- * }
60
- * }
61
- * }
62
- */
63
- export class WebhookEventsLogger extends Base {
64
- constructor({ db }) {
65
- super({ db });
66
- }
67
- log(directory, event, status) {
68
- return __awaiter(this, void 0, void 0, function* () {
69
- const id = randomUUID();
70
- const log = {
71
- id,
72
- payload: event,
73
- webhook_endpoint: directory.webhook.endpoint,
74
- created_at: new Date(),
75
- status_code: status,
76
- delivered: status === 200,
77
- };
78
- yield this.eventStore().put(id, log, {
79
- name: indexNames.directoryId,
80
- value: directory.id,
81
- });
82
- return log;
83
- });
84
- }
85
- get(id) {
86
- return __awaiter(this, void 0, void 0, function* () {
87
- return yield this.eventStore().get(id);
88
- });
89
- }
90
- /**
91
- * @swagger
92
- * /api/v1/dsync/events:
93
- * get:
94
- * summary: Get event logs for a directory
95
- * parameters:
96
- * - $ref: '#/parameters/directoryId'
97
- * - $ref: '#/parameters/tenant'
98
- * - $ref: '#/parameters/product'
99
- * - $ref: '#/parameters/pageOffset'
100
- * - $ref: '#/parameters/pageLimit'
101
- * - $ref: '#/parameters/pageToken'
102
- * tags:
103
- * - Directory Sync
104
- * produces:
105
- * - application/json
106
- * responses:
107
- * 200:
108
- * description: Success
109
- * content:
110
- * application/json:
111
- * schema:
112
- * type: object
113
- * properties:
114
- * data:
115
- * type: array
116
- * items:
117
- * $ref: '#/definitions/Event'
118
- * pageToken:
119
- * type: string
120
- * description: token for pagination
121
- */
122
- // Get the event logs for a directory paginated
123
- getAll() {
124
- return __awaiter(this, arguments, void 0, function* (params = {}) {
125
- const { pageOffset, pageLimit, pageToken, directoryId } = params;
126
- let result;
127
- if (directoryId) {
128
- const index = {
129
- name: indexNames.directoryId,
130
- value: directoryId,
131
- };
132
- result = yield this.eventStore().getByIndex(index, pageOffset, pageLimit, pageToken);
133
- }
134
- else {
135
- result = yield this.eventStore().getAll(pageOffset, pageLimit, pageToken);
136
- }
137
- return { data: result.data, pageToken: result.pageToken };
138
- });
139
- }
140
- delete(id) {
141
- return __awaiter(this, void 0, void 0, function* () {
142
- yield this.eventStore().delete(id);
143
- });
144
- }
145
- // Delete all event logs for a directory
146
- deleteAll(directoryId) {
147
- return __awaiter(this, void 0, void 0, function* () {
148
- while (true) {
149
- const { data: events } = yield this.eventStore().getByIndex({
150
- name: indexNames.directoryId,
151
- value: directoryId,
152
- }, 0, this.bulkDeleteBatchSize);
153
- if (!events || events.length === 0) {
154
- break;
155
- }
156
- yield this.eventStore().deleteMany(events.map((event) => event.id));
157
- }
158
- });
159
- }
160
- // Get the store for the events
161
- eventStore() {
162
- return this.store('logs', webhookLogsTTL);
163
- }
164
- }
165
- //# sourceMappingURL=WebhookEventsLogger.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WebhookEventsLogger.js","sourceRoot":"","sources":["../../../../src/directory-sync/scim/WebhookEventsLogger.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- import { Directory, DirectorySyncEvent, DirectorySyncEventType, Group, User } from '../../typings';
2
- export declare const transformEventPayload: (event: DirectorySyncEventType, payload: {
3
- directory: Directory;
4
- group?: Group | null;
5
- user?: User | null;
6
- }) => DirectorySyncEvent;
@@ -1,37 +0,0 @@
1
- const transformUser = (user) => {
2
- return Object.assign(Object.assign({ id: user.id, first_name: user.first_name, last_name: user.last_name, email: user.email, active: user.active }, ('roles' in user ? { roles: user.roles } : undefined)), { raw: user.raw });
3
- };
4
- const transformGroup = (group) => {
5
- return {
6
- id: group.id,
7
- name: group.name,
8
- raw: group.raw,
9
- };
10
- };
11
- const transformUserGroup = (user, group) => {
12
- return Object.assign(Object.assign({}, transformUser(user)), { group: transformGroup(group) });
13
- };
14
- export const transformEventPayload = (event, payload) => {
15
- const { directory, group, user } = payload;
16
- const { tenant, product, id: directory_id } = directory;
17
- const eventPayload = {
18
- event,
19
- tenant,
20
- product,
21
- directory_id,
22
- };
23
- // User events
24
- if (['user.created', 'user.updated', 'user.deleted'].includes(event) && user) {
25
- eventPayload['data'] = transformUser(user);
26
- }
27
- // Group events
28
- if (['group.created', 'group.updated', 'group.deleted'].includes(event) && group) {
29
- eventPayload['data'] = transformGroup(group);
30
- }
31
- // Group membership events
32
- if (['group.user_added', 'group.user_removed'].includes(event) && user && group) {
33
- eventPayload['data'] = transformUserGroup(user, group);
34
- }
35
- return eventPayload;
36
- };
37
- //# sourceMappingURL=transform.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transform.js","sourceRoot":"","sources":["../../../../src/directory-sync/scim/transform.ts"],"names":[],"mappings":"AAEA,MAAM,aAAa,GAAG,CAAC,IAAU,EAAQ,EAAE;IACzC,qCACE,EAAE,EAAE,IAAI,CAAC,EAAE,EACX,UAAU,EAAE,IAAI,CAAC,UAAU,EAC3B,SAAS,EAAE,IAAI,CAAC,SAAS,EACzB,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,MAAM,EAAE,IAAI,CAAC,MAAM,IAChB,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,KACxD,GAAG,EAAE,IAAI,CAAC,GAAG,IACb;AACJ,CAAC,CAAC;AAEF,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;AAEF,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;AAEF,MAAM,CAAC,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,CAAC;QAC7E,YAAY,CAAC,MAAM,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED,eAAe;IACf,IAAI,CAAC,eAAe,EAAE,eAAe,EAAE,eAAe,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,EAAE,CAAC;QACjF,YAAY,CAAC,MAAM,CAAC,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC;IAED,0BAA0B;IAC1B,IAAI,CAAC,kBAAkB,EAAE,oBAAoB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC;QAChF,YAAY,CAAC,MAAM,CAAC,GAAG,kBAAkB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACzD,CAAC;IAED,OAAO,YAAkC,CAAC;AAC5C,CAAC,CAAC"}
@@ -1,33 +0,0 @@
1
- import type { DirectoryType, User, UserPatchOperation, GroupPatchOperation } from '../../typings';
2
- export declare const indexNames: {
3
- directoryIdUsername: string;
4
- directoryIdDisplayname: string;
5
- directoryId: string;
6
- groupId: string;
7
- };
8
- export declare const parseGroupOperation: (operation: GroupPatchOperation) => {
9
- action: string;
10
- members: {
11
- value: string;
12
- display?: string;
13
- }[];
14
- displayName?: undefined;
15
- } | {
16
- action: string;
17
- displayName: unknown;
18
- members?: undefined;
19
- } | {
20
- action: string;
21
- members?: undefined;
22
- displayName?: undefined;
23
- };
24
- export declare const getDirectorySyncProviders: () => {
25
- [K: string]: string;
26
- };
27
- export declare const parseUserPatchRequest: (operation: UserPatchOperation) => {
28
- attributes: Partial<User>;
29
- rawAttributes: {};
30
- };
31
- export declare const extractStandardUserAttributes: (body: any) => Omit<User, "raw">;
32
- export declare const updateRawUserAttributes: (raw: any, attributes: any) => any;
33
- export declare const isSCIMEnabledProvider: (type: DirectoryType) => type is "azure-scim-v2" | "onelogin-scim-v2" | "okta-scim-v2" | "jumpcloud-scim-v2" | "generic-scim-v2";
@@ -1,129 +0,0 @@
1
- import _ from 'lodash';
2
- import { DirectorySyncProviders } from '../../typings';
3
- export const indexNames = {
4
- directoryIdUsername: 'directoryIdUsername',
5
- directoryIdDisplayname: 'directoryIdDisplayname',
6
- directoryId: 'directoryId',
7
- groupId: 'groupId',
8
- };
9
- const parseUserRoles = (roles) => {
10
- if (typeof roles === 'string') {
11
- return roles.split(',');
12
- }
13
- return roles;
14
- };
15
- export const parseGroupOperation = (operation) => {
16
- const { op, path, value } = operation;
17
- if (path === 'members' && typeof value == 'object') {
18
- if (op === 'add') {
19
- return {
20
- action: 'addGroupMember',
21
- members: value,
22
- };
23
- }
24
- if (op === 'remove') {
25
- return {
26
- action: 'removeGroupMember',
27
- members: value,
28
- };
29
- }
30
- }
31
- if (path && path.startsWith('members[value eq')) {
32
- if (op === 'remove') {
33
- return {
34
- action: 'removeGroupMember',
35
- members: [{ value: path.split('"')[1] }],
36
- };
37
- }
38
- }
39
- // Update group name
40
- if (op === 'replace') {
41
- if (path == 'displayName' && typeof value == 'string') {
42
- return {
43
- action: 'updateGroupName',
44
- displayName: value,
45
- };
46
- }
47
- else if (typeof value == 'object' && 'displayName' in value) {
48
- return {
49
- action: 'updateGroupName',
50
- displayName: value.displayName,
51
- };
52
- }
53
- }
54
- return {
55
- action: 'unknown',
56
- };
57
- };
58
- // List of directory sync providers
59
- // TODO: Fix the return type
60
- export const getDirectorySyncProviders = () => {
61
- return Object.entries(DirectorySyncProviders).reduce((acc, [key, value]) => {
62
- acc[key] = value;
63
- return acc;
64
- }, {});
65
- };
66
- // Parse the PATCH request body and return the user attributes (both standard and custom)
67
- export const parseUserPatchRequest = (operation) => {
68
- const { value, path } = operation;
69
- const attributes = {};
70
- const rawAttributes = {};
71
- const attributesMap = {
72
- active: 'active',
73
- 'name.givenName': 'first_name',
74
- 'name.familyName': 'last_name',
75
- 'emails[type eq "work"].value': 'email',
76
- };
77
- // If there is a path, then the value is the value
78
- // For example { path: "active", value: true }
79
- if (path) {
80
- if (path in attributesMap) {
81
- attributes[attributesMap[path]] = value;
82
- }
83
- rawAttributes[path] = value;
84
- }
85
- // If there is no path, then the value can be an object with multiple attributes
86
- // For example { value: { active: true, "name.familyName": "John" } }
87
- else if (typeof value === 'object') {
88
- for (const attribute of Object.keys(value)) {
89
- if (attribute in attributesMap) {
90
- attributes[attributesMap[attribute]] = value[attribute];
91
- }
92
- rawAttributes[attribute] = value[attribute];
93
- }
94
- }
95
- return {
96
- attributes,
97
- rawAttributes,
98
- };
99
- };
100
- // Extract standard attributes from the user body
101
- export const extractStandardUserAttributes = (body) => {
102
- const { name, emails, userName, active, userId, roles } = body;
103
- const userAttributes = {
104
- first_name: name && 'givenName' in name ? name.givenName : '',
105
- last_name: name && 'familyName' in name ? name.familyName : '',
106
- email: emails && emails.length > 0 ? emails[0].value : userName,
107
- active: 'active' in body ? active : true,
108
- id: userId || '', // For non-SCIM providers, the id will exist in the body
109
- };
110
- if (roles) {
111
- userAttributes['roles'] = parseUserRoles(roles);
112
- }
113
- return userAttributes;
114
- };
115
- // Update raw user attributes
116
- export const updateRawUserAttributes = (raw, attributes) => {
117
- const keys = Object.keys(attributes);
118
- if (keys.length === 0) {
119
- return raw;
120
- }
121
- for (const key of keys) {
122
- _.set(raw, key, attributes[key]);
123
- }
124
- return raw;
125
- };
126
- export const isSCIMEnabledProvider = (type) => {
127
- return type !== 'google';
128
- };
129
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/directory-sync/scim/utils.ts"],"names":[],"mappings":"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"}