Skip to content

Conversation

@mathias-vandaele
Copy link
Contributor

This pull request introduces comprehensive documentation for Cluster Variables in Camunda Modeler FEEL expressions. The new docs explain the concept, benefits, scope resolution, usage patterns, collision prevention, and provide practical examples for real-world scenarios. These changes are designed to help both new and experienced users understand how to leverage cluster variables for centralized, multi-tenant, and environment-specific configuration in BPMN processes.

Cluster Variable Concepts and Usage

  • Added detailed explanation of scope levels (GLOBAL and TENANT), access namespaces (camunda.vars.cluster, camunda.vars.tenant, camunda.vars.env), supported variable types, and resolution priority.
  • Provided a quick start guide for creating and using cluster variables, including common patterns for environment config, feature flags, and thresholds.
  • Documented how to access cluster variables in FEEL expressions, with examples for simple, nested, and advanced usage in BPMN elements.

Scope Resolution and Collision Handling

  • Explained the three-level hierarchy (Process, Tenant, Global), scope-specific access, and multi-tenant considerations. Included debugging tips for variable resolution.
  • Added guidance on namespace collisions, including types (process variable shadowing, structural collisions), prevention strategies, and best practices for process variable naming.

Practical Examples and Use Cases

  • Included real-world examples for environment configuration, feature flags, SLA customization, and integration endpoints to illustrate how cluster variables simplify BPMN process management.

Cluster Variable Overview

  • Introduced an overview section describing the concept, key benefits, and when to use (and not use) cluster variables.

@github-actions
Copy link
Contributor

github-actions bot commented Dec 3, 2025

👋 🤖 🤔 Hello, @afgambin! Did you make your changes in all the right places?

These files were changed only in docs/. You might want to duplicate these changes in versioned_docs/version-8.8/.

  • docs/components/modeler/feel/cluster-variable/concepts.md
  • docs/components/modeler/feel/cluster-variable/examples-and-use-cases.md
  • docs/components/modeler/feel/cluster-variable/get-started.md
  • docs/components/modeler/feel/cluster-variable/namespace-collisions.md
  • docs/components/modeler/feel/cluster-variable/overview.md
  • docs/components/modeler/feel/cluster-variable/scope-and-priority.md
  • docs/components/modeler/feel/cluster-variable/usage-guide.md
  • docs/components/modeler/feel/sidebar-schema.js
  • docs/components/react-components/_modeler-card-data.js

You may have done this intentionally, but we wanted to point it out in case you didn't. You can read more about the versioning within our docs in our documentation guidelines.


### Common Usage Locations in BPMN

#### Service Task Input Mappings
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [vale] reported by reviewdog 🐶
[all.glossary] Inconsistent spelling detected. Use Service task instead of Service Task. Review the WCoE glossary - https://confluence.camunda.com/x/b5RZBw .

@afgambin afgambin self-requested a review December 4, 2025 10:30
@afgambin afgambin added component:docs Documentation improvements, including new or updated content component:modeler Issues related with Modeler project deploy Stand up a temporary docs site with this PR labels Dec 4, 2025
@afgambin afgambin moved this to 🏗 In Progress in Documentation Team Dec 4, 2025
@afgambin afgambin changed the title docs: Add cluster variable documentation docs(Modeler): Add cluster variable documentation Dec 4, 2025
@github-actions github-actions bot temporarily deployed to camunda-docs December 4, 2025 17:17 Destroyed
@github-actions github-actions bot temporarily deployed to camunda-docs December 5, 2025 15:55 Destroyed
@github-actions github-actions bot temporarily deployed to camunda-docs December 5, 2025 16:49 Destroyed
@github-actions github-actions bot temporarily deployed to camunda-docs December 5, 2025 17:20 Destroyed
@@ -0,0 +1,119 @@
---
id: cluster-variable-core-concepts
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This metadata must be added to each new file. The sidebar determines how the page appears in the left‑hand nav bar, and the id is how it’s identified internally.


Explore an understand the core concepts of cluster variables.

## Scope Levels
Copy link
Contributor

@afgambin afgambin Dec 5, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We use sentence case spelling for headings. Also, we start headings with H2 and add granularity (H3, H4, etc) as we go deeper in subsections. Please refer to our style guide for more details: https://github.com/camunda/camunda-docs/blob/main/howtos/technical-writing-styleguide.md

@@ -0,0 +1,20 @@
import IconPlayImg from "../assets/icon-play.png";
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This file is for rendering wildcards in the landing page - we may want/need to add more as I review the pending guides

@github-actions github-actions bot temporarily deployed to camunda-docs December 5, 2025 17:58 Destroyed
@@ -0,0 +1,20 @@
import IconPlayImg from "../assets/icon-play.png";
import IconAoDesignImg from "../assets/icon-docs.png";
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

type: "doc",
id: "components/modeler/feel/cluster-variable/cluster-variable-overview",
},
items: [
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Every page needs to be added to the sidebar file, so it gets indexed in the left-hand nav bar. Otherwise, it does not appear. We'll need to add the rest (still pending review)

- **Simplified deployment**: Promote processes across environments without changing process definitions.
- **Dynamic updates**: Modify configuration values without redeploying processes.

### When to use cluster variables
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like the When to and when not to, but maybe it is too long content - could you maybe reorg it using a table or any other kind of simplification? wdyt?

- Sensitive credentials requiring encryption at rest. Use secrets management.
- Large data payloads. Use external storage with references.

## Get started
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just FYI: I added two types of wildcards - the direct HTML and those based on cards

Copy link
Contributor

@afgambin afgambin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @mathias-vandaele

I started the review. I added some metadata and infra needed for the docs to run smoothly. You also created the PR from what it seems an outdated version of the docs, so I merged main to keep it up to date. There’s still a lot pending on my side - please see my comments and update things accordingly if you can. Also, check the code snippets; Copilot is suggesting some useful tips and highlighting typos to fix. I'll continue with it next week. Thanks!

@github-actions github-actions bot temporarily deployed to camunda-docs December 9, 2025 11:53 Destroyed
@github-actions github-actions bot temporarily deployed to camunda-docs December 9, 2025 12:45 Destroyed
@github-actions github-actions bot temporarily deployed to camunda-docs December 9, 2025 15:30 Destroyed
Comment on lines +11 to +14
"PAYMENT_API":{
"endpoint":"https://api.payment.prod.example.com",
"timeout_ms":5000,
"retry_count":3
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[prettier] reported by reviewdog 🐶

Suggested change
"PAYMENT_API":{
"endpoint":"https://api.payment.prod.example.com",
"timeout_ms":5000,
"retry_count":3
"PAYMENT_API": {
"endpoint": "https://api.payment.prod.example.com",
"timeout_ms": 5000,
"retry_count": 3

Comment on lines +23 to +26
"PAYMENT_API":{
"endpoint":"https://api.payment.dev.example.com",
"timeout_ms":30000,
"retry_count":1
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[prettier] reported by reviewdog 🐶

Suggested change
"PAYMENT_API":{
"endpoint":"https://api.payment.dev.example.com",
"timeout_ms":30000,
"retry_count":1
"PAYMENT_API": {
"endpoint": "https://api.payment.dev.example.com",
"timeout_ms": 30000,
"retry_count": 1


```json
{
"ENABLE_NEW_APPROVAL_FLOW":false
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[prettier] reported by reviewdog 🐶

Suggested change
"ENABLE_NEW_APPROVAL_FLOW":false
"ENABLE_NEW_APPROVAL_FLOW": false


```json
{
"ENABLE_NEW_APPROVAL_FLOW":true
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[prettier] reported by reviewdog 🐶

Suggested change
"ENABLE_NEW_APPROVAL_FLOW":true
"ENABLE_NEW_APPROVAL_FLOW": true


```json
{
"ENABLE_NEW_APPROVAL_FLOW":true
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[prettier] reported by reviewdog 🐶

Suggested change
"ENABLE_NEW_APPROVAL_FLOW":true
"ENABLE_NEW_APPROVAL_FLOW": true

Comment on lines +150 to +154
"INTEGRATIONS":{
"crm":{
"base_url":"https://crm.prod.example.com",
"api_version":"v2",
"timeout_ms":10000
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[prettier] reported by reviewdog 🐶

Suggested change
"INTEGRATIONS":{
"crm":{
"base_url":"https://crm.prod.example.com",
"api_version":"v2",
"timeout_ms":10000
"INTEGRATIONS": {
"crm": {
"base_url": "https://crm.prod.example.com",
"api_version": "v2",
"timeout_ms": 10000

Comment on lines +156 to +159
"erp":{
"base_url":"https://erp.prod.example.com",
"api_version":"v1",
"timeout_ms":15000
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[prettier] reported by reviewdog 🐶

Suggested change
"erp":{
"base_url":"https://erp.prod.example.com",
"api_version":"v1",
"timeout_ms":15000
"erp": {
"base_url": "https://erp.prod.example.com",
"api_version": "v1",
"timeout_ms": 15000

Comment on lines +161 to +164
"notification":{
"base_url":"https://notify.prod.example.com",
"api_version":"v1",
"timeout_ms":5000
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[prettier] reported by reviewdog 🐶

Suggested change
"notification":{
"base_url":"https://notify.prod.example.com",
"api_version":"v1",
"timeout_ms":5000
"notification": {
"base_url": "https://notify.prod.example.com",
"api_version": "v1",
"timeout_ms": 5000

Comment on lines +174 to +178
"INTEGRATIONS":{
"crm":{
"base_url":"https://crm.sandbox.example.com",
"api_version":"v2",
"timeout_ms":30000
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[prettier] reported by reviewdog 🐶

Suggested change
"INTEGRATIONS":{
"crm":{
"base_url":"https://crm.sandbox.example.com",
"api_version":"v2",
"timeout_ms":30000
"INTEGRATIONS": {
"crm": {
"base_url": "https://crm.sandbox.example.com",
"api_version": "v2",
"timeout_ms": 30000

```

**Benefit**: Centralize integration configuration and easily switch between environments. No newline at end of file
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[prettier] reported by reviewdog 🐶

Suggested change
**Benefit**: Centralize integration configuration and easily switch between environments.
**Benefit**: Centralize integration configuration and easily switch between environments.

@github-actions github-actions bot temporarily deployed to camunda-docs December 9, 2025 15:39 Destroyed
@github-actions
Copy link
Contributor

github-actions bot commented Dec 9, 2025

The preview environment relating to the commit 7fc6c83 has successfully been deployed. You can access it at https://preview.docs.camunda.cloud/pr-7462/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

component:docs Documentation improvements, including new or updated content component:modeler Issues related with Modeler project deploy Stand up a temporary docs site with this PR

Projects

Status: 🏗 In Progress

Development

Successfully merging this pull request may close these issues.

3 participants