Skip to content

[backend/frontend] feat(chaining): output propagation to local states based on event conditions (#4824)#5703

Merged
camrrx merged 6 commits intorelease/currentfrom
issue/4824-condition-event-localpool
May 7, 2026
Merged

[backend/frontend] feat(chaining): output propagation to local states based on event conditions (#4824)#5703
camrrx merged 6 commits intorelease/currentfrom
issue/4824-condition-event-localpool

Conversation

@camrrx
Copy link
Copy Markdown
Member

@camrrx camrrx commented May 6, 2026

Proposed changes

On backend side :

  • Output propagation: action outputs are now propagated to local pools of steps whose event conditions are satisfied.
  • WorkflowStateService:
  • saveToEntries now returns extracted values grouped by type.
  • New propagateToLocalPools method: Identifies relevant conditions, Evaluates filters (AND/OR/EQ), Populates the corresponding step local states
  • ConditionRepository: New method to fetch relevant filter conditions by workflow and key types

On frontend side :

  • MAPPER conditions are excluded from workflow events (no more empty/invalid nodes in the graph)
  • Mapper conditions handling: Extracted into a dedicated DTO and exposed via the API, Added to StepOutput
  • UI : Existing mapper conditions are now properly preloaded and visible when editing a step

Testing Instructions

  1. Create chaining simulation
  2. On the logic tab : add 2 actions and one event
    2.1. First action : "whoami" who its output is a text
    2.2. Second action : "echo #{input}" with text as input
    2.3. Event who is linked to the second action "text=toto" (toto should match the actual output of the whoami action)
  3. Launch the simulation
  4. Check workflow_states
  • In the global pool (no step_template_id), you should see all action outputs
  • After whoami completes successfully:
  • A new entry should appear with a step_template_id (local pool)
  • This entry contains the output of whoami only if it matches the event condition (text = toto)

Related issues

Checklist

  • I consider the submitted work as finished
  • I tested the code for its functionality
  • I wrote test cases for the relevant uses case
  • I added/update the relevant documentation (either on github or on notion)
  • Where necessary I refactored code to improve the overall quality
  • For bug fix -> I implemented a test that covers the bug

Further comments

If this is a relatively large or complex change, kick off the discussion by explaining why you chose the solution you did and what alternatives you considered, etc...

@github-actions github-actions Bot added the filigran team use to identify PR from the Filigran team label May 6, 2026
Comment thread openaev-api/src/main/java/io/openaev/api/chaining/ConditionApi.java Outdated
Comment thread openaev-api/src/main/java/io/openaev/api/chaining/StepMapper.java
Comment thread openaev-api/src/main/java/io/openaev/api/chaining/StepMapper.java
Comment thread openaev-api/src/main/java/io/openaev/service/chaining/WorkflowStateService.java Outdated
@codecov
Copy link
Copy Markdown

codecov Bot commented May 6, 2026

Codecov Report

❌ Patch coverage is 12.14953% with 94 lines in your changes missing coverage. Please review.
✅ Project coverage is 40.34%. Comparing base (d68769c) to head (499a2a8).

Files with missing lines Patch % Lines
...openaev/service/chaining/WorkflowStateService.java 7.22% 76 Missing and 1 partial ⚠️
.../main/java/io/openaev/api/chaining/StepMapper.java 42.85% 8 Missing ⚠️
...ront/src/admin/components/chaining/logic/Logic.tsx 0.00% 5 Missing ⚠️
.../io/openaev/service/chaining/ConditionService.java 0.00% 4 Missing ⚠️
Additional details and impacted files
@@                  Coverage Diff                  @@
##             release/current    #5703      +/-   ##
=====================================================
- Coverage              40.40%   40.34%   -0.06%     
- Complexity              6111     6112       +1     
=====================================================
  Files                   2123     2123              
  Lines                  56978    57080     +102     
  Branches                7229     7246      +17     
=====================================================
+ Hits                   23020    23029       +9     
- Misses                 32605    32697      +92     
- Partials                1353     1354       +1     
Flag Coverage Δ
backend 64.20% <12.74%> (-0.16%) ⬇️
frontend 1.42% <0.00%> (-0.01%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Comment thread openaev-front/src/utils/api-types.d.ts
@camrrx camrrx changed the title [backend/frontend] feat(chaining): add in the local pool the needed entries (#4824) [backend/frontend] feat(chaining): putput propagation to local states based on event conditions (#4824) May 6, 2026
@camrrx camrrx force-pushed the issue/4824-condition-event-localpool branch from ea7848f to 0c91d08 Compare May 6, 2026 12:46
@camrrx camrrx changed the title [backend/frontend] feat(chaining): putput propagation to local states based on event conditions (#4824) [backend/frontend] feat(chaining): output propagation to local states based on event conditions (#4824) May 6, 2026
@savacano28
Copy link
Copy Markdown
Contributor

Code OK

@camrrx camrrx force-pushed the issue/4824-condition-event-localpool branch from 64c1689 to ae913b8 Compare May 6, 2026 15:39
@camrrx camrrx merged commit 3aefe6a into release/current May 7, 2026
34 of 35 checks passed
@camrrx camrrx deleted the issue/4824-condition-event-localpool branch May 7, 2026 07:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

filigran team use to identify PR from the Filigran team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants