-
Notifications
You must be signed in to change notification settings - Fork 481
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
The editor is able to distinguish Zeebe and Camunda diagrams #2029
Comments
Things that came into my mind when thinking about this topic
I'm not 100% sure but I can remember that from the BPMN spec it would be allowed that multiple processes in a diagram could differ in that aspect. But I'm pretty sure that our Engines would never support it so we might ignore it and can save this metadata on the
What we always could do is to misuse the <bpmn:definitions>
<documentation id="executionMetadata">CamundaBPM,7.15</documentation>
<bpmn:process id="Process_0pt2xzy" isExecutable="true">
<bpmn:startEvent id="StartEvent_1" />
</bpmn:process>
</bpmn:definitions> <bpmn:definitions>
<documentation id="executionPlatform">CamundaBPM</documentation>
<documentation id="executionPlatformVersion">7.15</documentation>
<bpmn:process id="Process_0pt2xzy" isExecutable="true">
<bpmn:startEvent id="StartEvent_1" />
</bpmn:process>
</bpmn:definitions> |
Yes, we should. Everything else will become super hard to reason about by anyone, the app, the user. |
Simple CodeSandbox on how to use our existing namespace util to detect Zeebe diagrams: https://codesandbox.io/s/detect-namespace-d7cn9?file=/src/index.js (the same way we do to detect DMN 1.1 & DMN 1.2 files) import { findUsages } from '../util/namespace';
const ZEEBE_NS = 'http://camunda.org/schema/zeebe/1.0';
const isZeebe = findUsages(xml, ZEEBE_NS); |
As you look into this issue, please keep in mind that detection via the namespace may not be enough. These do not allow us to deduce a specific Camunda platform or Zeebe or Cloud version:
|
Yeah absolutely. I am just playing around with namespace detection due to the fallback scenario
|
Summary of decisions taken during the meeting with @pinussilvestrus and @nikku:
Thank you for your help. |
When you open a file with no contents but with a known extension (e.g. |
What I've accomplished so far:
What is missing:
We also need to make a decision what namespace prefix we want to use: https://github.com/camunda/modeling-moddle. |
Some (quick) investigations regarding
Since the Experiments went into: https://github.com/camunda/camunda-modeler/tree/base-bpmn-editor tldr: It's doable, but needs a bit of refactoring. Generally, it seems okay if we would go with separate/independent editors for the first iteration, and live with the duplicated code. One another point that makes it difficult to re-use the same BpmnEditor: We decided to ignore plugins for the Zeebe Tab completely. Let's discuss this next week with @barmac and others. |
Summary of my work on top of #2029 (comment) Pull Request #2099
2029-distinguish-camunda-and-zeebe-diagrams...2029-cloud-bpmn-tab
https://github.com/camunda/camunda-modeler/tree/2029-distinguish-camunda-and-zeebe-diagrams
Let's sync with @barmac and do the handover once he's back 👍 |
Closes #2029 Co-authored-by: Niklas Kiefer <niklas.kiefer@camunda.com>
Closes #2029 Co-authored-by: Niklas Kiefer <niklas.kiefer@camunda.com>
Closes #2029 Co-authored-by: Niklas Kiefer <niklas.kiefer@camunda.com>
Closes #2029 Co-authored-by: Niklas Kiefer <niklas.kiefer@camunda.com>
Closes #2029 Co-authored-by: Niklas Kiefer <niklas.kiefer@camunda.com>
What should we do?
In order to have a unified modeler, we must find a robust way to tell apart Zeebe and Camunda diagrams. That mechanism SHALL be independent of whether an implementation property/namespace exists on the document.
Camunda BPM, v7.15
,Camunda Cloud, xxx
,Zeebe, v0.21.0
)camunda
namespace are likely targeting a current (or previous) version of Camunda BPM. 3️⃣Why should we do it?
This is a core capability needed for a unified Camunda / Zeebe modeler
Things to investigate
Context
child of https://github.com/bpmn-io/internal-docs/issues/216
The text was updated successfully, but these errors were encountered: