@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,105 +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 { OAuth2Client } from 'google-auth-library';
11
- import { JacksonError, apiError } from '../../../controller/error';
12
- const scope = [
13
- 'https://www.googleapis.com/auth/admin.directory.user.readonly',
14
- 'https://www.googleapis.com/auth/admin.directory.group.readonly',
15
- 'https://www.googleapis.com/auth/admin.directory.group.member.readonly',
16
- ];
17
- export class GoogleAuth {
18
- constructor({ directories, opts }) {
19
- this.opts = opts;
20
- this.directories = directories;
21
- }
22
- createOAuth2Client(directory) {
23
- var _a, _b;
24
- const googleProvider = (_b = (_a = this.opts.dsync) === null || _a === void 0 ? void 0 : _a.providers) === null || _b === void 0 ? void 0 : _b.google;
25
- const authClient = new OAuth2Client(googleProvider === null || googleProvider === void 0 ? void 0 : googleProvider.clientId, googleProvider === null || googleProvider === void 0 ? void 0 : googleProvider.clientSecret, `${this.opts.externalUrl}${googleProvider === null || googleProvider === void 0 ? void 0 : googleProvider.callbackPath}`);
26
- authClient.setCredentials({
27
- access_token: directory.google_access_token,
28
- refresh_token: directory.google_refresh_token,
29
- });
30
- return authClient;
31
- }
32
- // Generate the Google authorization URL
33
- generateAuthorizationUrl(params) {
34
- return __awaiter(this, void 0, void 0, function* () {
35
- const { directoryId } = params;
36
- try {
37
- const { data: directory, error } = yield this.directories.get(directoryId);
38
- if (error) {
39
- throw error;
40
- }
41
- if ((directory === null || directory === void 0 ? void 0 : directory.type) !== 'google') {
42
- throw new JacksonError('Directory is not a Google Directory', 400);
43
- }
44
- const oauth2Client = this.createOAuth2Client(directory);
45
- const authorizationUrl = oauth2Client.generateAuthUrl({
46
- access_type: 'offline',
47
- prompt: 'consent',
48
- scope,
49
- state: JSON.stringify({ directoryId }),
50
- });
51
- const data = {
52
- authorizationUrl,
53
- };
54
- return { data, error: null };
55
- }
56
- catch (error) {
57
- return apiError(error);
58
- }
59
- });
60
- }
61
- // Get the Google API access token from the authorization code
62
- getAccessToken(params) {
63
- return __awaiter(this, void 0, void 0, function* () {
64
- const { directoryId, code } = params;
65
- try {
66
- const { data: directory, error } = yield this.directories.get(directoryId);
67
- if (error) {
68
- throw error;
69
- }
70
- const oauth2Client = this.createOAuth2Client(directory);
71
- const { tokens } = yield oauth2Client.getToken(code);
72
- return { data: tokens, error: null };
73
- }
74
- catch (error) {
75
- return apiError(error);
76
- }
77
- });
78
- }
79
- // Set the Google API access token and refresh token for the directory
80
- setToken(params) {
81
- return __awaiter(this, void 0, void 0, function* () {
82
- const { directoryId, accessToken, refreshToken } = params;
83
- try {
84
- if (!accessToken) {
85
- throw new JacksonError(`Access token is required`, 400);
86
- }
87
- if (!refreshToken) {
88
- throw new JacksonError(`Refresh token is required`, 400);
89
- }
90
- const { data } = yield this.directories.update(directoryId, {
91
- google_access_token: accessToken,
92
- google_refresh_token: refreshToken,
93
- });
94
- if (!data) {
95
- throw new JacksonError('Failed to update directory', 400);
96
- }
97
- return { data, error: null };
98
- }
99
- catch (error) {
100
- return apiError(error);
101
- }
102
- });
103
- }
104
- }
105
- //# sourceMappingURL=oauth.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"oauth.js","sourceRoot":"","sources":["../../../../../src/directory-sync/non-scim/google/oauth.ts"],"names":[],"mappings":"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"}
@@ -1,24 +0,0 @@
1
- import type { IDirectoryConfig, IUsers, IGroups, IRequestHandler, JacksonOption, EventCallback, CronLock } from '../../typings';
2
- interface SyncParams {
3
- userController: IUsers;
4
- groupController: IGroups;
5
- opts: JacksonOption;
6
- directories: IDirectoryConfig;
7
- requestHandler: IRequestHandler;
8
- eventCallback: EventCallback;
9
- eventLock: CronLock;
10
- }
11
- export declare class SyncProviders {
12
- private userController;
13
- private groupController;
14
- private directories;
15
- private requestHandler;
16
- private opts;
17
- private cronInterval;
18
- private eventCallback;
19
- private eventLock;
20
- constructor({ userController, groupController, opts, directories, requestHandler, eventCallback, eventLock, }: SyncParams);
21
- startSync(): Promise<void>;
22
- private scheduleSync;
23
- }
24
- export {};
@@ -1,85 +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 { newGoogleProvider } from './google';
11
- import { SyncUsers } from './syncUsers';
12
- import { SyncGroups } from './syncGroups';
13
- import { SyncGroupMembers } from './syncGroupMembers';
14
- let isJobRunning = false;
15
- let intervalId;
16
- export class SyncProviders {
17
- constructor({ userController, groupController, opts, directories, requestHandler, eventCallback, eventLock, }) {
18
- var _a, _b;
19
- this.userController = userController;
20
- this.groupController = groupController;
21
- this.directories = directories;
22
- this.requestHandler = requestHandler;
23
- this.eventCallback = eventCallback;
24
- this.opts = opts;
25
- this.cronInterval = (_b = (_a = this.opts.dsync) === null || _a === void 0 ? void 0 : _a.providers) === null || _b === void 0 ? void 0 : _b.google.cronInterval;
26
- this.eventLock = eventLock;
27
- if (this.cronInterval) {
28
- this.scheduleSync = this.scheduleSync.bind(this);
29
- this.scheduleSync();
30
- }
31
- }
32
- // Start the sync process
33
- startSync() {
34
- return __awaiter(this, void 0, void 0, function* () {
35
- if (isJobRunning) {
36
- console.info('A sync process is already running, skipping.');
37
- return;
38
- }
39
- if (!(yield this.eventLock.acquire())) {
40
- return;
41
- }
42
- isJobRunning = true;
43
- const { directory: provider } = newGoogleProvider({ directories: this.directories, opts: this.opts });
44
- const startTime = Date.now();
45
- try {
46
- const allDirectories = yield provider.getDirectories();
47
- console.info(`Starting the sync process for ${allDirectories.length} directories`);
48
- for (const directory of allDirectories) {
49
- const params = {
50
- directory,
51
- provider,
52
- userController: this.userController,
53
- groupController: this.groupController,
54
- requestHandler: this.requestHandler,
55
- callback: this.eventCallback,
56
- };
57
- yield new SyncUsers(params).sync();
58
- yield new SyncGroups(params).sync();
59
- yield new SyncGroupMembers(params).sync();
60
- }
61
- }
62
- catch (e) {
63
- console.error(' Error processing Google sync:', e);
64
- }
65
- yield this.eventLock.release();
66
- const endTime = Date.now();
67
- console.info(`Sync process completed in ${(endTime - startTime) / 1000} seconds`);
68
- isJobRunning = false;
69
- if (this.cronInterval) {
70
- this.scheduleSync();
71
- }
72
- });
73
- }
74
- // Schedule the next sync process
75
- scheduleSync() {
76
- if (!this.cronInterval) {
77
- return;
78
- }
79
- if (intervalId) {
80
- clearInterval(intervalId);
81
- }
82
- intervalId = setInterval(() => this.startSync(), this.cronInterval * 1000);
83
- }
84
- }
85
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/directory-sync/non-scim/index.ts"],"names":[],"mappings":"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"}
@@ -1,23 +0,0 @@
1
- import type { Directory, IGroups, Group, IRequestHandler, DirectorySyncRequest, EventCallback, IDirectoryProvider, GroupMembership } from '../../typings';
2
- interface SyncGroupMembersParams {
3
- groupController: IGroups;
4
- provider: IDirectoryProvider;
5
- requestHandler: IRequestHandler;
6
- callback: EventCallback;
7
- directory: Directory;
8
- }
9
- type HandleRequestParams = Pick<DirectorySyncRequest, 'method' | 'body' | 'resourceId'>;
10
- export declare class SyncGroupMembers {
11
- private groupController;
12
- private provider;
13
- private requestHandler;
14
- private callback;
15
- private directory;
16
- constructor({ directory, groupController, requestHandler, provider, callback }: SyncGroupMembersParams);
17
- sync(): Promise<void>;
18
- getAllExistingMembers(group: Group): Promise<Pick<GroupMembership, "user_id">[]>;
19
- addMembers(group: Group, memberIds: string[]): Promise<void>;
20
- deleteMembers(group: Group, memberIds: string[]): Promise<void>;
21
- handleRequest(payload: HandleRequestParams): Promise<void>;
22
- }
23
- export {};
@@ -1,105 +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 _ from 'lodash';
11
- import { compareAndFindDeletedMembers, compareAndFindNewMembers, toGroupMembershipSCIMPayload, } from './utils';
12
- export class SyncGroupMembers {
13
- constructor({ directory, groupController, requestHandler, provider, callback }) {
14
- this.groupController = groupController;
15
- this.provider = provider;
16
- this.requestHandler = requestHandler;
17
- this.callback = callback;
18
- this.directory = directory;
19
- }
20
- sync() {
21
- return __awaiter(this, void 0, void 0, function* () {
22
- let nextPageOption = null;
23
- do {
24
- const { data: groups, metadata } = yield this.provider.getGroups(this.directory, nextPageOption);
25
- if (!groups || groups.length === 0) {
26
- break;
27
- }
28
- for (const group of groups) {
29
- const membersFromDB = yield this.getAllExistingMembers(group);
30
- const membersFromProvider = yield this.provider.getGroupMembers(this.directory, group);
31
- const idsFromDB = _.map(membersFromDB, 'user_id');
32
- const idsFromProvider = _.map(membersFromProvider, 'id');
33
- const deletedMembers = compareAndFindDeletedMembers(idsFromDB, idsFromProvider);
34
- const newMembers = compareAndFindNewMembers(idsFromDB, idsFromProvider);
35
- if (deletedMembers && deletedMembers.length > 0) {
36
- yield this.deleteMembers(group, deletedMembers);
37
- }
38
- if (newMembers && newMembers.length > 0) {
39
- yield this.addMembers(group, newMembers);
40
- }
41
- }
42
- nextPageOption = metadata;
43
- } while (nextPageOption && nextPageOption.hasNextPage);
44
- });
45
- }
46
- // Get all existing members for a group from the Jackson store
47
- getAllExistingMembers(group) {
48
- return __awaiter(this, void 0, void 0, function* () {
49
- const existingMembers = [];
50
- const pageLimit = 500;
51
- let pageOffset = 0;
52
- while (true) {
53
- const { data: members } = yield this.groupController
54
- .setTenantAndProduct(this.directory.tenant, this.directory.product)
55
- .getGroupMembers({
56
- groupId: group.id,
57
- pageOffset,
58
- pageLimit,
59
- });
60
- if (!members || members.length === 0) {
61
- break;
62
- }
63
- existingMembers.push(...members);
64
- if (members.length < pageLimit) {
65
- break;
66
- }
67
- pageOffset += pageLimit;
68
- }
69
- return existingMembers;
70
- });
71
- }
72
- addMembers(group, memberIds) {
73
- return __awaiter(this, void 0, void 0, function* () {
74
- yield this.handleRequest({
75
- method: 'PATCH',
76
- body: toGroupMembershipSCIMPayload(memberIds, 'add'),
77
- resourceId: group.id,
78
- });
79
- });
80
- }
81
- deleteMembers(group, memberIds) {
82
- return __awaiter(this, void 0, void 0, function* () {
83
- yield this.handleRequest({
84
- method: 'PATCH',
85
- body: toGroupMembershipSCIMPayload(memberIds, 'remove'),
86
- resourceId: group.id,
87
- });
88
- });
89
- }
90
- handleRequest(payload) {
91
- return __awaiter(this, void 0, void 0, function* () {
92
- const request = {
93
- query: {},
94
- body: payload.body,
95
- resourceType: 'groups',
96
- method: payload.method,
97
- directoryId: this.directory.id,
98
- apiSecret: this.directory.scim.secret,
99
- resourceId: payload.resourceId,
100
- };
101
- yield this.requestHandler.handle(request, this.callback);
102
- });
103
- }
104
- }
105
- //# sourceMappingURL=syncGroupMembers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"syncGroupMembers.js","sourceRoot":"","sources":["../../../../src/directory-sync/non-scim/syncGroupMembers.ts"],"names":[],"mappings":"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"}
@@ -1,24 +0,0 @@
1
- import type { Directory, IGroups, Group, IRequestHandler, DirectorySyncRequest, EventCallback, IDirectoryProvider } from '../../typings';
2
- interface SyncGroupsParams {
3
- groupController: IGroups;
4
- provider: IDirectoryProvider;
5
- requestHandler: IRequestHandler;
6
- callback: EventCallback;
7
- directory: Directory;
8
- }
9
- type HandleRequestParams = Pick<DirectorySyncRequest, 'method' | 'body' | 'resourceId'>;
10
- export declare class SyncGroups {
11
- private groupController;
12
- private provider;
13
- private requestHandler;
14
- private callback;
15
- private directory;
16
- constructor({ directory, groupController, callback, requestHandler, provider }: SyncGroupsParams);
17
- sync(): Promise<void>;
18
- getAllExistingGroups(): Promise<Group[]>;
19
- createGroup(group: Group): Promise<void>;
20
- updateGroup(group: Group): Promise<void>;
21
- deleteGroups(groups: Group[]): Promise<void>;
22
- handleRequest(payload: HandleRequestParams): Promise<void>;
23
- }
24
- export {};
@@ -1,120 +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 { compareAndFindDeletedGroups, isGroupUpdated, toGroupSCIMPayload } from './utils';
11
- export class SyncGroups {
12
- constructor({ directory, groupController, callback, requestHandler, provider }) {
13
- this.groupController = groupController;
14
- this.provider = provider;
15
- this.requestHandler = requestHandler;
16
- this.callback = callback;
17
- this.directory = directory;
18
- }
19
- sync() {
20
- return __awaiter(this, void 0, void 0, function* () {
21
- const groupsFromProvider = [];
22
- let nextPageOption = null;
23
- do {
24
- const { data: groups, metadata } = yield this.provider.getGroups(this.directory, nextPageOption);
25
- if (!groups || groups.length === 0) {
26
- break;
27
- }
28
- // Create or update groups
29
- for (const group of groups) {
30
- const { data: existingGroup } = yield this.groupController
31
- .setTenantAndProduct(this.directory.tenant, this.directory.product)
32
- .get(group.id);
33
- if (!existingGroup) {
34
- yield this.createGroup(group);
35
- }
36
- else if (isGroupUpdated(existingGroup, group, this.provider.groupFieldsToExcludeWhenCompare)) {
37
- yield this.updateGroup(group);
38
- }
39
- }
40
- // Store groups to compare and delete later
41
- groupsFromProvider.push(...groups);
42
- nextPageOption = metadata;
43
- } while (nextPageOption && nextPageOption.hasNextPage);
44
- // Delete users that are not in the directory anymore
45
- const existingGroups = yield this.getAllExistingGroups();
46
- const groupsToDelete = compareAndFindDeletedGroups(existingGroups, groupsFromProvider);
47
- yield this.deleteGroups(groupsToDelete);
48
- });
49
- }
50
- // Get all the existing groups from the Jackson store
51
- getAllExistingGroups() {
52
- return __awaiter(this, void 0, void 0, function* () {
53
- const existingGroups = [];
54
- const pageLimit = 500;
55
- let pageOffset = 0;
56
- while (true) {
57
- const { data: groups } = yield this.groupController
58
- .setTenantAndProduct(this.directory.tenant, this.directory.product)
59
- .getAll({
60
- directoryId: this.directory.id,
61
- pageOffset,
62
- pageLimit,
63
- });
64
- if (!groups || groups.length === 0) {
65
- break;
66
- }
67
- existingGroups.push(...groups);
68
- if (groups.length < pageLimit) {
69
- break;
70
- }
71
- pageOffset += pageLimit;
72
- }
73
- return existingGroups;
74
- });
75
- }
76
- createGroup(group) {
77
- return __awaiter(this, void 0, void 0, function* () {
78
- yield this.handleRequest({
79
- method: 'POST',
80
- body: toGroupSCIMPayload(group),
81
- resourceId: undefined,
82
- });
83
- });
84
- }
85
- updateGroup(group) {
86
- return __awaiter(this, void 0, void 0, function* () {
87
- yield this.handleRequest({
88
- method: 'PUT',
89
- body: toGroupSCIMPayload(group),
90
- resourceId: group.id,
91
- });
92
- });
93
- }
94
- deleteGroups(groups) {
95
- return __awaiter(this, void 0, void 0, function* () {
96
- for (const group of groups) {
97
- yield this.handleRequest({
98
- method: 'DELETE',
99
- body: toGroupSCIMPayload(group),
100
- resourceId: group.id,
101
- });
102
- }
103
- });
104
- }
105
- handleRequest(payload) {
106
- return __awaiter(this, void 0, void 0, function* () {
107
- const request = {
108
- query: {},
109
- body: payload.body,
110
- resourceType: 'groups',
111
- method: payload.method,
112
- directoryId: this.directory.id,
113
- apiSecret: this.directory.scim.secret,
114
- resourceId: payload.resourceId,
115
- };
116
- yield this.requestHandler.handle(request, this.callback);
117
- });
118
- }
119
- }
120
- //# sourceMappingURL=syncGroups.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"syncGroups.js","sourceRoot":"","sources":["../../../../src/directory-sync/non-scim/syncGroups.ts"],"names":[],"mappings":"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"}
@@ -1,24 +0,0 @@
1
- import type { Directory, User, IUsers, IRequestHandler, DirectorySyncRequest, EventCallback, IDirectoryProvider } from '../../typings';
2
- interface SyncUserParams {
3
- directory: Directory;
4
- userController: IUsers;
5
- callback: EventCallback;
6
- provider: IDirectoryProvider;
7
- requestHandler: IRequestHandler;
8
- }
9
- type HandleRequestParams = Pick<DirectorySyncRequest, 'method' | 'body' | 'resourceId'>;
10
- export declare class SyncUsers {
11
- private directory;
12
- private userController;
13
- private callback;
14
- private provider;
15
- private requestHandler;
16
- constructor({ directory, userController, callback, provider, requestHandler }: SyncUserParams);
17
- sync(): Promise<void>;
18
- getAllExistingUsers(): Promise<User[]>;
19
- createUser(user: User): Promise<void>;
20
- updateUser(user: User): Promise<void>;
21
- deleteUsers(users: User[]): Promise<void>;
22
- handleRequest(payload: HandleRequestParams): Promise<void>;
23
- }
24
- export {};