elsa-workflows / elsa-workflows/elsa-core
BPMN W34: elements inside subprocesses cannot be edited through the document endpoints
- Dominant language
- C#
- Stars
- 7.9k
- Forks
- 1.5k
- Avg merge
- 15h 22m
- Merged PRs (30d)
- 114
Description
Part of #7909. The editability gap left by #8072, which took option 2.
## The gap
`GET/PUT bpmn/definitions/{id}/document` now round-trips nested scopes losslessly: the PUT restores each kept subprocess's stored body. But a client cannot edit anything *inside* a subprocess, transaction or event subprocess (elements, flows, `elsa:activityBinding`), because those bodies are not in the document. Only the subprocess element itself and nested DI layout can be edited. Studio's Performed-by panel (elsa-workflows/elsa-studio#1001) therefore cannot bind tasks inside a subprocess.
## Blocked by
https://github.com/valence-works/bpmn/issues/22. The library's `BpmnWorkBinding` has no JSON contract, so the nested bodies cannot travel in the library's own format. D4 asks for the client to hold the whole document; an Elsa-owned DTO that restates NestedProcess addressing would duplicate a `Bpmn.*` type.
## Shape, once unblocked
This is option 1 of #8072. The GET carries definitions plus bindings as one library-format payload, and the PUT accepts it back. The change must be additive for the existing Studio client, which only knows top-level `BpmnDefinitions`, and the ETag must stay strong for whichever representation is served. Studio then lifts its subprocess save refusal and lets the Performed-by panel edit nested tasks.
Contributor guide
Research direction
Start by reading the existing bpmn/definitions/{id}/document GET/PUT behavior and the BpmnWorkBinding contract described in the issue. Review blocked issue #22 and option 1 of #8072 before deciding how nested bodies should be represented. Done means the additive payload round-trips nested definitions and bindings, preserves the strong ETag, and remains compatible with the existing top-level BpmnDefinitions client.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- api, backend-api-design
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100