Skip to content

Improve the rule component for conditional branching in flows #28596

Closed

Description

@ashanthamara

Problem

Conditional branching in flows writes its conditions with the rule component (rule-mgt), which needed more expressive conditions and stricter validation to support data-driven routing.

Proposed Solution

Rule model and evaluation (#8334)

  • A condition's value can be a list (for in / notIn) or another field, for example a claim collected in the flow compared with the one stored for the user.
  • Fields can take a qualifier, such as the claim a claim field reads.
  • A rule object can be evaluated directly, without storing it in rule management first.

Value-less operators, value input and validation (#8346)

  • New operators that check a field alone: isBlank, isNotBlank, isEmpty and isNotEmpty. A condition using one of them has no value.
  • Each operator declares what value it takes (valueInput: none, single or list), which clients use to render the value input.
  • in, notIn, isEmpty and isNotEmpty apply to multi-valued fields only.
  • Errors no longer evaluate silently to false. An unknown operator, a malformed stored condition, or a value that cannot be resolved raises an error.
  • Stricter validation when a rule is saved: value-less operators take no value, list values only with list operators, no empty list entries, and blank qualifiers are stored as none.
  • qualifier and valueFieldOptions can be declared in fields.json, and a field definition must have a value definition.

Related PRs

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions