@boxyhq/saml-jackson 1.9.3 → 1.9.5
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.
- package/dist/controller/api.d.ts +3 -1
- package/dist/controller/api.js +11 -4
- package/dist/controller/api.js.map +1 -1
- package/dist/controller/utils.d.ts +14 -0
- package/dist/controller/utils.js +11 -8
- package/dist/controller/utils.js.map +1 -1
- package/dist/db/db.d.ts +1 -0
- package/dist/db/db.js +5 -0
- package/dist/db/db.js.map +1 -1
- package/dist/db/dynamoDb.d.ts +1 -0
- package/dist/db/dynamoDb.js +19 -6
- package/dist/db/dynamoDb.js.map +1 -1
- package/dist/db/mem.d.ts +1 -0
- package/dist/db/mem.js +10 -0
- package/dist/db/mem.js.map +1 -1
- package/dist/db/mongo.d.ts +1 -0
- package/dist/db/mongo.js +11 -0
- package/dist/db/mongo.js.map +1 -1
- package/dist/db/planetscale/entity/JacksonIndex.js.map +1 -1
- package/dist/db/planetscale/entity/JacksonStore.js.map +1 -1
- package/dist/db/planetscale/entity/JacksonTTL.js.map +1 -1
- package/dist/db/redis.d.ts +1 -0
- package/dist/db/redis.js +21 -0
- package/dist/db/redis.js.map +1 -1
- package/dist/db/sql/entity/JacksonIndex.js.map +1 -1
- package/dist/db/sql/entity/JacksonStore.js.map +1 -1
- package/dist/db/sql/entity/JacksonTTL.js.map +1 -1
- package/dist/db/sql/mariadb/entity/JacksonIndex.js.map +1 -1
- package/dist/db/sql/mariadb/entity/JacksonStore.js.map +1 -1
- package/dist/db/sql/mariadb/entity/JacksonTTL.js.map +1 -1
- package/dist/db/sql/mssql/entity/JacksonIndex.js.map +1 -1
- package/dist/db/sql/mssql/entity/JacksonStore.js.map +1 -1
- package/dist/db/sql/mssql/entity/JacksonTTL.js.map +1 -1
- package/dist/db/sql/sql.d.ts +1 -0
- package/dist/db/sql/sql.js +29 -0
- package/dist/db/sql/sql.js.map +1 -1
- package/dist/db/store.js +5 -0
- package/dist/db/store.js.map +1 -1
- package/dist/directory-sync/Base.d.ts +1 -0
- package/dist/directory-sync/Base.js +1 -0
- package/dist/directory-sync/Base.js.map +1 -1
- package/dist/directory-sync/DirectoryConfig.d.ts +20 -7
- package/dist/directory-sync/DirectoryConfig.js +36 -14
- package/dist/directory-sync/DirectoryConfig.js.map +1 -1
- package/dist/directory-sync/DirectoryGroups.js +0 -1
- package/dist/directory-sync/DirectoryGroups.js.map +1 -1
- package/dist/directory-sync/Groups.d.ts +3 -2
- package/dist/directory-sync/Groups.js +49 -19
- package/dist/directory-sync/Groups.js.map +1 -1
- package/dist/directory-sync/Users.d.ts +1 -1
- package/dist/directory-sync/Users.js +13 -9
- package/dist/directory-sync/Users.js.map +1 -1
- package/dist/directory-sync/WebhookEventsLogger.d.ts +7 -6
- package/dist/directory-sync/WebhookEventsLogger.js +26 -18
- package/dist/directory-sync/WebhookEventsLogger.js.map +1 -1
- package/dist/directory-sync/events.js +7 -18
- package/dist/directory-sync/events.js.map +1 -1
- package/dist/directory-sync/index.d.ts +3 -2
- package/dist/directory-sync/index.js +6 -5
- package/dist/directory-sync/index.js.map +1 -1
- package/dist/directory-sync/transform.d.ts +9 -5
- package/dist/directory-sync/transform.js +26 -2
- package/dist/directory-sync/transform.js.map +1 -1
- package/dist/directory-sync/types.d.ts +10 -3
- package/dist/directory-sync/utils.d.ts +2 -12
- package/dist/directory-sync/utils.js +1 -57
- package/dist/directory-sync/utils.js.map +1 -1
- package/dist/event/axios.js.map +1 -0
- package/dist/event/index.d.ts +10 -0
- package/dist/event/index.js +54 -0
- package/dist/event/index.js.map +1 -0
- package/dist/event/types.d.ts +21 -0
- package/dist/event/types.js +3 -0
- package/dist/event/types.js.map +1 -0
- package/dist/event/utils.d.ts +4 -0
- package/dist/event/utils.js +39 -0
- package/dist/event/utils.js.map +1 -0
- package/dist/event/webhook.d.ts +3 -0
- package/dist/event/webhook.js +39 -0
- package/dist/event/webhook.js.map +1 -0
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/loadConnection.js +1 -2
- package/dist/loadConnection.js.map +1 -1
- package/dist/typings.d.ts +8 -0
- package/dist/typings.js +1 -0
- package/dist/typings.js.map +1 -1
- package/package.json +11 -11
- package/dist/directory-sync/axios.js.map +0 -1
- /package/dist/{directory-sync → event}/axios.d.ts +0 -0
- /package/dist/{directory-sync → event}/axios.js +0 -0
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Users.js","sourceRoot":"","sources":["../../src/directory-sync/Users.ts"],"names":[],"mappings":"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
|
1
|
+
{"version":3,"file":"Users.js","sourceRoot":"","sources":["../../src/directory-sync/Users.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,+CAA6D;AAC7D,iCAA8B;AAC9B,uCAA2C;AAW3C,MAAM,UAAU,GAAG;IACjB,mBAAmB,EAAE,qBAAqB;IAC1C,WAAW,EAAE,aAAa;CAC3B,CAAC;AAEF,MAAa,KAAM,SAAQ,WAAI;IAC7B,YAAY,EAAE,EAAE,EAAyB;QACvC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAChB,CAAC;IAED,oBAAoB;IACP,MAAM,CAAC,EAClB,WAAW,EACX,UAAU,EACV,SAAS,EACT,KAAK,EACL,MAAM,EACN,GAAG,GACe;;YAClB,IAAI;gBACF,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAE3B,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;gBAEf,MAAM,IAAI,GAAG;oBACX,EAAE;oBACF,UAAU;oBACV,SAAS;oBACT,KAAK;oBACL,MAAM;oBACN,GAAG;iBACJ,CAAC;gBAEF,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,CAC3B,EAAE,EACF,IAAI,EACJ;oBACE,IAAI,EAAE,UAAU,CAAC,mBAAmB;oBACpC,KAAK,EAAE,IAAA,oBAAY,EAAC,WAAW,EAAE,KAAK,CAAC;iBACxC,EACD;oBACE,IAAI,EAAE,UAAU,CAAC,WAAW;oBAC5B,KAAK,EAAE,WAAW;iBACnB,CACF,CAAC;gBAEF,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;aACpC;YAAC,OAAO,GAAQ,EAAE;gBACjB,OAAO,IAAA,gBAAQ,EAAC,GAAG,CAAC,CAAC;aACtB;QACH,CAAC;KAAA;IAED,mBAAmB;IACN,GAAG,CAAC,EAAU;;YACzB,IAAI;gBACF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAE/C,IAAI,IAAI,KAAK,IAAI,EAAE;oBACjB,MAAM,IAAI,oBAAY,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;iBAC/C;gBAED,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;aACpC;YAAC,OAAO,GAAQ,EAAE;gBACjB,OAAO,IAAA,gBAAQ,EAAC,GAAG,CAAC,CAAC;aACtB;QACH,CAAC;KAAA;IAED,uBAAuB;IACV,MAAM,CACjB,EAAU,EACV,KAMC;;YAED,IAAI;gBACF,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;gBAE5D,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;gBAEf,MAAM,IAAI,GAAG;oBACX,EAAE;oBACF,UAAU;oBACV,SAAS;oBACT,KAAK;oBACL,MAAM;oBACN,GAAG;iBACJ,CAAC;gBAEF,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;gBAExC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;aACpC;YAAC,OAAO,GAAQ,EAAE;gBACjB,OAAO,IAAA,gBAAQ,EAAC,GAAG,CAAC,CAAC;aACtB;QACH,CAAC;KAAA;IAED,sBAAsB;IACT,MAAM,CAAC,EAAU;;YAC5B,IAAI;gBACF,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAE3C,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE;oBAClB,MAAM,KAAK,CAAC;iBACb;gBAED,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAErC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;aACpC;YAAC,OAAO,GAAQ,EAAE;gBACjB,OAAO,IAAA,gBAAQ,EAAC,GAAG,CAAC,CAAC;aACtB;QACH,CAAC;KAAA;IAED,2BAA2B;IACd,MAAM,CACjB,QAAgB,EAChB,WAAmB;;YAEnB,IAAI;gBACF,MAAM,KAAK,GAAG,CACZ,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC;oBACnC,IAAI,EAAE,UAAU,CAAC,mBAAmB;oBACpC,KAAK,EAAE,IAAA,oBAAY,EAAC,WAAW,EAAE,QAAQ,CAAC;iBAC3C,CAAC,CACH,CAAC,IAAI,CAAC;gBAEP,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;aACrC;YAAC,OAAO,GAAQ,EAAE;gBACjB,OAAO,IAAA,gBAAQ,EAAC,GAAG,CAAC,CAAC;aACtB;QACH,CAAC;KAAA;IAED,+BAA+B;IAClB,MAAM,CAAC,EAClB,UAAU,EACV,SAAS,EACT,WAAW,MAGT,EAAE;;YAIJ,IAAI;gBACF,IAAI,KAAK,GAAW,EAAE,CAAC;gBAEvB,wBAAwB;gBACxB,IAAI,WAAW,EAAE;oBACf,KAAK,GAAG,CACN,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,UAAU,CAClC;wBACE,IAAI,EAAE,UAAU,CAAC,WAAW;wBAC5B,KAAK,EAAE,WAAW;qBACnB,EACD,UAAU,EACV,SAAS,CACV,CACF,CAAC,IAAc,CAAC;iBAClB;qBAAM;oBACL,KAAK,GAAG,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;iBACxE;gBAED,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;aACrC;YAAC,OAAO,GAAQ,EAAE;gBACjB,OAAO,IAAA,gBAAQ,EAAC,GAAG,CAAC,CAAC;aACtB;QACH,CAAC;KAAA;IAED,oCAAoC;IAC9B,SAAS,CAAC,WAAmB;;YACjC,MAAM,KAAK,GAAG;gBACZ,IAAI,EAAE,UAAU,CAAC,WAAW;gBAC5B,KAAK,EAAE,WAAW;aACnB,CAAC;YAEF,iDAAiD;YACjD,OAAO,IAAI,EAAE;gBACX,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;gBAEjG,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;oBAChC,MAAM;iBACP;gBAED,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;aACpE;QACH,CAAC;KAAA;CACF;AAzLD,sBAyLC"}
|
@@ -1,15 +1,16 @@
|
|
1
1
|
import type { Directory, DatabaseStore, WebhookEventLog, DirectorySyncEvent, PaginationParams } from '../typings';
|
2
2
|
import { Base } from './Base';
|
3
|
+
type GetAllParams = PaginationParams & {
|
4
|
+
directoryId?: string;
|
5
|
+
};
|
3
6
|
export declare class WebhookEventsLogger extends Base {
|
4
7
|
constructor({ db }: {
|
5
8
|
db: DatabaseStore;
|
6
9
|
});
|
7
|
-
log(directory: Directory, event: DirectorySyncEvent): Promise<WebhookEventLog>;
|
10
|
+
log(directory: Directory, event: DirectorySyncEvent, status: number): Promise<WebhookEventLog>;
|
8
11
|
get(id: string): Promise<WebhookEventLog>;
|
9
|
-
getAll(
|
10
|
-
directoryId?: string;
|
11
|
-
}): Promise<WebhookEventLog[]>;
|
12
|
+
getAll(params?: GetAllParams): Promise<WebhookEventLog[]>;
|
12
13
|
delete(id: string): Promise<void>;
|
13
|
-
|
14
|
-
updateStatus(log: WebhookEventLog, statusCode: number): Promise<WebhookEventLog>;
|
14
|
+
deleteAll(directoryId: string): Promise<void>;
|
15
15
|
}
|
16
|
+
export {};
|
@@ -15,10 +15,10 @@ class WebhookEventsLogger extends Base_1.Base {
|
|
15
15
|
constructor({ db }) {
|
16
16
|
super({ db });
|
17
17
|
}
|
18
|
-
log(directory, event) {
|
18
|
+
log(directory, event, status) {
|
19
19
|
return __awaiter(this, void 0, void 0, function* () {
|
20
20
|
const id = this.createId();
|
21
|
-
const log = Object.assign(Object.assign({}, event), { id, webhook_endpoint: directory.webhook.endpoint, created_at: new Date() });
|
21
|
+
const log = Object.assign(Object.assign({}, event), { id, webhook_endpoint: directory.webhook.endpoint, created_at: new Date(), status_code: status, delivered: status === 200 });
|
22
22
|
yield this.store('logs').put(id, log, {
|
23
23
|
name: 'directoryId',
|
24
24
|
value: directory.id,
|
@@ -31,15 +31,21 @@ class WebhookEventsLogger extends Base_1.Base {
|
|
31
31
|
return yield this.store('logs').get(id);
|
32
32
|
});
|
33
33
|
}
|
34
|
-
getAll(
|
34
|
+
getAll(params = {}) {
|
35
35
|
return __awaiter(this, void 0, void 0, function* () {
|
36
|
+
const { pageOffset, pageLimit, directoryId } = params;
|
37
|
+
let eventLogs = [];
|
36
38
|
if (directoryId) {
|
37
|
-
|
39
|
+
const index = {
|
38
40
|
name: 'directoryId',
|
39
41
|
value: directoryId,
|
40
|
-
}
|
42
|
+
};
|
43
|
+
eventLogs = (yield this.store('logs').getByIndex(index, pageOffset, pageLimit)).data;
|
41
44
|
}
|
42
|
-
|
45
|
+
else {
|
46
|
+
eventLogs = (yield this.store('logs').getAll(pageOffset, pageLimit)).data;
|
47
|
+
}
|
48
|
+
return eventLogs;
|
43
49
|
});
|
44
50
|
}
|
45
51
|
delete(id) {
|
@@ -47,19 +53,21 @@ class WebhookEventsLogger extends Base_1.Base {
|
|
47
53
|
yield this.store('logs').delete(id);
|
48
54
|
});
|
49
55
|
}
|
50
|
-
|
51
|
-
|
52
|
-
const events = yield this.getAll({});
|
53
|
-
yield Promise.all(events.map((event) => __awaiter(this, void 0, void 0, function* () {
|
54
|
-
yield this.delete(event.id);
|
55
|
-
})));
|
56
|
-
});
|
57
|
-
}
|
58
|
-
updateStatus(log, statusCode) {
|
56
|
+
// Delete all event logs for a directory
|
57
|
+
deleteAll(directoryId) {
|
59
58
|
return __awaiter(this, void 0, void 0, function* () {
|
60
|
-
const
|
61
|
-
|
62
|
-
|
59
|
+
const index = {
|
60
|
+
name: 'directoryId',
|
61
|
+
value: directoryId,
|
62
|
+
};
|
63
|
+
// eslint-disable-next-line no-constant-condition
|
64
|
+
while (true) {
|
65
|
+
const { data: events } = yield this.store('logs').getByIndex(index, 0, this.bulkDeleteBatchSize);
|
66
|
+
if (!events || events.length === 0) {
|
67
|
+
break;
|
68
|
+
}
|
69
|
+
yield this.store('logs').deleteMany(events.map((event) => event.id));
|
70
|
+
}
|
63
71
|
});
|
64
72
|
}
|
65
73
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"WebhookEventsLogger.js","sourceRoot":"","sources":["../../src/directory-sync/WebhookEventsLogger.ts"],"names":[],"mappings":";;;;;;;;;;;;AAOA,iCAA8B;
|
1
|
+
{"version":3,"file":"WebhookEventsLogger.js","sourceRoot":"","sources":["../../src/directory-sync/WebhookEventsLogger.ts"],"names":[],"mappings":";;;;;;;;;;;;AAOA,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,IAAI,CAAC,QAAQ,EAAE,CAAC;YAE3B,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;IAEY,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;AAtED,kDAsEC"}
|
@@ -8,15 +8,12 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
8
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
9
9
|
});
|
10
10
|
};
|
11
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
12
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
13
|
-
};
|
14
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
15
12
|
exports.handleEventCallback = exports.sendEvent = void 0;
|
16
|
-
const
|
17
|
-
const
|
13
|
+
const webhook_1 = require("../event/webhook");
|
14
|
+
const transform_1 = require("./transform");
|
18
15
|
const sendEvent = (event, payload, callback) => __awaiter(void 0, void 0, void 0, function* () {
|
19
|
-
const eventTransformed = (0,
|
16
|
+
const eventTransformed = (0, transform_1.transformEventPayload)(event, payload);
|
20
17
|
return callback ? yield callback(eventTransformed) : Promise.resolve();
|
21
18
|
});
|
22
19
|
exports.sendEvent = sendEvent;
|
@@ -27,26 +24,18 @@ const handleEventCallback = (directories, webhookEventsLogger) => __awaiter(void
|
|
27
24
|
if (!directory) {
|
28
25
|
return;
|
29
26
|
}
|
30
|
-
|
31
|
-
// If there is no webhook, then we don't need to send an event
|
32
|
-
if (webhook.endpoint === '') {
|
27
|
+
if (!directory.webhook.endpoint || !directory.webhook.secret) {
|
33
28
|
return;
|
34
29
|
}
|
35
|
-
webhookEventsLogger.setTenantAndProduct(tenant, product);
|
36
|
-
const headers = yield (0, utils_1.createHeader)(webhook.secret, event);
|
37
|
-
// Log the events only if `log_webhook_events` is enabled
|
38
|
-
const log = directory.log_webhook_events ? yield webhookEventsLogger.log(directory, event) : undefined;
|
39
30
|
let status = 200;
|
40
31
|
try {
|
41
|
-
yield
|
42
|
-
headers,
|
43
|
-
});
|
32
|
+
yield (0, webhook_1.sendPayloadToWebhook)(directory.webhook, event);
|
44
33
|
}
|
45
34
|
catch (err) {
|
46
35
|
status = err.response ? err.response.status : 500;
|
47
36
|
}
|
48
|
-
if (
|
49
|
-
yield webhookEventsLogger.
|
37
|
+
if (directory.log_webhook_events) {
|
38
|
+
yield webhookEventsLogger.setTenantAndProduct(tenant, product).log(directory, event, status);
|
50
39
|
}
|
51
40
|
});
|
52
41
|
});
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/directory-sync/events.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/directory-sync/events.ts"],"names":[],"mappings":";;;;;;;;;;;;AAUA,8CAAwD;AACxD,2CAAoD;AAE7C,MAAM,SAAS,GAAG,CACvB,KAA6B,EAC7B,OAA2E,EAC3E,QAAwB,EACxB,EAAE;IACF,MAAM,gBAAgB,GAAG,IAAA,iCAAqB,EAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAE/D,OAAO,QAAQ,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;AACzE,CAAC,CAAA,CAAC;AARW,QAAA,SAAS,aAQpB;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,12 +1,13 @@
|
|
1
|
-
import type { DatabaseStore, JacksonOption } from '../typings';
|
1
|
+
import type { DatabaseStore, JacksonOption, IEventController } from '../typings';
|
2
2
|
import { DirectoryConfig } from './DirectoryConfig';
|
3
3
|
import { Users } from './Users';
|
4
4
|
import { Groups } from './Groups';
|
5
5
|
import { RequestHandler } from './request';
|
6
6
|
import { WebhookEventsLogger } from './WebhookEventsLogger';
|
7
|
-
declare const directorySync: (
|
7
|
+
declare const directorySync: (params: {
|
8
8
|
db: DatabaseStore;
|
9
9
|
opts: JacksonOption;
|
10
|
+
eventController: IEventController;
|
10
11
|
}) => Promise<{
|
11
12
|
users: Users;
|
12
13
|
groups: Groups;
|
@@ -18,21 +18,22 @@ const utils_1 = require("./utils");
|
|
18
18
|
const request_1 = require("./request");
|
19
19
|
const events_1 = require("./events");
|
20
20
|
const WebhookEventsLogger_1 = require("./WebhookEventsLogger");
|
21
|
-
const directorySync = (
|
22
|
-
const
|
21
|
+
const directorySync = (params) => __awaiter(void 0, void 0, void 0, function* () {
|
22
|
+
const { db, opts, eventController } = params;
|
23
23
|
const users = new Users_1.Users({ db });
|
24
24
|
const groups = new Groups_1.Groups({ db });
|
25
|
+
const logger = new WebhookEventsLogger_1.WebhookEventsLogger({ db });
|
26
|
+
const directories = new DirectoryConfig_1.DirectoryConfig({ db, opts, users, groups, logger, eventController });
|
25
27
|
const directoryUsers = new DirectoryUsers_1.DirectoryUsers({ directories, users });
|
26
28
|
const directoryGroups = new DirectoryGroups_1.DirectoryGroups({ directories, users, groups });
|
27
|
-
const webhookEventsLogger = new WebhookEventsLogger_1.WebhookEventsLogger({ db });
|
28
29
|
return {
|
29
30
|
users,
|
30
31
|
groups,
|
31
32
|
directories,
|
32
|
-
webhookLogs:
|
33
|
+
webhookLogs: logger,
|
33
34
|
requests: new request_1.RequestHandler(directoryUsers, directoryGroups),
|
34
35
|
events: {
|
35
|
-
callback: yield (0, events_1.handleEventCallback)(directories,
|
36
|
+
callback: yield (0, events_1.handleEventCallback)(directories, logger),
|
36
37
|
},
|
37
38
|
providers: () => {
|
38
39
|
return (0, utils_1.getDirectorySyncProviders)();
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/directory-sync/index.ts"],"names":[],"mappings":";;;;;;;;;;;AACA,uDAAoD;AACpD,qDAAkD;AAClD,uDAAoD;AACpD,mCAAgC;AAChC,qCAAkC;AAClC,mCAAoD;AACpD,uCAA2C;AAC3C,qCAA+C;AAC/C,+DAA4D;AAE5D,MAAM,aAAa,GAAG,CAAO,EAAE,EAAE,EAAE,IAAI,
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/directory-sync/index.ts"],"names":[],"mappings":";;;;;;;;;;;AACA,uDAAoD;AACpD,qDAAkD;AAClD,uDAAoD;AACpD,mCAAgC;AAChC,qCAAkC;AAClC,mCAAoD;AACpD,uCAA2C;AAC3C,qCAA+C;AAC/C,+DAA4D;AAE5D,MAAM,aAAa,GAAG,CAAO,MAI5B,EAAE,EAAE;IACH,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,MAAM,CAAC;IAE7C,MAAM,KAAK,GAAG,IAAI,aAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAChC,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAClC,MAAM,MAAM,GAAG,IAAI,yCAAmB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAC/C,MAAM,WAAW,GAAG,IAAI,iCAAe,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC;IAE9F,MAAM,cAAc,GAAG,IAAI,+BAAc,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;IAClE,MAAM,eAAe,GAAG,IAAI,iCAAe,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAE5E,OAAO;QACL,KAAK;QACL,MAAM;QACN,WAAW;QACX,WAAW,EAAE,MAAM;QACnB,QAAQ,EAAE,IAAI,wBAAc,CAAC,cAAc,EAAE,eAAe,CAAC;QAC7D,MAAM,EAAE;YACN,QAAQ,EAAE,MAAM,IAAA,4BAAmB,EAAC,WAAW,EAAE,MAAM,CAAC;SACzD;QACD,SAAS,EAAE,GAAG,EAAE;YACd,OAAO,IAAA,iCAAyB,GAAE,CAAC;QACrC,CAAC;KACF,CAAC;AACJ,CAAC,CAAA,CAAC;AAEF,kBAAe,aAAa,CAAC"}
|
@@ -1,7 +1,11 @@
|
|
1
|
-
import { Group, User } from '../typings';
|
2
|
-
declare const transformUser: (user: User) => User;
|
3
|
-
declare const transformGroup: (group: Group) => Group;
|
4
|
-
declare const transformUserGroup: (user: User, group: Group) => User & {
|
1
|
+
import { Directory, DirectorySyncEvent, DirectorySyncEventType, Group, User } from '../typings';
|
2
|
+
export declare const transformUser: (user: User) => User;
|
3
|
+
export declare const transformGroup: (group: Group) => Group;
|
4
|
+
export declare const transformUserGroup: (user: User, group: Group) => User & {
|
5
5
|
group: Group;
|
6
6
|
};
|
7
|
-
export
|
7
|
+
export declare const transformEventPayload: (event: DirectorySyncEventType, payload: {
|
8
|
+
directory: Directory;
|
9
|
+
group?: Group | null;
|
10
|
+
user?: User | null;
|
11
|
+
}) => DirectorySyncEvent;
|
@@ -1,6 +1,6 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.transformUserGroup = exports.transformGroup = exports.transformUser = void 0;
|
3
|
+
exports.transformEventPayload = exports.transformUserGroup = exports.transformGroup = exports.transformUser = void 0;
|
4
4
|
const transformUser = (user) => {
|
5
5
|
return {
|
6
6
|
id: user.id,
|
@@ -21,7 +21,31 @@ const transformGroup = (group) => {
|
|
21
21
|
};
|
22
22
|
exports.transformGroup = transformGroup;
|
23
23
|
const transformUserGroup = (user, group) => {
|
24
|
-
return Object.assign(Object.assign({}, transformUser(user)), { group: transformGroup(group) });
|
24
|
+
return Object.assign(Object.assign({}, (0, exports.transformUser)(user)), { group: (0, exports.transformGroup)(group) });
|
25
25
|
};
|
26
26
|
exports.transformUserGroup = transformUserGroup;
|
27
|
+
const transformEventPayload = (event, payload) => {
|
28
|
+
const { directory, group, user } = payload;
|
29
|
+
const { tenant, product, id: directory_id } = directory;
|
30
|
+
const eventPayload = {
|
31
|
+
event,
|
32
|
+
tenant,
|
33
|
+
product,
|
34
|
+
directory_id,
|
35
|
+
};
|
36
|
+
// User events
|
37
|
+
if (['user.created', 'user.updated', 'user.deleted'].includes(event) && user) {
|
38
|
+
eventPayload['data'] = (0, exports.transformUser)(user);
|
39
|
+
}
|
40
|
+
// Group events
|
41
|
+
if (['group.created', 'group.updated', 'group.deleted'].includes(event) && group) {
|
42
|
+
eventPayload['data'] = (0, exports.transformGroup)(group);
|
43
|
+
}
|
44
|
+
// Group membership events
|
45
|
+
if (['group.user_added', 'group.user_removed'].includes(event) && user && group) {
|
46
|
+
eventPayload['data'] = (0, exports.transformUserGroup)(user, group);
|
47
|
+
}
|
48
|
+
return eventPayload;
|
49
|
+
};
|
50
|
+
exports.transformEventPayload = transformEventPayload;
|
27
51
|
//# sourceMappingURL=transform.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"transform.js","sourceRoot":"","sources":["../../src/directory-sync/transform.ts"],"names":[],"mappings":";;;
|
1
|
+
{"version":3,"file":"transform.js","sourceRoot":"","sources":["../../src/directory-sync/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"}
|
@@ -65,12 +65,11 @@ export interface DirectorySyncRequest {
|
|
65
65
|
filter?: string;
|
66
66
|
};
|
67
67
|
}
|
68
|
+
export type DirectorySyncEventData = User | Group | UserWithGroup;
|
68
69
|
export interface DirectorySyncEvent {
|
69
70
|
directory_id: Directory['id'];
|
70
71
|
event: DirectorySyncEventType;
|
71
|
-
data:
|
72
|
-
group: Group;
|
73
|
-
});
|
72
|
+
data: DirectorySyncEventData;
|
74
73
|
tenant: string;
|
75
74
|
product: string;
|
76
75
|
}
|
@@ -97,6 +96,9 @@ export type Group = {
|
|
97
96
|
name: string;
|
98
97
|
raw?: any;
|
99
98
|
};
|
99
|
+
export type UserWithGroup = User & {
|
100
|
+
group: Group;
|
101
|
+
};
|
100
102
|
export type PaginationParams = {
|
101
103
|
pageOffset?: number;
|
102
104
|
pageLimit?: number;
|
@@ -125,3 +127,8 @@ export type GroupPatchOperation = {
|
|
125
127
|
display?: string;
|
126
128
|
}[];
|
127
129
|
};
|
130
|
+
export type GroupMembership = {
|
131
|
+
id: string;
|
132
|
+
group_id: string;
|
133
|
+
user_id: string;
|
134
|
+
};
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import type {
|
1
|
+
import type { User } from '../typings';
|
2
2
|
import { UserPatchOperation, GroupPatchOperation } from '../typings';
|
3
3
|
declare const parseGroupOperation: (operation: GroupPatchOperation) => {
|
4
4
|
action: string;
|
@@ -19,16 +19,6 @@ declare const parseGroupOperation: (operation: GroupPatchOperation) => {
|
|
19
19
|
declare const getDirectorySyncProviders: () => {
|
20
20
|
[K: string]: string;
|
21
21
|
};
|
22
|
-
declare const transformEventPayload: (event: DirectorySyncEventType, payload: {
|
23
|
-
directory: Directory;
|
24
|
-
group?: Group | null;
|
25
|
-
user?: User | null;
|
26
|
-
}) => DirectorySyncEvent;
|
27
|
-
declare const createHeader: (secret: string, event: DirectorySyncEvent) => Promise<{
|
28
|
-
'Content-Type': string;
|
29
|
-
'BoxyHQ-Signature': string;
|
30
|
-
}>;
|
31
|
-
declare const createSignatureString: (secret: string, event: DirectorySyncEvent) => Promise<string>;
|
32
22
|
declare const parseUserPatchRequest: (operation: UserPatchOperation) => {
|
33
23
|
attributes: Partial<User>;
|
34
24
|
rawAttributes: {};
|
@@ -40,4 +30,4 @@ declare const extractStandardUserAttributes: (body: any) => {
|
|
40
30
|
active: true;
|
41
31
|
};
|
42
32
|
declare const updateRawUserAttributes: (raw: any, attributes: any) => any;
|
43
|
-
export { parseGroupOperation, getDirectorySyncProviders,
|
33
|
+
export { parseGroupOperation, getDirectorySyncProviders, parseUserPatchRequest, extractStandardUserAttributes, updateRawUserAttributes, };
|
@@ -1,21 +1,10 @@
|
|
1
1
|
"use strict";
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
9
|
-
});
|
10
|
-
};
|
11
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
12
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
13
4
|
};
|
14
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
15
|
-
exports.updateRawUserAttributes = exports.extractStandardUserAttributes = exports.parseUserPatchRequest = exports.
|
6
|
+
exports.updateRawUserAttributes = exports.extractStandardUserAttributes = exports.parseUserPatchRequest = exports.getDirectorySyncProviders = exports.parseGroupOperation = void 0;
|
16
7
|
const typings_1 = require("../typings");
|
17
|
-
const transform_1 = require("./transform");
|
18
|
-
const crypto_1 = __importDefault(require("crypto"));
|
19
8
|
const lodash_1 = __importDefault(require("lodash"));
|
20
9
|
const parseGroupOperation = (operation) => {
|
21
10
|
const { op, path, value } = operation;
|
@@ -62,51 +51,6 @@ const getDirectorySyncProviders = () => {
|
|
62
51
|
}, {});
|
63
52
|
};
|
64
53
|
exports.getDirectorySyncProviders = getDirectorySyncProviders;
|
65
|
-
const transformEventPayload = (event, payload) => {
|
66
|
-
const { directory, group, user } = payload;
|
67
|
-
const { tenant, product, id: directory_id } = directory;
|
68
|
-
const eventPayload = {
|
69
|
-
event,
|
70
|
-
tenant,
|
71
|
-
product,
|
72
|
-
directory_id,
|
73
|
-
};
|
74
|
-
// User events
|
75
|
-
if (['user.created', 'user.updated', 'user.deleted'].includes(event) && user) {
|
76
|
-
eventPayload['data'] = (0, transform_1.transformUser)(user);
|
77
|
-
}
|
78
|
-
// Group events
|
79
|
-
if (['group.created', 'group.updated', 'group.deleted'].includes(event) && group) {
|
80
|
-
eventPayload['data'] = (0, transform_1.transformGroup)(group);
|
81
|
-
}
|
82
|
-
// Group membership events
|
83
|
-
if (['group.user_added', 'group.user_removed'].includes(event) && user && group) {
|
84
|
-
eventPayload['data'] = (0, transform_1.transformUserGroup)(user, group);
|
85
|
-
}
|
86
|
-
return eventPayload;
|
87
|
-
};
|
88
|
-
exports.transformEventPayload = transformEventPayload;
|
89
|
-
// Create request headers
|
90
|
-
const createHeader = (secret, event) => __awaiter(void 0, void 0, void 0, function* () {
|
91
|
-
return {
|
92
|
-
'Content-Type': 'application/json',
|
93
|
-
'BoxyHQ-Signature': yield createSignatureString(secret, event),
|
94
|
-
};
|
95
|
-
});
|
96
|
-
exports.createHeader = createHeader;
|
97
|
-
// Create a signature string
|
98
|
-
const createSignatureString = (secret, event) => __awaiter(void 0, void 0, void 0, function* () {
|
99
|
-
if (!secret) {
|
100
|
-
return '';
|
101
|
-
}
|
102
|
-
const timestamp = new Date().getTime();
|
103
|
-
const signature = crypto_1.default
|
104
|
-
.createHmac('sha256', secret)
|
105
|
-
.update(`${timestamp}.${JSON.stringify(event)}`)
|
106
|
-
.digest('hex');
|
107
|
-
return `t=${timestamp},s=${signature}`;
|
108
|
-
});
|
109
|
-
exports.createSignatureString = createSignatureString;
|
110
54
|
// Parse the PATCH request body and return the user attributes (both standard and custom)
|
111
55
|
const parseUserPatchRequest = (operation) => {
|
112
56
|
const { value, path } = operation;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/directory-sync/utils.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/directory-sync/utils.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"axios.js","sourceRoot":"","sources":["../../src/event/axios.ts"],"names":[],"mappings":";;;;;AAAA,kDAA0B;AAE1B,MAAM,KAAK,GAAG,CAAC,CAAC;AAChB,MAAM,UAAU,GAAG,IAAI,CAAC;AACxB,MAAM,aAAa,GAAG,eAAK,CAAC,MAAM,EAAE,CAAC;AAErC,mDAAmD;AACnD,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,GAAQ,EAAE,EAAE;IAC9D,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;IAE1B,IAAI,CAAC,MAAM,EAAE;QACX,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;KAC5B;IAED,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,CAAC,CAAC;IAE/C,IAAI,MAAM,CAAC,YAAY,IAAI,KAAK,EAAE;QAChC,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;KAC5B;IAED,MAAM,CAAC,YAAY,IAAI,CAAC,CAAC;IAEzB,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,UAAU,OAAO;QAC3C,UAAU,CAAC;YACT,OAAO,CAAC,CAAC,CAAC,CAAC;QACb,CAAC,EAAE,UAAU,CAAC,CAAC;IACjB,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC,IAAI,CAAC;QAClB,OAAO,CAAC,IAAI,CAAC,qCAAqC,MAAM,CAAC,GAAG,eAAe,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;QAClG,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,kBAAe,aAAa,CAAC"}
|
@@ -0,0 +1,10 @@
|
|
1
|
+
import type { Directory, JacksonOption, SAMLSSORecord, EventType, SSOConnectionEventType, Webhook, EventPayloadSchema, OIDCSSORecord } from '../typings';
|
2
|
+
export default class Event {
|
3
|
+
private webhook;
|
4
|
+
constructor({ opts }: {
|
5
|
+
opts: JacksonOption;
|
6
|
+
});
|
7
|
+
notify<T extends EventType>(event: T, data: T extends SSOConnectionEventType ? SAMLSSORecord | OIDCSSORecord : Directory): Promise<import("axios").AxiosResponse<any, any> | undefined>;
|
8
|
+
private constructPayload;
|
9
|
+
sendWebhookEvent(webhook: Webhook | undefined, payload: EventPayloadSchema): Promise<import("axios").AxiosResponse<any, any> | undefined>;
|
10
|
+
}
|
@@ -0,0 +1,54 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
9
|
+
});
|
10
|
+
};
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
12
|
+
const webhook_1 = require("./webhook");
|
13
|
+
const utils_1 = require("./utils");
|
14
|
+
class Event {
|
15
|
+
constructor({ opts }) {
|
16
|
+
this.webhook = opts.webhook;
|
17
|
+
}
|
18
|
+
notify(event, data) {
|
19
|
+
return __awaiter(this, void 0, void 0, function* () {
|
20
|
+
const payload = this.constructPayload(event, data);
|
21
|
+
return this.sendWebhookEvent(this.webhook, payload);
|
22
|
+
});
|
23
|
+
}
|
24
|
+
constructPayload(event, data) {
|
25
|
+
let transformedData;
|
26
|
+
if ('idpMetadata' in data) {
|
27
|
+
transformedData = (0, utils_1.transformSAMLSSOConnection)(data);
|
28
|
+
}
|
29
|
+
else if ('oidcProvider' in data) {
|
30
|
+
transformedData = (0, utils_1.transformOIDCSSOConnection)(data);
|
31
|
+
}
|
32
|
+
else {
|
33
|
+
transformedData = (0, utils_1.transformDirectoryConnection)(data);
|
34
|
+
}
|
35
|
+
const { tenant, product } = data;
|
36
|
+
const payload = {
|
37
|
+
event,
|
38
|
+
tenant,
|
39
|
+
product,
|
40
|
+
data: transformedData,
|
41
|
+
};
|
42
|
+
return payload;
|
43
|
+
}
|
44
|
+
sendWebhookEvent(webhook, payload) {
|
45
|
+
return __awaiter(this, void 0, void 0, function* () {
|
46
|
+
if (!(webhook === null || webhook === void 0 ? void 0 : webhook.endpoint) || !webhook.secret) {
|
47
|
+
return;
|
48
|
+
}
|
49
|
+
return yield (0, webhook_1.sendPayloadToWebhook)(webhook, payload);
|
50
|
+
});
|
51
|
+
}
|
52
|
+
}
|
53
|
+
exports.default = Event;
|
54
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/event/index.ts"],"names":[],"mappings":";;;;;;;;;;;AAWA,uCAAiD;AACjD,mCAIiB;AAEjB,MAAqB,KAAK;IAGxB,YAAY,EAAE,IAAI,EAA2B;QAC3C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAC9B,CAAC;IAEK,MAAM,CACV,KAAQ,EACR,IAAkF;;YAElF,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAEnD,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACtD,CAAC;KAAA;IAEO,gBAAgB,CAAC,KAAgB,EAAE,IAA+C;QACxF,IAAI,eAA0B,CAAC;QAE/B,IAAI,aAAa,IAAI,IAAI,EAAE;YACzB,eAAe,GAAG,IAAA,kCAA0B,EAAC,IAAI,CAAC,CAAC;SACpD;aAAM,IAAI,cAAc,IAAI,IAAI,EAAE;YACjC,eAAe,GAAG,IAAA,kCAA0B,EAAC,IAAI,CAAC,CAAC;SACpD;aAAM;YACL,eAAe,GAAG,IAAA,oCAA4B,EAAC,IAAI,CAAC,CAAC;SACtD;QAED,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QAEjC,MAAM,OAAO,GAAuB;YAClC,KAAK;YACL,MAAM;YACN,OAAO;YACP,IAAI,EAAE,eAAe;SACtB,CAAC;QAEF,OAAO,OAAO,CAAC;IACjB,CAAC;IAEK,gBAAgB,CAAC,OAA4B,EAAE,OAA2B;;YAC9E,IAAI,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,CAAA,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;gBACzC,OAAO;aACR;YAED,OAAO,MAAM,IAAA,8BAAoB,EAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACtD,CAAC;KAAA;CACF;AA9CD,wBA8CC"}
|
@@ -0,0 +1,21 @@
|
|
1
|
+
import EventController from '../event';
|
2
|
+
import type { Directory, DirectorySyncEventType, SAMLSSORecord, OIDCSSORecord, DirectorySyncEventData } from '../typings';
|
3
|
+
export type IEventController = InstanceType<typeof EventController>;
|
4
|
+
export type SSOConnectionEventType = 'sso.created' | 'sso.deleted' | 'sso.activated' | 'sso.deactivated';
|
5
|
+
export type DsyncConnectionEventType = 'dsync.created' | 'dsync.deleted' | 'dsync.activated' | 'dsync.deactivated';
|
6
|
+
export type EventType = SSOConnectionEventType | DsyncConnectionEventType | DirectorySyncEventType;
|
7
|
+
export type SAMLSSOConnectionEventData = Pick<SAMLSSORecord, 'name' | 'description' | 'clientID' | 'clientSecret'> & {
|
8
|
+
provider: string;
|
9
|
+
friendlyProviderName: string;
|
10
|
+
};
|
11
|
+
export type OIDCSSOConnectionEventData = Pick<OIDCSSORecord, 'name' | 'description' | 'clientID' | 'clientSecret'> & {
|
12
|
+
provider: string | undefined;
|
13
|
+
};
|
14
|
+
export type DsyncConnectionEventData = Pick<Directory, 'id' | 'name' | 'type'>;
|
15
|
+
export type EventData = SAMLSSOConnectionEventData | OIDCSSOConnectionEventData | DsyncConnectionEventData | DirectorySyncEventData;
|
16
|
+
export type EventPayloadSchema = {
|
17
|
+
tenant: string;
|
18
|
+
product: string;
|
19
|
+
event: EventType;
|
20
|
+
data: EventData;
|
21
|
+
};
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/event/types.ts"],"names":[],"mappings":""}
|
@@ -0,0 +1,4 @@
|
|
1
|
+
import type { Directory, DsyncConnectionEventData, SAMLSSOConnectionEventData, OIDCSSOConnectionEventData, SAMLSSORecord, OIDCSSORecord } from '../typings';
|
2
|
+
export declare const transformSAMLSSOConnection: (data: SAMLSSORecord) => SAMLSSOConnectionEventData;
|
3
|
+
export declare const transformOIDCSSOConnection: (data: OIDCSSORecord) => OIDCSSOConnectionEventData;
|
4
|
+
export declare const transformDirectoryConnection: (data: Directory) => DsyncConnectionEventData;
|
@@ -0,0 +1,39 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.transformDirectoryConnection = exports.transformOIDCSSOConnection = exports.transformSAMLSSOConnection = void 0;
|
4
|
+
const utils_1 = require("../controller/utils");
|
5
|
+
const transformSAMLSSOConnection = (data) => {
|
6
|
+
const { name, description, clientID, clientSecret, idpMetadata } = data;
|
7
|
+
const { provider } = idpMetadata;
|
8
|
+
return {
|
9
|
+
name,
|
10
|
+
description,
|
11
|
+
clientID,
|
12
|
+
clientSecret,
|
13
|
+
provider,
|
14
|
+
friendlyProviderName: (0, utils_1.findFriendlyProviderName)(provider),
|
15
|
+
};
|
16
|
+
};
|
17
|
+
exports.transformSAMLSSOConnection = transformSAMLSSOConnection;
|
18
|
+
const transformOIDCSSOConnection = (data) => {
|
19
|
+
const { name, description, clientID, clientSecret, oidcProvider } = data;
|
20
|
+
const { provider } = oidcProvider;
|
21
|
+
return {
|
22
|
+
name,
|
23
|
+
description,
|
24
|
+
clientID,
|
25
|
+
clientSecret,
|
26
|
+
provider,
|
27
|
+
};
|
28
|
+
};
|
29
|
+
exports.transformOIDCSSOConnection = transformOIDCSSOConnection;
|
30
|
+
const transformDirectoryConnection = (data) => {
|
31
|
+
const { id, name, type } = data;
|
32
|
+
return {
|
33
|
+
id,
|
34
|
+
name,
|
35
|
+
type,
|
36
|
+
};
|
37
|
+
};
|
38
|
+
exports.transformDirectoryConnection = transformDirectoryConnection;
|
39
|
+
//# sourceMappingURL=utils.js.map
|