Find a function
The list holds the functions of the organization and the built-in presets. Three views at the head of the list narrow it, each with its count:
The search matches the name of a function and the description of a preset. Click a function of the
organization to open it in the workbench.
Languages
Both VRL and JavaScript run inside the MoleSignal binary. Neither needs a setting or an extra install.
MoleSignal validates and compiles a function during save. Invalid source does not become the active
function.
The Functions workbench exposes VRL and JavaScript. LLM functions are an advanced API
workflow: the function source is the system instruction, the event is the model input, and
params_schema.output_field selects the output field (default _llm_eval). Every matching event
triggers a model call, so the setting [functions].llm_eval_enabled stays false by default. See
Configuration.
Built-in presets
Every organization sees these read-only VRL functions:
A preset row carries the Built-in tag and its description, in the interface language of the
signed-in user. Click the row to read the source.
A preset cannot be edited. To change one, select Start from this on the row or in the preset
panel. The workbench opens a new function with the language and source of the preset, named
<preset>-copy. Saving creates a function of the organization and leaves the preset as it is.
Write and test a function
The workbench has three parts:- the name and the language of the function;
- Source, the editor, with the validation state of the source beside its title;
- Test run, with the Sample input as JSON and the Sample output.
⌘ Enter or Ctrl+Enter runs the sample, and ⌘S or Ctrl+S saves.
The runner calls POST /api/v1/functions/run with a language, a source, and a sample event, and
returns the transformed event:
JavaScript functions
The source runs once for every event. The globalmolesignal object carries the event and helpers:
- A run that takes longer than 50 ms stops with
js timeout 50ms. - The heap of one function is limited to 32 MiB.
- Network access, timers, and
TextEncoderare not available.
Use a function
Add the function as a transform node in a pipeline. The pipeline stores the ordered steps and passes the event through each function. Deleting or changing a function can affect every referencing pipeline. Review usage before a breaking edit.Permissions
functions.readlists and opens functions.functions.createandfunctions.editmanage definitions.functions.runexecutes the sample runner.functions.deleteremoves a definition.
Pipelines
Build source → transform → sink workflows.
Extend tables
Maintain lookup data for enrichment.