@boxyhq/saml-jackson 1.14.3 → 1.15.0
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +1 -1
- package/dist/controller/utils.d.ts +2 -0
- package/dist/controller/utils.js +2 -0
- package/dist/controller/utils.js.map +1 -1
- package/dist/directory-sync/batch-events/lock.d.ts +18 -0
- package/dist/directory-sync/batch-events/lock.js +79 -0
- package/dist/directory-sync/batch-events/lock.js.map +1 -0
- package/dist/directory-sync/batch-events/queue.d.ts +37 -0
- package/dist/directory-sync/batch-events/queue.js +234 -0
- package/dist/directory-sync/batch-events/queue.js.map +1 -0
- package/dist/directory-sync/index.d.ts +4 -2
- package/dist/directory-sync/index.js +39 -6
- package/dist/directory-sync/index.js.map +1 -1
- package/dist/directory-sync/non-scim/google/api.js +2 -2
- package/dist/directory-sync/non-scim/google/api.js.map +1 -1
- package/dist/directory-sync/non-scim/google/oauth.js +2 -2
- package/dist/directory-sync/non-scim/google/oauth.js.map +1 -1
- package/dist/directory-sync/scim/Base.d.ts +1 -1
- package/dist/directory-sync/scim/Base.js.map +1 -1
- package/dist/directory-sync/scim/DirectoryGroups.js +20 -7
- package/dist/directory-sync/scim/DirectoryGroups.js.map +1 -1
- package/dist/directory-sync/scim/DirectoryUsers.js +19 -6
- package/dist/directory-sync/scim/DirectoryUsers.js.map +1 -1
- package/dist/directory-sync/scim/WebhookEventsLogger.d.ts +1 -1
- package/dist/directory-sync/scim/WebhookEventsLogger.js +8 -1
- package/dist/directory-sync/scim/WebhookEventsLogger.js.map +1 -1
- package/dist/directory-sync/scim/utils.js.map +1 -1
- package/dist/directory-sync/types.d.ts +6 -1
- package/dist/directory-sync/types.js.map +1 -1
- package/dist/directory-sync/utils.d.ts +16 -0
- package/dist/directory-sync/{scim/events.js → utils.js} +22 -13
- package/dist/directory-sync/utils.js.map +1 -0
- package/dist/event/webhook.d.ts +2 -2
- package/dist/event/webhook.js.map +1 -1
- package/dist/opentelemetry/metrics.d.ts +1 -0
- package/dist/opentelemetry/metrics.js +7 -0
- package/dist/opentelemetry/metrics.js.map +1 -1
- package/dist/typings.d.ts +4 -1
- package/package.json +11 -11
- package/dist/directory-sync/scim/events.d.ts +0 -9
- package/dist/directory-sync/scim/events.js.map +0 -1
package/README.md
CHANGED
@@ -9,7 +9,7 @@ You need someone like Jules Winnfield to save you from the vagaries of SAML logi
|
|
9
9
|
Jackson is available as an [npm package](https://www.npmjs.com/package/@boxyhq/saml-jackson) that can be integrated into any web application framework (like Express.js for example). Please file an issue or submit a PR if you encounter any issues with your choice of framework.
|
10
10
|
|
11
11
|
```bash
|
12
|
-
npm
|
12
|
+
npm install @boxyhq/saml-jackson
|
13
13
|
```
|
14
14
|
|
15
15
|
## Documentation
|
package/dist/controller/utils.js
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/controller/utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oDAA4B;AAC5B,2CAA6B;AAE7B,4DAAkC;AAElC,qDAAuC;AAavC,mCAAuC;AACvC,2DAA6C;AAE7C,IAAY,UAYX;AAZD,WAAY,UAAU;IACpB,mCAAqB,CAAA;IACrB,6CAA+B,CAAA;IAC/B,2DAA6C,CAAA;IAC7C,yCAA2B,CAAA;IAC3B,iCAAmB,CAAA;IAEnB,iBAAiB;IACjB,iCAAmB,CAAA;IACnB,kCAAoB,CAAA;IACpB,+CAAiC,CAAA;IACjC,2DAA6C,CAAA;AAC/C,CAAC,EAZW,UAAU,0BAAV,UAAU,QAYrB;AAED,8CAA8C;AACjC,QAAA,oBAAoB,GAAG;IAClC,KAAK,EAAE;QACL,MAAM,EAAE,cAAc;QACtB,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,aAAa;QACpB,MAAM,EAAE,cAAc;QACtB,OAAO,EAAE,eAAe;QACxB,SAAS,EAAE,iBAAiB;
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/controller/utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oDAA4B;AAC5B,2CAA6B;AAE7B,4DAAkC;AAElC,qDAAuC;AAavC,mCAAuC;AACvC,2DAA6C;AAE7C,IAAY,UAYX;AAZD,WAAY,UAAU;IACpB,mCAAqB,CAAA;IACrB,6CAA+B,CAAA;IAC/B,2DAA6C,CAAA;IAC7C,yCAA2B,CAAA;IAC3B,iCAAmB,CAAA;IAEnB,iBAAiB;IACjB,iCAAmB,CAAA;IACnB,kCAAoB,CAAA;IACpB,+CAAiC,CAAA;IACjC,2DAA6C,CAAA;AAC/C,CAAC,EAZW,UAAU,0BAAV,UAAU,QAYrB;AAED,8CAA8C;AACjC,QAAA,oBAAoB,GAAG;IAClC,KAAK,EAAE;QACL,MAAM,EAAE,cAAc;QACtB,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,aAAa;QACpB,MAAM,EAAE,cAAc;QACtB,OAAO,EAAE,eAAe;QACxB,SAAS,EAAE,iBAAiB;QAC5B,MAAM,EAAE,cAAc;QACtB,IAAI,EAAE,YAAY;KACnB;IACD,IAAI,EAAE;QACJ,MAAM,EAAE,aAAa;KACtB;CACF,CAAC;AAEW,QAAA,gBAAgB,GAAG,iBAAiB,CAAC;AAE3C,MAAM,mBAAmB,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE;IAClD,IAAI;QACF,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;KACd;IAAC,OAAO,GAAG,EAAE;QACZ,MAAM,IAAI,oBAAY,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;KAChE;AACH,CAAC,CAAC;AANW,QAAA,mBAAmB,uBAM9B;AAEK,MAAM,kBAAkB,GAAG,CAAC,EACjC,KAAK,EACL,iBAAiB,EACjB,YAAY,EACZ,KAAK,GACmB,EAAE,EAAE;IAC5B,OAAO,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAAC,CAAC;AAC7E,CAAC,CAAC;AAPW,QAAA,kBAAkB,sBAO7B;AAEF,8EAA8E;AAC9E,SAAgB,eAAe,CAAC,KAAc;IAC5C,IAAI,KAAK,YAAY,gBAAI,CAAC,SAAS,EAAE;QACnC,OAAO,KAAK,CAAC,OAAO,GAAG,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC;KAClD;IACD,IAAI,KAAK,YAAY,KAAK,EAAE;QAC1B,OAAO,KAAK,CAAC,OAAO,CAAC;KACtB;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AARD,0CAQC;AAEM,MAAM,kBAAkB,GAAG,CAAO,MAAc,EAAE,EAAE;IACzD,OAAO,gBAAM;SACV,WAAW,CAAC,MAAM,CAAC;SACnB,QAAQ,CAAC,QAAQ,CAAC;SAClB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SACnB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SACnB,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AACvB,CAAC,CAAA,CAAC;AAPW,QAAA,kBAAkB,sBAO7B;AAEF,SAAsB,iBAAiB,CAAC,GAAW,EAAE,GAAW;;QAC9D,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC3D,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACtD,OAAO,UAAU,CAAC;IACpB,CAAC;CAAA;AAJD,8CAIC;AAED,SAAgB,kBAAkB,CAAC,UAA+C;IAChF,IAAI,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;QAC7C,OAAO,KAAK,CAAC;KACd;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AALD,gDAKC;AAEM,MAAM,kBAAkB,GAAG,CAAO,GAAW,EAAE,MAAc,EAAyB,EAAE;IAC7F,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC1D,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACtD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAA,CAAC;AAJW,QAAA,kBAAkB,sBAI7B;AAEK,MAAM,kBAAkB,GAAG,CAAO,GAAiB,EAAqB,EAAE;IAC/E,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC5C,OAAO,SAAS,CAAC;AACnB,CAAC,CAAA,CAAC;AAHW,QAAA,kBAAkB,sBAG7B;AAEK,MAAM,qBAAqB,GAAG,CAAO,GAAa,EAAmB,EAAE;IAC5E,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC;IAC1D,OAAO,UAAU,CAAC;AACpB,CAAC,CAAA,CAAC;AAHW,QAAA,qBAAqB,yBAGhC;AAEK,MAAM,qBAAqB,GAAG,CACnC,IAIiC,EACjC,QAAwB,EAClB,EAAE;IACR,MAAM,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;IAC/E,MAAM,kBAAkB,GAAG,oBAAoB,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9F,MAAM,WAAW,GAAG,aAAa,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;IACzE,MAAM,gBAAgB,GAAG,kBAAkB,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC;IACxF,MAAM,YAAY,GAAG,cAAc,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5E,MAAM,YAAY,GAAG,cAAc,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5E,MAAM,gBAAgB,GAAG,kBAAkB,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC;IACxF,MAAM,WAAW,GAAG,aAAa,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;IAEzE,IAAI,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,MAAM,EAAE;QAC9C,MAAM,IAAI,oBAAY,CAAC,aAAa,QAAQ,gBAAgB,EAAE,GAAG,CAAC,CAAC;KACpE;IAED,IAAI,QAAQ,KAAK,MAAM,EAAE;QACvB,IAAI,CAAC,WAAW,IAAI,CAAC,kBAAkB,IAAI,CAAC,WAAW,EAAE;YACvD,MAAM,IAAI,oBAAY,CAAC,iEAAiE,EAAE,GAAG,CAAC,CAAC;SAChG;KACF;IACD,IAAI,QAAQ,KAAK,MAAM,EAAE;QACvB,IAAI,CAAC,YAAY,EAAE;YACjB,MAAM,IAAI,oBAAY,CAAC,kDAAkD,EAAE,GAAG,CAAC,CAAC;SACjF;QACD,IAAI,CAAC,gBAAgB,EAAE;YACrB,MAAM,IAAI,oBAAY,CAAC,sDAAsD,EAAE,GAAG,CAAC,CAAC;SACrF;QACD,IAAI,CAAC,gBAAgB,IAAI,CAAC,YAAY,EAAE;YACtC,MAAM,IAAI,oBAAY,CACpB,4EAA4E,EAC5E,GAAG,CACJ,CAAC;SACH;QACD,IAAI,CAAC,gBAAgB,IAAI,YAAY,EAAE;YACrC,MAAM,EAAE,MAAM,EAAE,sBAAsB,EAAE,cAAc,EAAE,iBAAiB,EAAE,QAAQ,EAAE,GAAG,YAAY,CAAC;YACrG,IAAI,CAAC,MAAM,EAAE;gBACX,MAAM,IAAI,oBAAY,CAAC,0DAA0D,EAAE,GAAG,CAAC,CAAC;aACzF;YACD,IAAI,CAAC,sBAAsB,EAAE;gBAC3B,MAAM,IAAI,oBAAY,CACpB,0EAA0E,EAC1E,GAAG,CACJ,CAAC;aACH;YACD,IAAI,CAAC,cAAc,EAAE;gBACnB,MAAM,IAAI,oBAAY,CAAC,kEAAkE,EAAE,GAAG,CAAC,CAAC;aACjG;YACD,IAAI,CAAC,iBAAiB,EAAE;gBACtB,MAAM,IAAI,oBAAY,CAAC,qEAAqE,EAAE,GAAG,CAAC,CAAC;aACpG;YACD,IAAI,CAAC,QAAQ,EAAE;gBACb,MAAM,IAAI,oBAAY,CAAC,4DAA4D,EAAE,GAAG,CAAC,CAAC;aAC3F;SACF;KACF;IAED,IAAI,CAAC,kBAAkB,EAAE;QACvB,MAAM,IAAI,oBAAY,CAAC,qCAAqC,EAAE,GAAG,CAAC,CAAC;KACpE;IAED,IAAI,CAAC,WAAW,EAAE;QAChB,MAAM,IAAI,oBAAY,CAAC,4BAA4B,EAAE,GAAG,CAAC,CAAC;KAC3D;IAED,IAAI,CAAC,MAAM,EAAE;QACX,MAAM,IAAI,oBAAY,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAC;KACtD;IAED,IAAI,CAAC,OAAO,EAAE;QACZ,MAAM,IAAI,oBAAY,CAAC,wBAAwB,EAAE,GAAG,CAAC,CAAC;KACvD;IAED,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,GAAG,EAAE;QAC3C,MAAM,IAAI,oBAAY,CAAC,8CAA8C,EAAE,GAAG,CAAC,CAAC;KAC7E;AACH,CAAC,CAAC;AAjFW,QAAA,qBAAqB,yBAiFhC;AAEK,MAAM,mBAAmB,GAAG,CAAC,EAAE,eAAe,EAAE,kBAAkB,EAAE,EAAE,EAAE;IAC7E,IAAI,eAAe,EAAE;QACnB,IAAI,eAAe,CAAC,MAAM,GAAG,GAAG,EAAE;YAChC,MAAM,IAAI,oBAAY,CAAC,kDAAkD,EAAE,GAAG,CAAC,CAAC;SACjF;QACD,KAAK,MAAM,GAAG,IAAI,eAAe,EAAE;YACjC,IAAA,2BAAmB,EAAC,GAAG,EAAE,wBAAwB,CAAC,CAAC;SACpD;KACF;IACD,IAAI,kBAAkB,EAAE;QACtB,IAAA,2BAAmB,EAAC,kBAAkB,EAAE,+BAA+B,CAAC,CAAC;KAC1E;AACH,CAAC,CAAC;AAZW,QAAA,mBAAmB,uBAY9B;AAEK,MAAM,mBAAmB,GAAG,CAAC,IAAuB,EAAY,EAAE;IACvE,IAAI,CAAC,IAAI,EAAE;QACT,OAAO,EAAE,CAAC;KACX;IAED,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;QAC5B,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;YACxB,qCAAqC;YACrC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SACzB;QACD,8BAA8B;QAC9B,OAAO,CAAC,IAAI,CAAC,CAAC;KACf;IAED,kCAAkC;IAClC,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAhBW,QAAA,mBAAmB,uBAgB9B;AAEK,MAAM,eAAe,GAAG,CAAC,GAAW,EAAiB,EAAE;IAC5D,IAAI;QACF,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAE1B,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;YACpC,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;SACnC;QAED,OAAO,IAAI,CAAC,QAAQ,CAAC;KACtB;IAAC,OAAO,GAAG,EAAE;QACZ,OAAO,IAAI,CAAC;KACb;AACH,CAAC,CAAC;AAZW,QAAA,eAAe,mBAY1B;AAEK,MAAM,sBAAsB,GAAG,CAAO,QAAkB,EAAE,UAAkB,EAAE,EAAE;;IACrF,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;IACxC,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAErD,MAAM,OAAO,GAAoE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAEhG,OAAO,CAAC,MAAM,CAAC,EAAE,GAAG,aAAa,CAAC,GAAG,CAAC;IACtC,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,MAAA,aAAa,CAAC,KAAK,mCAAI,QAAQ,CAAC,KAAK,CAAC;IAC7D,OAAO,CAAC,MAAM,CAAC,SAAS,GAAG,MAAA,aAAa,CAAC,UAAU,mCAAI,QAAQ,CAAC,UAAU,CAAC;IAC3E,OAAO,CAAC,MAAM,CAAC,QAAQ,GAAG,MAAA,aAAa,CAAC,WAAW,mCAAI,QAAQ,CAAC,WAAW,CAAC;IAC5E,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,MAAA,aAAa,CAAC,KAAK,mCAAK,QAAQ,CAAC,KAAa,CAAC;IACtE,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,MAAA,aAAa,CAAC,MAAM,mCAAK,QAAQ,CAAC,MAAc,CAAC;IACzE,OAAO,CAAC,MAAM,CAAC,GAAG,GAAG,QAAQ,CAAC;IAE9B,OAAO,OAAO,CAAC;AACjB,CAAC,CAAA,CAAC;AAfW,QAAA,sBAAsB,0BAejC;AAEK,MAAM,cAAc,GAAG,CAAC,KAAc,EAAY,EAAE;IACzD,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACvF,CAAC,CAAC;AAFW,QAAA,cAAc,kBAEzB;AAEK,MAAM,uBAAuB,GAAG,CACrC,KAAa,EAC6C,EAAE;IAC5D,IAAI;QACF,MAAM,EAAE,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;QACtC,MAAM,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAChC,MAAM,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAClC,IAAI,MAAM,IAAI,OAAO,EAAE;YACrB,OAAO;gBACL,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC;gBACxB,OAAO,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC;aAC3B,CAAC;SACH;QAED,OAAO,IAAI,CAAC;KACb;IAAC,OAAO,GAAG,EAAE;QACZ,OAAO,IAAI,CAAC;KACb;AACH,CAAC,CAAC;AAlBW,QAAA,uBAAuB,2BAkBlC;AAEK,MAAM,wBAAwB,GAAG,CAAC,MAAc,EAAE,OAAe,EAAE,EAAE;IAC1E,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;QAC9B,MAAM,IAAI,oBAAY,CAAC,uCAAuC,EAAE,GAAG,CAAC,CAAC;KACtE;IAED,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;QAC/B,MAAM,IAAI,oBAAY,CAAC,wCAAwC,EAAE,GAAG,CAAC,CAAC;KACvE;AACH,CAAC,CAAC;AARW,QAAA,wBAAwB,4BAQnC;AAEK,MAAM,KAAK,GAAG,CAAC,MAAc,EAAE,OAAe,EAAE,EAAE;IACvD,OAAO,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAClE,CAAC,CAAC;AAFW,QAAA,KAAK,SAEhB;AAEF,+BAA+B;AAC/B,MAAM,kBAAkB,GAAG;IACzB,UAAU,EAAE,MAAM;IAClB,iBAAiB,EAAE,UAAU;IAC7B,cAAc,EAAE,UAAU;IAC1B,cAAc,EAAE,UAAU;IAC1B,cAAc,EAAE,UAAU;IAC1B,eAAe,EAAE,WAAW;IAC5B,YAAY,EAAE,QAAQ;IACtB,WAAW,EAAE,OAAO;IACpB,aAAa,EAAE,SAAS;CAChB,CAAC;AAEX,2DAA2D;AACpD,MAAM,wBAAwB,GAAG,CAAC,YAAoB,EAA4C,EAAE;IACzG,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IAErG,OAAO,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACxD,CAAC,CAAC;AAJW,QAAA,wBAAwB,4BAInC;AAEK,MAAM,oBAAoB,GAAG,CAAC,WAAiD,EAAE,EAAE;IACxF,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;QAC5B,OAAO,WAAW,CAAC;KACpB;IAED,OAAO,WAAW,CAAC,GAAG,CAAC,2BAAmB,CAAC,CAAC;AAC9C,CAAC,CAAC;AANW,QAAA,oBAAoB,wBAM/B;AAEK,MAAM,mBAAmB,GAAG,CAAC,UAAyC,EAAE,EAAE;IAC/E,IAAI,aAAa,IAAI,UAAU,EAAE;QAC/B,UAAU,CAAC,WAAW,CAAC,oBAAoB,GAAG,IAAA,gCAAwB,EAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;KACzG;IAED,IAAI,CAAC,CAAC,aAAa,IAAI,UAAU,CAAC,EAAE;QAClC,UAAU,CAAC,WAAW,GAAG,KAAK,CAAC;KAChC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AAVW,QAAA,mBAAmB,uBAU9B;AAEK,MAAM,WAAW,GAAG,CAAC,GAAW,EAAE,EAAE;IACzC,IAAI,QAAa,CAAC;IAClB,IAAI;QACF,QAAQ,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;KACzB;IAAC,OAAO,KAAK,EAAE;QACd,OAAO,KAAK,CAAC;KACd;IACD,OAAO,QAAQ,CAAC,QAAQ,KAAK,WAAW,IAAI,QAAQ,CAAC,QAAQ,KAAK,WAAW,CAAC;AAChF,CAAC,CAAC;AARW,QAAA,WAAW,eAQtB;AAEK,MAAM,kBAAkB,GAAG,CAAC,UAAqD,EAAE,EAAE;IAC1F,IAAI,aAAa,IAAI,UAAU,EAAE;QAC/B,OAAO,UAAU,CAAC,WAAW,KAAK,KAAK,CAAC;KACzC;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AANW,QAAA,kBAAkB,sBAM7B"}
|
@@ -0,0 +1,18 @@
|
|
1
|
+
import type { Storable } from '../../typings';
|
2
|
+
interface Lock {
|
3
|
+
key: string;
|
4
|
+
created_at: string;
|
5
|
+
}
|
6
|
+
interface LockParams {
|
7
|
+
lockStore: Storable;
|
8
|
+
}
|
9
|
+
export declare class EventLock {
|
10
|
+
private lockStore;
|
11
|
+
constructor({ lockStore }: LockParams);
|
12
|
+
acquire(key: string): Promise<boolean>;
|
13
|
+
renew(key: string): Promise<void>;
|
14
|
+
add(key: string): Promise<void>;
|
15
|
+
get(): Promise<Lock | null>;
|
16
|
+
release(key: string): Promise<void>;
|
17
|
+
}
|
18
|
+
export {};
|
@@ -0,0 +1,79 @@
|
|
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
|
+
exports.EventLock = void 0;
|
13
|
+
class EventLock {
|
14
|
+
constructor({ lockStore }) {
|
15
|
+
this.lockStore = lockStore;
|
16
|
+
}
|
17
|
+
acquire(key) {
|
18
|
+
return __awaiter(this, void 0, void 0, function* () {
|
19
|
+
try {
|
20
|
+
const lock = yield this.get();
|
21
|
+
if (lock) {
|
22
|
+
return lock.key === key;
|
23
|
+
}
|
24
|
+
yield this.add(key);
|
25
|
+
return true;
|
26
|
+
}
|
27
|
+
catch (e) {
|
28
|
+
console.error(`Error acquiring lock for ${key}: ${e}`);
|
29
|
+
return false;
|
30
|
+
}
|
31
|
+
});
|
32
|
+
}
|
33
|
+
renew(key) {
|
34
|
+
return __awaiter(this, void 0, void 0, function* () {
|
35
|
+
try {
|
36
|
+
const lock = yield this.get();
|
37
|
+
if (!lock) {
|
38
|
+
return;
|
39
|
+
}
|
40
|
+
if (lock.key != key) {
|
41
|
+
return;
|
42
|
+
}
|
43
|
+
yield this.add(key);
|
44
|
+
}
|
45
|
+
catch (e) {
|
46
|
+
console.error(`Error renewing lock for ${key}: ${e}`);
|
47
|
+
}
|
48
|
+
});
|
49
|
+
}
|
50
|
+
add(key) {
|
51
|
+
return __awaiter(this, void 0, void 0, function* () {
|
52
|
+
const record = {
|
53
|
+
key,
|
54
|
+
created_at: new Date().toISOString(),
|
55
|
+
};
|
56
|
+
yield this.lockStore.put(key, record);
|
57
|
+
});
|
58
|
+
}
|
59
|
+
get() {
|
60
|
+
return __awaiter(this, void 0, void 0, function* () {
|
61
|
+
const { data } = (yield this.lockStore.getAll());
|
62
|
+
return data.length > 0 ? data[0] : null;
|
63
|
+
});
|
64
|
+
}
|
65
|
+
release(key) {
|
66
|
+
return __awaiter(this, void 0, void 0, function* () {
|
67
|
+
const lock = yield this.get();
|
68
|
+
if (!lock) {
|
69
|
+
return;
|
70
|
+
}
|
71
|
+
if (lock.key != key) {
|
72
|
+
return;
|
73
|
+
}
|
74
|
+
yield this.lockStore.delete(key);
|
75
|
+
});
|
76
|
+
}
|
77
|
+
}
|
78
|
+
exports.EventLock = EventLock;
|
79
|
+
//# sourceMappingURL=lock.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"lock.js","sourceRoot":"","sources":["../../../src/directory-sync/batch-events/lock.ts"],"names":[],"mappings":";;;;;;;;;;;;AAWA,MAAa,SAAS;IAGpB,YAAY,EAAE,SAAS,EAAc;QACnC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAEY,OAAO,CAAC,GAAW;;YAC9B,IAAI;gBACF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;gBAE9B,IAAI,IAAI,EAAE;oBACR,OAAO,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC;iBACzB;gBAED,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAEpB,OAAO,IAAI,CAAC;aACb;YAAC,OAAO,CAAM,EAAE;gBACf,OAAO,CAAC,KAAK,CAAC,4BAA4B,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC;gBACvD,OAAO,KAAK,CAAC;aACd;QACH,CAAC;KAAA;IAEY,KAAK,CAAC,GAAW;;YAC5B,IAAI;gBACF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;gBAE9B,IAAI,CAAC,IAAI,EAAE;oBACT,OAAO;iBACR;gBAED,IAAI,IAAI,CAAC,GAAG,IAAI,GAAG,EAAE;oBACnB,OAAO;iBACR;gBAED,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;aACrB;YAAC,OAAO,CAAM,EAAE;gBACf,OAAO,CAAC,KAAK,CAAC,2BAA2B,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC;aACvD;QACH,CAAC;KAAA;IAEK,GAAG,CAAC,GAAW;;YACnB,MAAM,MAAM,GAAG;gBACb,GAAG;gBACH,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACrC,CAAC;YAEF,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACxC,CAAC;KAAA;IAEK,GAAG;;YACP,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAqB,CAAC;YAErE,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC1C,CAAC;KAAA;IAEK,OAAO,CAAC,GAAW;;YACvB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;YAE9B,IAAI,CAAC,IAAI,EAAE;gBACT,OAAO;aACR;YAED,IAAI,IAAI,CAAC,GAAG,IAAI,GAAG,EAAE;gBACnB,OAAO;aACR;YAED,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACnC,CAAC;KAAA;CACF;AAtED,8BAsEC"}
|
@@ -0,0 +1,37 @@
|
|
1
|
+
import type { DirectorySyncEvent, IDirectoryConfig, Storable, JacksonOption, EventLock, IWebhookEventsLogger } from '../../typings';
|
2
|
+
declare enum EventStatus {
|
3
|
+
PENDING = "PENDING",
|
4
|
+
FAILED = "FAILED",
|
5
|
+
PROCESSING = "PROCESSING"
|
6
|
+
}
|
7
|
+
interface QueuedEvent {
|
8
|
+
event: DirectorySyncEvent;
|
9
|
+
id: string;
|
10
|
+
retry_count: number;
|
11
|
+
status: EventStatus;
|
12
|
+
created_at: string;
|
13
|
+
}
|
14
|
+
interface DirectoryEventsParams {
|
15
|
+
opts: JacksonOption;
|
16
|
+
eventStore: Storable;
|
17
|
+
eventLock: EventLock;
|
18
|
+
directories: IDirectoryConfig;
|
19
|
+
webhookLogs: IWebhookEventsLogger;
|
20
|
+
}
|
21
|
+
export declare class EventProcessor {
|
22
|
+
private eventStore;
|
23
|
+
private eventLock;
|
24
|
+
private opts;
|
25
|
+
private directories;
|
26
|
+
private webhookLogs;
|
27
|
+
constructor({ opts, eventStore, eventLock, directories, webhookLogs }: DirectoryEventsParams);
|
28
|
+
push(event: DirectorySyncEvent): Promise<QueuedEvent>;
|
29
|
+
process(): Promise<void>;
|
30
|
+
fetchNextBatch(offset: number, limit: number): Promise<QueuedEvent[]>;
|
31
|
+
private send;
|
32
|
+
private delete;
|
33
|
+
private markAsFailed;
|
34
|
+
private logWebhookEvent;
|
35
|
+
private notifyAllEventsFailed;
|
36
|
+
}
|
37
|
+
export {};
|
@@ -0,0 +1,234 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
3
|
+
if (k2 === undefined) k2 = k;
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
7
|
+
}
|
8
|
+
Object.defineProperty(o, k2, desc);
|
9
|
+
}) : (function(o, m, k, k2) {
|
10
|
+
if (k2 === undefined) k2 = k;
|
11
|
+
o[k2] = m[k];
|
12
|
+
}));
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
15
|
+
}) : function(o, v) {
|
16
|
+
o["default"] = v;
|
17
|
+
});
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
19
|
+
if (mod && mod.__esModule) return mod;
|
20
|
+
var result = {};
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
22
|
+
__setModuleDefault(result, mod);
|
23
|
+
return result;
|
24
|
+
};
|
25
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
26
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
27
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
28
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
29
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
30
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
31
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
32
|
+
});
|
33
|
+
};
|
34
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
35
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
36
|
+
};
|
37
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
38
|
+
exports.EventProcessor = void 0;
|
39
|
+
const os_1 = __importDefault(require("os"));
|
40
|
+
const lodash_1 = __importDefault(require("lodash"));
|
41
|
+
const crypto_1 = require("crypto");
|
42
|
+
const utils_1 = require("../utils");
|
43
|
+
const webhook_1 = require("../../event/webhook");
|
44
|
+
const utils_2 = require("../../controller/utils");
|
45
|
+
const error_1 = require("../../controller/error");
|
46
|
+
const metrics = __importStar(require("../../opentelemetry/metrics"));
|
47
|
+
var EventStatus;
|
48
|
+
(function (EventStatus) {
|
49
|
+
EventStatus["PENDING"] = "PENDING";
|
50
|
+
EventStatus["FAILED"] = "FAILED";
|
51
|
+
EventStatus["PROCESSING"] = "PROCESSING";
|
52
|
+
})(EventStatus || (EventStatus = {}));
|
53
|
+
let isJobRunning = false;
|
54
|
+
const lockKey = os_1.default.hostname();
|
55
|
+
const lockRenewalInterval = (utils_1.eventLockTTL / 2) * 1000;
|
56
|
+
class EventProcessor {
|
57
|
+
constructor({ opts, eventStore, eventLock, directories, webhookLogs }) {
|
58
|
+
this.opts = opts;
|
59
|
+
this.eventLock = eventLock;
|
60
|
+
this.eventStore = eventStore;
|
61
|
+
this.directories = directories;
|
62
|
+
this.webhookLogs = webhookLogs;
|
63
|
+
}
|
64
|
+
// Push the new event to the database
|
65
|
+
push(event) {
|
66
|
+
return __awaiter(this, void 0, void 0, function* () {
|
67
|
+
const id = (0, crypto_1.randomUUID)();
|
68
|
+
const record = {
|
69
|
+
id,
|
70
|
+
event,
|
71
|
+
retry_count: 0,
|
72
|
+
status: EventStatus.PENDING,
|
73
|
+
created_at: new Date().toISOString(),
|
74
|
+
};
|
75
|
+
const index = [
|
76
|
+
{
|
77
|
+
name: 'directoryId',
|
78
|
+
value: event.directory_id,
|
79
|
+
},
|
80
|
+
];
|
81
|
+
yield this.eventStore.put(id, record, ...index);
|
82
|
+
return record;
|
83
|
+
});
|
84
|
+
}
|
85
|
+
// Process the events and send them to the webhooks as a batch
|
86
|
+
process() {
|
87
|
+
var _a, _b;
|
88
|
+
return __awaiter(this, void 0, void 0, function* () {
|
89
|
+
if (isJobRunning) {
|
90
|
+
return;
|
91
|
+
}
|
92
|
+
if (!(yield this.eventLock.acquire(lockKey))) {
|
93
|
+
return;
|
94
|
+
}
|
95
|
+
isJobRunning = true;
|
96
|
+
// Renew the lock periodically
|
97
|
+
const intervalId = setInterval(() => __awaiter(this, void 0, void 0, function* () {
|
98
|
+
this.eventLock.renew(lockKey);
|
99
|
+
}), lockRenewalInterval);
|
100
|
+
const batchSize = (_a = this.opts.dsync) === null || _a === void 0 ? void 0 : _a.webhookBatchSize;
|
101
|
+
if (!batchSize) {
|
102
|
+
throw new error_1.JacksonError('Batch size not defined');
|
103
|
+
}
|
104
|
+
// eslint-disable-next-line no-constant-condition
|
105
|
+
while (true) {
|
106
|
+
const events = yield this.fetchNextBatch(0, batchSize);
|
107
|
+
const eventsCount = events.length;
|
108
|
+
if (eventsCount === 0) {
|
109
|
+
clearInterval(intervalId);
|
110
|
+
yield this.eventLock.release(lockKey);
|
111
|
+
break;
|
112
|
+
}
|
113
|
+
// Group the events by directory
|
114
|
+
const eventsByDirectory = lodash_1.default.groupBy(events, 'event.directory_id');
|
115
|
+
const directoryIds = Object.keys(eventsByDirectory);
|
116
|
+
const directoryCount = directoryIds.length;
|
117
|
+
// Fetch the connections corresponding to the directories it belongs to
|
118
|
+
const directoriesResult = yield Promise.allSettled(directoryIds.map((directoryId) => this.directories.get(directoryId)));
|
119
|
+
// Iterate over the directories and send the events to the webhooks
|
120
|
+
// For each directory, we will send the events in a batch
|
121
|
+
// directoryIds and directoriesResult are in the same order
|
122
|
+
for (let i = 0; i < directoryCount; i++) {
|
123
|
+
const directoryId = directoryIds[i];
|
124
|
+
const directoryResult = directoriesResult[i];
|
125
|
+
const events = eventsByDirectory[directoryId];
|
126
|
+
if (directoryResult.status === 'rejected') {
|
127
|
+
yield this.markAsFailed(events);
|
128
|
+
continue;
|
129
|
+
}
|
130
|
+
const directory = directoryResult.value.data;
|
131
|
+
if (!directory) {
|
132
|
+
console.error(`Directory ${directoryId} not found. Deleting the dsync events.`);
|
133
|
+
yield this.delete(events);
|
134
|
+
continue;
|
135
|
+
}
|
136
|
+
if (!(0, utils_2.isConnectionActive)(directory)) {
|
137
|
+
console.error(`Directory ${directoryId} is not active. Deleting the dsync events.`);
|
138
|
+
yield this.delete(events);
|
139
|
+
continue;
|
140
|
+
}
|
141
|
+
if (!directory.webhook.endpoint || !directory.webhook.secret) {
|
142
|
+
console.error(`Webhook not configured for directory ${directoryId}. Deleting the dsync events.`);
|
143
|
+
yield this.delete(events);
|
144
|
+
continue;
|
145
|
+
}
|
146
|
+
try {
|
147
|
+
const { status } = yield this.send(directory.webhook, events);
|
148
|
+
if (status === 200) {
|
149
|
+
yield this.delete(events);
|
150
|
+
}
|
151
|
+
else {
|
152
|
+
console.error(`Webhook returned status ${status}. Marking the events as failed.`);
|
153
|
+
yield this.markAsFailed(events);
|
154
|
+
}
|
155
|
+
yield this.logWebhookEvent(directory, events, status);
|
156
|
+
}
|
157
|
+
catch (error) {
|
158
|
+
const message = `Error sending payload to webhook ${directory.webhook.endpoint}. Marking the events as failed. ${error.message}`;
|
159
|
+
const status = ((_b = error.response) === null || _b === void 0 ? void 0 : _b.status) || 500;
|
160
|
+
console.error(message, error);
|
161
|
+
yield this.markAsFailed(events);
|
162
|
+
yield this.logWebhookEvent(directory, events, status);
|
163
|
+
throw new error_1.JacksonError(message, status);
|
164
|
+
}
|
165
|
+
}
|
166
|
+
}
|
167
|
+
isJobRunning = false;
|
168
|
+
});
|
169
|
+
}
|
170
|
+
// Fetch next batch of events from the database
|
171
|
+
fetchNextBatch(offset, limit) {
|
172
|
+
return __awaiter(this, void 0, void 0, function* () {
|
173
|
+
const { data: events } = (yield this.eventStore.getAll(offset, limit, undefined, 'ASC'));
|
174
|
+
if (!events.length) {
|
175
|
+
return [];
|
176
|
+
}
|
177
|
+
// Check if all the events in the batch have failed
|
178
|
+
if (events.every((event) => event.status === EventStatus.FAILED)) {
|
179
|
+
yield this.notifyAllEventsFailed();
|
180
|
+
}
|
181
|
+
// Update the status of the events to PROCESSING
|
182
|
+
const promises = events.map((event) => this.eventStore.put(event.id, Object.assign(Object.assign({}, event), { status: EventStatus.PROCESSING })));
|
183
|
+
yield Promise.allSettled(promises);
|
184
|
+
return events;
|
185
|
+
});
|
186
|
+
}
|
187
|
+
// Send the events to the webhooks
|
188
|
+
send(webhook, events) {
|
189
|
+
return __awaiter(this, void 0, void 0, function* () {
|
190
|
+
const payload = events.map(({ event }) => event);
|
191
|
+
try {
|
192
|
+
return yield (0, webhook_1.sendPayloadToWebhook)(webhook, payload);
|
193
|
+
}
|
194
|
+
catch (err) {
|
195
|
+
console.error(`Error sending payload to webhook: ${err.message}`);
|
196
|
+
throw err;
|
197
|
+
}
|
198
|
+
});
|
199
|
+
}
|
200
|
+
// Delete the delivered events
|
201
|
+
delete(events) {
|
202
|
+
return __awaiter(this, void 0, void 0, function* () {
|
203
|
+
const promises = events.map((event) => this.eventStore.delete(event.id));
|
204
|
+
yield Promise.allSettled(promises);
|
205
|
+
});
|
206
|
+
}
|
207
|
+
// Mark the events as failed
|
208
|
+
markAsFailed(events) {
|
209
|
+
return __awaiter(this, void 0, void 0, function* () {
|
210
|
+
const promises = events.map((event) => this.eventStore.put(event.id, Object.assign(Object.assign({}, event), { status: EventStatus.FAILED, retry_count: event.retry_count + 1 })));
|
211
|
+
yield Promise.allSettled(promises);
|
212
|
+
});
|
213
|
+
}
|
214
|
+
logWebhookEvent(directory, events, status) {
|
215
|
+
return __awaiter(this, void 0, void 0, function* () {
|
216
|
+
if (!directory.log_webhook_events) {
|
217
|
+
return;
|
218
|
+
}
|
219
|
+
const payload = events.map(({ event }) => event);
|
220
|
+
yield this.webhookLogs
|
221
|
+
.setTenantAndProduct(directory.tenant, directory.product)
|
222
|
+
.log(directory, payload, status);
|
223
|
+
});
|
224
|
+
}
|
225
|
+
// Send a OpenTelemetry event indicating that all the events in the batch have failed
|
226
|
+
notifyAllEventsFailed() {
|
227
|
+
return __awaiter(this, void 0, void 0, function* () {
|
228
|
+
metrics.increment('dsyncEventsBatchFailed');
|
229
|
+
console.error('All events in the batch have failed. Please check the system.');
|
230
|
+
});
|
231
|
+
}
|
232
|
+
}
|
233
|
+
exports.EventProcessor = EventProcessor;
|
234
|
+
//# sourceMappingURL=queue.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"queue.js","sourceRoot":"","sources":["../../../src/directory-sync/batch-events/queue.ts"],"names":[],"mappings":"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"}
|
@@ -1,11 +1,12 @@
|
|
1
|
-
import type {
|
1
|
+
import type { JacksonOption, IEventController, EventCallback, DB } from '../typings';
|
2
2
|
import { DirectoryConfig } from './scim/DirectoryConfig';
|
3
3
|
import { Users } from './scim/Users';
|
4
4
|
import { Groups } from './scim/Groups';
|
5
5
|
import { RequestHandler } from './request';
|
6
6
|
import { WebhookEventsLogger } from './scim/WebhookEventsLogger';
|
7
|
+
import { EventProcessor } from './batch-events/queue';
|
7
8
|
declare const directorySync: (params: {
|
8
|
-
db:
|
9
|
+
db: DB;
|
9
10
|
opts: JacksonOption;
|
10
11
|
eventController: IEventController;
|
11
12
|
}) => Promise<{
|
@@ -19,6 +20,7 @@ declare const directorySync: (params: {
|
|
19
20
|
};
|
20
21
|
events: {
|
21
22
|
callback: (event: import("./types").DirectorySyncEvent) => Promise<void>;
|
23
|
+
batch: EventProcessor;
|
22
24
|
};
|
23
25
|
google: import("./non-scim/google/oauth").GoogleAuth;
|
24
26
|
sync: (callback: EventCallback) => Promise<void>;
|
@@ -16,16 +16,26 @@ const Users_1 = require("./scim/Users");
|
|
16
16
|
const Groups_1 = require("./scim/Groups");
|
17
17
|
const utils_1 = require("./scim/utils");
|
18
18
|
const request_1 = require("./request");
|
19
|
-
const events_1 = require("./scim/events");
|
20
19
|
const WebhookEventsLogger_1 = require("./scim/WebhookEventsLogger");
|
21
20
|
const google_1 = require("./non-scim/google");
|
22
21
|
const non_scim_1 = require("./non-scim");
|
22
|
+
const utils_2 = require("../controller/utils");
|
23
|
+
const utils_3 = require("./utils");
|
24
|
+
const queue_1 = require("./batch-events/queue");
|
25
|
+
const lock_1 = require("./batch-events/lock");
|
23
26
|
const directorySync = (params) => __awaiter(void 0, void 0, void 0, function* () {
|
24
27
|
const { db, opts, eventController } = params;
|
25
28
|
const users = new Users_1.Users({ db });
|
26
29
|
const groups = new Groups_1.Groups({ db });
|
27
|
-
const
|
28
|
-
const directories = new DirectoryConfig_1.DirectoryConfig({
|
30
|
+
const webhookLogs = new WebhookEventsLogger_1.WebhookEventsLogger({ db });
|
31
|
+
const directories = new DirectoryConfig_1.DirectoryConfig({
|
32
|
+
db,
|
33
|
+
opts,
|
34
|
+
users,
|
35
|
+
groups,
|
36
|
+
logger: webhookLogs,
|
37
|
+
eventController,
|
38
|
+
});
|
29
39
|
const directoryUsers = new DirectoryUsers_1.DirectoryUsers({ directories, users });
|
30
40
|
const directoryGroups = new DirectoryGroups_1.DirectoryGroups({ directories, users, groups });
|
31
41
|
const requestHandler = new request_1.RequestHandler(directoryUsers, directoryGroups);
|
@@ -34,19 +44,42 @@ const directorySync = (params) => __awaiter(void 0, void 0, void 0, function* ()
|
|
34
44
|
return (0, utils_1.getDirectorySyncProviders)();
|
35
45
|
};
|
36
46
|
const googleProvider = (0, google_1.newGoogleProvider)({ directories, opts });
|
47
|
+
// Batch send events
|
48
|
+
const eventStore = db.store(utils_2.storeNamespacePrefix.dsync.events);
|
49
|
+
const lockStore = db.store(utils_2.storeNamespacePrefix.dsync.lock, utils_3.eventLockTTL);
|
50
|
+
const eventLock = new lock_1.EventLock({ lockStore });
|
51
|
+
const eventProcessor = new queue_1.EventProcessor({
|
52
|
+
opts,
|
53
|
+
eventStore,
|
54
|
+
eventLock,
|
55
|
+
directories,
|
56
|
+
webhookLogs,
|
57
|
+
});
|
37
58
|
return {
|
38
59
|
users,
|
39
60
|
groups,
|
40
61
|
directories,
|
41
|
-
webhookLogs
|
62
|
+
webhookLogs,
|
42
63
|
requests: requestHandler,
|
43
64
|
providers: getProviders,
|
44
65
|
events: {
|
45
|
-
callback: yield (0,
|
66
|
+
callback: yield (0, utils_3.handleEventCallback)({
|
67
|
+
opts,
|
68
|
+
directories,
|
69
|
+
webhookLogs,
|
70
|
+
eventProcessor,
|
71
|
+
}),
|
72
|
+
batch: eventProcessor,
|
46
73
|
},
|
47
74
|
google: googleProvider.oauth,
|
48
75
|
sync: (callback) => __awaiter(void 0, void 0, void 0, function* () {
|
49
|
-
return yield (0, non_scim_1.startSync)({
|
76
|
+
return yield (0, non_scim_1.startSync)({
|
77
|
+
userController: users,
|
78
|
+
groupController: groups,
|
79
|
+
opts,
|
80
|
+
directories,
|
81
|
+
requestHandler,
|
82
|
+
}, callback);
|
50
83
|
}),
|
51
84
|
};
|
52
85
|
});
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/directory-sync/index.ts"],"names":[],"mappings":";;;;;;;;;;;AACA,4DAAyD;AACzD,0DAAuD;AACvD,4DAAyD;AACzD,wCAAqC;AACrC,0CAAuC;AACvC,wCAAyD;AACzD,uCAA2C;AAC3C,
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/directory-sync/index.ts"],"names":[],"mappings":";;;;;;;;;;;AACA,4DAAyD;AACzD,0DAAuD;AACvD,4DAAyD;AACzD,wCAAqC;AACrC,0CAAuC;AACvC,wCAAyD;AACzD,uCAA2C;AAC3C,oEAAiE;AACjE,8CAAsD;AACtD,yCAAuC;AACvC,+CAA2D;AAC3D,mCAA4D;AAC5D,gDAAsD;AACtD,8CAAgD;AAEhD,MAAM,aAAa,GAAG,CAAO,MAA0E,EAAE,EAAE;IACzG,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,WAAW,GAAG,IAAI,yCAAmB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACpD,MAAM,WAAW,GAAG,IAAI,iCAAe,CAAC;QACtC,EAAE;QACF,IAAI;QACJ,KAAK;QACL,MAAM;QACN,MAAM,EAAE,WAAW;QACnB,eAAe;KAChB,CAAC,CAAC;IAEH,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;IAC5E,MAAM,cAAc,GAAG,IAAI,wBAAc,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;IAE3E,gCAAgC;IAChC,MAAM,YAAY,GAAG,GAAG,EAAE;QACxB,OAAO,IAAA,iCAAyB,GAAE,CAAC;IACrC,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,IAAA,0BAAiB,EAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;IAEhE,oBAAoB;IACpB,MAAM,UAAU,GAAG,EAAE,CAAC,KAAK,CAAC,4BAAoB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC/D,MAAM,SAAS,GAAG,EAAE,CAAC,KAAK,CAAC,4BAAoB,CAAC,KAAK,CAAC,IAAI,EAAE,oBAAY,CAAC,CAAC;IAC1E,MAAM,SAAS,GAAG,IAAI,gBAAS,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;IAC/C,MAAM,cAAc,GAAG,IAAI,sBAAc,CAAC;QACxC,IAAI;QACJ,UAAU;QACV,SAAS;QACT,WAAW;QACX,WAAW;KACZ,CAAC,CAAC;IAEH,OAAO;QACL,KAAK;QACL,MAAM;QACN,WAAW;QACX,WAAW;QACX,QAAQ,EAAE,cAAc;QACxB,SAAS,EAAE,YAAY;QACvB,MAAM,EAAE;YACN,QAAQ,EAAE,MAAM,IAAA,2BAAmB,EAAC;gBAClC,IAAI;gBACJ,WAAW;gBACX,WAAW;gBACX,cAAc;aACf,CAAC;YACF,KAAK,EAAE,cAAc;SACtB;QACD,MAAM,EAAE,cAAc,CAAC,KAAK;QAC5B,IAAI,EAAE,CAAO,QAAuB,EAAE,EAAE;YACtC,OAAO,MAAM,IAAA,oBAAS,EACpB;gBACE,cAAc,EAAE,KAAK;gBACrB,eAAe,EAAE,MAAM;gBACvB,IAAI;gBACJ,WAAW;gBACX,cAAc;aACf,EACD,QAAQ,CACT,CAAC;QACJ,CAAC,CAAA;KACF,CAAC;AACJ,CAAC,CAAA,CAAC;AAEF,kBAAe,aAAa,CAAC"}
|
@@ -20,8 +20,8 @@ class GoogleProvider {
|
|
20
20
|
this.directories = directories;
|
21
21
|
}
|
22
22
|
createOAuth2Client(directory) {
|
23
|
-
var _a;
|
24
|
-
const googleProvider = (_a = this.opts.dsync) === null || _a === void 0 ? void 0 : _a.providers.google;
|
23
|
+
var _a, _b;
|
24
|
+
const googleProvider = (_b = (_a = this.opts.dsync) === null || _a === void 0 ? void 0 : _a.providers) === null || _b === void 0 ? void 0 : _b.google;
|
25
25
|
const authClient = new google_auth_library_1.OAuth2Client(googleProvider === null || googleProvider === void 0 ? void 0 : googleProvider.clientId, googleProvider === null || googleProvider === void 0 ? void 0 : googleProvider.clientSecret, googleProvider === null || googleProvider === void 0 ? void 0 : googleProvider.callbackUrl);
|
26
26
|
authClient.setCredentials({
|
27
27
|
access_token: directory.google_access_token,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../../src/directory-sync/non-scim/google/api.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA0C;AAC1C,6DAAmD;AAiBnD,MAAa,cAAc;IAMzB,YAAY,EAAE,WAAW,EAAE,IAAI,EAAwB;QAHvD,oCAA+B,GAAG,CAAC,MAAM,CAAC,CAAC;QAC3C,mCAA8B,GAAG,CAAC,MAAM,EAAE,eAAe,EAAE,oBAAoB,CAAC,CAAC;QAG/E,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IAED,kBAAkB,CAAC,SAAoB;;QACrC,MAAM,cAAc,GAAG,MAAA,IAAI,CAAC,IAAI,CAAC,KAAK,0CAAE,SAAS,
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../../src/directory-sync/non-scim/google/api.ts"],"names":[],"mappings":"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"}
|
@@ -23,8 +23,8 @@ class GoogleAuth {
|
|
23
23
|
this.directories = directories;
|
24
24
|
}
|
25
25
|
createOAuth2Client(directory) {
|
26
|
-
var _a;
|
27
|
-
const googleProvider = (_a = this.opts.dsync) === null || _a === void 0 ? void 0 : _a.providers.google;
|
26
|
+
var _a, _b;
|
27
|
+
const googleProvider = (_b = (_a = this.opts.dsync) === null || _a === void 0 ? void 0 : _a.providers) === null || _b === void 0 ? void 0 : _b.google;
|
28
28
|
const authClient = new google_auth_library_1.OAuth2Client(googleProvider === null || googleProvider === void 0 ? void 0 : googleProvider.clientId, googleProvider === null || googleProvider === void 0 ? void 0 : googleProvider.clientSecret, googleProvider === null || googleProvider === void 0 ? void 0 : googleProvider.callbackUrl);
|
29
29
|
authClient.setCredentials({
|
30
30
|
access_token: directory.google_access_token,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"oauth.js","sourceRoot":"","sources":["../../../../src/directory-sync/non-scim/google/oauth.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6DAAgE;AAEhE,qDAAmE;AAGnE,MAAM,KAAK,GAAG;IACZ,+DAA+D;IAC/D,gEAAgE;IAChE,uEAAuE;CACxE,CAAC;AAOF,MAAa,UAAU;IAIrB,YAAY,EAAE,WAAW,EAAE,IAAI,EAAoB;QACjD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IAED,kBAAkB,CAAC,SAAoB;;QACrC,MAAM,cAAc,GAAG,MAAA,IAAI,CAAC,IAAI,CAAC,KAAK,0CAAE,SAAS,
|
1
|
+
{"version":3,"file":"oauth.js","sourceRoot":"","sources":["../../../../src/directory-sync/non-scim/google/oauth.ts"],"names":[],"mappings":"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"}
|