@boxyhq/saml-jackson 1.9.11 → 1.10.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. package/dist/controller/api.d.ts +9 -0
  2. package/dist/controller/api.js +14 -0
  3. package/dist/controller/api.js.map +1 -1
  4. package/dist/controller/connection/oidc.js +8 -0
  5. package/dist/controller/connection/oidc.js.map +1 -1
  6. package/dist/controller/connection/saml.js +8 -0
  7. package/dist/controller/connection/saml.js.map +1 -1
  8. package/dist/controller/utils.d.ts +3 -1
  9. package/dist/controller/utils.js +3 -1
  10. package/dist/controller/utils.js.map +1 -1
  11. package/dist/db/planetscale/entity/JacksonIndex.js +2 -3
  12. package/dist/db/planetscale/entity/JacksonIndex.js.map +1 -1
  13. package/dist/db/planetscale/entity/JacksonStore.js +2 -3
  14. package/dist/db/planetscale/entity/JacksonStore.js.map +1 -1
  15. package/dist/db/planetscale/entity/JacksonTTL.js +2 -3
  16. package/dist/db/planetscale/entity/JacksonTTL.js.map +1 -1
  17. package/dist/db/redis.js +16 -26
  18. package/dist/db/redis.js.map +1 -1
  19. package/dist/db/sql/entity/JacksonIndex.js +2 -3
  20. package/dist/db/sql/entity/JacksonIndex.js.map +1 -1
  21. package/dist/db/sql/entity/JacksonStore.js +2 -3
  22. package/dist/db/sql/entity/JacksonStore.js.map +1 -1
  23. package/dist/db/sql/entity/JacksonTTL.js +2 -3
  24. package/dist/db/sql/entity/JacksonTTL.js.map +1 -1
  25. package/dist/db/sql/mariadb/entity/JacksonIndex.js +2 -3
  26. package/dist/db/sql/mariadb/entity/JacksonIndex.js.map +1 -1
  27. package/dist/db/sql/mariadb/entity/JacksonStore.js +2 -3
  28. package/dist/db/sql/mariadb/entity/JacksonStore.js.map +1 -1
  29. package/dist/db/sql/mariadb/entity/JacksonTTL.js +2 -3
  30. package/dist/db/sql/mariadb/entity/JacksonTTL.js.map +1 -1
  31. package/dist/db/sql/mssql/entity/JacksonIndex.js +2 -3
  32. package/dist/db/sql/mssql/entity/JacksonIndex.js.map +1 -1
  33. package/dist/db/sql/mssql/entity/JacksonStore.js +2 -3
  34. package/dist/db/sql/mssql/entity/JacksonStore.js.map +1 -1
  35. package/dist/db/sql/mssql/entity/JacksonTTL.js +2 -3
  36. package/dist/db/sql/mssql/entity/JacksonTTL.js.map +1 -1
  37. package/dist/directory-sync/index.d.ts +10 -8
  38. package/dist/directory-sync/index.js +22 -12
  39. package/dist/directory-sync/index.js.map +1 -1
  40. package/dist/directory-sync/non-scim/google/api.d.ts +48 -0
  41. package/dist/directory-sync/non-scim/google/api.js +147 -0
  42. package/dist/directory-sync/non-scim/google/api.js.map +1 -0
  43. package/dist/directory-sync/non-scim/google/index.d.ts +12 -0
  44. package/dist/directory-sync/non-scim/google/index.js +14 -0
  45. package/dist/directory-sync/non-scim/google/index.js.map +1 -0
  46. package/dist/directory-sync/non-scim/google/oauth.d.ts +27 -0
  47. package/dist/directory-sync/non-scim/google/oauth.js +109 -0
  48. package/dist/directory-sync/non-scim/google/oauth.js.map +1 -0
  49. package/dist/directory-sync/non-scim/index.d.ts +10 -0
  50. package/dist/directory-sync/non-scim/index.js +51 -0
  51. package/dist/directory-sync/non-scim/index.js.map +1 -0
  52. package/dist/directory-sync/non-scim/syncGroupMembers.d.ts +23 -0
  53. package/dist/directory-sync/non-scim/syncGroupMembers.js +112 -0
  54. package/dist/directory-sync/non-scim/syncGroupMembers.js.map +1 -0
  55. package/dist/directory-sync/non-scim/syncGroups.d.ts +24 -0
  56. package/dist/directory-sync/non-scim/syncGroups.js +124 -0
  57. package/dist/directory-sync/non-scim/syncGroups.js.map +1 -0
  58. package/dist/directory-sync/non-scim/syncUsers.d.ts +24 -0
  59. package/dist/directory-sync/non-scim/syncUsers.js +124 -0
  60. package/dist/directory-sync/non-scim/syncUsers.js.map +1 -0
  61. package/dist/directory-sync/non-scim/utils.d.ts +36 -0
  62. package/dist/directory-sync/non-scim/utils.js +124 -0
  63. package/dist/directory-sync/non-scim/utils.js.map +1 -0
  64. package/dist/directory-sync/{Base.d.ts → scim/Base.d.ts} +1 -5
  65. package/dist/directory-sync/{Base.js → scim/Base.js} +3 -17
  66. package/dist/directory-sync/scim/Base.js.map +1 -0
  67. package/dist/directory-sync/{DirectoryConfig.d.ts → scim/DirectoryConfig.d.ts} +20 -27
  68. package/dist/directory-sync/{DirectoryConfig.js → scim/DirectoryConfig.js} +94 -48
  69. package/dist/directory-sync/scim/DirectoryConfig.js.map +1 -0
  70. package/dist/directory-sync/{DirectoryGroups.d.ts → scim/DirectoryGroups.d.ts} +8 -6
  71. package/dist/directory-sync/{DirectoryGroups.js → scim/DirectoryGroups.js} +8 -12
  72. package/dist/directory-sync/scim/DirectoryGroups.js.map +1 -0
  73. package/dist/directory-sync/{DirectoryUsers.d.ts → scim/DirectoryUsers.d.ts} +7 -5
  74. package/dist/directory-sync/{DirectoryUsers.js → scim/DirectoryUsers.js} +4 -3
  75. package/dist/directory-sync/scim/DirectoryUsers.js.map +1 -0
  76. package/dist/directory-sync/scim/Groups.d.ts +38 -0
  77. package/dist/directory-sync/{Groups.js → scim/Groups.js} +38 -29
  78. package/dist/directory-sync/scim/Groups.js.map +1 -0
  79. package/dist/directory-sync/scim/Users.d.ts +32 -0
  80. package/dist/directory-sync/{Users.js → scim/Users.js} +27 -25
  81. package/dist/directory-sync/scim/Users.js.map +1 -0
  82. package/dist/directory-sync/{WebhookEventsLogger.d.ts → scim/WebhookEventsLogger.d.ts} +1 -1
  83. package/dist/directory-sync/{WebhookEventsLogger.js → scim/WebhookEventsLogger.js} +3 -1
  84. package/dist/directory-sync/scim/WebhookEventsLogger.js.map +1 -0
  85. package/dist/directory-sync/{events.d.ts → scim/events.d.ts} +5 -3
  86. package/dist/directory-sync/{events.js → scim/events.js} +6 -4
  87. package/dist/directory-sync/scim/events.js.map +1 -0
  88. package/dist/directory-sync/{transform.d.ts → scim/transform.d.ts} +1 -1
  89. package/dist/directory-sync/scim/transform.js.map +1 -0
  90. package/dist/directory-sync/scim/utils.d.ts +33 -0
  91. package/dist/directory-sync/{utils.js → scim/utils.js} +8 -3
  92. package/dist/directory-sync/scim/utils.js.map +1 -0
  93. package/dist/directory-sync/types.d.ts +65 -13
  94. package/dist/directory-sync/types.js +3 -2
  95. package/dist/directory-sync/types.js.map +1 -1
  96. package/dist/typings.d.ts +18 -0
  97. package/package.json +15 -12
  98. package/dist/directory-sync/Base.js.map +0 -1
  99. package/dist/directory-sync/DirectoryConfig.js.map +0 -1
  100. package/dist/directory-sync/DirectoryGroups.js.map +0 -1
  101. package/dist/directory-sync/DirectoryUsers.js.map +0 -1
  102. package/dist/directory-sync/Groups.d.ts +0 -48
  103. package/dist/directory-sync/Groups.js.map +0 -1
  104. package/dist/directory-sync/Users.d.ts +0 -49
  105. package/dist/directory-sync/Users.js.map +0 -1
  106. package/dist/directory-sync/WebhookEventsLogger.js.map +0 -1
  107. package/dist/directory-sync/events.js.map +0 -1
  108. package/dist/directory-sync/transform.js.map +0 -1
  109. package/dist/directory-sync/utils.d.ts +0 -33
  110. package/dist/directory-sync/utils.js.map +0 -1
  111. /package/dist/directory-sync/{transform.js → scim/transform.js} +0 -0
@@ -1,8 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Base = void 0;
4
- const utils_1 = require("../controller/utils");
5
- const crypto_1 = require("crypto");
4
+ const utils_1 = require("../../controller/utils");
6
5
  class Base {
7
6
  constructor({ db }) {
8
7
  this.tenant = null;
@@ -17,25 +16,12 @@ class Base {
17
16
  }
18
17
  return this.db.store(`${utils_1.storeNamespacePrefix.dsync[type]}:${this.tenant}:${this.product}`);
19
18
  }
20
- setTenant(tenant) {
19
+ // Set the tenant and product
20
+ setTenantAndProduct(tenant, product) {
21
21
  this.tenant = tenant;
22
- return this;
23
- }
24
- setProduct(product) {
25
22
  this.product = product;
26
23
  return this;
27
24
  }
28
- // Set the tenant and product
29
- setTenantAndProduct(tenant, product) {
30
- return this.setTenant(tenant).setProduct(product);
31
- }
32
- // Set the tenant and product
33
- with(tenant, product) {
34
- return this.setTenant(tenant).setProduct(product);
35
- }
36
- createId() {
37
- return (0, crypto_1.randomUUID)();
38
- }
39
25
  }
40
26
  exports.Base = Base;
41
27
  //# sourceMappingURL=Base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Base.js","sourceRoot":"","sources":["../../../src/directory-sync/scim/Base.ts"],"names":[],"mappings":";;;AACA,kDAA8D;AAE9D,MAAa,IAAI;IAMf,YAAY,EAAE,EAAE,EAAyB;QAJ/B,WAAM,GAAkB,IAAI,CAAC;QAC7B,YAAO,GAAkB,IAAI,CAAC;QAC9B,wBAAmB,GAAG,GAAG,CAAC;QAGlC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,CAAC;IAED,4BAA4B;IAC5B,KAAK,CAAC,IAA6C;QACjD,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjC,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;SAC/D;QAED,OAAO,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,4BAAoB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAC7F,CAAC;IAED,6BAA6B;IAC7B,mBAAmB,CAAC,MAAc,EAAE,OAAe;QACjD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AA1BD,oBA0BC"}
@@ -1,12 +1,16 @@
1
- import type { Directory, JacksonOption, DatabaseStore, DirectoryType, ApiError, PaginationParams, IUsers, IGroups, IWebhookEventsLogger, IEventController } from '../typings';
2
- type ConstructorParams = {
1
+ import type { Directory, JacksonOption, DatabaseStore, DirectoryType, PaginationParams, IUsers, IGroups, IWebhookEventsLogger, IEventController, Response } from '../../typings';
2
+ interface DirectoryConfigParams {
3
3
  db: DatabaseStore;
4
4
  opts: JacksonOption;
5
5
  users: IUsers;
6
6
  groups: IGroups;
7
7
  logger: IWebhookEventsLogger;
8
8
  eventController: IEventController;
9
- };
9
+ }
10
+ interface FilterByParams extends PaginationParams {
11
+ product?: string;
12
+ provider?: DirectoryType;
13
+ }
10
14
  export declare class DirectoryConfig {
11
15
  private _store;
12
16
  private opts;
@@ -15,7 +19,7 @@ export declare class DirectoryConfig {
15
19
  private groups;
16
20
  private logger;
17
21
  private eventController;
18
- constructor({ db, opts, users, groups, logger, eventController }: ConstructorParams);
22
+ constructor({ db, opts, users, groups, logger, eventController }: DirectoryConfigParams);
19
23
  private store;
20
24
  create(params: {
21
25
  name?: string;
@@ -24,31 +28,20 @@ export declare class DirectoryConfig {
24
28
  webhook_url?: string;
25
29
  webhook_secret?: string;
26
30
  type?: DirectoryType;
27
- }): Promise<{
28
- data: Directory | null;
29
- error: ApiError | null;
30
- }>;
31
- get(id: string): Promise<{
32
- data: Directory | null;
33
- error: ApiError | null;
34
- }>;
35
- update(id: string, param: Omit<Partial<Directory>, 'id' | 'tenant' | 'prodct' | 'scim'>): Promise<{
36
- data: Directory | null;
37
- error: ApiError | null;
38
- }>;
39
- getByTenantAndProduct(tenant: string, product: string): Promise<{
40
- data: Directory[] | null;
41
- error: ApiError | null;
42
- }>;
43
- getAll({ pageOffset, pageLimit, pageToken }?: PaginationParams): Promise<{
44
- data: Directory[] | null;
31
+ google_domain?: string;
32
+ google_access_token?: string;
33
+ google_refresh_token?: string;
34
+ }): Promise<Response<Directory>>;
35
+ get(id: string): Promise<Response<Directory>>;
36
+ update(id: string, param: Omit<Partial<Directory>, 'id' | 'tenant' | 'prodct' | 'scim' | 'type'>): Promise<Response<Directory>>;
37
+ getByTenantAndProduct(tenant: string, product: string): Promise<Response<Directory[]>>;
38
+ getAll(params?: PaginationParams): Promise<Response<Directory[]> & {
45
39
  pageToken?: string;
46
- error: ApiError | null;
47
- }>;
48
- delete(id: string): Promise<{
49
- data: null;
50
- error: ApiError | null;
51
40
  }>;
41
+ delete(id: string): Promise<Response<null>>;
52
42
  private transform;
43
+ filterBy(params?: FilterByParams): Promise<Response<Directory[]> & {
44
+ pageToken?: string;
45
+ }>;
53
46
  }
54
47
  export {};
@@ -33,13 +33,11 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
33
33
  };
34
34
  Object.defineProperty(exports, "__esModule", { value: true });
35
35
  exports.DirectoryConfig = void 0;
36
- const dbutils = __importStar(require("../db/utils"));
37
- const utils_1 = require("../controller/utils");
38
- const error_1 = require("../controller/error");
39
- const utils_2 = require("../controller/utils");
40
36
  const crypto_1 = require("crypto");
41
- const utils_3 = require("../controller/utils");
42
- const utils_4 = require("./utils");
37
+ const dbutils = __importStar(require("../../db/utils"));
38
+ const utils_1 = require("../../controller/utils");
39
+ const error_1 = require("../../controller/error");
40
+ const utils_2 = require("./utils");
43
41
  class DirectoryConfig {
44
42
  constructor({ db, opts, users, groups, logger, eventController }) {
45
43
  this._store = null;
@@ -52,44 +50,67 @@ class DirectoryConfig {
52
50
  }
53
51
  // Return the database store
54
52
  store() {
55
- return this._store || (this._store = this.db.store(utils_2.storeNamespacePrefix.dsync.config));
53
+ return this._store || (this._store = this.db.store(utils_1.storeNamespacePrefix.dsync.config));
56
54
  }
57
55
  // Create the configuration
58
56
  create(params) {
59
57
  return __awaiter(this, void 0, void 0, function* () {
60
58
  try {
61
- const { name, tenant, product, webhook_url, webhook_secret, type = 'generic-scim-v2' } = params;
59
+ const { name, tenant, product, webhook_url, webhook_secret, type = 'generic-scim-v2', google_domain, google_access_token, google_refresh_token, } = params;
62
60
  if (!tenant || !product) {
63
61
  throw new error_1.JacksonError('Missing required parameters.', 400);
64
62
  }
65
63
  // Validate the directory type
66
- if (!Object.keys((0, utils_4.getDirectorySyncProviders)()).includes(type)) {
64
+ if (!Object.keys((0, utils_2.getDirectorySyncProviders)()).includes(type)) {
67
65
  throw new error_1.JacksonError('Invalid directory type.', 400);
68
66
  }
69
67
  (0, utils_1.validateTenantAndProduct)(tenant, product);
70
68
  const directoryName = name || `scim-${tenant}-${product}`;
71
69
  const id = (0, crypto_1.randomUUID)();
72
70
  const hasWebhook = webhook_url && webhook_secret;
73
- const directory = {
71
+ const isSCIMProvider = (0, utils_2.isSCIMEnabledProvider)(type);
72
+ let directory = {
74
73
  id,
75
74
  name: directoryName,
76
75
  tenant,
77
76
  product,
78
77
  type,
79
78
  log_webhook_events: false,
80
- scim: {
81
- path: `${this.opts.scimPath}/${id}`,
82
- secret: yield (0, utils_1.createRandomSecret)(16),
83
- },
84
79
  webhook: {
85
80
  endpoint: hasWebhook ? webhook_url : '',
86
81
  secret: hasWebhook ? webhook_secret : '',
87
82
  },
83
+ scim: isSCIMProvider
84
+ ? {
85
+ path: `${this.opts.scimPath}/${id}`,
86
+ secret: yield (0, utils_1.createRandomSecret)(16),
87
+ }
88
+ : {
89
+ path: '',
90
+ secret: '',
91
+ },
88
92
  };
89
- yield this.store().put(id, directory, {
90
- name: utils_3.IndexNames.TenantProduct,
91
- value: dbutils.keyFromParts(tenant, product),
92
- });
93
+ if (type === 'google') {
94
+ directory = Object.assign(Object.assign({}, directory), { google_domain: google_domain || '', google_access_token: google_access_token || '', google_refresh_token: google_refresh_token || '' });
95
+ }
96
+ const indexes = [
97
+ {
98
+ name: utils_1.IndexNames.TenantProduct,
99
+ value: dbutils.keyFromParts(tenant, product),
100
+ },
101
+ {
102
+ name: utils_1.IndexNames.Product,
103
+ value: product,
104
+ },
105
+ ];
106
+ // Add secondary index for Non-SCIM providers
107
+ if (!isSCIMProvider) {
108
+ indexes.push({
109
+ name: utils_1.storeNamespacePrefix.dsync.providers,
110
+ value: type,
111
+ });
112
+ }
113
+ yield this.store().put(id, directory, ...indexes);
93
114
  const connection = this.transform(directory);
94
115
  yield this.eventController.notify('dsync.created', connection);
95
116
  return { data: connection, error: null };
@@ -124,34 +145,20 @@ class DirectoryConfig {
124
145
  if (!id) {
125
146
  throw new error_1.JacksonError('Missing required parameters.', 400);
126
147
  }
127
- const { name, log_webhook_events, webhook, type } = param;
128
- let directory = yield this.store().get(id);
129
- if (name) {
130
- directory.name = name;
131
- }
132
- if (log_webhook_events !== undefined) {
133
- directory.log_webhook_events = log_webhook_events;
134
- }
135
- if (webhook) {
136
- directory.webhook = webhook;
137
- }
138
- if (type) {
139
- directory.type = type;
140
- }
141
- if ('deactivated' in param) {
142
- directory['deactivated'] = param.deactivated;
143
- }
144
- yield this.store().put(id, Object.assign({}, directory));
145
- directory = this.transform(directory);
148
+ const { name, log_webhook_events, webhook, deactivated, google_domain, google_access_token, google_refresh_token, } = param;
149
+ const directory = yield this.store().get(id);
150
+ let updatedDirectory = Object.assign(Object.assign({}, directory), { name: name || directory.name, webhook: webhook || directory.webhook, deactivated: deactivated !== undefined ? deactivated : directory.deactivated, log_webhook_events: log_webhook_events !== undefined ? log_webhook_events : directory.log_webhook_events, google_domain: google_domain || directory.google_domain, google_access_token: google_access_token || directory.google_access_token, google_refresh_token: google_refresh_token || directory.google_refresh_token });
151
+ yield this.store().put(id, updatedDirectory);
152
+ updatedDirectory = this.transform(updatedDirectory);
146
153
  if ('deactivated' in param) {
147
- if ((0, utils_1.isConnectionActive)(directory)) {
148
- yield this.eventController.notify('dsync.activated', directory);
154
+ if ((0, utils_1.isConnectionActive)(updatedDirectory)) {
155
+ yield this.eventController.notify('dsync.activated', updatedDirectory);
149
156
  }
150
157
  else {
151
- yield this.eventController.notify('dsync.deactivated', directory);
158
+ yield this.eventController.notify('dsync.deactivated', updatedDirectory);
152
159
  }
153
160
  }
154
- return { data: directory, error: null };
161
+ return { data: updatedDirectory, error: null };
155
162
  }
156
163
  catch (err) {
157
164
  return (0, error_1.apiError)(err);
@@ -166,7 +173,7 @@ class DirectoryConfig {
166
173
  throw new error_1.JacksonError('Missing required parameters.', 400);
167
174
  }
168
175
  const { data: directories } = yield this.store().getByIndex({
169
- name: utils_3.IndexNames.TenantProduct,
176
+ name: utils_1.IndexNames.TenantProduct,
170
177
  value: dbutils.keyFromParts(tenant, product),
171
178
  });
172
179
  const transformedDirectories = directories.map((directory) => this.transform(directory));
@@ -177,9 +184,10 @@ class DirectoryConfig {
177
184
  }
178
185
  });
179
186
  }
180
- // Get all configurations
181
- getAll({ pageOffset, pageLimit, pageToken } = {}) {
187
+ // Get directory connections with pagination
188
+ getAll(params = {}) {
182
189
  return __awaiter(this, void 0, void 0, function* () {
190
+ const { pageOffset, pageLimit, pageToken } = params;
183
191
  try {
184
192
  const { data: directories, pageToken: nextPageToken } = yield this.store().getAll(pageOffset, pageLimit, pageToken);
185
193
  const transformedDirectories = directories
@@ -225,16 +233,54 @@ class DirectoryConfig {
225
233
  });
226
234
  }
227
235
  transform(directory) {
228
- // Add the flag to ensure SCIM compliance when using Azure AD
229
- if (directory.type === 'azure-scim-v2') {
230
- directory.scim.path = `${directory.scim.path}/?aadOptscim062020`;
236
+ if (directory.scim.path) {
237
+ // Add the flag to ensure SCIM compliance when using Azure AD
238
+ if (directory.type === 'azure-scim-v2') {
239
+ directory.scim.path = `${directory.scim.path}/?aadOptscim062020`;
240
+ }
241
+ // Construct the SCIM endpoint
242
+ directory.scim.endpoint = `${this.opts.externalUrl}${directory.scim.path}`;
231
243
  }
232
- directory.scim.endpoint = `${this.opts.externalUrl}${directory.scim.path}`;
233
244
  if (!('deactivated' in directory)) {
234
245
  directory.deactivated = false;
235
246
  }
236
247
  return directory;
237
248
  }
249
+ // Filter connections by product or provider
250
+ filterBy(params = {}) {
251
+ return __awaiter(this, void 0, void 0, function* () {
252
+ const { product, provider, pageOffset, pageLimit, pageToken } = params;
253
+ let index = null;
254
+ if (product) {
255
+ // Filter by product
256
+ index = {
257
+ name: utils_1.IndexNames.Product,
258
+ value: product,
259
+ };
260
+ }
261
+ else if (provider) {
262
+ // Filter by provider
263
+ index = {
264
+ name: utils_1.storeNamespacePrefix.dsync.providers,
265
+ value: provider,
266
+ };
267
+ }
268
+ try {
269
+ if (!index) {
270
+ throw new error_1.JacksonError('Please provider a product or provider.', 400);
271
+ }
272
+ const { data: directories, pageToken: nextPageToken } = yield this.store().getByIndex(index, pageOffset, pageLimit, pageToken);
273
+ return {
274
+ data: directories.map((directory) => this.transform(directory)),
275
+ pageToken: nextPageToken,
276
+ error: null,
277
+ };
278
+ }
279
+ catch (err) {
280
+ return (0, error_1.apiError)(err);
281
+ }
282
+ });
283
+ }
238
284
  }
239
285
  exports.DirectoryConfig = DirectoryConfig;
240
286
  //# sourceMappingURL=DirectoryConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DirectoryConfig.js","sourceRoot":"","sources":["../../../src/directory-sync/scim/DirectoryConfig.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,15 @@
1
- import type { Group, DirectorySyncResponse, Directory, DirectorySyncGroupMember, DirectorySyncRequest, EventCallback, IDirectoryConfig, IUsers, IGroups } from '../typings';
1
+ import type { Group, DirectorySyncResponse, Directory, DirectorySyncGroupMember, DirectorySyncRequest, EventCallback, IDirectoryConfig, IUsers, IGroups } from '../../typings';
2
+ interface DirectoryGroupsParams {
3
+ directories: IDirectoryConfig;
4
+ users: IUsers;
5
+ groups: IGroups;
6
+ }
2
7
  export declare class DirectoryGroups {
3
8
  private directories;
4
9
  private users;
5
10
  private groups;
6
11
  private callback;
7
- constructor({ directories, users, groups, }: {
8
- directories: IDirectoryConfig;
9
- users: IUsers;
10
- groups: IGroups;
11
- });
12
+ constructor({ directories, users, groups }: DirectoryGroupsParams);
12
13
  create(directory: Directory, body: any): Promise<DirectorySyncResponse>;
13
14
  get(group: Group): Promise<DirectorySyncResponse>;
14
15
  getAll(queryParams: {
@@ -24,3 +25,4 @@ export declare class DirectoryGroups {
24
25
  private respondWithError;
25
26
  handleRequest(request: DirectorySyncRequest, callback?: EventCallback): Promise<DirectorySyncResponse>;
26
27
  }
28
+ export {};
@@ -13,18 +13,19 @@ exports.DirectoryGroups = void 0;
13
13
  const utils_1 = require("./utils");
14
14
  const events_1 = require("./events");
15
15
  class DirectoryGroups {
16
- constructor({ directories, users, groups, }) {
16
+ constructor({ directories, users, groups }) {
17
17
  this.directories = directories;
18
18
  this.users = users;
19
19
  this.groups = groups;
20
20
  }
21
21
  create(directory, body) {
22
22
  return __awaiter(this, void 0, void 0, function* () {
23
- const { displayName } = body;
23
+ const { displayName, groupId } = body;
24
24
  const { data: group } = yield this.groups.create({
25
25
  directoryId: directory.id,
26
26
  name: displayName,
27
- raw: Object.assign(Object.assign({}, body), { members: [] }),
27
+ id: groupId,
28
+ raw: 'rawAttributes' in body ? body.rawAttributes : Object.assign(Object.assign({}, body), { members: [] }),
28
29
  });
29
30
  yield (0, events_1.sendEvent)('group.created', { directory, group }, this.callback);
30
31
  return {
@@ -63,7 +64,7 @@ class DirectoryGroups {
63
64
  }
64
65
  else {
65
66
  // Fetch all the existing group
66
- const { data } = yield this.groups.getAll({ pageOffset: undefined, pageLimit: undefined });
67
+ const { data } = yield this.groups.getAll({ directoryId, pageOffset: undefined, pageLimit: undefined });
67
68
  groups = data;
68
69
  }
69
70
  return {
@@ -112,11 +113,7 @@ class DirectoryGroups {
112
113
  }
113
114
  update(directory, group, body) {
114
115
  return __awaiter(this, void 0, void 0, function* () {
115
- const { displayName } = body;
116
- // Update group name
117
- const updatedGroup = yield this.updateDisplayName(directory, group, {
118
- displayName,
119
- });
116
+ const updatedGroup = yield this.updateDisplayName(directory, group, body);
120
117
  return {
121
118
  status: 200,
122
119
  data: {
@@ -141,10 +138,9 @@ class DirectoryGroups {
141
138
  // Update group displayName
142
139
  updateDisplayName(directory, group, body) {
143
140
  return __awaiter(this, void 0, void 0, function* () {
144
- const { displayName } = body;
145
141
  const { data: updatedGroup, error } = yield this.groups.update(group.id, {
146
- name: displayName,
147
- raw: Object.assign(Object.assign({}, group.raw), body),
142
+ name: body.displayName,
143
+ raw: 'rawAttributes' in body ? body.rawAttributes : Object.assign(Object.assign({}, group.raw), body),
148
144
  });
149
145
  if (error || !updatedGroup) {
150
146
  throw error;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DirectoryGroups.js","sourceRoot":"","sources":["../../../src/directory-sync/scim/DirectoryGroups.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,13 @@
1
- import type { Directory, DirectorySyncResponse, DirectorySyncRequest, User, EventCallback, IDirectoryConfig, IUsers } from '../typings';
1
+ import type { Directory, DirectorySyncResponse, DirectorySyncRequest, User, EventCallback, IDirectoryConfig, IUsers } from '../../typings';
2
+ interface DirectoryUsersParams {
3
+ directories: IDirectoryConfig;
4
+ users: IUsers;
5
+ }
2
6
  export declare class DirectoryUsers {
3
7
  private directories;
4
8
  private users;
5
9
  private callback;
6
- constructor({ directories, users }: {
7
- directories: IDirectoryConfig;
8
- users: IUsers;
9
- });
10
+ constructor({ directories, users }: DirectoryUsersParams);
10
11
  create(directory: Directory, body: any): Promise<DirectorySyncResponse>;
11
12
  get(user: User): Promise<DirectorySyncResponse>;
12
13
  update(directory: Directory, user: User, body: any): Promise<DirectorySyncResponse>;
@@ -21,3 +22,4 @@ export declare class DirectoryUsers {
21
22
  private respondWithError;
22
23
  handleRequest(request: DirectorySyncRequest, callback?: EventCallback): Promise<DirectorySyncResponse>;
23
24
  }
25
+ export {};
@@ -19,14 +19,15 @@ class DirectoryUsers {
19
19
  }
20
20
  create(directory, body) {
21
21
  return __awaiter(this, void 0, void 0, function* () {
22
- const { first_name, last_name, email, active } = (0, utils_1.extractStandardUserAttributes)(body);
22
+ const { id, first_name, last_name, email, active } = (0, utils_1.extractStandardUserAttributes)(body);
23
23
  const { data: user } = yield this.users.create({
24
24
  directoryId: directory.id,
25
+ id,
25
26
  first_name,
26
27
  last_name,
27
28
  email,
28
29
  active,
29
- raw: body,
30
+ raw: 'rawAttributes' in body ? body.rawAttributes : body,
30
31
  });
31
32
  yield (0, events_1.sendEvent)('user.created', { directory, user }, this.callback);
32
33
  return {
@@ -51,7 +52,7 @@ class DirectoryUsers {
51
52
  last_name: name.familyName,
52
53
  email: emails[0].value,
53
54
  active,
54
- raw: body,
55
+ raw: 'rawAttributes' in body ? body.rawAttributes : body,
55
56
  });
56
57
  yield (0, events_1.sendEvent)('user.updated', { directory, user: updatedUser }, this.callback);
57
58
  return {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DirectoryUsers.js","sourceRoot":"","sources":["../../../src/directory-sync/scim/DirectoryUsers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
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
+ export declare class Groups extends Base {
10
+ constructor({ db }: {
11
+ db: DatabaseStore;
12
+ });
13
+ create(params: CreateGroupParams): Promise<Response<Group>>;
14
+ get(id: string): Promise<Response<Group>>;
15
+ update(id: string, param: {
16
+ name: string;
17
+ raw: any;
18
+ }): Promise<Response<Group>>;
19
+ delete(id: string): Promise<Response<null>>;
20
+ addUserToGroup(groupId: string, userId: string): Promise<void>;
21
+ removeUserFromGroup(groupId: string, userId: string): Promise<void>;
22
+ isUserInGroup(groupId: string, userId: string): Promise<boolean>;
23
+ search(displayName: string, directoryId: string): Promise<Response<Group[]>>;
24
+ getAll(params: PaginationParams & {
25
+ directoryId?: string;
26
+ }): Promise<Response<Group[]>>;
27
+ /**
28
+ * Get members of a group paginated
29
+ * @param groupId
30
+ * @returns
31
+ */
32
+ getGroupMembers(parmas: {
33
+ groupId: string;
34
+ } & PaginationParams): Promise<Response<GroupMembership['user_id'][]>>;
35
+ deleteAll(directoryId: string): Promise<void>;
36
+ removeAllUsers(groupId: string): Promise<void>;
37
+ }
38
+ export {};