Skip to content

Be able to abort long running executions #147

@nikku

Description

@nikku

Is your feature request related to a problem? Please describe

FEEL expressions can easily cause complexity explosion, leading to excessive run-time. The library should allow users to define guardrails, so that evaluation can be aborted.

In most cases, FEEL expressions are user-provided. The interpreter should encourage it's safe use. The alternative is that, due to the nature of JavaScript, the embedding environment simply dies - the browser tab crashes (for web embedding) or the node process runs out of memory.

Example 1 - looping over huge collection

for i in 1..10000 return i+5

Example 2 - cross join causing complexity explosion

for a in 1..50, b in 1..50, c in 1..50, d in 1..5 return ...

Describe the solution you'd like

  • As a user I can abort an execution, i.e. after a specific amount of time; this could be done through, i.e. an AbortSignal

Describe alternatives you've considered

  • Instead of giving users control the library could enforce basic safe guards.

Additional context

Related to camunda/feel-scala#823

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions