@boxyhq/saml-jackson 1.32.0 → 1.33.1-beta.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 (332) hide show
  1. package/dist/controller/api.js +17 -7
  2. package/dist/controller/api.js.map +1 -1
  3. package/dist/controller/connection/oidc.js +17 -7
  4. package/dist/controller/connection/oidc.js.map +1 -1
  5. package/dist/controller/connection/saml.js +17 -7
  6. package/dist/controller/connection/saml.js.map +1 -1
  7. package/dist/controller/logout.js +17 -7
  8. package/dist/controller/logout.js.map +1 -1
  9. package/dist/controller/oauth/oidc-client.d.ts +9 -4
  10. package/dist/controller/oauth/oidc-client.js +80 -11
  11. package/dist/controller/oauth/oidc-client.js.map +1 -1
  12. package/dist/controller/oauth/oidc-issuer.d.ts +2 -0
  13. package/dist/controller/oauth/oidc-issuer.js +25 -0
  14. package/dist/controller/oauth/oidc-issuer.js.map +1 -0
  15. package/dist/controller/oauth.js +97 -46
  16. package/dist/controller/oauth.js.map +1 -1
  17. package/dist/controller/setup-link.js +17 -7
  18. package/dist/controller/setup-link.js.map +1 -1
  19. package/dist/controller/sso-handler.d.ts +10 -2
  20. package/dist/controller/sso-handler.js +34 -12
  21. package/dist/controller/sso-handler.js.map +1 -1
  22. package/dist/controller/utils.d.ts +5 -3
  23. package/dist/controller/utils.js +27 -9
  24. package/dist/controller/utils.js.map +1 -1
  25. package/dist/db/db.js +17 -7
  26. package/dist/db/db.js.map +1 -1
  27. package/dist/db/dynamoDb.js +17 -7
  28. package/dist/db/dynamoDb.js.map +1 -1
  29. package/dist/db/mem.js +17 -7
  30. package/dist/db/mem.js.map +1 -1
  31. package/dist/db/mongo.js +17 -7
  32. package/dist/db/mongo.js.map +1 -1
  33. package/dist/db/redis.js +17 -7
  34. package/dist/db/redis.js.map +1 -1
  35. package/dist/db/sql/sql.js +17 -7
  36. package/dist/db/sql/sql.js.map +1 -1
  37. package/dist/db/store.js +17 -7
  38. package/dist/db/store.js.map +1 -1
  39. package/dist/directory-sync/batch-events/queue.js +17 -7
  40. package/dist/directory-sync/batch-events/queue.js.map +1 -1
  41. package/dist/directory-sync/scim/DirectoryConfig.js +17 -7
  42. package/dist/directory-sync/scim/DirectoryConfig.js.map +1 -1
  43. package/dist/directory-sync/scim/Groups.js +17 -7
  44. package/dist/directory-sync/scim/Groups.js.map +1 -1
  45. package/dist/ee/identity-federation/idp-login.js +20 -14
  46. package/dist/ee/identity-federation/idp-login.js.map +1 -1
  47. package/dist/ee/identity-federation/sso.js +16 -11
  48. package/dist/ee/identity-federation/sso.js.map +1 -1
  49. package/dist/event/axios.d.ts +2 -1
  50. package/dist/index.js +17 -7
  51. package/dist/index.js.map +1 -1
  52. package/dist/loadConnection.js +17 -7
  53. package/dist/loadConnection.js.map +1 -1
  54. package/dist/saml/lib.js +17 -7
  55. package/dist/saml/lib.js.map +1 -1
  56. package/dist/saml/x509.js +17 -7
  57. package/dist/saml/x509.js.map +1 -1
  58. package/dist/src/controller/admin.d.ts +27 -0
  59. package/dist/src/controller/admin.js +60 -0
  60. package/dist/src/controller/admin.js.map +1 -0
  61. package/dist/src/controller/analytics.d.ts +16 -0
  62. package/dist/src/controller/analytics.js +79 -0
  63. package/dist/src/controller/analytics.js.map +1 -0
  64. package/dist/src/controller/api.d.ts +557 -0
  65. package/dist/src/controller/api.js +806 -0
  66. package/dist/src/controller/api.js.map +1 -0
  67. package/dist/src/controller/connection/oidc.d.ts +7 -0
  68. package/dist/src/controller/connection/oidc.js +181 -0
  69. package/dist/src/controller/connection/oidc.js.map +1 -0
  70. package/dist/src/controller/connection/saml.d.ts +7 -0
  71. package/dist/src/controller/connection/saml.js +250 -0
  72. package/dist/src/controller/connection/saml.js.map +1 -0
  73. package/dist/src/controller/error.d.ts +10 -0
  74. package/dist/src/controller/error.js +13 -0
  75. package/dist/src/controller/error.js.map +1 -0
  76. package/dist/src/controller/health-check.d.ts +11 -0
  77. package/dist/src/controller/health-check.js +51 -0
  78. package/dist/src/controller/health-check.js.map +1 -0
  79. package/dist/src/controller/logout.d.ts +18 -0
  80. package/dist/src/controller/logout.js +132 -0
  81. package/dist/src/controller/logout.js.map +1 -0
  82. package/dist/src/controller/oauth/allowed.d.ts +1 -0
  83. package/dist/src/controller/oauth/allowed.js +30 -0
  84. package/dist/src/controller/oauth/allowed.js.map +1 -0
  85. package/dist/src/controller/oauth/code-verifier.d.ts +1 -0
  86. package/dist/src/controller/oauth/code-verifier.js +8 -0
  87. package/dist/src/controller/oauth/code-verifier.js.map +1 -0
  88. package/dist/src/controller/oauth/oidc-client.d.ts +12 -0
  89. package/dist/src/controller/oauth/oidc-client.js +89 -0
  90. package/dist/src/controller/oauth/oidc-client.js.map +1 -0
  91. package/dist/src/controller/oauth/redirect.d.ts +1 -0
  92. package/dist/src/controller/oauth/redirect.js +13 -0
  93. package/dist/src/controller/oauth/redirect.js.map +1 -0
  94. package/dist/src/controller/oauth.d.ts +142 -0
  95. package/dist/src/controller/oauth.js +1112 -0
  96. package/dist/src/controller/oauth.js.map +1 -0
  97. package/dist/src/controller/oidc-discovery.d.ts +22 -0
  98. package/dist/src/controller/oidc-discovery.js +47 -0
  99. package/dist/src/controller/oidc-discovery.js.map +1 -0
  100. package/dist/src/controller/setup-link.d.ts +307 -0
  101. package/dist/src/controller/setup-link.js +462 -0
  102. package/dist/src/controller/setup-link.js.map +1 -0
  103. package/dist/src/controller/sp-config.d.ts +22 -0
  104. package/dist/src/controller/sp-config.js +89 -0
  105. package/dist/src/controller/sp-config.js.map +1 -0
  106. package/dist/src/controller/sso-handler.d.ts +66 -0
  107. package/dist/src/controller/sso-handler.js +306 -0
  108. package/dist/src/controller/sso-handler.js.map +1 -0
  109. package/dist/src/controller/utils.d.ts +84 -0
  110. package/dist/src/controller/utils.js +328 -0
  111. package/dist/src/controller/utils.js.map +1 -0
  112. package/dist/src/cron/lock.d.ts +18 -0
  113. package/dist/src/cron/lock.js +98 -0
  114. package/dist/src/cron/lock.js.map +1 -0
  115. package/dist/src/db/db.d.ts +5 -0
  116. package/dist/src/db/db.js +178 -0
  117. package/dist/src/db/db.js.map +1 -0
  118. package/dist/src/db/defaultDb.d.ts +2 -0
  119. package/dist/src/db/defaultDb.js +18 -0
  120. package/dist/src/db/defaultDb.js.map +1 -0
  121. package/dist/src/db/dynamoDb.d.ts +19 -0
  122. package/dist/src/db/dynamoDb.js +320 -0
  123. package/dist/src/db/dynamoDb.js.map +1 -0
  124. package/dist/src/db/encrypter.d.ts +3 -0
  125. package/dist/src/db/encrypter.js +22 -0
  126. package/dist/src/db/encrypter.js.map +1 -0
  127. package/dist/src/db/mem.d.ts +23 -0
  128. package/dist/src/db/mem.js +186 -0
  129. package/dist/src/db/mem.js.map +1 -0
  130. package/dist/src/db/mongo.d.ts +22 -0
  131. package/dist/src/db/mongo.js +177 -0
  132. package/dist/src/db/mongo.js.map +1 -0
  133. package/dist/src/db/planetscale/entity/JacksonIndex.d.ts +5 -0
  134. package/dist/src/db/planetscale/entity/JacksonIndex.js +32 -0
  135. package/dist/src/db/planetscale/entity/JacksonIndex.js.map +1 -0
  136. package/dist/src/db/planetscale/entity/JacksonStore.d.ts +9 -0
  137. package/dist/src/db/planetscale/entity/JacksonStore.js +63 -0
  138. package/dist/src/db/planetscale/entity/JacksonStore.js.map +1 -0
  139. package/dist/src/db/planetscale/entity/JacksonTTL.d.ts +4 -0
  140. package/dist/src/db/planetscale/entity/JacksonTTL.js +27 -0
  141. package/dist/src/db/planetscale/entity/JacksonTTL.js.map +1 -0
  142. package/dist/src/db/redis.d.ts +18 -0
  143. package/dist/src/db/redis.js +214 -0
  144. package/dist/src/db/redis.js.map +1 -0
  145. package/dist/src/db/sql/entity/JacksonIndex.d.ts +7 -0
  146. package/dist/src/db/sql/entity/JacksonIndex.js +39 -0
  147. package/dist/src/db/sql/entity/JacksonIndex.js.map +1 -0
  148. package/dist/src/db/sql/entity/JacksonStore.d.ts +9 -0
  149. package/dist/src/db/sql/entity/JacksonStore.js +61 -0
  150. package/dist/src/db/sql/entity/JacksonStore.js.map +1 -0
  151. package/dist/src/db/sql/entity/JacksonTTL.d.ts +4 -0
  152. package/dist/src/db/sql/entity/JacksonTTL.js +27 -0
  153. package/dist/src/db/sql/entity/JacksonTTL.js.map +1 -0
  154. package/dist/src/db/sql/mariadb/entity/JacksonIndex.d.ts +7 -0
  155. package/dist/src/db/sql/mariadb/entity/JacksonIndex.js +39 -0
  156. package/dist/src/db/sql/mariadb/entity/JacksonIndex.js.map +1 -0
  157. package/dist/src/db/sql/mariadb/entity/JacksonStore.d.ts +9 -0
  158. package/dist/src/db/sql/mariadb/entity/JacksonStore.js +63 -0
  159. package/dist/src/db/sql/mariadb/entity/JacksonStore.js.map +1 -0
  160. package/dist/src/db/sql/mariadb/entity/JacksonTTL.d.ts +4 -0
  161. package/dist/src/db/sql/mariadb/entity/JacksonTTL.js +27 -0
  162. package/dist/src/db/sql/mariadb/entity/JacksonTTL.js.map +1 -0
  163. package/dist/src/db/sql/mssql/entity/JacksonIndex.d.ts +7 -0
  164. package/dist/src/db/sql/mssql/entity/JacksonIndex.js +39 -0
  165. package/dist/src/db/sql/mssql/entity/JacksonIndex.js.map +1 -0
  166. package/dist/src/db/sql/mssql/entity/JacksonStore.d.ts +9 -0
  167. package/dist/src/db/sql/mssql/entity/JacksonStore.js +61 -0
  168. package/dist/src/db/sql/mssql/entity/JacksonStore.js.map +1 -0
  169. package/dist/src/db/sql/mssql/entity/JacksonTTL.d.ts +4 -0
  170. package/dist/src/db/sql/mssql/entity/JacksonTTL.js +27 -0
  171. package/dist/src/db/sql/mssql/entity/JacksonTTL.js.map +1 -0
  172. package/dist/src/db/sql/mssql.d.ts +1 -0
  173. package/dist/src/db/sql/mssql.js +44 -0
  174. package/dist/src/db/sql/mssql.js.map +1 -0
  175. package/dist/src/db/sql/sql.d.ts +32 -0
  176. package/dist/src/db/sql/sql.js +318 -0
  177. package/dist/src/db/sql/sql.js.map +1 -0
  178. package/dist/src/db/sql/sqlite/entity/JacksonIndex.d.ts +7 -0
  179. package/dist/src/db/sql/sqlite/entity/JacksonIndex.js +39 -0
  180. package/dist/src/db/sql/sqlite/entity/JacksonIndex.js.map +1 -0
  181. package/dist/src/db/sql/sqlite/entity/JacksonStore.d.ts +9 -0
  182. package/dist/src/db/sql/sqlite/entity/JacksonStore.js +61 -0
  183. package/dist/src/db/sql/sqlite/entity/JacksonStore.js.map +1 -0
  184. package/dist/src/db/sql/sqlite/entity/JacksonTTL.d.ts +4 -0
  185. package/dist/src/db/sql/sqlite/entity/JacksonTTL.js +27 -0
  186. package/dist/src/db/sql/sqlite/entity/JacksonTTL.js.map +1 -0
  187. package/dist/src/db/store.d.ts +5 -0
  188. package/dist/src/db/store.js +65 -0
  189. package/dist/src/db/store.js.map +1 -0
  190. package/dist/src/db/utils.d.ts +16 -0
  191. package/dist/src/db/utils.js +28 -0
  192. package/dist/src/db/utils.js.map +1 -0
  193. package/dist/src/directory-sync/batch-events/queue.d.ts +40 -0
  194. package/dist/src/directory-sync/batch-events/queue.js +225 -0
  195. package/dist/src/directory-sync/batch-events/queue.js.map +1 -0
  196. package/dist/src/directory-sync/index.d.ts +27 -0
  197. package/dist/src/directory-sync/index.js +97 -0
  198. package/dist/src/directory-sync/index.js.map +1 -0
  199. package/dist/src/directory-sync/non-scim/google/api.d.ts +36 -0
  200. package/dist/src/directory-sync/non-scim/google/api.js +143 -0
  201. package/dist/src/directory-sync/non-scim/google/api.js.map +1 -0
  202. package/dist/src/directory-sync/non-scim/google/index.d.ts +12 -0
  203. package/dist/src/directory-sync/non-scim/google/index.js +10 -0
  204. package/dist/src/directory-sync/non-scim/google/index.js.map +1 -0
  205. package/dist/src/directory-sync/non-scim/google/oauth.d.ts +27 -0
  206. package/dist/src/directory-sync/non-scim/google/oauth.js +105 -0
  207. package/dist/src/directory-sync/non-scim/google/oauth.js.map +1 -0
  208. package/dist/src/directory-sync/non-scim/index.d.ts +24 -0
  209. package/dist/src/directory-sync/non-scim/index.js +85 -0
  210. package/dist/src/directory-sync/non-scim/index.js.map +1 -0
  211. package/dist/src/directory-sync/non-scim/syncGroupMembers.d.ts +23 -0
  212. package/dist/src/directory-sync/non-scim/syncGroupMembers.js +105 -0
  213. package/dist/src/directory-sync/non-scim/syncGroupMembers.js.map +1 -0
  214. package/dist/src/directory-sync/non-scim/syncGroups.d.ts +24 -0
  215. package/dist/src/directory-sync/non-scim/syncGroups.js +120 -0
  216. package/dist/src/directory-sync/non-scim/syncGroups.js.map +1 -0
  217. package/dist/src/directory-sync/non-scim/syncUsers.d.ts +24 -0
  218. package/dist/src/directory-sync/non-scim/syncUsers.js +120 -0
  219. package/dist/src/directory-sync/non-scim/syncUsers.js.map +1 -0
  220. package/dist/src/directory-sync/non-scim/utils.d.ts +36 -0
  221. package/dist/src/directory-sync/non-scim/utils.js +109 -0
  222. package/dist/src/directory-sync/non-scim/utils.js.map +1 -0
  223. package/dist/src/directory-sync/request.d.ts +14 -0
  224. package/dist/src/directory-sync/request.js +29 -0
  225. package/dist/src/directory-sync/request.js.map +1 -0
  226. package/dist/src/directory-sync/scim/Base.d.ts +12 -0
  227. package/dist/src/directory-sync/scim/Base.js +23 -0
  228. package/dist/src/directory-sync/scim/Base.js.map +1 -0
  229. package/dist/src/directory-sync/scim/DirectoryConfig.d.ts +343 -0
  230. package/dist/src/directory-sync/scim/DirectoryConfig.js +580 -0
  231. package/dist/src/directory-sync/scim/DirectoryConfig.js.map +1 -0
  232. package/dist/src/directory-sync/scim/DirectoryGroups.d.ts +28 -0
  233. package/dist/src/directory-sync/scim/DirectoryGroups.js +252 -0
  234. package/dist/src/directory-sync/scim/DirectoryGroups.js.map +1 -0
  235. package/dist/src/directory-sync/scim/DirectoryUsers.d.ts +25 -0
  236. package/dist/src/directory-sync/scim/DirectoryUsers.js +193 -0
  237. package/dist/src/directory-sync/scim/DirectoryUsers.js.map +1 -0
  238. package/dist/src/directory-sync/scim/Groups.d.ts +166 -0
  239. package/dist/src/directory-sync/scim/Groups.js +348 -0
  240. package/dist/src/directory-sync/scim/Groups.js.map +1 -0
  241. package/dist/src/directory-sync/scim/Users.d.ts +99 -0
  242. package/dist/src/directory-sync/scim/Users.js +215 -0
  243. package/dist/src/directory-sync/scim/Users.js.map +1 -0
  244. package/dist/src/directory-sync/scim/WebhookEventsLogger.d.ts +101 -0
  245. package/dist/src/directory-sync/scim/WebhookEventsLogger.js +165 -0
  246. package/dist/src/directory-sync/scim/WebhookEventsLogger.js.map +1 -0
  247. package/dist/src/directory-sync/scim/transform.d.ts +6 -0
  248. package/dist/src/directory-sync/scim/transform.js +37 -0
  249. package/dist/src/directory-sync/scim/transform.js.map +1 -0
  250. package/dist/src/directory-sync/scim/utils.d.ts +33 -0
  251. package/dist/src/directory-sync/scim/utils.js +129 -0
  252. package/dist/src/directory-sync/scim/utils.js.map +1 -0
  253. package/dist/src/directory-sync/types.d.ts +195 -0
  254. package/dist/src/directory-sync/types.js +10 -0
  255. package/dist/src/directory-sync/types.js.map +1 -0
  256. package/dist/src/directory-sync/utils.d.ts +19 -0
  257. package/dist/src/directory-sync/utils.js +56 -0
  258. package/dist/src/directory-sync/utils.js.map +1 -0
  259. package/dist/src/ee/branding/index.d.ts +17 -0
  260. package/dist/src/ee/branding/index.js +49 -0
  261. package/dist/src/ee/branding/index.js.map +1 -0
  262. package/dist/src/ee/common/checkLicense.d.ts +3 -0
  263. package/dist/src/ee/common/checkLicense.js +23 -0
  264. package/dist/src/ee/common/checkLicense.js.map +1 -0
  265. package/dist/src/ee/identity-federation/app.d.ts +328 -0
  266. package/dist/src/ee/identity-federation/app.js +532 -0
  267. package/dist/src/ee/identity-federation/app.js.map +1 -0
  268. package/dist/src/ee/identity-federation/idp-login.d.ts +18 -0
  269. package/dist/src/ee/identity-federation/idp-login.js +98 -0
  270. package/dist/src/ee/identity-federation/idp-login.js.map +1 -0
  271. package/dist/src/ee/identity-federation/index.d.ts +15 -0
  272. package/dist/src/ee/identity-federation/index.js +43 -0
  273. package/dist/src/ee/identity-federation/index.js.map +1 -0
  274. package/dist/src/ee/identity-federation/sso.d.ts +24 -0
  275. package/dist/src/ee/identity-federation/sso.js +124 -0
  276. package/dist/src/ee/identity-federation/sso.js.map +1 -0
  277. package/dist/src/ee/identity-federation/types.d.ts +38 -0
  278. package/dist/src/ee/identity-federation/types.js +2 -0
  279. package/dist/src/ee/identity-federation/types.js.map +1 -0
  280. package/dist/src/ee/ory/ory.d.ts +18 -0
  281. package/dist/src/ee/ory/ory.js +195 -0
  282. package/dist/src/ee/ory/ory.js.map +1 -0
  283. package/dist/src/ee/product/index.d.ts +14 -0
  284. package/dist/src/ee/product/index.js +45 -0
  285. package/dist/src/ee/product/index.js.map +1 -0
  286. package/dist/src/event/axios.d.ts +2 -0
  287. package/dist/src/event/axios.js +27 -0
  288. package/dist/src/event/axios.js.map +1 -0
  289. package/dist/src/event/index.d.ts +11 -0
  290. package/dist/src/event/index.js +53 -0
  291. package/dist/src/event/index.js.map +1 -0
  292. package/dist/src/event/types.d.ts +21 -0
  293. package/dist/src/event/types.js +2 -0
  294. package/dist/src/event/types.js.map +1 -0
  295. package/dist/src/event/utils.d.ts +4 -0
  296. package/dist/src/event/utils.js +33 -0
  297. package/dist/src/event/utils.js.map +1 -0
  298. package/dist/src/event/webhook.d.ts +3 -0
  299. package/dist/src/event/webhook.js +34 -0
  300. package/dist/src/event/webhook.js.map +1 -0
  301. package/dist/src/index.d.ts +35 -0
  302. package/dist/src/index.js +161 -0
  303. package/dist/src/index.js.map +1 -0
  304. package/dist/src/loadConnection.d.ts +4 -0
  305. package/dist/src/loadConnection.js +38 -0
  306. package/dist/src/loadConnection.js.map +1 -0
  307. package/dist/src/opentelemetry/metrics.d.ts +14 -0
  308. package/dist/src/opentelemetry/metrics.js +64 -0
  309. package/dist/src/opentelemetry/metrics.js.map +1 -0
  310. package/dist/src/saml/claims.d.ts +12 -0
  311. package/dist/src/saml/claims.js +57 -0
  312. package/dist/src/saml/claims.js.map +1 -0
  313. package/dist/src/saml/lib.d.ts +8 -0
  314. package/dist/src/saml/lib.js +29 -0
  315. package/dist/src/saml/lib.js.map +1 -0
  316. package/dist/src/saml/x509.d.ts +9 -0
  317. package/dist/src/saml/x509.js +93 -0
  318. package/dist/src/saml/x509.js.map +1 -0
  319. package/dist/src/sso-traces/index.d.ts +114 -0
  320. package/dist/src/sso-traces/index.js +229 -0
  321. package/dist/src/sso-traces/index.js.map +1 -0
  322. package/dist/src/sso-traces/types.d.ts +44 -0
  323. package/dist/src/sso-traces/types.js +2 -0
  324. package/dist/src/sso-traces/types.js.map +1 -0
  325. package/dist/src/typings.d.ts +540 -0
  326. package/dist/src/typings.js +5 -0
  327. package/dist/src/typings.js.map +1 -0
  328. package/dist/typeorm.d.ts +3 -0
  329. package/dist/typeorm.js +58 -0
  330. package/dist/typeorm.js.map +1 -0
  331. package/dist/typings.d.ts +1 -1
  332. package/package.json +13 -13
@@ -0,0 +1,580 @@
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 * as dbutils from '../../db/utils';
12
+ import { createRandomSecret, isConnectionActive, validateTenantAndProduct, storeNamespacePrefix, IndexNames, } from '../../controller/utils';
13
+ import { apiError, JacksonError } from '../../controller/error';
14
+ import { getDirectorySyncProviders, isSCIMEnabledProvider } from './utils';
15
+ import * as metrics from '../../opentelemetry/metrics';
16
+ /**
17
+ * @swagger
18
+ * definitions:
19
+ * Directory:
20
+ * type: object
21
+ * properties:
22
+ * id:
23
+ * type: string
24
+ * description: Directory ID
25
+ * name:
26
+ * type: string
27
+ * description: name
28
+ * tenant:
29
+ * type: string
30
+ * description: Tenant
31
+ * product:
32
+ * type: string
33
+ * description: Product
34
+ * type:
35
+ * type: string
36
+ * description: Directory provider
37
+ * deactivated:
38
+ * type: boolean
39
+ * description: Status
40
+ * log_webhook_events:
41
+ * type: boolean
42
+ * description: If true, webhook requests will be logged
43
+ * scim:
44
+ * type: object
45
+ * properties:
46
+ * path:
47
+ * type: string
48
+ * description: SCIM path
49
+ * endpoint:
50
+ * type: string
51
+ * description: SCIM url
52
+ * secret:
53
+ * type: string
54
+ * description: SCIM secret
55
+ * webhook:
56
+ * type: object
57
+ * properties:
58
+ * endpoint:
59
+ * type: string
60
+ * description: Webhook url
61
+ * secret:
62
+ * type: string
63
+ * description: Webhook secret
64
+ */
65
+ export class DirectoryConfig {
66
+ constructor({ db, opts, users, groups, logger, eventController }) {
67
+ this._store = null;
68
+ this.opts = opts;
69
+ this.db = db;
70
+ this.users = users;
71
+ this.groups = groups;
72
+ this.logger = logger;
73
+ this.eventController = eventController;
74
+ }
75
+ // Return the database store
76
+ store() {
77
+ return this._store || (this._store = this.db.store(storeNamespacePrefix.dsync.config));
78
+ }
79
+ /**
80
+ * @swagger
81
+ * parameters:
82
+ * tenant:
83
+ * name: tenant
84
+ * description: Tenant
85
+ * in: query
86
+ * required: true
87
+ * type: string
88
+ * product:
89
+ * name: product
90
+ * description: Product
91
+ * in: query
92
+ * required: true
93
+ * type: string
94
+ * directoryId:
95
+ * name: directoryId
96
+ * description: Directory ID
97
+ * in: query
98
+ * required: false
99
+ * type: string
100
+ * pageOffset:
101
+ * name: pageOffset
102
+ * description: Starting point from which the set of records are retrieved
103
+ * in: query
104
+ * required: false
105
+ * type: string
106
+ * pageLimit:
107
+ * name: pageLimit
108
+ * description: Number of records to be fetched for the page
109
+ * in: query
110
+ * required: false
111
+ * type: string
112
+ * pageToken:
113
+ * name: pageToken
114
+ * description: Token used for DynamoDB pagination
115
+ * in: query
116
+ * required: false
117
+ * type: string
118
+ */
119
+ /**
120
+ * @swagger
121
+ * /api/v1/dsync:
122
+ * post:
123
+ * summary: Create a directory connection
124
+ * parameters:
125
+ * - name: tenant
126
+ * description: Tenant
127
+ * in: formData
128
+ * required: true
129
+ * type: string
130
+ * - name: product
131
+ * description: Product
132
+ * in: formData
133
+ * required: true
134
+ * type: string
135
+ * - name: name
136
+ * description: Name
137
+ * in: formData
138
+ * required: false
139
+ * type: string
140
+ * - name: webhook_url
141
+ * description: Webhook URL
142
+ * in: formData
143
+ * required: false
144
+ * type: string
145
+ * - name: webhook_secret
146
+ * description: Webhook secret
147
+ * in: formData
148
+ * required: false
149
+ * type: string
150
+ * - name: type
151
+ * description: Directory provider. (Supported values are azure-scim-v2, onelogin-scim-v2, okta-scim-v2, jumpcloud-scim-v2, generic-scim-v2, google)
152
+ * in: formData
153
+ * required: false
154
+ * type: string
155
+ * tags: [Directory Sync]
156
+ * produces:
157
+ * - application/json
158
+ * consumes:
159
+ * - application/x-www-form-urlencoded
160
+ * - application/json
161
+ * responses:
162
+ * 200:
163
+ * description: Success
164
+ * schema:
165
+ * $ref: '#/definitions/Directory'
166
+ */
167
+ create(params) {
168
+ return __awaiter(this, void 0, void 0, function* () {
169
+ metrics.increment('createDsyncConnection');
170
+ try {
171
+ const { name, tenant, product, webhook_url, webhook_secret, type = 'generic-scim-v2', google_domain, google_access_token, google_refresh_token, } = params;
172
+ if (!tenant || !product) {
173
+ throw new JacksonError('Missing required parameters.', 400);
174
+ }
175
+ // Validate the directory type
176
+ if (!Object.keys(getDirectorySyncProviders()).includes(type)) {
177
+ throw new JacksonError('Invalid directory type.', 400);
178
+ }
179
+ validateTenantAndProduct(tenant, product);
180
+ const directoryName = name || `scim-${tenant}-${product}`;
181
+ const id = randomUUID();
182
+ const hasWebhook = webhook_url && webhook_secret;
183
+ const isSCIMProvider = isSCIMEnabledProvider(type);
184
+ let directory = {
185
+ id,
186
+ name: directoryName,
187
+ tenant,
188
+ product,
189
+ type,
190
+ log_webhook_events: false,
191
+ webhook: {
192
+ endpoint: hasWebhook ? webhook_url : '',
193
+ secret: hasWebhook ? webhook_secret : '',
194
+ },
195
+ scim: isSCIMProvider
196
+ ? {
197
+ path: `${this.opts.scimPath}/${id}`,
198
+ secret: yield createRandomSecret(16),
199
+ }
200
+ : {
201
+ path: '',
202
+ secret: '',
203
+ },
204
+ };
205
+ if (type === 'google') {
206
+ directory = Object.assign(Object.assign({}, directory), { google_domain: google_domain || '', google_access_token: google_access_token || '', google_refresh_token: google_refresh_token || '' });
207
+ }
208
+ const indexes = [
209
+ {
210
+ name: IndexNames.TenantProduct,
211
+ value: dbutils.keyFromParts(tenant, product),
212
+ },
213
+ {
214
+ name: IndexNames.Product,
215
+ value: product,
216
+ },
217
+ ];
218
+ // Add secondary index for Non-SCIM providers
219
+ if (!isSCIMProvider) {
220
+ indexes.push({
221
+ name: storeNamespacePrefix.dsync.providers,
222
+ value: type,
223
+ });
224
+ }
225
+ yield this.store().put(id, directory, ...indexes);
226
+ const connection = this.transform(directory);
227
+ yield this.eventController.notify('dsync.created', connection);
228
+ return { data: connection, error: null };
229
+ }
230
+ catch (err) {
231
+ return apiError(err);
232
+ }
233
+ });
234
+ }
235
+ /**
236
+ * @swagger
237
+ * /api/v1/dsync/{directoryId}:
238
+ * get:
239
+ * summary: Get a directory connection by id
240
+ * parameters:
241
+ * - name: directoryId
242
+ * description: Directory ID
243
+ * in: path
244
+ * required: true
245
+ * type: string
246
+ * tags:
247
+ * - Directory Sync
248
+ * produces:
249
+ * - application/json
250
+ * responses:
251
+ * '200':
252
+ * description: Success
253
+ * schema:
254
+ * $ref: '#/definitions/Directory'
255
+ */
256
+ get(id) {
257
+ return __awaiter(this, void 0, void 0, function* () {
258
+ metrics.increment('getDsyncConnections');
259
+ try {
260
+ if (!id) {
261
+ throw new JacksonError('Missing required parameters.', 400);
262
+ }
263
+ const directory = yield this.store().get(id);
264
+ if (!directory) {
265
+ throw new JacksonError('Directory configuration not found.', 404);
266
+ }
267
+ return { data: this.transform(directory), error: null };
268
+ }
269
+ catch (err) {
270
+ return apiError(err);
271
+ }
272
+ });
273
+ }
274
+ /**
275
+ * @swagger
276
+ * /api/v1/dsync/{directoryId}:
277
+ * patch:
278
+ * summary: Update a directory connection
279
+ * parameters:
280
+ * - name: directoryId
281
+ * description: Directory ID
282
+ * in: path
283
+ * required: true
284
+ * type: string
285
+ * - name: name
286
+ * description: Name
287
+ * in: formData
288
+ * required: false
289
+ * type: string
290
+ * - name: webhook_url
291
+ * description: Webhook URL
292
+ * in: formData
293
+ * required: false
294
+ * type: string
295
+ * - name: webhook_secret
296
+ * description: Webhook secret
297
+ * in: formData
298
+ * required: false
299
+ * type: string
300
+ * - name: log_webhook_events
301
+ * description: If true, webhook requests will be logged
302
+ * in: formData
303
+ * required: false
304
+ * type: string
305
+ * - name: deactivated
306
+ * description: If true, the directory connection will be deactivated
307
+ * in: formData
308
+ * required: false
309
+ * type: string
310
+ * - name: google_domain
311
+ * description: Google domain
312
+ * in: formData
313
+ * required: false
314
+ * type: string
315
+ * - name: google_access_token
316
+ * description: Google access token
317
+ * in: formData
318
+ * required: false
319
+ * type: string
320
+ * - name: google_refresh_token
321
+ * description: Google refresh token
322
+ * in: formData
323
+ * required: false
324
+ * type: string
325
+ * tags: [Directory Sync]
326
+ * produces:
327
+ * - application/json
328
+ * consumes:
329
+ * - application/x-www-form-urlencoded
330
+ * - application/json
331
+ * responses:
332
+ * 200:
333
+ * description: Success
334
+ * schema:
335
+ * $ref: '#/definitions/Directory'
336
+ */
337
+ update(id, param) {
338
+ return __awaiter(this, void 0, void 0, function* () {
339
+ try {
340
+ if (!id) {
341
+ throw new JacksonError('Missing required parameters.', 400);
342
+ }
343
+ const directory = yield this.store().get(id);
344
+ const toUpdate = Object.assign({}, directory);
345
+ const propertiesToUpdate = [
346
+ 'name',
347
+ 'log_webhook_events',
348
+ 'webhook',
349
+ 'deactivated',
350
+ 'google_domain',
351
+ 'google_access_token',
352
+ 'google_refresh_token',
353
+ ];
354
+ for (const property of propertiesToUpdate) {
355
+ if (property in param) {
356
+ toUpdate[property] = param[property];
357
+ }
358
+ }
359
+ if ('webhook_url' in param) {
360
+ toUpdate['webhook']['endpoint'] = param.webhook_url || '';
361
+ }
362
+ if ('webhook_secret' in param) {
363
+ toUpdate['webhook']['secret'] = param.webhook_secret || '';
364
+ }
365
+ yield this.store().put(id, toUpdate);
366
+ const updatedDirectory = this.transform(toUpdate);
367
+ if ('deactivated' in param) {
368
+ if (isConnectionActive(updatedDirectory)) {
369
+ yield this.eventController.notify('dsync.activated', updatedDirectory);
370
+ }
371
+ else {
372
+ yield this.eventController.notify('dsync.deactivated', updatedDirectory);
373
+ }
374
+ }
375
+ return { data: updatedDirectory, error: null };
376
+ }
377
+ catch (err) {
378
+ return apiError(err);
379
+ }
380
+ });
381
+ }
382
+ /**
383
+ * @swagger
384
+ * /api/v1/dsync:
385
+ * get:
386
+ * summary: Get a directory connection by tenant and product
387
+ * parameters:
388
+ * - $ref: '#/parameters/tenant'
389
+ * - $ref: '#/parameters/product'
390
+ * tags: [Directory Sync]
391
+ * produces:
392
+ * - application/json
393
+ * consumes:
394
+ * - application/x-www-form-urlencoded
395
+ * - application/json
396
+ * responses:
397
+ * 200:
398
+ * description: Success
399
+ * schema:
400
+ * type: array
401
+ * items:
402
+ * $ref: '#/definitions/Directory'
403
+ */
404
+ getByTenantAndProduct(tenant, product) {
405
+ return __awaiter(this, void 0, void 0, function* () {
406
+ metrics.increment('getDsyncConnections');
407
+ try {
408
+ if (!tenant || !product) {
409
+ throw new JacksonError('Missing required parameters.', 400);
410
+ }
411
+ const { data: directories } = yield this.store().getByIndex({
412
+ name: IndexNames.TenantProduct,
413
+ value: dbutils.keyFromParts(tenant, product),
414
+ });
415
+ const transformedDirectories = directories.map((directory) => this.transform(directory));
416
+ return { data: transformedDirectories, error: null };
417
+ }
418
+ catch (err) {
419
+ return apiError(err);
420
+ }
421
+ });
422
+ }
423
+ // Get directory connections with pagination
424
+ getAll() {
425
+ return __awaiter(this, arguments, void 0, function* (params = {}) {
426
+ metrics.increment('getDsyncConnections');
427
+ const { pageOffset, pageLimit, pageToken } = params;
428
+ try {
429
+ const { data: directories, pageToken: nextPageToken } = yield this.store().getAll(pageOffset, pageLimit, pageToken);
430
+ const transformedDirectories = directories
431
+ ? directories.map((directory) => this.transform(directory))
432
+ : [];
433
+ return {
434
+ data: transformedDirectories,
435
+ pageToken: nextPageToken,
436
+ error: null,
437
+ };
438
+ }
439
+ catch (err) {
440
+ return apiError(err);
441
+ }
442
+ });
443
+ }
444
+ /**
445
+ * @swagger
446
+ * /api/v1/dsync/{directoryId}:
447
+ * delete:
448
+ * summary: Delete a directory connection by id
449
+ * parameters:
450
+ * - name: directoryId
451
+ * description: Directory ID
452
+ * in: path
453
+ * required: true
454
+ * type: string
455
+ * tags:
456
+ * - Directory Sync
457
+ * produces:
458
+ * - application/json
459
+ * responses:
460
+ * '200':
461
+ * description: Success
462
+ */
463
+ delete(id) {
464
+ return __awaiter(this, void 0, void 0, function* () {
465
+ metrics.increment('deleteDsyncConnections');
466
+ try {
467
+ if (!id) {
468
+ throw new JacksonError('Missing required parameter.', 400);
469
+ }
470
+ const { data: directory } = yield this.get(id);
471
+ if (!directory) {
472
+ throw new JacksonError('Directory configuration not found.', 404);
473
+ }
474
+ const { tenant, product } = directory;
475
+ // Delete the configuration
476
+ yield this.store().delete(id);
477
+ // Delete the groups
478
+ yield this.groups.setTenantAndProduct(tenant, product).deleteAll(id);
479
+ // Delete the users
480
+ yield this.users.setTenantAndProduct(tenant, product).deleteAll(id);
481
+ // Delete the webhook events
482
+ yield this.logger.setTenantAndProduct(tenant, product).deleteAll(id);
483
+ yield this.eventController.notify('dsync.deleted', directory);
484
+ return { data: null, error: null };
485
+ }
486
+ catch (err) {
487
+ return apiError(err);
488
+ }
489
+ });
490
+ }
491
+ transform(directory) {
492
+ var _a, _b;
493
+ if (directory.scim.path) {
494
+ // Add the flag to ensure SCIM compliance when using Azure AD
495
+ if (directory.type === 'azure-scim-v2') {
496
+ directory.scim.path = `${directory.scim.path}/?aadOptscim062020`;
497
+ }
498
+ // Construct the SCIM endpoint
499
+ directory.scim.endpoint = `${this.opts.externalUrl}${directory.scim.path}`;
500
+ }
501
+ if (directory.type === 'google') {
502
+ directory.google_authorization_url = `${this.opts.externalUrl}${(_b = (_a = this.opts.dsync) === null || _a === void 0 ? void 0 : _a.providers) === null || _b === void 0 ? void 0 : _b.google.authorizePath}`;
503
+ }
504
+ if (!('deactivated' in directory)) {
505
+ directory.deactivated = false;
506
+ }
507
+ return directory;
508
+ }
509
+ /**
510
+ * @swagger
511
+ * /api/v1/dsync/product:
512
+ * get:
513
+ * summary: Get directory connections by product
514
+ * parameters:
515
+ * - $ref: '#/parameters/product'
516
+ * - $ref: '#/parameters/pageOffset'
517
+ * - $ref: '#/parameters/pageLimit'
518
+ * - $ref: '#/parameters/pageToken'
519
+ * tags:
520
+ * - Directory Sync
521
+ * produces:
522
+ * - application/json
523
+ * responses:
524
+ * '200':
525
+ * description: Success
526
+ * content:
527
+ * application/json:
528
+ * schema:
529
+ * type: object
530
+ * properties:
531
+ * data:
532
+ * type: array
533
+ * items:
534
+ * $ref: '#/definitions/Directory'
535
+ * pageToken:
536
+ * type: string
537
+ * description: token for pagination
538
+ */
539
+ filterBy() {
540
+ return __awaiter(this, arguments, void 0, function* (params = {}) {
541
+ metrics.increment('getDsyncConnections');
542
+ const { product, provider, pageOffset, pageLimit, pageToken } = params;
543
+ let index = null;
544
+ if (product) {
545
+ // Filter by product
546
+ index = {
547
+ name: IndexNames.Product,
548
+ value: product,
549
+ };
550
+ }
551
+ else if (provider) {
552
+ // Filter by provider
553
+ index = {
554
+ name: storeNamespacePrefix.dsync.providers,
555
+ value: provider,
556
+ };
557
+ }
558
+ try {
559
+ if (!index) {
560
+ throw new JacksonError('Please provider a product or provider.', 400);
561
+ }
562
+ const { data: directories, pageToken: nextPageToken } = yield this.store().getByIndex(index, pageOffset, pageLimit, pageToken);
563
+ return {
564
+ data: directories.map((directory) => this.transform(directory)),
565
+ pageToken: nextPageToken,
566
+ error: null,
567
+ };
568
+ }
569
+ catch (err) {
570
+ return apiError(err);
571
+ }
572
+ });
573
+ }
574
+ getCount(idx) {
575
+ return __awaiter(this, void 0, void 0, function* () {
576
+ return yield this.store().getCount(idx);
577
+ });
578
+ }
579
+ }
580
+ //# sourceMappingURL=DirectoryConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DirectoryConfig.js","sourceRoot":"","sources":["../../../../src/directory-sync/scim/DirectoryConfig.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import type { Group, DirectorySyncResponse, Directory, DirectorySyncGroupMember, DirectorySyncRequest, EventCallback, IDirectoryConfig, IUsers, IGroups } from '../../typings';
2
+ interface DirectoryGroupsParams {
3
+ directories: IDirectoryConfig;
4
+ users: IUsers;
5
+ groups: IGroups;
6
+ }
7
+ export declare class DirectoryGroups {
8
+ private directories;
9
+ private users;
10
+ private groups;
11
+ private callback;
12
+ constructor({ directories, users, groups }: DirectoryGroupsParams);
13
+ create(directory: Directory, body: any): Promise<DirectorySyncResponse>;
14
+ get(group: Group): Promise<DirectorySyncResponse>;
15
+ getAll(queryParams: {
16
+ filter?: string;
17
+ directoryId: string;
18
+ }): Promise<DirectorySyncResponse>;
19
+ patch(directory: Directory, group: Group, body: any): Promise<DirectorySyncResponse>;
20
+ update(directory: Directory, group: Group, body: any): Promise<DirectorySyncResponse>;
21
+ delete(directory: Directory, group: Group): Promise<DirectorySyncResponse>;
22
+ updateDisplayName(directory: Directory, group: Group, body: any): Promise<Group>;
23
+ addGroupMembers(directory: Directory, group: Group, members: DirectorySyncGroupMember[] | undefined): Promise<void>;
24
+ removeGroupMembers(directory: Directory, group: Group, members: DirectorySyncGroupMember[] | undefined): Promise<void>;
25
+ private respondWithError;
26
+ handleRequest(request: DirectorySyncRequest, callback?: EventCallback): Promise<DirectorySyncResponse>;
27
+ }
28
+ export {};