Description
Consolidated, deduplicated tracking list of all work remaining to close the Workflow engine epic (#16404). Closed sub-issues are already done and excluded here. Check items off as we go — this list is also the input for re-running the gap analysis.
Source issues are linked per item. Where multiple issues cover the same work, all are linked.
A. Backend — engine & service-task behavior
B. Service-task idempotency / correctness
C. Frontend
D. Config cleanup & migration tooling
E. Build / release & code hygiene
F. Open decisions that gate shipping (decide, then possibly implement)
G. Manual testing & app verification
Description
Consolidated, deduplicated tracking list of all work remaining to close the Workflow engine epic (#16404). Closed sub-issues are already done and excluded here. Check items off as we go — this list is also the input for re-running the gap analysis.
Source issues are linked per item. Where multiple issues cover the same work, all are linked.
A. Backend — engine & service-task behavior
serviceTask.Execute()signal "succeeded, don't auto-advance" and make theNext()loop honour it. (Implicit waiting and error handling in service tasks #18935)AbortProcessNextfires, write error code/message/details onto the instance/process state (today it only lives in the sync HTTP response and is lost on refresh), and surface it viaAppProcessState/ProcessStateEnricher. (Implicit waiting and error handling in service tasks #18935)process/nextmethodology now that running process-next from business logic has changed. (Ensure FiksArkiv flows work with new workflow engine #17970)InstanceDataMutatorcommits — commit changes as batch operations instead of per-element; requires new Storage endpoint(s), needs coordination with #data. (Handover notes: app-lib #19032)B. Service-task idempotency / correctness
PdfServiceTask+SubformPdfServiceTask). (Ensure service task idempotency #18888)MessageAlreadyExistsException, status-querying eFormidling, or a per-workflow idempotency key, then implement. (Analysis: Analysis: eFormidling, handle duplicate message app-lib-dotnet#854; implementation: Ensure service task idempotency #18888)RemoveDataElementsGeneratedFromTask, but the handover note says to remove it (per feat: Move task data cleanup responsibility to Storage app-lib-dotnet#1750). Reconcile before either lands.C. Frontend
useBackoff()and navigates forward when the engine advances. (Implicit waiting and error handling in service tasks #18935)ProcessWrapper.tsxandPdfWrapper.tsx. (Implicit waiting and error handling in service tasks #18935)D. Config cleanup & migration tooling
applicationmetadata.json#19012, Deal with migration script v8 -> v9 #19081)enablePdfCreationfrom theDataTypemodel; switch app-template to the service-task PDF approach; update docs. (Remove legacy PDF toggle fromapplicationmetadata.json#19012) (implemented in feat: Add applicationmetadata analyzer, enforce deprecation ofenablePdfCreationand legacyeFormidlingconfig #19304)applicationmetadata.json/Applicationmodel (alongside the PDF removal above). (Remove legacy PDF toggle fromapplicationmetadata.json#19012) (implemented in feat: Add applicationmetadata analyzer, enforce deprecation ofenablePdfCreationand legacyeFormidlingconfig #19304)applicationmetadata.json. Start with a few relevant checks related to deprecations 👆, add more later if desired. (Handover notes: app-lib #19032) (implemented in feat: Add applicationmetadata analyzer, enforce deprecation ofenablePdfCreationand legacyeFormidlingconfig #19304)E. Build / release & code hygiene
F. Open decisions that gate shipping (decide, then possibly implement)
npgsql, impact on pool size. (Workload identity for db connection pool? #18544)G. Manual testing & app verification