@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,348 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- import { randomUUID } from 'crypto';
11
- import * as dbutils from '../../db/utils';
12
- import { apiError, JacksonError } from '../../controller/error';
13
- import { Base } from './Base';
14
- import { indexNames } from './utils';
15
- /**
16
- * @swagger
17
- * parameters:
18
- * groupId:
19
- * name: groupId
20
- * description: Group ID
21
- * in: path
22
- * required: true
23
- * type: string
24
- * tenant:
25
- * name: tenant
26
- * description: Tenant (Optional if directoryId is provided)
27
- * in: query
28
- * required: false
29
- * type: string
30
- * product:
31
- * name: product
32
- * in: query
33
- * description: Product (Optional if directoryId is provided)
34
- * required: false
35
- * type: string
36
- * directoryId:
37
- * name: directoryId
38
- * description: Directory ID (Optional if tenant/product is provided)
39
- * in: query
40
- * required: false
41
- * type: string
42
- */
43
- /**
44
- * @swagger
45
- * definitions:
46
- * Group:
47
- * type: object
48
- * properties:
49
- * id:
50
- * type: string
51
- * description: Group ID
52
- * name:
53
- * type: string
54
- * description: Group name
55
- * raw:
56
- * type: object
57
- * description: Raw group attributes from the Identity Provider
58
- */
59
- export class Groups extends Base {
60
- constructor({ db }) {
61
- super({ db });
62
- }
63
- // Create a new group
64
- create(params) {
65
- return __awaiter(this, void 0, void 0, function* () {
66
- const { directoryId, name, raw, id: groupId } = params;
67
- const id = groupId || randomUUID();
68
- raw['id'] = id;
69
- const group = {
70
- id,
71
- name,
72
- raw,
73
- };
74
- try {
75
- yield this.store('groups').put(id, group, {
76
- name: indexNames.directoryIdDisplayname,
77
- value: dbutils.keyFromParts(directoryId, name),
78
- }, {
79
- name: indexNames.directoryId,
80
- value: directoryId,
81
- });
82
- return { data: group, error: null };
83
- }
84
- catch (err) {
85
- return apiError(err);
86
- }
87
- });
88
- }
89
- /**
90
- * @swagger
91
- * /api/v1/dsync/groups/{groupId}:
92
- * get:
93
- * summary: Get group by id from a directory
94
- * parameters:
95
- * - $ref: '#/parameters/tenant'
96
- * - $ref: '#/parameters/product'
97
- * - $ref: '#/parameters/directoryId'
98
- * - $ref: '#/parameters/groupId'
99
- * tags:
100
- * - Directory Sync
101
- * produces:
102
- * - application/json
103
- * responses:
104
- * 200:
105
- * description: Success
106
- * schema:
107
- * $ref: '#/definitions/Group'
108
- */
109
- get(id) {
110
- return __awaiter(this, void 0, void 0, function* () {
111
- try {
112
- const group = yield this.store('groups').get(id);
113
- if (!group) {
114
- throw new JacksonError(`Group with id ${id} not found.`, 404);
115
- }
116
- return { data: group, error: null };
117
- }
118
- catch (err) {
119
- return apiError(err);
120
- }
121
- });
122
- }
123
- // Update the group data
124
- update(id, param) {
125
- return __awaiter(this, void 0, void 0, function* () {
126
- const { name, raw } = param;
127
- const group = {
128
- id,
129
- name,
130
- raw,
131
- };
132
- try {
133
- yield this.store('groups').put(id, group);
134
- return { data: group, error: null };
135
- }
136
- catch (err) {
137
- return apiError(err);
138
- }
139
- });
140
- }
141
- // Delete a group by id
142
- delete(id) {
143
- return __awaiter(this, void 0, void 0, function* () {
144
- try {
145
- const { data, error } = yield this.get(id);
146
- if (error || !data) {
147
- throw error;
148
- }
149
- yield this.store('groups').delete(id);
150
- yield this.removeAllUsers(id);
151
- return { data: null, error: null };
152
- }
153
- catch (err) {
154
- return apiError(err);
155
- }
156
- });
157
- }
158
- // Add a user to a group
159
- addUserToGroup(groupId, userId) {
160
- return __awaiter(this, void 0, void 0, function* () {
161
- const id = dbutils.keyDigest(dbutils.keyFromParts(groupId, userId));
162
- yield this.store('members').put(id, {
163
- id: id,
164
- group_id: groupId,
165
- user_id: userId,
166
- }, {
167
- name: indexNames.groupId,
168
- value: groupId,
169
- });
170
- });
171
- }
172
- // Remove a user from a group
173
- removeUserFromGroup(groupId, userId) {
174
- return __awaiter(this, void 0, void 0, function* () {
175
- const id = dbutils.keyDigest(dbutils.keyFromParts(groupId, userId));
176
- yield this.store('members').delete(id);
177
- });
178
- }
179
- // Check if a user is a member of a group
180
- isUserInGroup(groupId, userId) {
181
- return __awaiter(this, void 0, void 0, function* () {
182
- const id = dbutils.keyDigest(dbutils.keyFromParts(groupId, userId));
183
- return !!(yield this.store('members').get(id));
184
- });
185
- }
186
- // Search groups by displayName
187
- search(displayName, directoryId) {
188
- return __awaiter(this, void 0, void 0, function* () {
189
- try {
190
- const { data: groups } = yield this.store('groups').getByIndex({
191
- name: indexNames.directoryIdDisplayname,
192
- value: dbutils.keyFromParts(directoryId, displayName),
193
- });
194
- return { data: groups, error: null };
195
- }
196
- catch (err) {
197
- return apiError(err);
198
- }
199
- });
200
- }
201
- /**
202
- * @swagger
203
- * /api/v1/dsync/groups:
204
- * get:
205
- * summary: Get groups from a directory
206
- * parameters:
207
- * - $ref: '#/parameters/tenant'
208
- * - $ref: '#/parameters/product'
209
- * - $ref: '#/parameters/directoryId'
210
- * - $ref: '#/parameters/pageOffset'
211
- * - $ref: '#/parameters/pageLimit'
212
- * - $ref: '#/parameters/pageToken'
213
- * tags:
214
- * - Directory Sync
215
- * produces:
216
- * - application/json
217
- * responses:
218
- * 200:
219
- * description: Success
220
- * content:
221
- * application/json:
222
- * schema:
223
- * type: object
224
- * properties:
225
- * data:
226
- * type: array
227
- * items:
228
- * $ref: '#/definitions/Group'
229
- * pageToken:
230
- * type: string
231
- * description: token for pagination
232
- */
233
- getAll(params) {
234
- return __awaiter(this, void 0, void 0, function* () {
235
- const { pageOffset, pageLimit, pageToken, directoryId } = params;
236
- try {
237
- let result;
238
- // Filter by directoryId
239
- if (directoryId) {
240
- const index = {
241
- name: indexNames.directoryId,
242
- value: directoryId,
243
- };
244
- result = yield this.store('groups').getByIndex(index, pageOffset, pageLimit, pageToken);
245
- }
246
- else {
247
- result = yield this.store('groups').getAll(pageOffset, pageLimit, pageToken);
248
- }
249
- return { data: result.data, error: null, pageToken: result.pageToken };
250
- }
251
- catch (err) {
252
- return apiError(err);
253
- }
254
- });
255
- }
256
- /**
257
- * @swagger
258
- * definitions:
259
- * Member:
260
- * type: object
261
- * properties:
262
- * user_id:
263
- * type: string
264
- * description: ID of the user
265
- * /api/v1/dsync/groups/{groupId}/members:
266
- * get:
267
- * summary: Get list of members in a group
268
- * parameters:
269
- * - $ref: '#/parameters/tenant'
270
- * - $ref: '#/parameters/product'
271
- * - $ref: '#/parameters/groupId'
272
- * - $ref: '#/parameters/directoryId'
273
- * - $ref: '#/parameters/pageOffset'
274
- * - $ref: '#/parameters/pageLimit'
275
- * - $ref: '#/parameters/pageToken'
276
- * tags:
277
- * - Directory Sync
278
- * produces:
279
- * - application/json
280
- * responses:
281
- * 200:
282
- * description: Success
283
- * content:
284
- * application/json:
285
- * schema:
286
- * type: object
287
- * properties:
288
- * data:
289
- * type: array
290
- * items:
291
- * $ref: '#/definitions/Member'
292
- */
293
- getGroupMembers(parmas) {
294
- return __awaiter(this, void 0, void 0, function* () {
295
- const { groupId, pageOffset, pageLimit } = parmas;
296
- try {
297
- const { data } = (yield this.store('members').getByIndex({
298
- name: indexNames.groupId,
299
- value: groupId,
300
- }, pageOffset, pageLimit));
301
- const members = data.map((member) => {
302
- return {
303
- user_id: member.user_id,
304
- };
305
- });
306
- return { data: members, error: null };
307
- }
308
- catch (err) {
309
- return apiError(err);
310
- }
311
- });
312
- }
313
- // Delete all groups from a directory
314
- deleteAll(directoryId) {
315
- return __awaiter(this, void 0, void 0, function* () {
316
- while (true) {
317
- const { data: groups } = yield this.store('groups').getByIndex({
318
- name: indexNames.directoryId,
319
- value: directoryId,
320
- }, 0, this.bulkDeleteBatchSize);
321
- if (!groups || groups.length === 0) {
322
- break;
323
- }
324
- const keys = groups.map((group) => group.id);
325
- yield this.store('groups').deleteMany(keys);
326
- for (const key of keys) {
327
- yield this.removeAllUsers(key);
328
- }
329
- }
330
- });
331
- }
332
- // Remove all users from a group
333
- removeAllUsers(groupId) {
334
- return __awaiter(this, void 0, void 0, function* () {
335
- while (true) {
336
- const { data: members } = yield this.store('members').getByIndex({
337
- name: indexNames.groupId,
338
- value: groupId,
339
- }, 0, this.bulkDeleteBatchSize);
340
- if (!members || members.length === 0) {
341
- break;
342
- }
343
- yield this.store('members').deleteMany(members.map((member) => member.id));
344
- }
345
- });
346
- }
347
- }
348
- //# sourceMappingURL=Groups.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Groups.js","sourceRoot":"","sources":["../../../../src/directory-sync/scim/Groups.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAUpC,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AASrC;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH;;;;;;;;;;;;;;;GAeG;AACH,MAAM,OAAO,MAAO,SAAQ,IAAI;IAC9B,YAAY,EAAE,EAAE,EAAyB;QACvC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAChB,CAAC;IAED,qBAAqB;IACR,MAAM,CAAC,MAAyB;;YAC3C,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;YAEvD,MAAM,EAAE,GAAG,OAAO,IAAI,UAAU,EAAE,CAAC;YAEnC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YAEf,MAAM,KAAK,GAAU;gBACnB,EAAE;gBACF,IAAI;gBACJ,GAAG;aACJ,CAAC;YAEF,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAC5B,EAAE,EACF,KAAK,EACL;oBACE,IAAI,EAAE,UAAU,CAAC,sBAAsB;oBACvC,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC;iBAC/C,EACD;oBACE,IAAI,EAAE,UAAU,CAAC,WAAW;oBAC5B,KAAK,EAAE,WAAW;iBACnB,CACF,CAAC;gBAEF,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;YACtC,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;KAAA;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACU,GAAG,CAAC,EAAU;;YACzB,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAEjD,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,MAAM,IAAI,YAAY,CAAC,iBAAiB,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC;gBAChE,CAAC;gBAED,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;YACtC,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;KAAA;IAED,wBAAwB;IACX,MAAM,CACjB,EAAU,EACV,KAGC;;YAED,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;YAE5B,MAAM,KAAK,GAAU;gBACnB,EAAE;gBACF,IAAI;gBACJ,GAAG;aACJ,CAAC;YAEF,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;gBAE1C,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;YACtC,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;KAAA;IAED,uBAAuB;IACV,MAAM,CAAC,EAAU;;YAC5B,IAAI,CAAC;gBACH,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAE3C,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;oBACnB,MAAM,KAAK,CAAC;gBACd,CAAC;gBAED,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACtC,MAAM,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;gBAE9B,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;YACrC,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;KAAA;IAED,wBAAwB;IACX,cAAc,CAAC,OAAe,EAAE,MAAc;;YACzD,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;YAEpE,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,CAC7B,EAAE,EACF;gBACE,EAAE,EAAE,EAAE;gBACN,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,MAAM;aAChB,EACD;gBACE,IAAI,EAAE,UAAU,CAAC,OAAO;gBACxB,KAAK,EAAE,OAAO;aACf,CACF,CAAC;QACJ,CAAC;KAAA;IAED,6BAA6B;IAChB,mBAAmB,CAAC,OAAe,EAAE,MAAc;;YAC9D,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;YAEpE,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACzC,CAAC;KAAA;IAED,yCAAyC;IAC5B,aAAa,CAAC,OAAe,EAAE,MAAc;;YACxD,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;YAEpE,OAAO,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACjD,CAAC;KAAA;IAED,+BAA+B;IAClB,MAAM,CAAC,WAAmB,EAAE,WAAmB;;YAC1D,IAAI,CAAC;gBACH,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC;oBAC7D,IAAI,EAAE,UAAU,CAAC,sBAAsB;oBACvC,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,WAAW,EAAE,WAAW,CAAC;iBACtD,CAAC,CAAC;gBAEH,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;YACvC,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;KAAA;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACU,MAAM,CACjB,MAEC;;YAED,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;YAEjE,IAAI,CAAC;gBACH,IAAI,MAAe,CAAC;gBAEpB,wBAAwB;gBACxB,IAAI,WAAW,EAAE,CAAC;oBAChB,MAAM,KAAK,GAAG;wBACZ,IAAI,EAAE,UAAU,CAAC,WAAW;wBAC5B,KAAK,EAAE,WAAW;qBACnB,CAAC;oBAEF,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;gBAC1F,CAAC;qBAAM,CAAC;oBACN,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;gBAC/E,CAAC;gBAED,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;YACzE,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;KAAA;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoCG;IACU,eAAe,CAC1B,MAA8C;;YAE9C,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;YAElD,IAAI,CAAC;gBACH,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,UAAU,CACtD;oBACE,IAAI,EAAE,UAAU,CAAC,OAAO;oBACxB,KAAK,EAAE,OAAO;iBACf,EACD,UAAU,EACV,SAAS,CACV,CAAgC,CAAC;gBAElC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;oBAClC,OAAO;wBACL,OAAO,EAAE,MAAM,CAAC,OAAO;qBACxB,CAAC;gBACJ,CAAC,CAAC,CAAC;gBAEH,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;YACxC,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;KAAA;IAED,qCAAqC;IAC/B,SAAS,CAAC,WAAmB;;YACjC,OAAO,IAAI,EAAE,CAAC;gBACZ,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,UAAU,CAC5D;oBACE,IAAI,EAAE,UAAU,CAAC,WAAW;oBAC5B,KAAK,EAAE,WAAW;iBACnB,EACD,CAAC,EACD,IAAI,CAAC,mBAAmB,CACzB,CAAC;gBAEF,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACnC,MAAM;gBACR,CAAC;gBAED,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBAE7C,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBAE5C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;oBACvB,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;gBACjC,CAAC;YACH,CAAC;QACH,CAAC;KAAA;IAED,gCAAgC;IACnB,cAAc,CAAC,OAAe;;YACzC,OAAO,IAAI,EAAE,CAAC;gBACZ,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,UAAU,CAC9D;oBACE,IAAI,EAAE,UAAU,CAAC,OAAO;oBACxB,KAAK,EAAE,OAAO;iBACf,EACD,CAAC,EACD,IAAI,CAAC,mBAAmB,CACzB,CAAC;gBAEF,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACrC,MAAM;gBACR,CAAC;gBAED,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YAC7E,CAAC;QACH,CAAC;KAAA;CACF"}
@@ -1,99 +0,0 @@
1
- import type { User, DatabaseStore, PaginationParams, Response } from '../../typings';
2
- import { Base } from './Base';
3
- /**
4
- * @swagger
5
- * definitions:
6
- * User:
7
- * type: object
8
- * properties:
9
- * id:
10
- * type: string
11
- * description: User ID
12
- * first_name:
13
- * type: string
14
- * description: First name
15
- * last_name:
16
- * type: string
17
- * description: Last name
18
- * email:
19
- * type: string
20
- * description: Email address
21
- * active:
22
- * type: boolean
23
- * description: Indicates whether the user is active or not
24
- * raw:
25
- * type: object
26
- * description: Raw user attributes from the Identity Provider
27
- */
28
- export declare class Users extends Base {
29
- constructor({ db }: {
30
- db: DatabaseStore;
31
- });
32
- create(user: User & {
33
- directoryId: string;
34
- }): Promise<Response<User>>;
35
- /**
36
- * @swagger
37
- * /api/v1/dsync/users/{userId}:
38
- * get:
39
- * summary: Get user by id from a directory
40
- * parameters:
41
- * - $ref: '#/parameters/tenant'
42
- * - $ref: '#/parameters/product'
43
- * - $ref: '#/parameters/directoryId'
44
- * - name: userId
45
- * description: User ID
46
- * in: path
47
- * required: true
48
- * type: string
49
- * tags:
50
- * - Directory Sync
51
- * produces:
52
- * - application/json
53
- * responses:
54
- * 200:
55
- * description: Success
56
- * schema:
57
- * $ref: '#/definitions/User'
58
- */
59
- get(id: string): Promise<Response<User>>;
60
- update(id: string, user: User): Promise<Response<User>>;
61
- delete(id: string): Promise<Response<null>>;
62
- search(userName: string, directoryId: string): Promise<Response<User[]>>;
63
- /**
64
- * @swagger
65
- * /api/v1/dsync/users:
66
- * get:
67
- * summary: Get users from a directory
68
- * parameters:
69
- * - $ref: '#/parameters/tenant'
70
- * - $ref: '#/parameters/product'
71
- * - $ref: '#/parameters/directoryId'
72
- * - $ref: '#/parameters/pageOffset'
73
- * - $ref: '#/parameters/pageLimit'
74
- * - $ref: '#/parameters/pageToken'
75
- * tags:
76
- * - Directory Sync
77
- * produces:
78
- * - application/json
79
- * responses:
80
- * 200:
81
- * description: Success
82
- * content:
83
- * application/json:
84
- * schema:
85
- * type: object
86
- * properties:
87
- * data:
88
- * type: array
89
- * items:
90
- * $ref: '#/definitions/User'
91
- * pageToken:
92
- * type: string
93
- * description: token for pagination
94
- */
95
- getAll({ pageOffset, pageLimit, pageToken, directoryId, }?: PaginationParams & {
96
- directoryId?: string;
97
- }): Promise<Response<User[]>>;
98
- deleteAll(directoryId: string): Promise<void>;
99
- }
@@ -1,215 +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 { apiError, JacksonError } from '../../controller/error';
11
- import { Base } from './Base';
12
- import { keyFromParts } from '../../db/utils';
13
- import { indexNames } from './utils';
14
- /**
15
- * @swagger
16
- * definitions:
17
- * User:
18
- * type: object
19
- * properties:
20
- * id:
21
- * type: string
22
- * description: User ID
23
- * first_name:
24
- * type: string
25
- * description: First name
26
- * last_name:
27
- * type: string
28
- * description: Last name
29
- * email:
30
- * type: string
31
- * description: Email address
32
- * active:
33
- * type: boolean
34
- * description: Indicates whether the user is active or not
35
- * raw:
36
- * type: object
37
- * description: Raw user attributes from the Identity Provider
38
- */
39
- export class Users extends Base {
40
- constructor({ db }) {
41
- super({ db });
42
- }
43
- // Create a new user
44
- create(user) {
45
- return __awaiter(this, void 0, void 0, function* () {
46
- const { directoryId, id, email } = user;
47
- try {
48
- yield this.store('users').put(id, user, {
49
- name: indexNames.directoryIdUsername,
50
- value: keyFromParts(directoryId, email),
51
- }, {
52
- name: indexNames.directoryId,
53
- value: directoryId,
54
- });
55
- return { data: user, error: null };
56
- }
57
- catch (err) {
58
- return apiError(err);
59
- }
60
- });
61
- }
62
- /**
63
- * @swagger
64
- * /api/v1/dsync/users/{userId}:
65
- * get:
66
- * summary: Get user by id from a directory
67
- * parameters:
68
- * - $ref: '#/parameters/tenant'
69
- * - $ref: '#/parameters/product'
70
- * - $ref: '#/parameters/directoryId'
71
- * - name: userId
72
- * description: User ID
73
- * in: path
74
- * required: true
75
- * type: string
76
- * tags:
77
- * - Directory Sync
78
- * produces:
79
- * - application/json
80
- * responses:
81
- * 200:
82
- * description: Success
83
- * schema:
84
- * $ref: '#/definitions/User'
85
- */
86
- get(id) {
87
- return __awaiter(this, void 0, void 0, function* () {
88
- try {
89
- const user = yield this.store('users').get(id);
90
- if (user === null) {
91
- throw new JacksonError('User not found', 404);
92
- }
93
- return { data: user, error: null };
94
- }
95
- catch (err) {
96
- return apiError(err);
97
- }
98
- });
99
- }
100
- // Update the user data
101
- update(id, user) {
102
- return __awaiter(this, void 0, void 0, function* () {
103
- const { raw } = user;
104
- raw['id'] = id;
105
- const updatedUser = Object.assign(Object.assign({}, user), { raw });
106
- try {
107
- yield this.store('users').put(id, updatedUser);
108
- return { data: updatedUser, error: null };
109
- }
110
- catch (err) {
111
- return apiError(err);
112
- }
113
- });
114
- }
115
- // Delete a user by id
116
- delete(id) {
117
- return __awaiter(this, void 0, void 0, function* () {
118
- try {
119
- const { data, error } = yield this.get(id);
120
- if (error || !data) {
121
- throw error;
122
- }
123
- yield this.store('users').delete(id);
124
- return { data: null, error: null };
125
- }
126
- catch (err) {
127
- return apiError(err);
128
- }
129
- });
130
- }
131
- // Search users by userName
132
- search(userName, directoryId) {
133
- return __awaiter(this, void 0, void 0, function* () {
134
- try {
135
- const { data: users } = yield this.store('users').getByIndex({
136
- name: indexNames.directoryIdUsername,
137
- value: keyFromParts(directoryId, userName),
138
- });
139
- return { data: users, error: null };
140
- }
141
- catch (err) {
142
- return apiError(err);
143
- }
144
- });
145
- }
146
- /**
147
- * @swagger
148
- * /api/v1/dsync/users:
149
- * get:
150
- * summary: Get users from a directory
151
- * parameters:
152
- * - $ref: '#/parameters/tenant'
153
- * - $ref: '#/parameters/product'
154
- * - $ref: '#/parameters/directoryId'
155
- * - $ref: '#/parameters/pageOffset'
156
- * - $ref: '#/parameters/pageLimit'
157
- * - $ref: '#/parameters/pageToken'
158
- * tags:
159
- * - Directory Sync
160
- * produces:
161
- * - application/json
162
- * responses:
163
- * 200:
164
- * description: Success
165
- * content:
166
- * application/json:
167
- * schema:
168
- * type: object
169
- * properties:
170
- * data:
171
- * type: array
172
- * items:
173
- * $ref: '#/definitions/User'
174
- * pageToken:
175
- * type: string
176
- * description: token for pagination
177
- */
178
- getAll() {
179
- return __awaiter(this, arguments, void 0, function* ({ pageOffset, pageLimit, pageToken, directoryId, } = {}) {
180
- try {
181
- let result;
182
- // Filter by directoryId
183
- if (directoryId) {
184
- result = yield this.store('users').getByIndex({
185
- name: indexNames.directoryId,
186
- value: directoryId,
187
- }, pageOffset, pageLimit, pageToken);
188
- }
189
- else {
190
- result = yield this.store('users').getAll(pageOffset, pageLimit, pageToken);
191
- }
192
- return { data: result.data, error: null, pageToken: result.pageToken };
193
- }
194
- catch (err) {
195
- return apiError(err);
196
- }
197
- });
198
- }
199
- // Delete all users from a directory
200
- deleteAll(directoryId) {
201
- return __awaiter(this, void 0, void 0, function* () {
202
- while (true) {
203
- const { data: users } = yield this.store('users').getByIndex({
204
- name: indexNames.directoryId,
205
- value: directoryId,
206
- }, 0, this.bulkDeleteBatchSize);
207
- if (!users || users.length === 0) {
208
- break;
209
- }
210
- yield this.store('users').deleteMany(users.map((user) => user.id));
211
- }
212
- });
213
- }
214
- }
215
- //# sourceMappingURL=Users.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Users.js","sourceRoot":"","sources":["../../../../src/directory-sync/scim/Users.ts"],"names":[],"mappings":"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"}