@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 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/event/index.ts"],"names":[],"mappings":";;;;;;;;;AAWA,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EACL,0BAA0B,EAC1B,4BAA4B,EAC5B,0BAA0B,GAC3B,MAAM,SAAS,CAAC;AAEjB,MAAM,CAAC,OAAO,OAAO,KAAK;IAIxB,YAAY,EAAE,IAAI,EAA2B;QAC3C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IAC1B,CAAC;IAEK,MAAM,CACV,KAAQ,EACR,IAAkF;;YAElF,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAEnD,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACtD,CAAC;KAAA;IAEO,gBAAgB,CAAC,KAAgB,EAAE,IAA+C;QACxF,IAAI,eAA0B,CAAC;QAE/B,IAAI,aAAa,IAAI,IAAI,EAAE,CAAC;YAC1B,eAAe,GAAG,0BAA0B,CAAC,IAAI,CAAC,CAAC;QACrD,CAAC;aAAM,IAAI,cAAc,IAAI,IAAI,EAAE,CAAC;YAClC,eAAe,GAAG,0BAA0B,CAAC,IAAI,CAAC,CAAC;QACrD,CAAC;aAAM,CAAC;YACN,eAAe,GAAG,4BAA4B,CAAC,IAAI,CAAC,CAAC;QACvD,CAAC;QAED,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QAEjC,MAAM,OAAO,GAAuB;YAClC,KAAK;YACL,MAAM;YACN,OAAO;YACP,IAAI,EAAE,eAAe;SACtB,CAAC;QAEF,OAAO,OAAO,CAAC;IACjB,CAAC;IAEK,gBAAgB,CAAC,OAA4B,EAAE,OAA2B;;;YAC9E,IAAI,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,CAAA,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;gBAC1C,OAAO;YACT,CAAC;YAED,OAAO,MAAM,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAA,IAAI,CAAC,KAAK,0CAAE,aAAa,CAAC,CAAC;QACjF,CAAC;KAAA;CACF"}
@@ -0,0 +1,21 @@
1
+ import EventController from '../event';
2
+ import type { Directory, DirectorySyncEventType, SAMLSSORecord, OIDCSSORecord, DirectorySyncEventData } from '../typings';
3
+ export type IEventController = InstanceType<typeof EventController>;
4
+ export type SSOConnectionEventType = 'sso.created' | 'sso.deleted' | 'sso.activated' | 'sso.deactivated';
5
+ export type DsyncConnectionEventType = 'dsync.created' | 'dsync.deleted' | 'dsync.activated' | 'dsync.deactivated';
6
+ export type EventType = SSOConnectionEventType | DsyncConnectionEventType | DirectorySyncEventType;
7
+ export type SAMLSSOConnectionEventData = Pick<SAMLSSORecord, 'name' | 'description' | 'clientID' | 'clientSecret'> & {
8
+ provider: string;
9
+ friendlyProviderName: string;
10
+ };
11
+ export type OIDCSSOConnectionEventData = Pick<OIDCSSORecord, 'name' | 'description' | 'clientID' | 'clientSecret'> & {
12
+ provider: string | undefined;
13
+ };
14
+ export type DsyncConnectionEventData = Pick<Directory, 'id' | 'name' | 'type'>;
15
+ export type EventData = SAMLSSOConnectionEventData | OIDCSSOConnectionEventData | DsyncConnectionEventData | DirectorySyncEventData;
16
+ export type EventPayloadSchema = {
17
+ tenant: string;
18
+ product: string;
19
+ event: EventType;
20
+ data: EventData;
21
+ };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/event/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import type { Directory, DsyncConnectionEventData, SAMLSSOConnectionEventData, OIDCSSOConnectionEventData, SAMLSSORecord, OIDCSSORecord } from '../typings';
2
+ export declare const transformSAMLSSOConnection: (data: SAMLSSORecord) => SAMLSSOConnectionEventData;
3
+ export declare const transformOIDCSSOConnection: (data: OIDCSSORecord) => OIDCSSOConnectionEventData;
4
+ export declare const transformDirectoryConnection: (data: Directory) => DsyncConnectionEventData;
@@ -0,0 +1,33 @@
1
+ import { findFriendlyProviderName } from '../controller/utils';
2
+ export const transformSAMLSSOConnection = (data) => {
3
+ const { name, description, clientID, clientSecret, idpMetadata } = data;
4
+ const { provider } = idpMetadata;
5
+ return {
6
+ name,
7
+ description,
8
+ clientID,
9
+ clientSecret,
10
+ provider,
11
+ friendlyProviderName: findFriendlyProviderName(provider),
12
+ };
13
+ };
14
+ export const transformOIDCSSOConnection = (data) => {
15
+ const { name, description, clientID, clientSecret, oidcProvider } = data;
16
+ const { provider } = oidcProvider;
17
+ return {
18
+ name,
19
+ description,
20
+ clientID,
21
+ clientSecret,
22
+ provider,
23
+ };
24
+ };
25
+ export const transformDirectoryConnection = (data) => {
26
+ const { id, name, type } = data;
27
+ return {
28
+ id,
29
+ name,
30
+ type,
31
+ };
32
+ };
33
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/event/utils.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAE/D,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,IAAmB,EAA8B,EAAE;IAC5F,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;IACxE,MAAM,EAAE,QAAQ,EAAE,GAAG,WAAW,CAAC;IAEjC,OAAO;QACL,IAAI;QACJ,WAAW;QACX,QAAQ;QACR,YAAY;QACZ,QAAQ;QACR,oBAAoB,EAAE,wBAAwB,CAAC,QAAQ,CAAC;KACzD,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,IAAmB,EAA8B,EAAE;IAC5F,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;IACzE,MAAM,EAAE,QAAQ,EAAE,GAAG,YAAY,CAAC;IAElC,OAAO;QACL,IAAI;QACJ,WAAW;QACX,QAAQ;QACR,YAAY;QACZ,QAAQ;KACT,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,IAAe,EAA4B,EAAE;IACxF,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;IAEhC,OAAO;QACL,EAAE;QACF,IAAI;QACJ,IAAI;KACL,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { EventPayloadSchema, Webhook } from '../typings';
2
+ export declare const createSignatureString: (secret: string, payload: any) => string;
3
+ export declare const sendPayloadToWebhook: (webhook: Webhook, payload: EventPayloadSchema | EventPayloadSchema[], debugWebhooks: boolean | undefined) => Promise<any>;
@@ -0,0 +1,34 @@
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 crypto from 'crypto';
11
+ import axios from './axios';
12
+ export const createSignatureString = (secret, payload) => {
13
+ if (!secret) {
14
+ return '';
15
+ }
16
+ const timestamp = new Date().getTime();
17
+ const signature = crypto
18
+ .createHmac('sha256', secret)
19
+ .update(`${timestamp}.${JSON.stringify(payload)}`)
20
+ .digest('hex');
21
+ return `t=${timestamp},s=${signature}`;
22
+ };
23
+ export const sendPayloadToWebhook = (webhook, payload, debugWebhooks) => __awaiter(void 0, void 0, void 0, function* () {
24
+ if (debugWebhooks) {
25
+ console.log('Sending payload to webhook:', JSON.stringify(payload, null, 2));
26
+ }
27
+ return yield axios.post(webhook.endpoint, payload, {
28
+ headers: {
29
+ 'Content-Type': 'application/json',
30
+ 'BoxyHQ-Signature': createSignatureString(webhook.secret, payload),
31
+ },
32
+ });
33
+ });
34
+ //# sourceMappingURL=webhook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhook.js","sourceRoot":"","sources":["../../../src/event/webhook.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,KAAK,MAAM,SAAS,CAAC;AAE5B,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,MAAc,EAAE,OAAY,EAAE,EAAE;IACpE,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;IAEvC,MAAM,SAAS,GAAG,MAAM;SACrB,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC;SAC5B,MAAM,CAAC,GAAG,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;SACjD,MAAM,CAAC,KAAK,CAAC,CAAC;IAEjB,OAAO,KAAK,SAAS,MAAM,SAAS,EAAE,CAAC;AACzC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,OAAgB,EAChB,OAAkD,EAClD,aAAkC,EAClC,EAAE;IACF,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/E,CAAC;IAED,OAAO,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,EAAE;QACjD,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,kBAAkB,EAAE,qBAAqB,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC;SACnE;KACF,CAAC,CAAC;AACL,CAAC,CAAA,CAAC"}
@@ -0,0 +1,35 @@
1
+ import type { IDirectorySyncController, JacksonOption } from './typings';
2
+ import { AdminController } from './controller/admin';
3
+ import { ConnectionAPIController } from './controller/api';
4
+ import { OAuthController } from './controller/oauth';
5
+ import { HealthCheckController } from './controller/health-check';
6
+ import { LogoutController } from './controller/logout';
7
+ import { OidcDiscoveryController } from './controller/oidc-discovery';
8
+ import { SPSSOConfig } from './controller/sp-config';
9
+ import { SetupLinkController } from './controller/setup-link';
10
+ import { type IIdentityFederationController } from './ee/identity-federation';
11
+ import { BrandingController } from './ee/branding';
12
+ import { ProductController } from './ee/product';
13
+ export declare const controllers: (opts: JacksonOption) => Promise<{
14
+ apiController: ConnectionAPIController;
15
+ connectionAPIController: ConnectionAPIController;
16
+ oauthController: OAuthController;
17
+ adminController: AdminController;
18
+ logoutController: LogoutController;
19
+ healthCheckController: HealthCheckController;
20
+ setupLinkController: SetupLinkController;
21
+ directorySyncController: IDirectorySyncController;
22
+ oidcDiscoveryController: OidcDiscoveryController;
23
+ spConfig: SPSSOConfig;
24
+ identityFederationController: IIdentityFederationController;
25
+ brandingController: IBrandingController;
26
+ checkLicense: () => Promise<boolean>;
27
+ productController: ProductController;
28
+ close: () => Promise<void>;
29
+ }>;
30
+ export default controllers;
31
+ export * from './typings';
32
+ export * from './ee/identity-federation/types';
33
+ export type SAMLJackson = Awaited<ReturnType<typeof controllers>>;
34
+ export type ISetupLinkController = InstanceType<typeof SetupLinkController>;
35
+ export type IBrandingController = InstanceType<typeof BrandingController>;
@@ -0,0 +1,161 @@
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 DB from './db/db';
11
+ import defaultDb from './db/defaultDb';
12
+ import loadConnection from './loadConnection';
13
+ import { AdminController } from './controller/admin';
14
+ import { ConnectionAPIController } from './controller/api';
15
+ import { OAuthController } from './controller/oauth';
16
+ import { HealthCheckController } from './controller/health-check';
17
+ import { LogoutController } from './controller/logout';
18
+ import initDirectorySync from './directory-sync';
19
+ import { OidcDiscoveryController } from './controller/oidc-discovery';
20
+ import { SPSSOConfig } from './controller/sp-config';
21
+ import { SetupLinkController } from './controller/setup-link';
22
+ import { AnalyticsController } from './controller/analytics';
23
+ import * as x509 from './saml/x509';
24
+ import initIdentityFederation from './ee/identity-federation';
25
+ import checkLicense from './ee/common/checkLicense';
26
+ import { BrandingController } from './ee/branding';
27
+ import SSOTraces from './sso-traces';
28
+ import EventController from './event';
29
+ import { ProductController } from './ee/product';
30
+ import { OryController } from './ee/ory/ory';
31
+ const tracesTTL = 7 * 24 * 60 * 60;
32
+ const defaultOpts = (opts) => {
33
+ var _a, _b, _c, _d;
34
+ const newOpts = Object.assign({}, opts);
35
+ if (!newOpts.externalUrl) {
36
+ throw new Error('externalUrl is required');
37
+ }
38
+ if (!newOpts.samlPath) {
39
+ throw new Error('samlPath is required');
40
+ }
41
+ newOpts.scimPath = newOpts.scimPath || '/api/scim/v2.0';
42
+ newOpts.samlAudience = newOpts.samlAudience || 'https://saml.boxyhq.com';
43
+ // path to folder containing static IdP connections that will be preloaded. This is useful for self-hosted deployments that only have to support a single tenant (or small number of known tenants).
44
+ newOpts.preLoadedConnection = newOpts.preLoadedConnection || '';
45
+ newOpts.idpEnabled = newOpts.idpEnabled === true;
46
+ defaultDb(newOpts);
47
+ newOpts.clientSecretVerifier = newOpts.clientSecretVerifier || 'dummy';
48
+ newOpts.db.pageLimit = newOpts.db.pageLimit || 50;
49
+ newOpts.openid = newOpts.openid || {};
50
+ newOpts.openid.jwsAlg = newOpts.openid.jwsAlg || 'RS256';
51
+ newOpts.openid.requestProfileScope = (_b = (_a = newOpts.openid) === null || _a === void 0 ? void 0 : _a.requestProfileScope) !== null && _b !== void 0 ? _b : true;
52
+ newOpts.openid.forwardOIDCParams = (_d = (_c = newOpts.openid) === null || _c === void 0 ? void 0 : _c.forwardOIDCParams) !== null && _d !== void 0 ? _d : false;
53
+ newOpts.boxyhqLicenseKey = newOpts.boxyhqLicenseKey || undefined;
54
+ return newOpts;
55
+ };
56
+ export const controllers = (opts) => __awaiter(void 0, void 0, void 0, function* () {
57
+ opts = defaultOpts(opts);
58
+ const db = yield DB.new(opts.db);
59
+ const connectionStore = db.store('saml:config');
60
+ const sessionStore = db.store('oauth:session', opts.db.ttl);
61
+ const codeStore = db.store('oauth:code', opts.db.ttl);
62
+ const tokenStore = db.store('oauth:token', opts.db.ttl);
63
+ const healthCheckStore = db.store('_health:check');
64
+ const setupLinkStore = db.store('setup:link');
65
+ const certificateStore = db.store('x509:certificates');
66
+ const settingsStore = db.store('portal:settings');
67
+ const productStore = db.store('product:config');
68
+ const tracesStore = db.store('saml:tracer', tracesTTL);
69
+ const ssoTraces = new SSOTraces({ tracesStore });
70
+ const eventController = new EventController({ opts });
71
+ const productController = new ProductController({ productStore, opts });
72
+ const oryController = new OryController({ opts, productController });
73
+ const connectionAPIController = new ConnectionAPIController({
74
+ connectionStore,
75
+ opts,
76
+ eventController,
77
+ oryController,
78
+ });
79
+ const adminController = new AdminController({ connectionStore, ssoTraces });
80
+ const healthCheckController = new HealthCheckController({ healthCheckStore });
81
+ yield healthCheckController.init();
82
+ const setupLinkController = new SetupLinkController({ setupLinkStore, opts });
83
+ // Create default certificate if it doesn't exist.
84
+ yield x509.init(certificateStore, opts);
85
+ // Enterprise Features
86
+ const identityFederationController = yield initIdentityFederation({ db, opts, ssoTraces });
87
+ const brandingController = new BrandingController({ store: settingsStore, opts });
88
+ const oauthController = new OAuthController({
89
+ connectionStore,
90
+ sessionStore,
91
+ codeStore,
92
+ tokenStore,
93
+ ssoTraces,
94
+ opts,
95
+ idFedApp: identityFederationController.app,
96
+ });
97
+ const logoutController = new LogoutController({
98
+ connectionStore,
99
+ sessionStore,
100
+ opts,
101
+ });
102
+ const oidcDiscoveryController = new OidcDiscoveryController({ opts });
103
+ const spConfig = new SPSSOConfig(opts);
104
+ const directorySyncController = yield initDirectorySync({ db, opts, eventController });
105
+ // write pre-loaded connections if present
106
+ const preLoadedConnection = opts.preLoadedConnection;
107
+ if (preLoadedConnection && preLoadedConnection.length > 0) {
108
+ const connections = yield loadConnection(preLoadedConnection);
109
+ for (const connection of connections) {
110
+ if ('oidcDiscoveryUrl' in connection || 'oidcMetadata' in connection) {
111
+ yield connectionAPIController.createOIDCConnection(connection);
112
+ }
113
+ else {
114
+ yield connectionAPIController.createSAMLConnection(connection);
115
+ }
116
+ console.info(`loaded connection for tenant "${connection.tenant}" and product "${connection.product}"`);
117
+ }
118
+ }
119
+ if (!opts.noAnalytics) {
120
+ console.info('Anonymous analytics enabled. You can disable this by setting the DO_NOT_TRACK=1 or BOXYHQ_NO_ANALYTICS=1 environment variables');
121
+ const analyticsStore = db.store('_analytics:events');
122
+ const analyticsController = new AnalyticsController({
123
+ analyticsStore,
124
+ connectionAPIController,
125
+ directorySyncController,
126
+ });
127
+ yield analyticsController.init();
128
+ }
129
+ if ('driver' in opts.db) {
130
+ console.info(`Using external database driver`);
131
+ }
132
+ else {
133
+ const type = opts.db.engine === 'sql' && opts.db.type ? ' Type: ' + opts.db.type : '';
134
+ console.info(`Using engine: ${opts.db.engine}.${type}`);
135
+ }
136
+ return {
137
+ spConfig,
138
+ apiController: connectionAPIController,
139
+ connectionAPIController,
140
+ oauthController,
141
+ adminController,
142
+ logoutController,
143
+ healthCheckController,
144
+ setupLinkController,
145
+ directorySyncController,
146
+ oidcDiscoveryController,
147
+ identityFederationController,
148
+ brandingController,
149
+ checkLicense: () => {
150
+ return checkLicense(opts.boxyhqLicenseKey);
151
+ },
152
+ productController,
153
+ close: () => __awaiter(void 0, void 0, void 0, function* () {
154
+ yield db.close();
155
+ }),
156
+ };
157
+ });
158
+ export default controllers;
159
+ export * from './typings';
160
+ export * from './ee/identity-federation/types';
161
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { OIDCSSOConnectionWithDiscoveryUrl, OIDCSSOConnectionWithMetadata, SAMLSSOConnectionWithEncodedMetadata, SAMLSSOConnectionWithRawMetadata } from './typings';
2
+ type connection = SAMLSSOConnectionWithEncodedMetadata | SAMLSSOConnectionWithRawMetadata | OIDCSSOConnectionWithDiscoveryUrl | OIDCSSOConnectionWithMetadata;
3
+ declare const loadConnection: (preLoadedConnection: string) => Promise<connection[]>;
4
+ export default loadConnection;
@@ -0,0 +1,38 @@
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 * as fs from 'fs';
11
+ import * as path from 'path';
12
+ import * as url from 'url';
13
+ const loadConnection = (preLoadedConnection) => __awaiter(void 0, void 0, void 0, function* () {
14
+ if (preLoadedConnection.startsWith('./')) {
15
+ preLoadedConnection = path.resolve(process.cwd(), preLoadedConnection);
16
+ }
17
+ else {
18
+ preLoadedConnection = path.resolve(preLoadedConnection);
19
+ }
20
+ const files = yield fs.promises.readdir(preLoadedConnection);
21
+ const connections = [];
22
+ for (const idx in files) {
23
+ const file = files[idx];
24
+ if (file.endsWith('.js')) {
25
+ const filePath = path.join(preLoadedConnection, file);
26
+ const fileUrl = preLoadedConnection.startsWith('/') ? filePath : url.pathToFileURL(filePath).toString();
27
+ const { default: connection, } = yield import(/* webpackIgnore: true */ fileUrl);
28
+ if (!('oidcDiscoveryUrl' in connection) && !('oidcMetadata' in connection)) {
29
+ const rawMetadata = yield fs.promises.readFile(path.join(preLoadedConnection, path.parse(file).name + '.xml'), 'utf8');
30
+ connection.encodedRawMetadata = Buffer.from(rawMetadata, 'utf8').toString('base64');
31
+ }
32
+ connections.push(connection);
33
+ }
34
+ }
35
+ return connections;
36
+ });
37
+ export default loadConnection;
38
+ //# sourceMappingURL=loadConnection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loadConnection.js","sourceRoot":"","sources":["../../src/loadConnection.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAc3B,MAAM,cAAc,GAAG,CAAO,mBAA2B,EAAyB,EAAE;IAClF,IAAI,mBAAmB,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACzC,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,mBAAmB,CAAC,CAAC;IACzE,CAAC;SAAM,CAAC;QACN,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC7D,MAAM,WAAW,GAAiB,EAAE,CAAC;IAErC,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;QACxB,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;YACtD,MAAM,OAAO,GAAG,mBAAmB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;YACxG,MAAM,EACJ,OAAO,EAAE,UAAU,GACpB,GAEG,MAAM,MAAM,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;YACpD,IAAI,CAAC,CAAC,kBAAkB,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,cAAc,IAAI,UAAU,CAAC,EAAE,CAAC;gBAC3E,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAC5C,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,EAC9D,MAAM,CACP,CAAC;gBACF,UAAU,CAAC,kBAAkB,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACtF,CAAC;YAED,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC,CAAA,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -0,0 +1,14 @@
1
+ declare const counters: {
2
+ createConnection: () => any;
3
+ getConnections: () => any;
4
+ deleteConnections: () => any;
5
+ oauthAuthorize: () => any;
6
+ oauthToken: () => any;
7
+ oauthUserInfo: () => any;
8
+ createDsyncConnection: () => any;
9
+ getDsyncConnections: () => any;
10
+ deleteDsyncConnections: () => any;
11
+ dsyncEventsBatchFailed: () => void;
12
+ };
13
+ declare const increment: (action: keyof typeof counters) => void;
14
+ export { increment };
@@ -0,0 +1,64 @@
1
+ import { incrementCounter } from '@boxyhq/metrics';
2
+ const METER = 'jackson';
3
+ const counters = {
4
+ createConnection: () => incrementCounter({
5
+ meter: METER,
6
+ name: 'jackson.connection.create',
7
+ counterOptions: { description: 'Number of IdP connection create requests' },
8
+ }),
9
+ getConnections: () => incrementCounter({
10
+ meter: METER,
11
+ name: 'jackson.connection.get',
12
+ counterOptions: { description: 'Number of IdP connections get requests' },
13
+ }),
14
+ deleteConnections: () => incrementCounter({
15
+ meter: METER,
16
+ name: 'jackson.connection.delete',
17
+ counterOptions: { description: 'Number of IdP connections delete requests' },
18
+ }),
19
+ oauthAuthorize: () => incrementCounter({
20
+ meter: METER,
21
+ name: 'jackson.oauth.authorize',
22
+ counterOptions: { description: 'Number of oauth authorize requests' },
23
+ }),
24
+ oauthToken: () => incrementCounter({
25
+ meter: METER,
26
+ name: 'jackson.oauth.token',
27
+ counterOptions: { description: 'Number of oauth token requests' },
28
+ }),
29
+ oauthUserInfo: () => incrementCounter({
30
+ meter: METER,
31
+ name: 'jackson.oauth.userinfo',
32
+ counterOptions: { description: 'Number of oauth user info requests' },
33
+ }),
34
+ createDsyncConnection: () => incrementCounter({
35
+ meter: METER,
36
+ name: 'jackson.dsync.connection.create',
37
+ counterOptions: { description: 'Number of DSync connection create requests' },
38
+ }),
39
+ getDsyncConnections: () => incrementCounter({
40
+ meter: METER,
41
+ name: 'jackson.dsync.connection.get',
42
+ counterOptions: { description: 'Number of DSync connections get requests' },
43
+ }),
44
+ deleteDsyncConnections: () => incrementCounter({
45
+ meter: METER,
46
+ name: 'jackson.dsync.connection.delete',
47
+ counterOptions: { description: 'Number of DSync connections delete requests' },
48
+ }),
49
+ dsyncEventsBatchFailed: () => {
50
+ incrementCounter({
51
+ meter: METER,
52
+ name: 'jackson.dsync.events_batch.failed',
53
+ counterOptions: { description: 'Indicate that a batch of dsync events failed' },
54
+ });
55
+ },
56
+ };
57
+ const increment = (action) => {
58
+ const counterIncrement = counters[action];
59
+ if (typeof counterIncrement === 'function') {
60
+ counterIncrement();
61
+ }
62
+ };
63
+ export { increment };
64
+ //# sourceMappingURL=metrics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../../src/opentelemetry/metrics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,MAAM,KAAK,GAAG,SAAS,CAAC;AAExB,MAAM,QAAQ,GAAG;IACf,gBAAgB,EAAE,GAAG,EAAE,CACrB,gBAAgB,CAAC;QACf,KAAK,EAAE,KAAK;QACZ,IAAI,EAAE,2BAA2B;QACjC,cAAc,EAAE,EAAE,WAAW,EAAE,0CAA0C,EAAE;KAC5E,CAAC;IACJ,cAAc,EAAE,GAAG,EAAE,CACnB,gBAAgB,CAAC;QACf,KAAK,EAAE,KAAK;QACZ,IAAI,EAAE,wBAAwB;QAC9B,cAAc,EAAE,EAAE,WAAW,EAAE,wCAAwC,EAAE;KAC1E,CAAC;IACJ,iBAAiB,EAAE,GAAG,EAAE,CACtB,gBAAgB,CAAC;QACf,KAAK,EAAE,KAAK;QACZ,IAAI,EAAE,2BAA2B;QACjC,cAAc,EAAE,EAAE,WAAW,EAAE,2CAA2C,EAAE;KAC7E,CAAC;IACJ,cAAc,EAAE,GAAG,EAAE,CACnB,gBAAgB,CAAC;QACf,KAAK,EAAE,KAAK;QACZ,IAAI,EAAE,yBAAyB;QAC/B,cAAc,EAAE,EAAE,WAAW,EAAE,oCAAoC,EAAE;KACtE,CAAC;IACJ,UAAU,EAAE,GAAG,EAAE,CACf,gBAAgB,CAAC;QACf,KAAK,EAAE,KAAK;QACZ,IAAI,EAAE,qBAAqB;QAC3B,cAAc,EAAE,EAAE,WAAW,EAAE,gCAAgC,EAAE;KAClE,CAAC;IAEJ,aAAa,EAAE,GAAG,EAAE,CAClB,gBAAgB,CAAC;QACf,KAAK,EAAE,KAAK;QACZ,IAAI,EAAE,wBAAwB;QAC9B,cAAc,EAAE,EAAE,WAAW,EAAE,oCAAoC,EAAE;KACtE,CAAC;IAEJ,qBAAqB,EAAE,GAAG,EAAE,CAC1B,gBAAgB,CAAC;QACf,KAAK,EAAE,KAAK;QACZ,IAAI,EAAE,iCAAiC;QACvC,cAAc,EAAE,EAAE,WAAW,EAAE,4CAA4C,EAAE;KAC9E,CAAC;IAEJ,mBAAmB,EAAE,GAAG,EAAE,CACxB,gBAAgB,CAAC;QACf,KAAK,EAAE,KAAK;QACZ,IAAI,EAAE,8BAA8B;QACpC,cAAc,EAAE,EAAE,WAAW,EAAE,0CAA0C,EAAE;KAC5E,CAAC;IAEJ,sBAAsB,EAAE,GAAG,EAAE,CAC3B,gBAAgB,CAAC;QACf,KAAK,EAAE,KAAK;QACZ,IAAI,EAAE,iCAAiC;QACvC,cAAc,EAAE,EAAE,WAAW,EAAE,6CAA6C,EAAE;KAC/E,CAAC;IAEJ,sBAAsB,EAAE,GAAG,EAAE;QAC3B,gBAAgB,CAAC;YACf,KAAK,EAAE,KAAK;YACZ,IAAI,EAAE,mCAAmC;YACzC,cAAc,EAAE,EAAE,WAAW,EAAE,8CAA8C,EAAE;SAChF,CAAC,CAAC;IACL,CAAC;CACF,CAAC;AAEF,MAAM,SAAS,GAAG,CAAC,MAA6B,EAAE,EAAE;IAClD,MAAM,gBAAgB,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC1C,IAAI,OAAO,gBAAgB,KAAK,UAAU,EAAE,CAAC;QAC3C,gBAAgB,EAAE,CAAC;IACrB,CAAC;AACH,CAAC,CAAC;AAEF,OAAO,EAAE,SAAS,EAAE,CAAC"}
@@ -0,0 +1,12 @@
1
+ declare const mapping: {
2
+ attribute: string;
3
+ schema: string;
4
+ }[];
5
+ type attributes = (typeof mapping)[number]['attribute'];
6
+ type schemas = (typeof mapping)[number]['schema'];
7
+ declare const _default: {
8
+ map: (claims: Record<attributes | schemas, unknown>) => {
9
+ raw: Record<string, unknown>;
10
+ };
11
+ };
12
+ export default _default;
@@ -0,0 +1,57 @@
1
+ const rolesAttribute = 'roles';
2
+ const rolesSchema = 'http://schemas.microsoft.com/ws/2008/06/identity/claims/role';
3
+ const groupsAttribute = 'groups';
4
+ const groupsSchema = 'http://schemas.xmlsoap.org/claims/Group';
5
+ const arrayMapping = [
6
+ {
7
+ attribute: rolesAttribute,
8
+ schema: rolesSchema,
9
+ },
10
+ {
11
+ attribute: groupsAttribute,
12
+ schema: groupsSchema,
13
+ },
14
+ ];
15
+ const mapping = [
16
+ {
17
+ attribute: 'id',
18
+ schema: 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier',
19
+ },
20
+ {
21
+ attribute: 'email',
22
+ schema: 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress',
23
+ },
24
+ {
25
+ attribute: 'firstName',
26
+ schema: 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname',
27
+ },
28
+ {
29
+ attribute: 'lastName',
30
+ schema: 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname',
31
+ },
32
+ ...arrayMapping,
33
+ ];
34
+ const map = (claims) => {
35
+ arrayMapping.forEach((m) => {
36
+ if (claims[m.attribute]) {
37
+ claims[m.attribute] = [].concat(claims[m.attribute]);
38
+ }
39
+ else if (claims[m.schema]) {
40
+ claims[m.schema] = [].concat(claims[m.schema]);
41
+ }
42
+ });
43
+ const profile = {
44
+ raw: claims,
45
+ };
46
+ mapping.forEach((m) => {
47
+ if (claims[m.attribute]) {
48
+ profile[m.attribute] = claims[m.attribute];
49
+ }
50
+ else if (claims[m.schema]) {
51
+ profile[m.attribute] = claims[m.schema];
52
+ }
53
+ });
54
+ return profile;
55
+ };
56
+ export default { map };
57
+ //# sourceMappingURL=claims.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claims.js","sourceRoot":"","sources":["../../../src/saml/claims.ts"],"names":[],"mappings":"AAAA,MAAM,cAAc,GAAG,OAAO,CAAC;AAC/B,MAAM,WAAW,GAAG,8DAA8D,CAAC;AAEnF,MAAM,eAAe,GAAG,QAAQ,CAAC;AACjC,MAAM,YAAY,GAAG,yCAAyC,CAAC;AAE/D,MAAM,YAAY,GAAG;IACnB;QACE,SAAS,EAAE,cAAc;QACzB,MAAM,EAAE,WAAW;KACpB;IACD;QACE,SAAS,EAAE,eAAe;QAC1B,MAAM,EAAE,YAAY;KACrB;CACF,CAAC;AAEF,MAAM,OAAO,GAAG;IACd;QACE,SAAS,EAAE,IAAI;QACf,MAAM,EAAE,sEAAsE;KAC/E;IACD;QACE,SAAS,EAAE,OAAO;QAClB,MAAM,EAAE,oEAAoE;KAC7E;IACD;QACE,SAAS,EAAE,WAAW;QACtB,MAAM,EAAE,iEAAiE;KAC1E;IACD;QACE,SAAS,EAAE,UAAU;QACrB,MAAM,EAAE,+DAA+D;KACxE;IACD,GAAG,YAAY;CAChB,CAAC;AAKF,MAAM,GAAG,GAAG,CAAC,MAA6C,EAAE,EAAE;IAC5D,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QACzB,IAAI,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC;YACxB,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAQ,CAAC,CAAC;QAC9D,CAAC;aAAM,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5B,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAQ,CAAC,CAAC;QACxD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG;QACd,GAAG,EAAE,MAAM;KACZ,CAAC;IAEF,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QACpB,IAAI,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC;YACxB,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC7C,CAAC;aAAM,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,eAAe,EAAE,GAAG,EAAE,CAAC"}
@@ -0,0 +1,8 @@
1
+ export declare const extractSAMLResponseAttributes: (decodedResponse: string, validateOpts: ValidateOption) => Promise<any>;
2
+ export type ValidateOption = {
3
+ thumbprint?: string;
4
+ publicKey?: string;
5
+ audience: string;
6
+ privateKey: string;
7
+ inResponseTo?: string;
8
+ };
@@ -0,0 +1,29 @@
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 crypto from 'crypto';
11
+ import saml from '@boxyhq/saml20';
12
+ import * as dbutils from '../db/utils';
13
+ import claims from '../saml/claims';
14
+ // Validate the SAMLResponse and extract the user profile
15
+ export const extractSAMLResponseAttributes = (decodedResponse, validateOpts) => __awaiter(void 0, void 0, void 0, function* () {
16
+ const attributes = yield saml.validate(decodedResponse, validateOpts);
17
+ if (attributes && attributes.claims) {
18
+ // We map claims to our attributes id, email, firstName, lastName where possible. We also map original claims to raw
19
+ attributes.claims = claims.map(attributes.claims);
20
+ // Some providers don't return the id in the assertion, we set it to a sha256 hash of the email
21
+ if (!attributes.claims.id && attributes.claims.email) {
22
+ attributes.claims.id = crypto.createHash('sha256').update(attributes.claims.email).digest('hex');
23
+ }
24
+ }
25
+ // we'll send a ripemd160 hash of the id, this can be used in the case of email missing it can be used as the local part
26
+ attributes.claims.idHash = dbutils.keyDigest(attributes.claims.id);
27
+ return attributes;
28
+ });
29
+ //# sourceMappingURL=lib.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lib.js","sourceRoot":"","sources":["../../../src/saml/lib.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,IAAI,MAAM,gBAAgB,CAAC;AAClC,OAAO,KAAK,OAAO,MAAM,aAAa,CAAC;AACvC,OAAO,MAAM,MAAM,gBAAgB,CAAC;AAEpC,yDAAyD;AACzD,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAC3C,eAAuB,EACvB,YAA4B,EAC5B,EAAE;IACF,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;IAEtE,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;QACpC,oHAAoH;QACpH,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAElD,+FAA+F;QAC/F,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,IAAI,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACrD,UAAU,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnG,CAAC;IACH,CAAC;IAED,wHAAwH;IACxH,UAAU,CAAC,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAEnE,OAAO,UAAU,CAAC;AACpB,CAAC,CAAA,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { JacksonOption, Storable } from '../typings';
2
+ export declare const init: (store: Storable, opts: JacksonOption) => Promise<{
3
+ publicKey: string;
4
+ privateKey: string;
5
+ }>;
6
+ export declare const getDefaultCertificate: () => Promise<{
7
+ publicKey: string;
8
+ privateKey: string;
9
+ }>;