ScriptEval
The Do It All Swiss Army Knife Valve
Last updated
The Do It All Swiss Army Knife Valve
Last updated
Valve for evaluating scripts using the Java Scripting API (javax.script) and GraalJS/GraalVM.
Type of script supported (JavaScript/ECMA, Python, Ruby etc) is depending on the script engine used. By default this valve (and the examples) uses the graal.js
engine with support for JavaScript.
For more information, see:
Valve name: ScriptEval
Name | Description | Default value | Mandatory | Expanded |
---|---|---|---|---|
During script evaluation the following objects are available in the script context:
Name | Description |
---|---|
Request, state and session is also available through Flow
Pipe request parameters are accessed using the request
object in script context:
Flow state can be accessed using the flow
or the state
script context object
Logging in scripts can be done using the standard console object:
or using the Fortified Logging API Logger object available in script context:
Bad script syntax result in a syntax error in the log (WARN
) and a flow failure.
A syntax error typically looks like this and contains a location, description and the bad line:
To access java types in script use:
or (backwards-compatible syntax):
For more information regarding script interoperability with java, see: https://www.graalvm.org/reference-manual/js/JavaInteroperability/
Script engine log can be configured using the following system property:
engine
The script engine to use.
"graal.js"
source
The script to evaluate (Mandatory unless config.path is configured)
path
Path to script to evaluate.
flow
The current Flow
(Type: fortified.pipes.api.Flow
)
log
The current valve logger
(Type: fortified.platform.logging.Logger
)
request
The current request (JS)
state
The current Flow state
(Type: java.util.Map<String, Object>
)
session
The current Session
(Type: fortified.pipes.api.Session
)