@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,252 +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 { parseGroupOperation } from './utils';
11
- import { sendEvent } from '../utils';
12
- import { isConnectionActive } from '../../controller/utils';
13
- export class DirectoryGroups {
14
- constructor({ directories, users, groups }) {
15
- this.directories = directories;
16
- this.users = users;
17
- this.groups = groups;
18
- }
19
- create(directory, body) {
20
- return __awaiter(this, void 0, void 0, function* () {
21
- const { displayName, groupId } = body;
22
- // Check if the group already exists
23
- const { data: groups } = yield this.groups.search(displayName, directory.id);
24
- if (groups && groups.length > 0) {
25
- return this.respondWithError({ code: 409, message: 'Group already exists' });
26
- }
27
- const { data: group } = yield this.groups.create({
28
- directoryId: directory.id,
29
- name: displayName,
30
- id: groupId,
31
- raw: 'rawAttributes' in body ? body.rawAttributes : Object.assign(Object.assign({}, body), { members: [] }),
32
- });
33
- yield sendEvent('group.created', { directory, group }, this.callback);
34
- return {
35
- status: 201,
36
- data: {
37
- schemas: ['urn:ietf:params:scim:schemas:core:2.0:Group'],
38
- id: group === null || group === void 0 ? void 0 : group.id,
39
- displayName: group === null || group === void 0 ? void 0 : group.name,
40
- members: [],
41
- },
42
- };
43
- });
44
- }
45
- get(group) {
46
- return __awaiter(this, void 0, void 0, function* () {
47
- return {
48
- status: 200,
49
- data: {
50
- schemas: ['urn:ietf:params:scim:schemas:core:2.0:Group'],
51
- id: group.id,
52
- displayName: group.name,
53
- members: [],
54
- },
55
- };
56
- });
57
- }
58
- getAll(queryParams) {
59
- return __awaiter(this, void 0, void 0, function* () {
60
- const { filter, directoryId } = queryParams;
61
- let groups = [];
62
- if (filter) {
63
- // Filter by group displayName
64
- // filter: displayName eq "Developer"
65
- const { data } = yield this.groups.search(filter.split('eq ')[1].replace(/['"]+/g, ''), directoryId);
66
- groups = data;
67
- }
68
- else {
69
- // Fetch all the existing group
70
- const { data } = yield this.groups.getAll({ directoryId, pageOffset: undefined, pageLimit: undefined });
71
- groups = data;
72
- }
73
- return {
74
- status: 200,
75
- data: {
76
- schemas: ['urn:ietf:params:scim:api:messages:2.0:ListResponse'],
77
- totalResults: groups ? groups.length : 0,
78
- itemsPerPage: groups ? groups.length : 0,
79
- startIndex: 1,
80
- Resources: groups ? groups.map((group) => group.raw) : [],
81
- },
82
- };
83
- });
84
- }
85
- patch(directory, group, body) {
86
- return __awaiter(this, void 0, void 0, function* () {
87
- const { Operations } = body;
88
- for (const op of Operations) {
89
- const operation = parseGroupOperation(op);
90
- // Add group members
91
- if (operation.action === 'addGroupMember') {
92
- yield this.addGroupMembers(directory, group, operation.members);
93
- }
94
- // Remove group members
95
- if (operation.action === 'removeGroupMember') {
96
- yield this.removeGroupMembers(directory, group, operation.members);
97
- }
98
- // Update group name
99
- if (operation.action === 'updateGroupName') {
100
- yield this.updateDisplayName(directory, group, {
101
- displayName: operation.displayName,
102
- });
103
- }
104
- }
105
- const { data: updatedGroup } = yield this.groups.get(group.id);
106
- return {
107
- status: 200,
108
- data: {
109
- schemas: ['urn:ietf:params:scim:schemas:core:2.0:Group'],
110
- id: updatedGroup === null || updatedGroup === void 0 ? void 0 : updatedGroup.id,
111
- displayName: updatedGroup === null || updatedGroup === void 0 ? void 0 : updatedGroup.name,
112
- members: [],
113
- },
114
- };
115
- });
116
- }
117
- update(directory, group, body) {
118
- return __awaiter(this, void 0, void 0, function* () {
119
- const updatedGroup = yield this.updateDisplayName(directory, group, body);
120
- return {
121
- status: 200,
122
- data: {
123
- schemas: ['urn:ietf:params:scim:schemas:core:2.0:Group'],
124
- id: group.id,
125
- displayName: updatedGroup.name,
126
- members: [],
127
- },
128
- };
129
- });
130
- }
131
- delete(directory, group) {
132
- return __awaiter(this, void 0, void 0, function* () {
133
- yield this.groups.delete(group.id);
134
- yield sendEvent('group.deleted', { directory, group }, this.callback);
135
- return {
136
- status: 200,
137
- data: {},
138
- };
139
- });
140
- }
141
- // Update group displayName
142
- updateDisplayName(directory, group, body) {
143
- return __awaiter(this, void 0, void 0, function* () {
144
- const { data: updatedGroup, error } = yield this.groups.update(group.id, {
145
- name: body.displayName,
146
- raw: 'rawAttributes' in body ? body.rawAttributes : Object.assign(Object.assign({}, group.raw), body),
147
- });
148
- if (error || !updatedGroup) {
149
- throw error;
150
- }
151
- yield sendEvent('group.updated', { directory, group: updatedGroup }, this.callback);
152
- return updatedGroup;
153
- });
154
- }
155
- addGroupMembers(directory, group, members) {
156
- return __awaiter(this, void 0, void 0, function* () {
157
- if (members === undefined || (members && members.length === 0)) {
158
- return;
159
- }
160
- for (const member of members) {
161
- if (!(yield this.groups.isUserInGroup(group.id, member.value))) {
162
- yield this.groups.addUserToGroup(group.id, member.value);
163
- }
164
- const { data: user } = yield this.users.get(member.value);
165
- yield sendEvent('group.user_added', { directory, group, user }, this.callback);
166
- }
167
- });
168
- }
169
- removeGroupMembers(directory, group, members) {
170
- return __awaiter(this, void 0, void 0, function* () {
171
- if (members === undefined || (members && members.length === 0)) {
172
- return;
173
- }
174
- for (const member of members) {
175
- yield this.groups.removeUserFromGroup(group.id, member.value);
176
- const { data: user } = yield this.users.get(member.value);
177
- // User may not exist in the directory, so we need to check if the user exists
178
- if (user) {
179
- yield sendEvent('group.user_removed', { directory, group, user }, this.callback);
180
- }
181
- }
182
- });
183
- }
184
- respondWithError(error) {
185
- return {
186
- status: error ? error.code : 500,
187
- data: {
188
- schemas: ['urn:ietf:params:scim:api:messages:2.0:Error'],
189
- detail: error ? error.message : 'Internal Server Error',
190
- },
191
- };
192
- }
193
- // Handle the request from the Identity Provider and route it to the appropriate method
194
- handleRequest(request, callback) {
195
- return __awaiter(this, void 0, void 0, function* () {
196
- const { body, query, resourceId: groupId, directoryId, apiSecret } = request;
197
- const method = request.method.toUpperCase();
198
- // Get the directory
199
- const { data: directory, error } = yield this.directories.get(directoryId);
200
- if (error) {
201
- return this.respondWithError(error);
202
- }
203
- if (!directory) {
204
- return {
205
- status: 200,
206
- data: {},
207
- };
208
- }
209
- if (!isConnectionActive(directory)) {
210
- return {
211
- status: 200,
212
- data: {},
213
- };
214
- }
215
- // Validate the request
216
- if (directory.scim.secret != apiSecret) {
217
- return this.respondWithError({ code: 401, message: 'Unauthorized' });
218
- }
219
- this.callback = callback;
220
- this.users.setTenantAndProduct(directory.tenant, directory.product);
221
- this.groups.setTenantAndProduct(directory.tenant, directory.product);
222
- // Get the group
223
- const { data: group } = groupId ? yield this.groups.get(groupId) : { data: null };
224
- if (groupId && !group) {
225
- return this.respondWithError({ code: 404, message: 'Group not found' });
226
- }
227
- if (group) {
228
- switch (method) {
229
- case 'GET':
230
- return yield this.get(group);
231
- case 'PUT':
232
- return yield this.update(directory, group, body);
233
- case 'PATCH':
234
- return yield this.patch(directory, group, body);
235
- case 'DELETE':
236
- return yield this.delete(directory, group);
237
- }
238
- }
239
- switch (method) {
240
- case 'POST':
241
- return yield this.create(directory, body);
242
- case 'GET':
243
- return yield this.getAll({
244
- filter: query.filter,
245
- directoryId,
246
- });
247
- }
248
- return this.respondWithError({ code: 404, message: 'Not found' });
249
- });
250
- }
251
- }
252
- //# sourceMappingURL=DirectoryGroups.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DirectoryGroups.js","sourceRoot":"","sources":["../../../../src/directory-sync/scim/DirectoryGroups.ts"],"names":[],"mappings":"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"}
@@ -1,25 +0,0 @@
1
- import type { Directory, DirectorySyncResponse, DirectorySyncRequest, User, EventCallback, IDirectoryConfig, IUsers } from '../../typings';
2
- interface DirectoryUsersParams {
3
- directories: IDirectoryConfig;
4
- users: IUsers;
5
- }
6
- export declare class DirectoryUsers {
7
- private directories;
8
- private users;
9
- private callback;
10
- constructor({ directories, users }: DirectoryUsersParams);
11
- create(directory: Directory, body: any): Promise<DirectorySyncResponse>;
12
- get(user: User): Promise<DirectorySyncResponse>;
13
- update(directory: Directory, user: User, body: any): Promise<DirectorySyncResponse>;
14
- patch(directory: Directory, user: User, body: any): Promise<DirectorySyncResponse>;
15
- delete(directory: Directory, user: User): Promise<DirectorySyncResponse>;
16
- getAll(queryParams: {
17
- count: number;
18
- startIndex: number;
19
- filter?: string;
20
- directoryId: string;
21
- }): Promise<DirectorySyncResponse>;
22
- private respondWithError;
23
- handleRequest(request: DirectorySyncRequest, callback?: EventCallback): Promise<DirectorySyncResponse>;
24
- }
25
- export {};
@@ -1,193 +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 { parseUserPatchRequest, extractStandardUserAttributes, updateRawUserAttributes } from './utils';
11
- import { sendEvent } from '../utils';
12
- import { isConnectionActive } from '../../controller/utils';
13
- import { randomUUID } from 'crypto';
14
- export class DirectoryUsers {
15
- constructor({ directories, users }) {
16
- this.directories = directories;
17
- this.users = users;
18
- }
19
- create(directory, body) {
20
- return __awaiter(this, void 0, void 0, function* () {
21
- const userAttributes = extractStandardUserAttributes(body);
22
- // Check if the user already exists
23
- const { data: users } = yield this.users.search(userAttributes.email, directory.id);
24
- if (users && users.length > 0) {
25
- return this.respondWithError({ code: 409, message: 'User already exists' });
26
- }
27
- const newUser = Object.assign(Object.assign({}, userAttributes), { directoryId: directory.id, raw: 'rawAttributes' in body ? body.rawAttributes : body });
28
- if (!newUser.id) {
29
- newUser.id = randomUUID();
30
- }
31
- newUser.raw['id'] = newUser.id;
32
- const { data: user } = yield this.users.create(newUser);
33
- yield sendEvent('user.created', { directory, user }, this.callback);
34
- return {
35
- status: 201,
36
- data: user === null || user === void 0 ? void 0 : user.raw,
37
- };
38
- });
39
- }
40
- get(user) {
41
- return __awaiter(this, void 0, void 0, function* () {
42
- return {
43
- status: 200,
44
- data: user.raw,
45
- };
46
- });
47
- }
48
- update(directory, user, body) {
49
- return __awaiter(this, void 0, void 0, function* () {
50
- const userAttributes = extractStandardUserAttributes(body);
51
- const { data: updatedUser } = yield this.users.update(user.id, Object.assign(Object.assign({}, userAttributes), { id: user.id, raw: 'rawAttributes' in body ? body.rawAttributes : body }));
52
- yield sendEvent('user.updated', { directory, user: updatedUser }, this.callback);
53
- return {
54
- status: 200,
55
- data: updatedUser === null || updatedUser === void 0 ? void 0 : updatedUser.raw,
56
- };
57
- });
58
- }
59
- patch(directory, user, body) {
60
- return __awaiter(this, void 0, void 0, function* () {
61
- const { Operations } = body;
62
- let attributes = {};
63
- let rawAttributes = {};
64
- // There can be multiple update operations in a single request for a user
65
- for (const operation of Operations) {
66
- const parsedAttributes = parseUserPatchRequest(operation);
67
- attributes = Object.assign(Object.assign({}, attributes), parsedAttributes.attributes);
68
- rawAttributes = Object.assign(Object.assign({}, rawAttributes), parsedAttributes.rawAttributes);
69
- }
70
- const { data: updatedUser } = yield this.users.update(user.id, Object.assign(Object.assign(Object.assign({}, user), attributes), { raw: updateRawUserAttributes(user.raw, rawAttributes) }));
71
- yield sendEvent('user.updated', { directory, user: updatedUser }, this.callback);
72
- return {
73
- status: 200,
74
- data: updatedUser === null || updatedUser === void 0 ? void 0 : updatedUser.raw,
75
- };
76
- });
77
- }
78
- delete(directory, user) {
79
- return __awaiter(this, void 0, void 0, function* () {
80
- yield this.users.delete(user.id);
81
- yield sendEvent('user.deleted', { directory, user }, this.callback);
82
- return {
83
- status: 200,
84
- data: user.raw,
85
- };
86
- });
87
- }
88
- getAll(queryParams) {
89
- return __awaiter(this, void 0, void 0, function* () {
90
- const { startIndex, filter, count, directoryId } = queryParams;
91
- let users = [];
92
- let totalResults = 0;
93
- if (filter) {
94
- // Search users by userName
95
- // filter: userName eq "john@example.com"
96
- const { data } = yield this.users.search(filter.split('eq ')[1].replace(/['"]+/g, ''), directoryId);
97
- users = data;
98
- totalResults = users ? users.length : 0;
99
- }
100
- else {
101
- // Fetch all the existing Users (Paginated)
102
- // At this moment, we don't have method to count the database records.
103
- const { data: allUsers } = yield this.users.getAll({ directoryId });
104
- const { data } = yield this.users.getAll({ pageOffset: startIndex - 1, pageLimit: count, directoryId });
105
- users = data;
106
- totalResults = allUsers ? allUsers.length : 0;
107
- }
108
- return {
109
- status: 200,
110
- data: {
111
- schemas: ['urn:ietf:params:scim:api:messages:2.0:ListResponse'],
112
- startIndex: startIndex ? startIndex : 1,
113
- totalResults: totalResults ? totalResults : 0,
114
- itemsPerPage: count ? count : 0,
115
- Resources: users ? users.map((user) => user.raw) : [],
116
- },
117
- };
118
- });
119
- }
120
- respondWithError(error) {
121
- return {
122
- status: error ? error.code : 500,
123
- data: {
124
- schemas: ['urn:ietf:params:scim:api:messages:2.0:Error'],
125
- detail: error ? error.message : 'Internal Server Error',
126
- },
127
- };
128
- }
129
- // Handle the request from the Identity Provider and route it to the appropriate method
130
- handleRequest(request, callback) {
131
- return __awaiter(this, void 0, void 0, function* () {
132
- const { body, query, resourceId: userId, directoryId, apiSecret } = request;
133
- const method = request.method.toUpperCase();
134
- // Get the directory
135
- const { data: directory, error } = yield this.directories.get(directoryId);
136
- if (error) {
137
- return this.respondWithError(error);
138
- }
139
- if (!directory) {
140
- return {
141
- status: 200,
142
- data: {},
143
- };
144
- }
145
- if (!isConnectionActive(directory)) {
146
- return {
147
- status: 200,
148
- data: {},
149
- };
150
- }
151
- // Validate the request
152
- if (directory.scim.secret != apiSecret) {
153
- return this.respondWithError({ code: 401, message: 'Unauthorized' });
154
- }
155
- this.callback = callback;
156
- this.users.setTenantAndProduct(directory.tenant, directory.product);
157
- // Get the user
158
- const { data: user } = userId ? yield this.users.get(userId) : { data: null };
159
- // Delete password if exists in the body
160
- if (body && 'password' in body) {
161
- delete body['password'];
162
- }
163
- if (userId && !user) {
164
- return this.respondWithError({ code: 404, message: 'User not found' });
165
- }
166
- if (user) {
167
- switch (method) {
168
- case 'GET':
169
- return yield this.get(user);
170
- case 'PATCH':
171
- return yield this.patch(directory, user, body);
172
- case 'PUT':
173
- return yield this.update(directory, user, body);
174
- case 'DELETE':
175
- return yield this.delete(directory, user);
176
- }
177
- }
178
- switch (method) {
179
- case 'POST':
180
- return yield this.create(directory, body);
181
- case 'GET':
182
- return yield this.getAll({
183
- count: query.count,
184
- startIndex: query.startIndex,
185
- filter: query.filter,
186
- directoryId,
187
- });
188
- }
189
- return this.respondWithError({ code: 404, message: 'Not found' });
190
- });
191
- }
192
- }
193
- //# sourceMappingURL=DirectoryUsers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DirectoryUsers.js","sourceRoot":"","sources":["../../../../src/directory-sync/scim/DirectoryUsers.ts"],"names":[],"mappings":"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"}
@@ -1,166 +0,0 @@
1
- import type { Group, DatabaseStore, PaginationParams, Response, GroupMembership } from '../../typings';
2
- import { Base } from './Base';
3
- interface CreateGroupParams {
4
- directoryId: string;
5
- name: string;
6
- raw: any;
7
- id?: string;
8
- }
9
- /**
10
- * @swagger
11
- * parameters:
12
- * groupId:
13
- * name: groupId
14
- * description: Group ID
15
- * in: path
16
- * required: true
17
- * type: string
18
- * tenant:
19
- * name: tenant
20
- * description: Tenant (Optional if directoryId is provided)
21
- * in: query
22
- * required: false
23
- * type: string
24
- * product:
25
- * name: product
26
- * in: query
27
- * description: Product (Optional if directoryId is provided)
28
- * required: false
29
- * type: string
30
- * directoryId:
31
- * name: directoryId
32
- * description: Directory ID (Optional if tenant/product is provided)
33
- * in: query
34
- * required: false
35
- * type: string
36
- */
37
- /**
38
- * @swagger
39
- * definitions:
40
- * Group:
41
- * type: object
42
- * properties:
43
- * id:
44
- * type: string
45
- * description: Group ID
46
- * name:
47
- * type: string
48
- * description: Group name
49
- * raw:
50
- * type: object
51
- * description: Raw group attributes from the Identity Provider
52
- */
53
- export declare class Groups extends Base {
54
- constructor({ db }: {
55
- db: DatabaseStore;
56
- });
57
- create(params: CreateGroupParams): Promise<Response<Group>>;
58
- /**
59
- * @swagger
60
- * /api/v1/dsync/groups/{groupId}:
61
- * get:
62
- * summary: Get group by id from a directory
63
- * parameters:
64
- * - $ref: '#/parameters/tenant'
65
- * - $ref: '#/parameters/product'
66
- * - $ref: '#/parameters/directoryId'
67
- * - $ref: '#/parameters/groupId'
68
- * tags:
69
- * - Directory Sync
70
- * produces:
71
- * - application/json
72
- * responses:
73
- * 200:
74
- * description: Success
75
- * schema:
76
- * $ref: '#/definitions/Group'
77
- */
78
- get(id: string): Promise<Response<Group>>;
79
- update(id: string, param: {
80
- name: string;
81
- raw: any;
82
- }): Promise<Response<Group>>;
83
- delete(id: string): Promise<Response<null>>;
84
- addUserToGroup(groupId: string, userId: string): Promise<void>;
85
- removeUserFromGroup(groupId: string, userId: string): Promise<void>;
86
- isUserInGroup(groupId: string, userId: string): Promise<boolean>;
87
- search(displayName: string, directoryId: string): Promise<Response<Group[]>>;
88
- /**
89
- * @swagger
90
- * /api/v1/dsync/groups:
91
- * get:
92
- * summary: Get groups from a directory
93
- * parameters:
94
- * - $ref: '#/parameters/tenant'
95
- * - $ref: '#/parameters/product'
96
- * - $ref: '#/parameters/directoryId'
97
- * - $ref: '#/parameters/pageOffset'
98
- * - $ref: '#/parameters/pageLimit'
99
- * - $ref: '#/parameters/pageToken'
100
- * tags:
101
- * - Directory Sync
102
- * produces:
103
- * - application/json
104
- * responses:
105
- * 200:
106
- * description: Success
107
- * content:
108
- * application/json:
109
- * schema:
110
- * type: object
111
- * properties:
112
- * data:
113
- * type: array
114
- * items:
115
- * $ref: '#/definitions/Group'
116
- * pageToken:
117
- * type: string
118
- * description: token for pagination
119
- */
120
- getAll(params: PaginationParams & {
121
- directoryId?: string;
122
- }): Promise<Response<Group[]>>;
123
- /**
124
- * @swagger
125
- * definitions:
126
- * Member:
127
- * type: object
128
- * properties:
129
- * user_id:
130
- * type: string
131
- * description: ID of the user
132
- * /api/v1/dsync/groups/{groupId}/members:
133
- * get:
134
- * summary: Get list of members in a group
135
- * parameters:
136
- * - $ref: '#/parameters/tenant'
137
- * - $ref: '#/parameters/product'
138
- * - $ref: '#/parameters/groupId'
139
- * - $ref: '#/parameters/directoryId'
140
- * - $ref: '#/parameters/pageOffset'
141
- * - $ref: '#/parameters/pageLimit'
142
- * - $ref: '#/parameters/pageToken'
143
- * tags:
144
- * - Directory Sync
145
- * produces:
146
- * - application/json
147
- * responses:
148
- * 200:
149
- * description: Success
150
- * content:
151
- * application/json:
152
- * schema:
153
- * type: object
154
- * properties:
155
- * data:
156
- * type: array
157
- * items:
158
- * $ref: '#/definitions/Member'
159
- */
160
- getGroupMembers(parmas: {
161
- groupId: string;
162
- } & PaginationParams): Promise<Response<Pick<GroupMembership, 'user_id'>[]>>;
163
- deleteAll(directoryId: string): Promise<void>;
164
- removeAllUsers(groupId: string): Promise<void>;
165
- }
166
- export {};