[Feature] Continuation callbacks to avoid malicious scripts #478
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Hi would like to contribute a feature which can be used to avoid infinite recursions or scripts which can potentially be used to lock up cpu..
Approach: Since the execution was already an iterator loop a callback can be invoked to check if the user wants to proceed with the next step or cancel the execution in async evaluations.
Examples: Script like
($x:= λ($c,$n,$b){ $c=$b?$n%2:$x($c+1,$floor($n/2),$b)};$x(0,number,bitIndex))
which uses recursion to find the bit at a given position can loop infinity if wrong bit index is given like -1, since many application using jsonata use it to run user provided scripts this kind of callback will help them to track cpu time and memory as well if required thus making it a good sandbox for such things.Signed-off-by: Laukik R