cwl_utils.sandboxjs
Safe execution of CWL Expressions in a NodeJS sandbox.
Attributes
Default number of seconds to wait while running a javascript engine. |
|
Classes
Helper class that provides a standard way to create an ABC using |
|
Helper class that provides a standard way to create an ABC using |
Functions
|
|
|
|
|
|
|
|
|
|
|
Run a javascript text. |
|
Module Contents
- cwl_utils.sandboxjs.default_timeout: float = 20
Default number of seconds to wait while running a javascript engine.
- cwl_utils.sandboxjs.seg_symbol = '\\w+'
- cwl_utils.sandboxjs.seg_single = "\\['([^']|\\\\')+'\\]"
- cwl_utils.sandboxjs.seg_double = '\\["([^"]|\\\\")+"\\]'
- cwl_utils.sandboxjs.seg_index = '\\[[0-9]+\\]'
- cwl_utils.sandboxjs.segments = '(\\.\\w+|\\[\'([^\']|\\\\\')+\'\\]|\\["([^"]|\\\\")+"\\]|\\[[0-9]+\\])'
- cwl_utils.sandboxjs.segment_re
- cwl_utils.sandboxjs.param_str = '\\((\\w+)(\\.\\w+|\\[\'([^\']|\\\\\')+\'\\]|\\["([^"]|\\\\")+"\\]|\\[[0-9]+\\])*\\)$'
- cwl_utils.sandboxjs.param_re
- cwl_utils.sandboxjs.code_fragment_to_js(jscript, jslib='')
- Parameters:
jscript (str)
jslib (str)
- Return type:
str
- cwl_utils.sandboxjs.linenum(fn)
- Parameters:
fn (str)
- Return type:
str
- cwl_utils.sandboxjs.stdfmt(data)
- Parameters:
data (str)
- Return type:
str
- class cwl_utils.sandboxjs.JSEngine
Bases:
digraph inheritancee622ba3f10 { bgcolor=transparent; rankdir=LR; size="8.0, 12.0"; "ABC" [fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",tooltip="Helper class that provides a standard way to create an ABC using"]; "JSEngine" [URL="#cwl_utils.sandboxjs.JSEngine",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "ABC" -> "JSEngine" [arrowsize=0.5,style="setlinewidth(0.5)"]; }abc.ABCHelper class that provides a standard way to create an ABC using inheritance.
- abstractmethod eval(scan, jslib='', timeout=default_timeout, force_docker_pull=False, debug=False, js_console=False, container_engine='docker', **kwargs)
- Parameters:
scan (str)
jslib (str)
timeout (float)
force_docker_pull (bool)
debug (bool)
js_console (bool)
container_engine (str)
kwargs (Any)
- Return type:
cwl_utils.types.CWLOutputType | collections.abc.Awaitable[cwl_utils.types.CWLOutputType]
- abstractmethod regex_eval(parsed_string, remaining_string, current_value, **kwargs)
- Parameters:
parsed_string (str)
remaining_string (str)
current_value (cwl_utils.types.CWLOutputType)
kwargs (Any)
- Return type:
cwl_utils.types.CWLOutputType | collections.abc.Awaitable[cwl_utils.types.CWLOutputType]
- class cwl_utils.sandboxjs.NodeJSEngine(have_node_slim=False, minimum_node_version_str='0.10.26', process_finished_str='r1cepzbhUTxtykz5XTC4\n')
Bases:
digraph inheritanceb6f8dc2911 { bgcolor=transparent; rankdir=LR; size="8.0, 12.0"; "ABC" [fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",tooltip="Helper class that provides a standard way to create an ABC using"]; "JSEngine" [URL="#cwl_utils.sandboxjs.JSEngine",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "ABC" -> "JSEngine" [arrowsize=0.5,style="setlinewidth(0.5)"]; "NodeJSEngine" [URL="#cwl_utils.sandboxjs.NodeJSEngine",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; "JSEngine" -> "NodeJSEngine" [arrowsize=0.5,style="setlinewidth(0.5)"]; }JSEngineHelper class that provides a standard way to create an ABC using inheritance.
- Parameters:
have_node_slim (bool)
minimum_node_version_str (str)
process_finished_str (str)
- localdata
- have_node_slim: bool = False
- minimum_node_version_str: str = '0.10.26'
- process_finished_str: str = Multiline-String
Show Value
"""r1cepzbhUTxtykz5XTC4 """
- processes_to_kill: Deque[subprocess.Popen[str]]
- __del__()
- Return type:
None
- check_js_threshold_version(working_alias)
Check if the nodeJS engine version on the system with the allowed minimum version.
https://github.com/nodejs/node/blob/master/CHANGELOG.md#nodejs-changelog
- Parameters:
working_alias (str)
- Return type:
bool
- exec_js_process(js_text, timeout=default_timeout, js_console=False, context=None, force_docker_pull=False, container_engine='docker')
Run a javascript text.
- Parameters:
timeout (float) – Max number of seconds to wait.
js_text (str)
js_console (bool)
context (str | None)
force_docker_pull (bool)
container_engine (str)
- Returns:
A tuple of the return code, stdout, and stderr of the javascript engine invocation.
- Return type:
tuple[int, str, str]
- new_js_proc(js_text, force_docker_pull=False, container_engine='docker')
Return a subprocess ready to submit javascript to.
- Parameters:
js_text (str)
force_docker_pull (bool)
container_engine (str)
- Return type:
subprocess.Popen[str]
- eval(scan, jslib='', timeout=default_timeout, force_docker_pull=False, debug=False, js_console=False, container_engine='docker', **kwargs)
- Parameters:
scan (str)
jslib (str)
timeout (float)
force_docker_pull (bool)
debug (bool)
js_console (bool)
container_engine (str)
kwargs (Any)
- Return type:
cwl_utils.types.CWLOutputType
- regex_eval(parsed_string, remaining_string, current_value, **kwargs)
- Parameters:
parsed_string (str)
remaining_string (str)
current_value (cwl_utils.types.CWLOutputType)
kwargs (Any)
- Return type:
cwl_utils.types.CWLOutputType
- cwl_utils.sandboxjs.check_js_threshold_version(*args, **kwargs)
- Parameters:
args (Any)
kwargs (Any)
- Return type:
bool
- cwl_utils.sandboxjs.exec_js_process(*args, **kwargs)
Run a javascript text.
- Parameters:
timeout – Max number of seconds to wait.
args (Any)
kwargs (Any)
- Returns:
A tuple of the return code, stdout, and stderr of the javascript engine invocation.
- Return type:
tuple[int, str, str]
- cwl_utils.sandboxjs.new_js_proc(*args, **kwargs)
- Parameters:
args (Any)
kwargs (Any)
- Return type:
subprocess.Popen[str]