@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
@@ -33,8 +33,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
33
33
  };
34
34
  Object.defineProperty(exports, "__esModule", { value: true });
35
35
  exports.Groups = void 0;
36
- const dbutils = __importStar(require("../db/utils"));
37
- const error_1 = require("../controller/error");
36
+ const crypto_1 = require("crypto");
37
+ const dbutils = __importStar(require("../../db/utils"));
38
+ const error_1 = require("../../controller/error");
38
39
  const Base_1 = require("./Base");
39
40
  const indexNames = {
40
41
  directoryIdDisplayname: 'directoryIdDisplayname',
@@ -45,16 +46,17 @@ class Groups extends Base_1.Base {
45
46
  super({ db });
46
47
  }
47
48
  // Create a new group
48
- create({ directoryId, name, raw, }) {
49
+ create(params) {
49
50
  return __awaiter(this, void 0, void 0, function* () {
51
+ const { directoryId, name, raw, id: groupId } = params;
52
+ const id = groupId || (0, crypto_1.randomUUID)();
53
+ raw['id'] = id;
54
+ const group = {
55
+ id,
56
+ name,
57
+ raw,
58
+ };
50
59
  try {
51
- const id = this.createId();
52
- raw['id'] = id;
53
- const group = {
54
- id,
55
- name,
56
- raw,
57
- };
58
60
  yield this.store('groups').put(id, group, {
59
61
  name: indexNames.directoryIdDisplayname,
60
62
  value: dbutils.keyFromParts(directoryId, name),
@@ -87,13 +89,13 @@ class Groups extends Base_1.Base {
87
89
  // Update the group data
88
90
  update(id, param) {
89
91
  return __awaiter(this, void 0, void 0, function* () {
92
+ const { name, raw } = param;
93
+ const group = {
94
+ id,
95
+ name,
96
+ raw,
97
+ };
90
98
  try {
91
- const { name, raw } = param;
92
- const group = {
93
- id,
94
- name,
95
- raw,
96
- };
97
99
  yield this.store('groups').put(id, group);
98
100
  return { data: group, error: null };
99
101
  }
@@ -119,19 +121,6 @@ class Groups extends Base_1.Base {
119
121
  }
120
122
  });
121
123
  }
122
- // Get all users in a group
123
- getAllUsers(groupId) {
124
- return __awaiter(this, void 0, void 0, function* () {
125
- const { data: users } = yield this.store('members').getByIndex({
126
- name: 'groupId',
127
- value: groupId,
128
- });
129
- if (users.length === 0) {
130
- return [];
131
- }
132
- return users;
133
- });
134
- }
135
124
  // Add a user to a group
136
125
  addUserToGroup(groupId, userId) {
137
126
  return __awaiter(this, void 0, void 0, function* () {
@@ -199,6 +188,26 @@ class Groups extends Base_1.Base {
199
188
  }
200
189
  });
201
190
  }
191
+ /**
192
+ * Get members of a group paginated
193
+ * @param groupId
194
+ * @returns
195
+ */
196
+ getGroupMembers(parmas) {
197
+ return __awaiter(this, void 0, void 0, function* () {
198
+ const { groupId, pageOffset, pageLimit } = parmas;
199
+ try {
200
+ const { data: members } = yield this.store('members').getByIndex({
201
+ name: 'groupId',
202
+ value: groupId,
203
+ }, pageOffset, pageLimit);
204
+ return { data: members, error: null };
205
+ }
206
+ catch (err) {
207
+ return (0, error_1.apiError)(err);
208
+ }
209
+ });
210
+ }
202
211
  // Delete all groups from a directory
203
212
  deleteAll(directoryId) {
204
213
  return __awaiter(this, void 0, void 0, function* () {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Groups.js","sourceRoot":"","sources":["../../../src/directory-sync/scim/Groups.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import type { User, DatabaseStore, PaginationParams, Response } from '../../typings';
2
+ import { Base } from './Base';
3
+ interface CreateUserParams {
4
+ directoryId: string;
5
+ first_name: string;
6
+ last_name: string;
7
+ email: string;
8
+ active: boolean;
9
+ raw: any;
10
+ id?: string;
11
+ }
12
+ export declare class Users extends Base {
13
+ constructor({ db }: {
14
+ db: DatabaseStore;
15
+ });
16
+ create(params: CreateUserParams): Promise<Response<User>>;
17
+ get(id: string): Promise<Response<User>>;
18
+ update(id: string, param: {
19
+ first_name: string;
20
+ last_name: string;
21
+ email: string;
22
+ active: boolean;
23
+ raw: object;
24
+ }): Promise<Response<User>>;
25
+ delete(id: string): Promise<Response<null>>;
26
+ search(userName: string, directoryId: string): Promise<Response<User[]>>;
27
+ getAll({ pageOffset, pageLimit, directoryId, }?: PaginationParams & {
28
+ directoryId?: string;
29
+ }): Promise<Response<User[]>>;
30
+ deleteAll(directoryId: string): Promise<void>;
31
+ }
32
+ export {};
@@ -10,9 +10,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.Users = void 0;
13
- const error_1 = require("../controller/error");
13
+ const crypto_1 = require("crypto");
14
+ const error_1 = require("../../controller/error");
14
15
  const Base_1 = require("./Base");
15
- const utils_1 = require("../db/utils");
16
+ const utils_1 = require("../../db/utils");
16
17
  const indexNames = {
17
18
  directoryIdUsername: 'directoryIdUsername',
18
19
  directoryId: 'directoryId',
@@ -22,19 +23,20 @@ class Users extends Base_1.Base {
22
23
  super({ db });
23
24
  }
24
25
  // Create a new user
25
- create({ directoryId, first_name, last_name, email, active, raw, }) {
26
+ create(params) {
26
27
  return __awaiter(this, void 0, void 0, function* () {
28
+ const { directoryId, first_name, last_name, email, active, raw, id: userId } = params;
29
+ const id = userId || (0, crypto_1.randomUUID)();
30
+ raw['id'] = id;
31
+ const user = {
32
+ id,
33
+ first_name,
34
+ last_name,
35
+ email,
36
+ active,
37
+ raw,
38
+ };
27
39
  try {
28
- const id = this.createId();
29
- raw['id'] = id;
30
- const user = {
31
- id,
32
- first_name,
33
- last_name,
34
- email,
35
- active,
36
- raw,
37
- };
38
40
  yield this.store('users').put(id, user, {
39
41
  name: indexNames.directoryIdUsername,
40
42
  value: (0, utils_1.keyFromParts)(directoryId, email),
@@ -67,17 +69,17 @@ class Users extends Base_1.Base {
67
69
  // Update the user data
68
70
  update(id, param) {
69
71
  return __awaiter(this, void 0, void 0, function* () {
72
+ const { first_name, last_name, email, active, raw } = param;
73
+ raw['id'] = id;
74
+ const user = {
75
+ id,
76
+ first_name,
77
+ last_name,
78
+ email,
79
+ active,
80
+ raw,
81
+ };
70
82
  try {
71
- const { first_name, last_name, email, active, raw } = param;
72
- raw['id'] = id;
73
- const user = {
74
- id,
75
- first_name,
76
- last_name,
77
- email,
78
- active,
79
- raw,
80
- };
81
83
  yield this.store('users').put(id, user);
82
84
  return { data: user, error: null };
83
85
  }
@@ -106,10 +108,10 @@ class Users extends Base_1.Base {
106
108
  search(userName, directoryId) {
107
109
  return __awaiter(this, void 0, void 0, function* () {
108
110
  try {
109
- const users = (yield this.store('users').getByIndex({
111
+ const { data: users } = yield this.store('users').getByIndex({
110
112
  name: indexNames.directoryIdUsername,
111
113
  value: (0, utils_1.keyFromParts)(directoryId, userName),
112
- })).data;
114
+ });
113
115
  return { data: users, error: null };
114
116
  }
115
117
  catch (err) {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Users.js","sourceRoot":"","sources":["../../../src/directory-sync/scim/Users.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { Directory, DatabaseStore, WebhookEventLog, DirectorySyncEvent, PaginationParams } from '../typings';
1
+ import type { Directory, DatabaseStore, WebhookEventLog, DirectorySyncEvent, PaginationParams } from '../../typings';
2
2
  import { Base } from './Base';
3
3
  type GetAllParams = PaginationParams & {
4
4
  directoryId?: string;
@@ -10,6 +10,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.WebhookEventsLogger = void 0;
13
+ const crypto_1 = require("crypto");
13
14
  const Base_1 = require("./Base");
14
15
  class WebhookEventsLogger extends Base_1.Base {
15
16
  constructor({ db }) {
@@ -17,7 +18,7 @@ class WebhookEventsLogger extends Base_1.Base {
17
18
  }
18
19
  log(directory, event, status) {
19
20
  return __awaiter(this, void 0, void 0, function* () {
20
- const id = this.createId();
21
+ const id = (0, crypto_1.randomUUID)();
21
22
  const log = Object.assign(Object.assign({}, event), { id, webhook_endpoint: directory.webhook.endpoint, created_at: new Date(), status_code: status, delivered: status === 200 });
22
23
  yield this.store('logs').put(id, log, {
23
24
  name: 'directoryId',
@@ -31,6 +32,7 @@ class WebhookEventsLogger extends Base_1.Base {
31
32
  return yield this.store('logs').get(id);
32
33
  });
33
34
  }
35
+ // Get the event logs for a directory paginated
34
36
  getAll(params = {}) {
35
37
  return __awaiter(this, void 0, void 0, function* () {
36
38
  const { pageOffset, pageLimit, directoryId } = params;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebhookEventsLogger.js","sourceRoot":"","sources":["../../../src/directory-sync/scim/WebhookEventsLogger.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mCAAoC;AASpC,iCAA8B;AAM9B,MAAa,mBAAoB,SAAQ,WAAI;IAC3C,YAAY,EAAE,EAAE,EAAyB;QACvC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAChB,CAAC;IAEY,GAAG,CAAC,SAAoB,EAAE,KAAyB,EAAE,MAAc;;YAC9E,MAAM,EAAE,GAAG,IAAA,mBAAU,GAAE,CAAC;YAExB,MAAM,GAAG,mCACJ,KAAK,KACR,EAAE,EACF,gBAAgB,EAAE,SAAS,CAAC,OAAO,CAAC,QAAQ,EAC5C,UAAU,EAAE,IAAI,IAAI,EAAE,EACtB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,KAAK,GAAG,GAC1B,CAAC;YAEF,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE;gBACpC,IAAI,EAAE,aAAa;gBACnB,KAAK,EAAE,SAAS,CAAC,EAAE;aACpB,CAAC,CAAC;YAEH,OAAO,GAAG,CAAC;QACb,CAAC;KAAA;IAEY,GAAG,CAAC,EAAU;;YACzB,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1C,CAAC;KAAA;IAED,+CAA+C;IAClC,MAAM,CAAC,SAAuB,EAAE;;YAC3C,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;YAEtD,IAAI,SAAS,GAAsB,EAAE,CAAC;YAEtC,IAAI,WAAW,EAAE;gBACf,MAAM,KAAK,GAAG;oBACZ,IAAI,EAAE,aAAa;oBACnB,KAAK,EAAE,WAAW;iBACnB,CAAC;gBAEF,SAAS,GAAG,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;aACtF;iBAAM;gBACL,SAAS,GAAG,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;aAC3E;YAED,OAAO,SAAS,CAAC;QACnB,CAAC;KAAA;IAEY,MAAM,CAAC,EAAU;;YAC5B,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACtC,CAAC;KAAA;IAED,wCAAwC;IAClC,SAAS,CAAC,WAAmB;;YACjC,MAAM,KAAK,GAAG;gBACZ,IAAI,EAAE,aAAa;gBACnB,KAAK,EAAE,WAAW;aACnB,CAAC;YAEF,iDAAiD;YACjD,OAAO,IAAI,EAAE;gBACX,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;gBAEjG,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;oBAClC,MAAM;iBACP;gBAED,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;aACtE;QACH,CAAC;KAAA;CACF;AAvED,kDAuEC"}
@@ -1,7 +1,9 @@
1
- import type { DirectorySyncEventType, Directory, User, Group, EventCallback, DirectorySyncEvent, IWebhookEventsLogger, IDirectoryConfig } from '../typings';
2
- export declare const sendEvent: (event: DirectorySyncEventType, payload: {
1
+ import type { DirectorySyncEventType, Directory, User, Group, EventCallback, DirectorySyncEvent, IWebhookEventsLogger, IDirectoryConfig } from '../../typings';
2
+ type Payload = {
3
3
  directory: Directory;
4
4
  group?: Group | null;
5
5
  user?: User | null;
6
- }, callback?: EventCallback) => Promise<void>;
6
+ };
7
+ export declare const sendEvent: (event: DirectorySyncEventType, payload: Payload, callback?: EventCallback) => Promise<void>;
7
8
  export declare const handleEventCallback: (directories: IDirectoryConfig, webhookEventsLogger: IWebhookEventsLogger) => Promise<(event: DirectorySyncEvent) => Promise<void>>;
9
+ export {};
@@ -10,15 +10,17 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.handleEventCallback = exports.sendEvent = void 0;
13
- const webhook_1 = require("../event/webhook");
13
+ const webhook_1 = require("../../event/webhook");
14
14
  const transform_1 = require("./transform");
15
- const utils_1 = require("../controller/utils");
15
+ const utils_1 = require("../../controller/utils");
16
16
  const sendEvent = (event, payload, callback) => __awaiter(void 0, void 0, void 0, function* () {
17
17
  if (!(0, utils_1.isConnectionActive)(payload.directory)) {
18
18
  return;
19
19
  }
20
- const eventTransformed = (0, transform_1.transformEventPayload)(event, payload);
21
- return callback ? yield callback(eventTransformed) : Promise.resolve();
20
+ if (!callback) {
21
+ return;
22
+ }
23
+ yield callback((0, transform_1.transformEventPayload)(event, payload));
22
24
  });
23
25
  exports.sendEvent = sendEvent;
24
26
  const handleEventCallback = (directories, webhookEventsLogger) => __awaiter(void 0, void 0, void 0, function* () {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/directory-sync/scim/events.ts"],"names":[],"mappings":";;;;;;;;;;;;AAUA,iDAA2D;AAC3D,2CAAoD;AACpD,kDAA4D;AAIrD,MAAM,SAAS,GAAG,CACvB,KAA6B,EAC7B,OAAgB,EAChB,QAAwB,EACxB,EAAE;IACF,IAAI,CAAC,IAAA,0BAAkB,EAAC,OAAO,CAAC,SAAS,CAAC,EAAE;QAC1C,OAAO;KACR;IAED,IAAI,CAAC,QAAQ,EAAE;QACb,OAAO;KACR;IAED,MAAM,QAAQ,CAAC,IAAA,iCAAqB,EAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;AACxD,CAAC,CAAA,CAAC;AAdW,QAAA,SAAS,aAcpB;AAEK,MAAM,mBAAmB,GAAG,CACjC,WAA6B,EAC7B,mBAAyC,EACzC,EAAE;IACF,OAAO,CAAO,KAAyB,EAAE,EAAE;QACzC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC;QAE7D,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAE/D,IAAI,CAAC,SAAS,EAAE;YACd,OAAO;SACR;QAED,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE;YAC5D,OAAO;SACR;QAED,IAAI,MAAM,GAAG,GAAG,CAAC;QAEjB,IAAI;YACF,MAAM,IAAA,8BAAoB,EAAC,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;SACtD;QAAC,OAAO,GAAQ,EAAE;YACjB,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;SACnD;QAED,IAAI,SAAS,CAAC,kBAAkB,EAAE;YAChC,MAAM,mBAAmB,CAAC,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;SAC9F;IACH,CAAC,CAAA,CAAC;AACJ,CAAC,CAAA,CAAC;AA7BW,QAAA,mBAAmB,uBA6B9B"}
@@ -1,4 +1,4 @@
1
- import { Directory, DirectorySyncEvent, DirectorySyncEventType, Group, User } from '../typings';
1
+ import { Directory, DirectorySyncEvent, DirectorySyncEventType, Group, User } from '../../typings';
2
2
  export declare const transformUser: (user: User) => User;
3
3
  export declare const transformGroup: (group: Group) => Group;
4
4
  export declare const transformUserGroup: (user: User, group: Group) => User & {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transform.js","sourceRoot":"","sources":["../../../src/directory-sync/scim/transform.ts"],"names":[],"mappings":";;;AAEO,MAAM,aAAa,GAAG,CAAC,IAAU,EAAQ,EAAE;IAChD,OAAO;QACL,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,GAAG,EAAE,IAAI,CAAC,GAAG;KACd,CAAC;AACJ,CAAC,CAAC;AATW,QAAA,aAAa,iBASxB;AAEK,MAAM,cAAc,GAAG,CAAC,KAAY,EAAS,EAAE;IACpD,OAAO;QACL,EAAE,EAAE,KAAK,CAAC,EAAE;QACZ,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,GAAG,EAAE,KAAK,CAAC,GAAG;KACf,CAAC;AACJ,CAAC,CAAC;AANW,QAAA,cAAc,kBAMzB;AAEK,MAAM,kBAAkB,GAAG,CAAC,IAAU,EAAE,KAAY,EAA2B,EAAE;IACtF,uCACK,IAAA,qBAAa,EAAC,IAAI,CAAC,KACtB,KAAK,EAAE,IAAA,sBAAc,EAAC,KAAK,CAAC,IAC5B;AACJ,CAAC,CAAC;AALW,QAAA,kBAAkB,sBAK7B;AAEK,MAAM,qBAAqB,GAAG,CACnC,KAA6B,EAC7B,OAA2E,EAC3E,EAAE;IACF,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IAC3C,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,YAAY,EAAE,GAAG,SAAS,CAAC;IAExD,MAAM,YAAY,GAAG;QACnB,KAAK;QACL,MAAM;QACN,OAAO;QACP,YAAY;KACb,CAAC;IAEF,cAAc;IACd,IAAI,CAAC,cAAc,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE;QAC5E,YAAY,CAAC,MAAM,CAAC,GAAG,IAAA,qBAAa,EAAC,IAAI,CAAC,CAAC;KAC5C;IAED,eAAe;IACf,IAAI,CAAC,eAAe,EAAE,eAAe,EAAE,eAAe,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,EAAE;QAChF,YAAY,CAAC,MAAM,CAAC,GAAG,IAAA,sBAAc,EAAC,KAAK,CAAC,CAAC;KAC9C;IAED,0BAA0B;IAC1B,IAAI,CAAC,kBAAkB,EAAE,oBAAoB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,KAAK,EAAE;QAC/E,YAAY,CAAC,MAAM,CAAC,GAAG,IAAA,0BAAkB,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC;KACxD;IAED,OAAO,YAAkC,CAAC;AAC5C,CAAC,CAAC;AA9BW,QAAA,qBAAqB,yBA8BhC"}
@@ -0,0 +1,33 @@
1
+ import type { DirectoryType, User, UserPatchOperation, GroupPatchOperation } from '../../typings';
2
+ export declare const parseGroupOperation: (operation: GroupPatchOperation) => {
3
+ action: string;
4
+ members: {
5
+ value: string;
6
+ display?: string | undefined;
7
+ }[];
8
+ displayName?: undefined;
9
+ } | {
10
+ action: string;
11
+ displayName: unknown;
12
+ members?: undefined;
13
+ } | {
14
+ action: string;
15
+ members?: undefined;
16
+ displayName?: undefined;
17
+ };
18
+ export declare const getDirectorySyncProviders: () => {
19
+ [K: string]: string;
20
+ };
21
+ export declare const parseUserPatchRequest: (operation: UserPatchOperation) => {
22
+ attributes: Partial<User>;
23
+ rawAttributes: {};
24
+ };
25
+ export declare const extractStandardUserAttributes: (body: any) => {
26
+ first_name: string;
27
+ last_name: string;
28
+ email: string;
29
+ active: true;
30
+ id: string | undefined;
31
+ };
32
+ export declare const updateRawUserAttributes: (raw: any, attributes: any) => any;
33
+ export declare const isSCIMEnabledProvider: (type: DirectoryType) => boolean;
@@ -3,9 +3,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.updateRawUserAttributes = exports.extractStandardUserAttributes = exports.parseUserPatchRequest = exports.getDirectorySyncProviders = exports.parseGroupOperation = void 0;
7
- const typings_1 = require("../typings");
6
+ exports.isSCIMEnabledProvider = exports.updateRawUserAttributes = exports.extractStandardUserAttributes = exports.parseUserPatchRequest = exports.getDirectorySyncProviders = exports.parseGroupOperation = void 0;
8
7
  const lodash_1 = __importDefault(require("lodash"));
8
+ const typings_1 = require("../../typings");
9
9
  const parseGroupOperation = (operation) => {
10
10
  const { op, path, value } = operation;
11
11
  if (path === 'members') {
@@ -88,12 +88,13 @@ const parseUserPatchRequest = (operation) => {
88
88
  exports.parseUserPatchRequest = parseUserPatchRequest;
89
89
  // Extract standard attributes from the user body
90
90
  const extractStandardUserAttributes = (body) => {
91
- const { name, emails, userName, active } = body;
91
+ const { name, emails, userName, active, userId } = body;
92
92
  return {
93
93
  first_name: name && 'givenName' in name ? name.givenName : '',
94
94
  last_name: name && 'familyName' in name ? name.familyName : '',
95
95
  email: emails && emails.length > 0 ? emails[0].value : userName,
96
96
  active: active || true,
97
+ id: userId, // For non-SCIM providers, the id will exist in the body
97
98
  };
98
99
  };
99
100
  exports.extractStandardUserAttributes = extractStandardUserAttributes;
@@ -109,4 +110,8 @@ const updateRawUserAttributes = (raw, attributes) => {
109
110
  return raw;
110
111
  };
111
112
  exports.updateRawUserAttributes = updateRawUserAttributes;
113
+ const isSCIMEnabledProvider = (type) => {
114
+ return type !== 'google';
115
+ };
116
+ exports.isSCIMEnabledProvider = isSCIMEnabledProvider;
112
117
  //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/directory-sync/scim/utils.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,12 @@
1
1
  import directorySync from '.';
2
- import { DirectoryConfig } from './DirectoryConfig';
3
- import { DirectoryGroups } from './DirectoryGroups';
4
- import { DirectoryUsers } from './DirectoryUsers';
5
- import { Users } from './Users';
6
- import { Groups } from './Groups';
7
- import { WebhookEventsLogger } from './WebhookEventsLogger';
2
+ import { DirectoryConfig } from './scim/DirectoryConfig';
3
+ import { DirectoryGroups } from './scim/DirectoryGroups';
4
+ import { DirectoryUsers } from './scim/DirectoryUsers';
5
+ import { Users } from './scim/Users';
6
+ import { Groups } from './scim/Groups';
7
+ import { WebhookEventsLogger } from './scim/WebhookEventsLogger';
8
+ import { ApiError } from '../typings';
9
+ import { RequestHandler } from './request';
8
10
  export type IDirectorySyncController = Awaited<ReturnType<typeof directorySync>>;
9
11
  export type IDirectoryConfig = InstanceType<typeof DirectoryConfig>;
10
12
  export type IDirectoryGroups = InstanceType<typeof DirectoryGroups>;
@@ -12,13 +14,15 @@ export type IDirectoryUsers = InstanceType<typeof DirectoryUsers>;
12
14
  export type IUsers = InstanceType<typeof Users>;
13
15
  export type IGroups = InstanceType<typeof Groups>;
14
16
  export type IWebhookEventsLogger = InstanceType<typeof WebhookEventsLogger>;
17
+ export type IRequestHandler = InstanceType<typeof RequestHandler>;
15
18
  export type DirectorySyncEventType = 'user.created' | 'user.updated' | 'user.deleted' | 'group.created' | 'group.updated' | 'group.deleted' | 'group.user_added' | 'group.user_removed';
16
19
  export declare enum DirectorySyncProviders {
17
20
  'azure-scim-v2' = "Azure SCIM v2.0",
18
21
  'onelogin-scim-v2' = "OneLogin SCIM v2.0",
19
22
  'okta-scim-v2' = "Okta SCIM v2.0",
20
23
  'jumpcloud-scim-v2' = "JumpCloud v2.0",
21
- 'generic-scim-v2' = "SCIM Generic v2.0"
24
+ 'generic-scim-v2' = "Generic SCIM v2.0",
25
+ 'google' = "Google"
22
26
  }
23
27
  export type DirectoryType = keyof typeof DirectorySyncProviders;
24
28
  export type Directory = {
@@ -38,6 +42,9 @@ export type Directory = {
38
42
  secret: string;
39
43
  };
40
44
  deactivated?: boolean;
45
+ google_domain?: string;
46
+ google_access_token?: string;
47
+ google_refresh_token?: string;
41
48
  };
42
49
  export type DirectorySyncGroupMember = {
43
50
  value: string;
@@ -47,9 +54,6 @@ export type DirectorySyncResponse = {
47
54
  status: number;
48
55
  data?: any;
49
56
  };
50
- export interface DirectorySyncRequestHandler {
51
- handle(request: DirectorySyncRequest, callback?: EventCallback): Promise<DirectorySyncResponse>;
52
- }
53
57
  export interface Events {
54
58
  handle(event: DirectorySyncEvent): Promise<void>;
55
59
  }
@@ -74,9 +78,6 @@ export interface DirectorySyncEvent {
74
78
  tenant: string;
75
79
  product: string;
76
80
  }
77
- export interface EventCallback {
78
- (event: DirectorySyncEvent): Promise<void>;
79
- }
80
81
  export interface WebhookEventLog extends DirectorySyncEvent {
81
82
  id: string;
82
83
  webhook_endpoint: string;
@@ -97,6 +98,10 @@ export type Group = {
97
98
  name: string;
98
99
  raw?: any;
99
100
  };
101
+ export type GroupMember = {
102
+ id: string;
103
+ raw?: any;
104
+ };
100
105
  export type UserWithGroup = User & {
101
106
  group: Group;
102
107
  };
@@ -104,6 +109,7 @@ export type PaginationParams = {
104
109
  pageOffset?: number;
105
110
  pageLimit?: number;
106
111
  pageToken?: string;
112
+ hasNextPage?: boolean;
107
113
  };
108
114
  export type UserPatchOperation = {
109
115
  op: 'replace' | 'add';
@@ -133,3 +139,49 @@ export type GroupMembership = {
133
139
  group_id: string;
134
140
  user_id: string;
135
141
  };
142
+ export type Response<T> = {
143
+ data: T;
144
+ error: null;
145
+ } | {
146
+ data: null;
147
+ error: ApiError;
148
+ };
149
+ export type EventCallback = (event: DirectorySyncEvent) => Promise<void>;
150
+ export interface IDirectoryProvider {
151
+ /**
152
+ * Fields to exclude from the user payload while comparing the user to find if it is updated
153
+ */
154
+ userFieldsToExcludeWhenCompare?: string[];
155
+ /**
156
+ * Fields to exclude from the group payload while comparing the group to find if it is updated
157
+ */
158
+ groupFieldsToExcludeWhenCompare?: string[];
159
+ /**
160
+ * Get all directories for the provider
161
+ */
162
+ getDirectories(): Promise<Directory[]>;
163
+ /**
164
+ * Get all users for a directory
165
+ * @param directory
166
+ * @param options
167
+ */
168
+ getUsers(directory: Directory, options: PaginationParams | null): Promise<{
169
+ data: User[];
170
+ metadata: PaginationParams | null;
171
+ }>;
172
+ /**
173
+ * Get all groups for a directory
174
+ * @param directory
175
+ * @param options
176
+ */
177
+ getGroups(directory: Directory, options: PaginationParams | null): Promise<{
178
+ data: Group[];
179
+ metadata: PaginationParams | null;
180
+ }>;
181
+ /**
182
+ * Get all members of a group
183
+ * @param directory
184
+ * @param group
185
+ */
186
+ getGroupMembers(directory: Directory, group: Group): Promise<GroupMember[]>;
187
+ }
@@ -7,6 +7,7 @@ var DirectorySyncProviders;
7
7
  DirectorySyncProviders["onelogin-scim-v2"] = "OneLogin SCIM v2.0";
8
8
  DirectorySyncProviders["okta-scim-v2"] = "Okta SCIM v2.0";
9
9
  DirectorySyncProviders["jumpcloud-scim-v2"] = "JumpCloud v2.0";
10
- DirectorySyncProviders["generic-scim-v2"] = "SCIM Generic v2.0";
11
- })(DirectorySyncProviders = exports.DirectorySyncProviders || (exports.DirectorySyncProviders = {}));
10
+ DirectorySyncProviders["generic-scim-v2"] = "Generic SCIM v2.0";
11
+ DirectorySyncProviders["google"] = "Google";
12
+ })(DirectorySyncProviders || (exports.DirectorySyncProviders = DirectorySyncProviders = {}));
12
13
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/directory-sync/types.ts"],"names":[],"mappings":";;;AA0BA,IAAY,sBAMX;AAND,WAAY,sBAAsB;IAChC,2DAAmC,CAAA;IACnC,iEAAyC,CAAA;IACzC,yDAAiC,CAAA;IACjC,8DAAsC,CAAA;IACtC,+DAAuC,CAAA;AACzC,CAAC,EANW,sBAAsB,GAAtB,8BAAsB,KAAtB,8BAAsB,QAMjC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/directory-sync/types.ts"],"names":[],"mappings":";;;AA6BA,IAAY,sBAOX;AAPD,WAAY,sBAAsB;IAChC,2DAAmC,CAAA;IACnC,iEAAyC,CAAA;IACzC,yDAAiC,CAAA;IACjC,8DAAsC,CAAA;IACtC,+DAAuC,CAAA;IACvC,2CAAmB,CAAA;AACrB,CAAC,EAPW,sBAAsB,sCAAtB,sBAAsB,QAOjC"}
package/dist/typings.d.ts CHANGED
@@ -142,6 +142,15 @@ export interface IConnectionAPIController {
142
142
  * @deprecated Use `deleteConnections` instead.
143
143
  */
144
144
  deleteConfig(body: DelConfigQuery): Promise<void>;
145
+ getConnectionsByProduct(body: {
146
+ product: string;
147
+ pageOffset?: number;
148
+ pageLimit?: number;
149
+ pageToken?: string;
150
+ }): Promise<{
151
+ data: (SAMLSSORecord | OIDCSSORecord)[];
152
+ pageToken?: string;
153
+ }>;
145
154
  }
146
155
  export interface IOAuthController {
147
156
  authorize(body: OAuthReq): Promise<{
@@ -359,6 +368,15 @@ export interface JacksonOption {
359
368
  adminToken?: string;
360
369
  };
361
370
  webhook?: Webhook;
371
+ dsync?: {
372
+ providers: {
373
+ google: {
374
+ clientId: string;
375
+ clientSecret: string;
376
+ callbackUrl: string;
377
+ };
378
+ };
379
+ };
362
380
  }
363
381
  export interface SLORequestParams {
364
382
  nameId: string;