Skip to main content
Functions package reusable event transformations. Open Functions to create, test, and maintain function definitions independently of a pipeline.

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.
Select Run sample to run the source in the editor against the sample event. The source does not need to be saved first. The transformed event appears under Sample output. When the run fails, the reason appears in its place. Save function and Cancel stand in the title row of the page, with Delete function for a function that is already saved. While the name or the source is empty, Save function is unavailable and its tooltip names what is missing. In an editor, ⌘ 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:
Example VRL:

JavaScript functions

The source runs once for every event. The global molesignal object carries the event and helpers:
A JavaScript function runs in an isolated engine with these limits:
  • 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 TextEncoder are 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.read lists and opens functions.
  • functions.create and functions.edit manage definitions.
  • functions.run executes the sample runner.
  • functions.delete removes a definition.

Pipelines

Build source → transform → sink workflows.

Extend tables

Maintain lookup data for enrichment.
Last modified on October 13, 2026