Skip to content

feat: Node Details panel - #9148

Open
qoomak wants to merge 1 commit into
stagingfrom
working
Open

qoomak wants to merge 1 commit into
stagingfrom
working

Conversation

@qoomak

@qoomak qoomak commented Mar 27, 2026

Copy link
Copy Markdown
Member

Summary

  • Adds a new Node Details sidebar panel displaying key parameters of a selected node without opening the node editor
  • Panel is behind feature flag scenario.showNodeDetailsPanel in __settings
  • Supported node types: Filter (condition + true/false paths), Switch/Choice (conditions with target node names), Variable/MapVariable, Source/Sink (Kafka topic, always shown even when empty), Enricher/Processor (url/endpoint; OpenAPI: service id + all dynamic params), CustomNode (aggregate-tumbling/sliding/session, union-memo, delay, decision-table), FragmentInput (ref + input params + output vars)
  • Value formatting: ISO 8601 durations, SpEL enum expressions (SCREAMING_SNAKE_CASE and PascalCase), SpEL string literals, FixedValues labels from component definitions

Test plan

  • Enable scenario.showNodeDetailsPanel in __settings
  • Select a Kafka source/sink — topic shown even when empty
  • Select an HTTP enricher — url shown, method hidden
  • Select an OpenAPI enricher — service id + all params shown
  • Select a Filter node — condition + true/false paths with target node names
  • Select a Switch/Choice node — conditions with target node names
  • Select aggregate-tumbling/sliding/session — correct params shown
  • Select a FragmentInput — ref + input params + output variable names
  • Unit tests: jest --testPathPattern=nodeDetailsUtils (41 tests)

Adds a sidebar panel displaying the most important parameters of a selected
node without opening the node editor. Panel is behind feature flag
scenario.showNodeDetailsPanel in __settings.

Supported node types:
- Filter: condition + true/false paths with target node names
- Switch/Choice: outgoing conditions with target node names
- Variable/MapVariable: output variable + value
- Source (Kafka): topic always shown even when empty; HTTP: url
- Sink (Kafka): topic always shown even when empty
- Enricher/Processor: url or endpoint; OpenAPI: service id + all params
- CustomNode: type-specific params via node.nodeType
  - aggregate-tumbling: emitWhen, windowLength, groupBy, key, outputVar
  - aggregate-sliding: emitWhen, emitWhenEventLeft, windowLength, groupBy, key, outputVar
  - aggregate-session: emitWhen, endSessionCondition, sessionTimeout, groupBy, key, outputVar
  - union-memo: key, value, stateTimeout, groupBy
  - delay: key, delay, groupBy
  - decision-table: matchCondition, outputVar
- FragmentInput: ref id + input parameters + output variable names

Value formatting: ISO 8601 durations, SpEL enum expressions (SCREAMING_SNAKE_CASE
and PascalCase), SpEL string literals, FixedValues labels from component definitions.
@github-actions github-actions Bot added ui client client main fe labels Mar 27, 2026
@qoomak
qoomak requested a review from JulianWielga March 27, 2026 11:30
@github-actions

Copy link
Copy Markdown
Contributor

🔴 Cypress snapshot PR created: #9149
Merge it into your branch to update snapshots.
⚠️ Be careful! Snapshot changes are not necessarily the cause of the error. Check the logs.

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

Labels

client client main fe ui

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant