@dbos-inc/dbos-sdk 2.8.18-preview → 2.8.41-preview.gb44af319d0
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/src/client.js +2 -2
- package/dist/src/client.js.map +1 -1
- package/dist/src/dbos-executor.d.ts +1 -3
- package/dist/src/dbos-executor.d.ts.map +1 -1
- package/dist/src/dbos-executor.js +26 -63
- package/dist/src/dbos-executor.js.map +1 -1
- package/dist/src/dbos-runtime/workflow_management.d.ts.map +1 -1
- package/dist/src/dbos-runtime/workflow_management.js +2 -1
- package/dist/src/dbos-runtime/workflow_management.js.map +1 -1
- package/dist/src/dbos.d.ts +8 -1
- package/dist/src/dbos.d.ts.map +1 -1
- package/dist/src/dbos.js +28 -8
- package/dist/src/dbos.js.map +1 -1
- package/dist/src/error.d.ts +11 -6
- package/dist/src/error.d.ts.map +1 -1
- package/dist/src/error.js +27 -16
- package/dist/src/error.js.map +1 -1
- package/dist/src/scheduler/scheduler.js +1 -1
- package/dist/src/scheduler/scheduler.js.map +1 -1
- package/dist/src/system_database.d.ts +48 -15
- package/dist/src/system_database.d.ts.map +1 -1
- package/dist/src/system_database.js +315 -99
- package/dist/src/system_database.js.map +1 -1
- package/dist/src/workflow.d.ts.map +1 -1
- package/dist/src/workflow.js +7 -38
- package/dist/src/workflow.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/migrations/20250415134400_triggers_wfstatus.js +43 -0
- package/package.json +1 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"system_database.d.ts","sourceRoot":"","sources":["../../src/system_database.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"system_database.d.ts","sourceRoot":"","sources":["../../src/system_database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAgB,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAiB,IAAI,EAAE,UAAU,EAAgB,UAAU,EAAU,MAAM,IAAI,CAAC;AASvF,OAAO,EACL,yBAAyB,EACzB,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,EACZ,cAAc,EACf,MAAM,YAAY,CAAC;AACpB,OAAO,EAEL,iBAAiB,EAMlB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,YAAY,IAAI,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAa,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAElC,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAGzD,MAAM,WAAW,0BAA0B;IACzC,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,kBAAkB,cAAc,CAAC;AAC9C,eAAO,MAAM,kBAAkB,cAAc,CAAC;AAC9C,eAAO,MAAM,sBAAsB,kBAAkB,CAAC;AACtD,eAAO,MAAM,sBAAsB,kBAAkB,CAAC;AACtD,eAAO,MAAM,mBAAmB,eAAe,CAAC;AAChD,eAAO,MAAM,uBAAuB,cAAc,CAAC;AAEnD;;;;;;;;;;GAUG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzB,kBAAkB,CAChB,UAAU,EAAE,sBAAsB,EAClC,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC;QAAE,gBAAgB,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACzD,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxF,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvF,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,EAAE,CAAC,CAAC;IAClG,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAI9D,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,GAAG,CAAC,EAAE,0BAA0B,CAAA;KAAE,CAAC,CAAC;IAC1G,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACzE,qBAAqB,CACnB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE;QACH,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC7B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,YAAY,EAAE,MAAM,CAAC;KACtB,EACD,aAAa,EAAE,OAAO,GACrB,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAC5G,yBAAyB,CACvB,UAAU,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAAC;IAC1C,mBAAmB,CACjB,UAAU,EAAE,MAAM,EAClB,cAAc,CAAC,EAAE,MAAM,EACvB,QAAQ,CAAC,EAAE,MAAM,EACjB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,0BAA0B,GAAG,SAAS,CAAC,CAAC;IAGnD,iBAAiB,CACf,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,OAAO,YAAY,CAAC,EACxD,qBAAqB,EAAE,OAAO,GAC7B,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,uBAAuB,CAAC,UAAU,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;IACrF,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAGvC,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtE,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3D,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzE,6BAA6B,CAAC,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAG/G,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExF,IAAI,CACF,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM,GAAG,IAAI,EACtB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,IAAI,CACF,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,iBAAiB,EAAE,MAAM,EACzB,KAAK,CAAC,EAAE,MAAM,EACd,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAE1B,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnG,QAAQ,CACN,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,MAAM,EACX,cAAc,EAAE,MAAM,EACtB,cAAc,CAAC,EAAE;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,iBAAiB,EAAE,MAAM,CAAC;KAC3B,GACA,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAY1B,qBAAqB,CACnB,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,MAAM,EACtB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,sBAAsB,GAAG,SAAS,CAAC,CAAC;IAC/C,wBAAwB,CAAC,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAGzF,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACpE,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAChF,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;CACjF;AAGD,MAAM,WAAW,sBAAsB;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,OAAO,EAAE,WAAW,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,wBAAsB,qBAAqB,CAAC,gBAAgB,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,iBAoBvF;AAED,cAAM,eAAe,CAAC,CAAC;IACrB,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC,CAAa;IAC/D,KAAK,EAAE,MAAM,CAAK;IAElB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,IAAI;;;;IASrD,kBAAkB,CAAC,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE;IAUjD,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC;CAOrC;AAED,UAAU,cAAc;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,sBAAuB,YAAW,cAAc;IAmCzD,QAAQ,CAAC,YAAY,EAAE,UAAU;IACjC,QAAQ,CAAC,kBAAkB,EAAE,MAAM;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM;IACvB,QAAQ,CAAC,aAAa,CAAC;IArCzB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,gBAAgB,EAAE,UAAU,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC;IAoBtB,mBAAmB,EAAE,UAAU,GAAG,IAAI,CAAQ;IAC9C,mBAAmB,EAAE,MAAM,CAAS;IACpC,wBAAwB,EAAE,OAAO,CAAQ;IACzC,QAAQ,CAAC,gBAAgB,EAAE,eAAe,CAAC,IAAI,CAAC,CAAyB;IACzE,QAAQ,CAAC,iBAAiB,EAAE,eAAe,CAAC,IAAI,CAAC,CAAyB;IAC1E,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC,IAAI,CAAC,CAAyB;IACxE,QAAQ,CAAC,iBAAiB,EAAE,eAAe,CAAC,cAAc,CAAC,CAAyB;IAEpF,QAAQ,CAAC,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAa;IACvE,QAAQ,CAAC,uBAAuB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAa;gBAGxD,YAAY,EAAE,UAAU,EACxB,kBAAkB,EAAE,MAAM,EAC1B,MAAM,EAAE,MAAM,EACd,aAAa,CAAC,oBAAQ;IAuB3B,IAAI;IAiCJ,OAAO;WASA,YAAY,CAAC,UAAU,EAAE,kBAAkB;IAclD,kBAAkB,CACtB,UAAU,EAAE,sBAAsB,EAClC,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC;QAAE,gBAAgB,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAuGlD,0BAA0B,CAC9B,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,OAAO,YAAY,CAAC,EACxD,MAAM,EAAE;QACN,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,qBAAqB,CAAC,EAAE,OAAO,CAAC;QAChC,yBAAyB,CAAC,EAAE,OAAO,CAAC;KACrC,EACD,MAAM,CAAC,EAAE,UAAU,GAClB,OAAO,CAAC,IAAI,CAAC;IAmBV,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvF,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAItF,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,EAAE,CAAC;IAcjG,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAW7D,kBAAkB,CACtB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,UAAU,GAClB,OAAO,CAAC;QAAE,GAAG,CAAC,EAAE,0BAA0B,CAAA;KAAE,CAAC;IAsB1C,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAQxE,qBAAqB,CACzB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE;QACH,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC7B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,YAAY,EAAE,MAAM,CAAC;KACtB,EACD,aAAa,EAAE,OAAO,EACtB,MAAM,CAAC,EAAE,UAAU,GAClB,OAAO,CAAC,IAAI,CAAC;IA4BV,SAAS,CACb,QAAQ,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,EAClD,YAAY,EAAE,MAAM,EACpB,UAAU,CAAC,EAAE,MAAM,EACnB,UAAU,CAAC,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,UAAU,GAClB,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAkB/B,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBzF,sBAAsB,CAC1B,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,oBAAoB,CAAC,EAAE,MAAM,GAC5B,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QAAC,MAAM,EAAE,MAAM,IAAI,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAyB3E,QAAQ,CAAC,SAAS,qBAAqB;IAEjC,IAAI,CACR,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM,GAAG,IAAI,EACtB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC;IAkCV,IAAI,CACR,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,iBAAiB,EAAE,MAAM,EACzB,KAAK,CAAC,EAAE,MAAM,EACd,cAAc,GAAE,MAAmD,GAClE,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAyHnB,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAgCpG,QAAQ,CACZ,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,MAAM,EACX,cAAc,EAAE,MAAM,EACtB,cAAc,CAAC,EAAE;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,iBAAiB,EAAE,MAAM,CAAC;KAC3B,GACA,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAyGnB,iBAAiB,CACrB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,OAAO,YAAY,CAAC,EACxD,qBAAqB,EAAE,OAAO,GAC7B,OAAO,CAAC,IAAI,CAAC;IAIhB,cAAc,CAAC,UAAU,EAAE,MAAM;IAOjC,gBAAgB,CAAC,UAAU,EAAE,MAAM;IAM7B,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA0BjD,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOlD,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAwCvD,uBAAuB,CAAC,UAAU,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,CAAC,OAAO,CAAC;IAcvE,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;IAmBtC,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAmB3G,yBAAyB,CAC7B,UAAU,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC;IA2CnC,mBAAmB,CACvB,UAAU,EAAE,MAAM,EAClB,cAAc,CAAC,EAAE,MAAM,EACvB,QAAQ,CAAC,EAAE,MAAM,EACjB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,0BAA0B,GAAG,SAAS,CAAC;IA8ElD;;;OAGG;IACG,sBAAsB;IA+BtB,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,GAAG,SAAS,CAAC;IA2BzG,wBAAwB,CAAC,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IA+BxF,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAwCnE,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAgD/E,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IA2C/E,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYrE,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA6B1D,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBxE,6BAA6B,CAAC,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAyHrH"}
|
@@ -1,5 +1,4 @@
|
|
1
1
|
"use strict";
|
2
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
3
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
4
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
5
4
|
};
|
@@ -40,6 +39,37 @@ async function migrateSystemDatabase(systemPoolConfig, logger) {
|
|
40
39
|
}
|
41
40
|
}
|
42
41
|
exports.migrateSystemDatabase = migrateSystemDatabase;
|
42
|
+
class NotificationMap {
|
43
|
+
map = new Map();
|
44
|
+
curCK = 0;
|
45
|
+
registerCallback(key, cb) {
|
46
|
+
if (!this.map.has(key)) {
|
47
|
+
this.map.set(key, new Map());
|
48
|
+
}
|
49
|
+
const ck = this.curCK++;
|
50
|
+
this.map.get(key).set(ck, cb);
|
51
|
+
return { key, ck };
|
52
|
+
}
|
53
|
+
deregisterCallback(k) {
|
54
|
+
if (!this.map.has(k.key))
|
55
|
+
return;
|
56
|
+
const sm = this.map.get(k.key);
|
57
|
+
if (!sm.has(k.ck))
|
58
|
+
return;
|
59
|
+
sm.delete(k.ck);
|
60
|
+
if (sm.size === 0) {
|
61
|
+
this.map.delete(k.key);
|
62
|
+
}
|
63
|
+
}
|
64
|
+
callCallbacks(key, event) {
|
65
|
+
if (!this.map.has(key))
|
66
|
+
return;
|
67
|
+
const sm = this.map.get(key);
|
68
|
+
for (const cb of sm.values()) {
|
69
|
+
cb(event);
|
70
|
+
}
|
71
|
+
}
|
72
|
+
}
|
43
73
|
class PostgresSystemDatabase {
|
44
74
|
pgPoolConfig;
|
45
75
|
systemDatabaseName;
|
@@ -48,9 +78,33 @@ class PostgresSystemDatabase {
|
|
48
78
|
pool;
|
49
79
|
systemPoolConfig;
|
50
80
|
knexDB;
|
81
|
+
/*
|
82
|
+
* Generally, notifications are asynchronous. One should:
|
83
|
+
* Subscribe to updates
|
84
|
+
* Read the database item in question
|
85
|
+
* In response to updates, re-read the database item
|
86
|
+
* Unsubscribe at the end
|
87
|
+
* The notification mechanism is reliable in the sense that it will eventually deliver updates
|
88
|
+
* or the DB connection will get dropped. The right thing to do if you lose connectivity to
|
89
|
+
* the system DB is to exit the process and go through recovery... system DB writes, notifications,
|
90
|
+
* etc may not have completed correctly, and recovery is the way to rebuild in-memory state.
|
91
|
+
*
|
92
|
+
* NOTE:
|
93
|
+
* PG Notifications are not fully reliable.
|
94
|
+
* Dropped connections are recoverable - you just need to restart and scan everything.
|
95
|
+
* (The whole VM being the logical choice, so workflows can recover from any write failures.)
|
96
|
+
* The real problem is, if the pipes out of the server are full... then notifications can be
|
97
|
+
* dropped, and only the PG server log may note it. For those reasons, we do occasional polling
|
98
|
+
*/
|
51
99
|
notificationsClient = null;
|
52
|
-
|
53
|
-
|
100
|
+
dbPollingIntervalMs = 10000;
|
101
|
+
shouldUseDBNotifications = true;
|
102
|
+
notificationsMap = new NotificationMap();
|
103
|
+
workflowEventsMap = new NotificationMap();
|
104
|
+
cancelWakeupMap = new NotificationMap();
|
105
|
+
workflowStatusMap = new NotificationMap();
|
106
|
+
runningWorkflowMap = new Map(); // Map from workflowID to workflow promise
|
107
|
+
workflowCancellationMap = new Map(); // Map from workflowID to its cancellation status.
|
54
108
|
constructor(pgPoolConfig, systemDatabaseName, logger, sysDbPoolSize) {
|
55
109
|
this.pgPoolConfig = pgPoolConfig;
|
56
110
|
this.systemDatabaseName = systemDatabaseName;
|
@@ -99,7 +153,9 @@ class PostgresSystemDatabase {
|
|
99
153
|
finally {
|
100
154
|
await pgSystemClient.end();
|
101
155
|
}
|
102
|
-
|
156
|
+
if (this.shouldUseDBNotifications) {
|
157
|
+
await this.listenForNotifications();
|
158
|
+
}
|
103
159
|
}
|
104
160
|
async destroy() {
|
105
161
|
await this.knexDB.destroy();
|
@@ -122,7 +178,7 @@ class PostgresSystemDatabase {
|
|
122
178
|
await pgSystemClient.query(`DROP DATABASE IF EXISTS ${dbosConfig.system_database};`);
|
123
179
|
await pgSystemClient.end();
|
124
180
|
}
|
125
|
-
async initWorkflowStatus(initStatus,
|
181
|
+
async initWorkflowStatus(initStatus, serializedInputs) {
|
126
182
|
const result = await this.pool.query(`INSERT INTO ${dbos_executor_1.DBOSExecutor.systemDBSchemaName}.workflow_status (
|
127
183
|
workflow_uuid,
|
128
184
|
status,
|
@@ -156,8 +212,8 @@ class PostgresSystemDatabase {
|
|
156
212
|
initStatus.queueName,
|
157
213
|
initStatus.authenticatedUser,
|
158
214
|
initStatus.assumedRole,
|
159
|
-
|
160
|
-
|
215
|
+
JSON.stringify(initStatus.authenticatedRoles),
|
216
|
+
JSON.stringify(initStatus.request),
|
161
217
|
null,
|
162
218
|
initStatus.executorId,
|
163
219
|
initStatus.applicationVersion,
|
@@ -199,12 +255,11 @@ class PostgresSystemDatabase {
|
|
199
255
|
}
|
200
256
|
this.logger.debug(`Workflow ${initStatus.workflowUUID} attempt number: ${attempts}.`);
|
201
257
|
const status = resRow.status;
|
202
|
-
const serializedInputs = utils_1.DBOSJSON.stringify(args);
|
203
258
|
const { rows } = await this.pool.query(`INSERT INTO ${dbos_executor_1.DBOSExecutor.systemDBSchemaName}.workflow_inputs (workflow_uuid, inputs) VALUES($1, $2) ON CONFLICT (workflow_uuid) DO UPDATE SET workflow_uuid = excluded.workflow_uuid RETURNING inputs`, [initStatus.workflowUUID, serializedInputs]);
|
204
259
|
if (serializedInputs !== rows[0].inputs) {
|
205
260
|
this.logger.warn(`Workflow inputs for ${initStatus.workflowUUID} changed since the first call! Use the original inputs.`);
|
206
261
|
}
|
207
|
-
return {
|
262
|
+
return { serializedInputs: rows[0].inputs, status };
|
208
263
|
}
|
209
264
|
async recordWorkflowStatusChange(workflowID, status, update, client) {
|
210
265
|
let rec = '';
|
@@ -217,7 +272,7 @@ class PostgresSystemDatabase {
|
|
217
272
|
const wRes = await (client ?? this.pool).query(`UPDATE ${dbos_executor_1.DBOSExecutor.systemDBSchemaName}.workflow_status
|
218
273
|
SET ${rec} status=$2, output=$3, error=$4, updated_at=$5 WHERE workflow_uuid=$1`, [workflowID, status, update.output, update.error, Date.now()]);
|
219
274
|
if (wRes.rowCount !== 1) {
|
220
|
-
throw new error_1.
|
275
|
+
throw new error_1.DBOSWorkflowConflictError(`Attempt to record transition of nonexistent workflow ${workflowID}`);
|
221
276
|
}
|
222
277
|
}
|
223
278
|
async recordWorkflowOutput(workflowID, status) {
|
@@ -238,9 +293,10 @@ class PostgresSystemDatabase {
|
|
238
293
|
if (rows.length === 0) {
|
239
294
|
return null;
|
240
295
|
}
|
241
|
-
return
|
296
|
+
return rows[0].inputs;
|
242
297
|
}
|
243
298
|
async getOperationResult(workflowID, functionID, client) {
|
299
|
+
await this.checkIfCanceled(workflowID);
|
244
300
|
const { rows } = await (client ?? this.pool).query(`SELECT output, error, child_workflow_id, function_name
|
245
301
|
FROM ${dbos_executor_1.DBOSExecutor.systemDBSchemaName}.operation_outputs
|
246
302
|
WHERE workflow_uuid=$1 AND function_id=$2`, [workflowID, functionID]);
|
@@ -281,7 +337,7 @@ class PostgresSystemDatabase {
|
|
281
337
|
const err = error;
|
282
338
|
if (err.code === '40001' || err.code === '23505') {
|
283
339
|
// Serialization and primary key conflict (Postgres).
|
284
|
-
throw new error_1.
|
340
|
+
throw new error_1.DBOSWorkflowConflictError(workflowID);
|
285
341
|
}
|
286
342
|
else {
|
287
343
|
throw err;
|
@@ -306,6 +362,30 @@ class PostgresSystemDatabase {
|
|
306
362
|
return serialOutput;
|
307
363
|
}
|
308
364
|
async durableSleepms(workflowID, functionID, durationMS) {
|
365
|
+
let resolveNotification;
|
366
|
+
const cancelPromise = new Promise((resolve) => {
|
367
|
+
resolveNotification = resolve;
|
368
|
+
});
|
369
|
+
const cbr = this.cancelWakeupMap.registerCallback(workflowID, resolveNotification);
|
370
|
+
try {
|
371
|
+
let timeoutPromise = Promise.resolve();
|
372
|
+
const { promise, cancel: timeoutCancel } = await this.durableSleepmsInternal(workflowID, functionID, durationMS);
|
373
|
+
timeoutPromise = promise;
|
374
|
+
try {
|
375
|
+
await Promise.race([cancelPromise, timeoutPromise]);
|
376
|
+
}
|
377
|
+
finally {
|
378
|
+
timeoutCancel();
|
379
|
+
}
|
380
|
+
}
|
381
|
+
finally {
|
382
|
+
this.cancelWakeupMap.deregisterCallback(cbr);
|
383
|
+
}
|
384
|
+
await this.checkIfCanceled(workflowID);
|
385
|
+
}
|
386
|
+
async durableSleepmsInternal(workflowID, functionID, durationMS, maxSleepPerIteration) {
|
387
|
+
if (maxSleepPerIteration === undefined)
|
388
|
+
maxSleepPerIteration = durationMS;
|
309
389
|
const curTime = Date.now();
|
310
390
|
let endTimeMs = curTime + durationMS;
|
311
391
|
const res = await this.getOperationResult(workflowID, functionID);
|
@@ -318,7 +398,10 @@ class PostgresSystemDatabase {
|
|
318
398
|
else {
|
319
399
|
await this.recordOperationResult(workflowID, functionID, { serialOutput: JSON.stringify(endTimeMs), functionName: exports.DBOS_FUNCNAME_SLEEP }, false);
|
320
400
|
}
|
321
|
-
return
|
401
|
+
return {
|
402
|
+
...(0, utils_1.cancellableSleep)(Math.max(Math.min(maxSleepPerIteration, endTimeMs - curTime), 0)),
|
403
|
+
endTime: endTimeMs,
|
404
|
+
};
|
322
405
|
}
|
323
406
|
nullTopic = '__null__topic__';
|
324
407
|
async send(workflowID, functionID, destinationID, message, topic) {
|
@@ -357,37 +440,56 @@ class PostgresSystemDatabase {
|
|
357
440
|
}
|
358
441
|
return res.res.res;
|
359
442
|
}
|
360
|
-
|
361
|
-
|
362
|
-
|
363
|
-
//
|
443
|
+
const timeoutms = timeoutSeconds !== undefined ? timeoutSeconds * 1000 : undefined;
|
444
|
+
let finishTime = timeoutms !== undefined ? Date.now() + timeoutms : undefined;
|
445
|
+
while (true) {
|
446
|
+
// register the key with the global notifications listener.
|
364
447
|
let resolveNotification;
|
365
448
|
const messagePromise = new Promise((resolve) => {
|
366
449
|
resolveNotification = resolve;
|
367
450
|
});
|
368
451
|
const payload = `${workflowID}::${topic}`;
|
369
|
-
this.notificationsMap
|
370
|
-
|
371
|
-
|
372
|
-
|
373
|
-
const { promise, cancel } = await this.durableSleepms(workflowID, timeoutFunctionID, timeoutSeconds * 1000);
|
374
|
-
timeoutPromise = promise;
|
375
|
-
timeoutCancel = cancel;
|
376
|
-
}
|
377
|
-
catch (e) {
|
378
|
-
this.logger.error(e);
|
379
|
-
delete this.notificationsMap[payload];
|
380
|
-
timeoutCancel();
|
381
|
-
throw new Error('durable sleepms failed');
|
382
|
-
}
|
452
|
+
const cbr = this.notificationsMap.registerCallback(payload, resolveNotification);
|
453
|
+
const crh = this.cancelWakeupMap.registerCallback(workflowID, (_res) => {
|
454
|
+
resolveNotification();
|
455
|
+
});
|
383
456
|
try {
|
384
|
-
await
|
457
|
+
await this.checkIfCanceled(workflowID);
|
458
|
+
// Check if the key is already in the DB, then wait for the notification if it isn't.
|
459
|
+
const initRecvRows = (await this.pool.query(`SELECT topic FROM ${dbos_executor_1.DBOSExecutor.systemDBSchemaName}.notifications WHERE destination_uuid=$1 AND topic=$2;`, [workflowID, topic])).rows;
|
460
|
+
if (initRecvRows.length !== 0)
|
461
|
+
break;
|
462
|
+
const ct = Date.now();
|
463
|
+
if (finishTime && ct > finishTime)
|
464
|
+
break; // Time's up
|
465
|
+
let timeoutPromise = Promise.resolve();
|
466
|
+
let timeoutCancel = () => { };
|
467
|
+
if (timeoutms) {
|
468
|
+
const { promise, cancel, endTime } = await this.durableSleepmsInternal(workflowID, timeoutFunctionID, timeoutms, this.dbPollingIntervalMs);
|
469
|
+
timeoutPromise = promise;
|
470
|
+
timeoutCancel = cancel;
|
471
|
+
finishTime = endTime;
|
472
|
+
}
|
473
|
+
else {
|
474
|
+
let poll = finishTime ? finishTime - ct : this.dbPollingIntervalMs;
|
475
|
+
poll = Math.min(this.dbPollingIntervalMs, poll);
|
476
|
+
const { promise, cancel } = (0, utils_1.cancellableSleep)(poll);
|
477
|
+
timeoutPromise = promise;
|
478
|
+
timeoutCancel = cancel;
|
479
|
+
}
|
480
|
+
try {
|
481
|
+
await Promise.race([messagePromise, timeoutPromise]);
|
482
|
+
}
|
483
|
+
finally {
|
484
|
+
timeoutCancel();
|
485
|
+
}
|
385
486
|
}
|
386
487
|
finally {
|
387
|
-
|
388
|
-
|
488
|
+
this.notificationsMap.deregisterCallback(cbr);
|
489
|
+
this.cancelWakeupMap.deregisterCallback(crh);
|
389
490
|
}
|
390
491
|
}
|
492
|
+
await this.checkIfCanceled(workflowID);
|
391
493
|
// Transactionally consume and return the message if it's in the DB, otherwise return null.
|
392
494
|
let message = null;
|
393
495
|
const client = await this.pool.connect();
|
@@ -461,40 +563,49 @@ class PostgresSystemDatabase {
|
|
461
563
|
// Get the return the value. if it's in the DB, otherwise return null.
|
462
564
|
let value = null;
|
463
565
|
const payloadKey = `${workflowID}::${key}`;
|
566
|
+
const timeoutms = timeoutSeconds !== undefined ? timeoutSeconds * 1000 : undefined;
|
567
|
+
let finishTime = timeoutms !== undefined ? Date.now() + timeoutms : undefined;
|
464
568
|
// Register the key with the global notifications listener first... we do not want to look in the DB first
|
465
569
|
// or that would cause a timing hole.
|
466
|
-
|
467
|
-
|
468
|
-
|
469
|
-
|
470
|
-
|
471
|
-
|
472
|
-
|
473
|
-
|
474
|
-
|
475
|
-
|
476
|
-
|
477
|
-
|
478
|
-
|
479
|
-
|
480
|
-
|
570
|
+
while (true) {
|
571
|
+
let resolveNotification;
|
572
|
+
const valuePromise = new Promise((resolve) => {
|
573
|
+
resolveNotification = resolve;
|
574
|
+
});
|
575
|
+
const cbr = this.workflowEventsMap.registerCallback(payloadKey, resolveNotification);
|
576
|
+
const crh = callerWorkflow?.workflowID
|
577
|
+
? this.cancelWakeupMap.registerCallback(callerWorkflow.workflowID, (_res) => {
|
578
|
+
resolveNotification();
|
579
|
+
})
|
580
|
+
: undefined;
|
581
|
+
try {
|
582
|
+
if (callerWorkflow?.workflowID)
|
583
|
+
await this.checkIfCanceled(callerWorkflow?.workflowID);
|
584
|
+
// Check if the key is already in the DB, then wait for the notification if it isn't.
|
585
|
+
const initRecvRows = (await this.pool.query(`
|
586
|
+
SELECT key, value
|
587
|
+
FROM ${dbos_executor_1.DBOSExecutor.systemDBSchemaName}.workflow_events
|
588
|
+
WHERE workflow_uuid=$1 AND key=$2;`, [workflowID, key])).rows;
|
589
|
+
if (initRecvRows.length > 0) {
|
590
|
+
value = initRecvRows[0].value;
|
591
|
+
break;
|
592
|
+
}
|
593
|
+
const ct = Date.now();
|
594
|
+
if (finishTime && ct > finishTime)
|
595
|
+
break; // Time's up
|
481
596
|
// If we have a callerWorkflow, we want a durable sleep, otherwise, not
|
482
597
|
let timeoutPromise = Promise.resolve();
|
483
598
|
let timeoutCancel = () => { };
|
484
|
-
if (callerWorkflow) {
|
485
|
-
|
486
|
-
|
487
|
-
|
488
|
-
|
489
|
-
}
|
490
|
-
catch (e) {
|
491
|
-
this.logger.error(e);
|
492
|
-
delete this.workflowEventsMap[payloadKey];
|
493
|
-
throw new Error('durable sleepms failed');
|
494
|
-
}
|
599
|
+
if (callerWorkflow && timeoutms) {
|
600
|
+
const { promise, cancel, endTime } = await this.durableSleepmsInternal(callerWorkflow.workflowID, callerWorkflow.timeoutFunctionID ?? -1, timeoutms, this.dbPollingIntervalMs);
|
601
|
+
timeoutPromise = promise;
|
602
|
+
timeoutCancel = cancel;
|
603
|
+
finishTime = endTime;
|
495
604
|
}
|
496
605
|
else {
|
497
|
-
|
606
|
+
let poll = finishTime ? finishTime - ct : this.dbPollingIntervalMs;
|
607
|
+
poll = Math.min(this.dbPollingIntervalMs, poll);
|
608
|
+
const { promise, cancel } = (0, utils_1.cancellableSleep)(poll);
|
498
609
|
timeoutPromise = promise;
|
499
610
|
timeoutCancel = cancel;
|
500
611
|
}
|
@@ -504,17 +615,12 @@ class PostgresSystemDatabase {
|
|
504
615
|
finally {
|
505
616
|
timeoutCancel();
|
506
617
|
}
|
507
|
-
const finalRecvRows = (await this.pool.query(`
|
508
|
-
SELECT value
|
509
|
-
FROM ${dbos_executor_1.DBOSExecutor.systemDBSchemaName}.workflow_events
|
510
|
-
WHERE workflow_uuid=$1 AND key=$2;`, [workflowID, key])).rows;
|
511
|
-
if (finalRecvRows.length > 0) {
|
512
|
-
value = finalRecvRows[0].value;
|
513
|
-
}
|
514
618
|
}
|
515
|
-
|
516
|
-
|
517
|
-
|
619
|
+
finally {
|
620
|
+
this.workflowEventsMap.deregisterCallback(cbr);
|
621
|
+
if (crh)
|
622
|
+
this.cancelWakeupMap.deregisterCallback(crh);
|
623
|
+
}
|
518
624
|
}
|
519
625
|
// Record the output if it is inside a workflow.
|
520
626
|
if (callerWorkflow) {
|
@@ -528,6 +634,17 @@ class PostgresSystemDatabase {
|
|
528
634
|
async setWorkflowStatus(workflowID, status, resetRecoveryAttempts) {
|
529
635
|
await this.recordWorkflowStatusChange(workflowID, status, { resetRecoveryAttempts });
|
530
636
|
}
|
637
|
+
setWFCancelMap(workflowID) {
|
638
|
+
if (this.runningWorkflowMap.has(workflowID)) {
|
639
|
+
this.workflowCancellationMap.set(workflowID, true);
|
640
|
+
}
|
641
|
+
this.cancelWakeupMap.callCallbacks(workflowID);
|
642
|
+
}
|
643
|
+
clearWFCancelMap(workflowID) {
|
644
|
+
if (this.workflowCancellationMap.has(workflowID)) {
|
645
|
+
this.workflowCancellationMap.delete(workflowID);
|
646
|
+
}
|
647
|
+
}
|
531
648
|
async cancelWorkflow(workflowID) {
|
532
649
|
const client = await this.pool.connect();
|
533
650
|
try {
|
@@ -546,6 +663,13 @@ class PostgresSystemDatabase {
|
|
546
663
|
finally {
|
547
664
|
client.release();
|
548
665
|
}
|
666
|
+
this.setWFCancelMap(workflowID);
|
667
|
+
}
|
668
|
+
async checkIfCanceled(workflowID) {
|
669
|
+
if (this.workflowCancellationMap.get(workflowID) === true) {
|
670
|
+
throw new error_1.DBOSWorkflowCancelledError(workflowID);
|
671
|
+
}
|
672
|
+
return Promise.resolve();
|
549
673
|
}
|
550
674
|
async resumeWorkflow(workflowID) {
|
551
675
|
const client = await this.pool.connect();
|
@@ -574,6 +698,38 @@ class PostgresSystemDatabase {
|
|
574
698
|
finally {
|
575
699
|
client.release();
|
576
700
|
}
|
701
|
+
this.clearWFCancelMap(workflowID);
|
702
|
+
}
|
703
|
+
registerRunningWorkflow(workflowID, workflowPromise) {
|
704
|
+
// Need to await for the workflow and capture errors.
|
705
|
+
const awaitWorkflowPromise = workflowPromise
|
706
|
+
.catch((error) => {
|
707
|
+
this.logger.debug('Captured error in awaitWorkflowPromise: ' + error);
|
708
|
+
})
|
709
|
+
.finally(() => {
|
710
|
+
// Remove itself from pending workflow map.
|
711
|
+
this.runningWorkflowMap.delete(workflowID);
|
712
|
+
this.workflowCancellationMap.delete(workflowID);
|
713
|
+
});
|
714
|
+
this.runningWorkflowMap.set(workflowID, awaitWorkflowPromise);
|
715
|
+
}
|
716
|
+
async awaitRunningWorkflows() {
|
717
|
+
if (this.runningWorkflowMap.size > 0) {
|
718
|
+
this.logger.info('Waiting for pending workflows to finish.');
|
719
|
+
await Promise.allSettled(this.runningWorkflowMap.values());
|
720
|
+
}
|
721
|
+
if (this.workflowEventsMap.map.size > 0) {
|
722
|
+
this.logger.warn('Workflow events map is not empty - shutdown is not clean.');
|
723
|
+
//throw new Error('Workflow events map is not empty - shutdown is not clean.');
|
724
|
+
}
|
725
|
+
if (this.notificationsMap.map.size > 0) {
|
726
|
+
this.logger.warn('Message notification map is not empty - shutdown is not clean.');
|
727
|
+
//throw new Error('Message notification map is not empty - shutdown is not clean.');
|
728
|
+
}
|
729
|
+
if (this.workflowStatusMap.map.size > 0) {
|
730
|
+
this.logger.warn('Workflow status map is not empty - shutdown is not clean.');
|
731
|
+
//throw new Error('Workflow status map is not empty - shutdown is not clean.');
|
732
|
+
}
|
577
733
|
}
|
578
734
|
async getWorkflowStatus(workflowID, callerID, callerFN) {
|
579
735
|
const internalStatus = await this.getWorkflowStatusInternal(workflowID, callerID, callerFN);
|
@@ -610,8 +766,8 @@ class PostgresSystemDatabase {
|
|
610
766
|
queueName: rows[0].queue_name || undefined,
|
611
767
|
authenticatedUser: rows[0].authenticated_user,
|
612
768
|
assumedRole: rows[0].assumed_role,
|
613
|
-
authenticatedRoles:
|
614
|
-
request:
|
769
|
+
authenticatedRoles: JSON.parse(rows[0].authenticated_roles),
|
770
|
+
request: JSON.parse(rows[0].request),
|
615
771
|
executorId: rows[0].executor_id,
|
616
772
|
createdAt: Number(rows[0].created_at),
|
617
773
|
updatedAt: Number(rows[0].updated_at),
|
@@ -625,34 +781,79 @@ class PostgresSystemDatabase {
|
|
625
781
|
}, exports.DBOS_FUNCNAME_GETSTATUS, callerID, callerFN);
|
626
782
|
return sv ? JSON.parse(sv) : null;
|
627
783
|
}
|
628
|
-
async awaitWorkflowResult(workflowID,
|
629
|
-
const
|
630
|
-
|
784
|
+
async awaitWorkflowResult(workflowID, timeoutSeconds, callerID, timerFuncID) {
|
785
|
+
const timeoutms = timeoutSeconds !== undefined ? timeoutSeconds * 1000 : undefined;
|
786
|
+
let finishTime = timeoutms !== undefined ? Date.now() + timeoutms : undefined;
|
631
787
|
while (true) {
|
632
|
-
|
633
|
-
|
634
|
-
|
635
|
-
|
636
|
-
|
788
|
+
let resolveNotification;
|
789
|
+
const statusPromise = new Promise((resolve) => {
|
790
|
+
resolveNotification = resolve;
|
791
|
+
});
|
792
|
+
const irh = this.workflowStatusMap.registerCallback(workflowID, (_res) => {
|
793
|
+
resolveNotification();
|
794
|
+
});
|
795
|
+
const crh = callerID
|
796
|
+
? this.cancelWakeupMap.registerCallback(callerID, (_res) => {
|
797
|
+
resolveNotification();
|
798
|
+
})
|
799
|
+
: undefined;
|
800
|
+
try {
|
801
|
+
if (callerID)
|
802
|
+
await this.checkIfCanceled(callerID);
|
803
|
+
try {
|
804
|
+
const { rows } = await this.pool.query(`SELECT status, output, error FROM ${dbos_executor_1.DBOSExecutor.systemDBSchemaName}.workflow_status WHERE workflow_uuid=$1`, [workflowID]);
|
805
|
+
if (rows.length > 0) {
|
806
|
+
const status = rows[0].status;
|
807
|
+
if (status === workflow_1.StatusString.SUCCESS) {
|
808
|
+
return { res: rows[0].output };
|
809
|
+
}
|
810
|
+
else if (status === workflow_1.StatusString.ERROR) {
|
811
|
+
return { err: rows[0].error };
|
812
|
+
}
|
813
|
+
else if (status === workflow_1.StatusString.CANCELLED) {
|
814
|
+
return { cancelled: true };
|
815
|
+
}
|
816
|
+
else {
|
817
|
+
// Status is not actionable
|
818
|
+
}
|
819
|
+
}
|
637
820
|
}
|
638
|
-
|
639
|
-
|
821
|
+
catch (e) {
|
822
|
+
const err = e;
|
823
|
+
this.logger.error(`Exception from system database: ${err}`);
|
824
|
+
throw err;
|
640
825
|
}
|
641
|
-
|
642
|
-
|
643
|
-
|
644
|
-
|
645
|
-
|
826
|
+
const ct = Date.now();
|
827
|
+
if (finishTime && ct > finishTime)
|
828
|
+
return undefined; // Time's up
|
829
|
+
let timeoutPromise = Promise.resolve();
|
830
|
+
let timeoutCancel = () => { };
|
831
|
+
if (timerFuncID !== undefined && callerID !== undefined && timeoutms !== undefined) {
|
832
|
+
const { promise, cancel, endTime } = await this.durableSleepmsInternal(callerID, timerFuncID, timeoutms, this.dbPollingIntervalMs);
|
833
|
+
finishTime = endTime;
|
834
|
+
timeoutPromise = promise;
|
835
|
+
timeoutCancel = cancel;
|
646
836
|
}
|
647
837
|
else {
|
648
|
-
|
838
|
+
let poll = finishTime ? finishTime - ct : this.dbPollingIntervalMs;
|
839
|
+
poll = Math.min(this.dbPollingIntervalMs, poll);
|
840
|
+
const { promise, cancel } = (0, utils_1.cancellableSleep)(poll);
|
841
|
+
timeoutPromise = promise;
|
842
|
+
timeoutCancel = cancel;
|
843
|
+
}
|
844
|
+
try {
|
845
|
+
await Promise.race([statusPromise, timeoutPromise]);
|
846
|
+
}
|
847
|
+
finally {
|
848
|
+
timeoutCancel();
|
649
849
|
}
|
650
850
|
}
|
651
|
-
|
652
|
-
|
851
|
+
finally {
|
852
|
+
this.workflowStatusMap.deregisterCallback(irh);
|
853
|
+
if (crh)
|
854
|
+
this.cancelWakeupMap.deregisterCallback(crh);
|
653
855
|
}
|
654
856
|
}
|
655
|
-
return undefined;
|
656
857
|
}
|
657
858
|
/* BACKGROUND PROCESSES */
|
658
859
|
/**
|
@@ -663,15 +864,30 @@ class PostgresSystemDatabase {
|
|
663
864
|
this.notificationsClient = await this.pool.connect();
|
664
865
|
await this.notificationsClient.query('LISTEN dbos_notifications_channel;');
|
665
866
|
await this.notificationsClient.query('LISTEN dbos_workflow_events_channel;');
|
867
|
+
await this.notificationsClient.query('LISTEN dbos_workflow_status_channel;');
|
666
868
|
const handler = (msg) => {
|
869
|
+
if (!this.shouldUseDBNotifications)
|
870
|
+
return; // Testing parameter
|
667
871
|
if (msg.channel === 'dbos_notifications_channel') {
|
668
|
-
if (msg.payload
|
669
|
-
this.notificationsMap
|
872
|
+
if (msg.payload) {
|
873
|
+
this.notificationsMap.callCallbacks(msg.payload);
|
670
874
|
}
|
671
875
|
}
|
672
|
-
else {
|
673
|
-
if (msg.payload
|
674
|
-
this.workflowEventsMap
|
876
|
+
else if (msg.channel === 'dbos_workflow_events_channel') {
|
877
|
+
if (msg.payload) {
|
878
|
+
this.workflowEventsMap.callCallbacks(msg.payload);
|
879
|
+
}
|
880
|
+
}
|
881
|
+
else if (msg.channel === 'dbos_workflow_status_channel') {
|
882
|
+
if (msg.payload) {
|
883
|
+
const notif = JSON.parse(msg.payload);
|
884
|
+
this.workflowStatusMap.callCallbacks(notif.wfid, notif);
|
885
|
+
if (notif.status === workflow_1.StatusString.CANCELLED) {
|
886
|
+
this.setWFCancelMap(notif.wfid);
|
887
|
+
}
|
888
|
+
else {
|
889
|
+
this.clearWFCancelMap(notif.wfid);
|
890
|
+
}
|
675
891
|
}
|
676
892
|
}
|
677
893
|
};
|
@@ -868,7 +1084,7 @@ class PostgresSystemDatabase {
|
|
868
1084
|
}
|
869
1085
|
async dequeueWorkflow(workflowId, queue) {
|
870
1086
|
if (queue.rateLimit) {
|
871
|
-
const time =
|
1087
|
+
const time = Date.now();
|
872
1088
|
await this.pool.query(`
|
873
1089
|
UPDATE ${dbos_executor_1.DBOSExecutor.systemDBSchemaName}.workflow_queue
|
874
1090
|
SET completed_at_epoch_ms = $2
|
@@ -883,7 +1099,7 @@ class PostgresSystemDatabase {
|
|
883
1099
|
}
|
884
1100
|
}
|
885
1101
|
async findAndMarkStartableWorkflows(queue, executorID, appVersion) {
|
886
|
-
const startTimeMs =
|
1102
|
+
const startTimeMs = Date.now();
|
887
1103
|
const limiterPeriodMS = queue.rateLimit ? queue.rateLimit.periodSec * 1000 : 0;
|
888
1104
|
const claimedIDs = [];
|
889
1105
|
await this.knexDB.transaction(async (trx) => {
|