elsa-workflows / elsa-workflows/elsa-core

BPMN W34: elements inside subprocesses cannot be edited through the document endpoints

Open
#8,076 0 comments 0 reactions 0 assignees View on GitHub
elsa 3 enhancement prio low triaged workflow tooling
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.