Skip to content

Storm

Storm is a specialized tool type for batch data processing. Unlike Python, JavaScript, and Lua tools where you write arbitrary code, Storm tools are designed to process files — taking digital assets as input and producing digital assets or JSON as output.

When you select Storm as the tool type, the runtime is automatically set to storm and cannot be changed.


When to use Storm

Use Storm when you need to:

  • Process large data files stored in the platform
  • Run batch transformations on files
  • Search or match patterns across file content
  • Produce a processed output file from an input file

For general-purpose logic, use Python, JavaScript, or Lua instead.


How Storm tools work

Storm tools do not have a code editor — they are configured through their input/output settings and the digital asset they reference.

A Storm tool execution receives an event with references to:

  • A source — either a JSON payload or a digital asset (file) stored in the platform
  • A target — either JSON output or a digital asset to write results into

Input types

Input typeDescription
Text (JSON)Pass a JSON object directly in the event
Data sourceReference a digital asset by its ID (source_asset_id)

Output types

Output typeDescription
JSONThe result is returned as a JSON object
Data outboundResults are written to a digital asset (target_asset_id)

Storm event format

When executing a Storm tool, the event payload follows this structure:

Text input → JSON output

{
"topic_file": "search terms or content string here"
}

Digital asset input → digital asset output

Use the Copy Ref button in the Digital Assets section to get the topic_file path, and the asset UUID for source_asset_id / target_asset_id:

{
"topic_file": "assets/org-slug/my-dataset.csv",
"source_asset_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"target_asset_id": "f9e8d7c6-b5a4-3210-fedc-ba0987654321"
}

The topic_file field is always required. source_asset_id and target_asset_id are used when working with file-based digital assets.


Digital assets

Digital assets are files stored in the platform’s cloud storage. The UI’s Digital Assets section lists all assets in your organization.

Each asset has two identifiers you need for Storm:

What to copyWhere to find itUsed as
File reference (asset.file)Click Copy Ref button on the assettopic_file field in your event
Asset ID (UUID)Shown on the asset detail pagesource_asset_id or target_asset_id

Using Copy Ref for topic_file

The Copy Ref button copies the file reference path (asset.file). Paste this directly into the topic_file field of your execution event:

{
"topic_file": "assets/org-slug/my-dataset.csv"
}

Using asset IDs for input/output

When your Storm tool reads from or writes to a digital asset, pass the asset UUID:

{
"topic_file": "assets/org-slug/my-dataset.csv",
"source_asset_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"target_asset_id": "f9e8d7c6-b5a4-3210-fedc-ba0987654321"
}
  • source_asset_id — the asset the Storm engine reads as input
  • target_asset_id — the asset the Storm engine writes results into

You can also select digital assets directly in the Storm test UI (Step 2 of the tool editor) without typing IDs manually.


Testing a Storm tool

The test interface for Storm tools is different from regular function testing:

  1. Choose Input type: Text or Data Source
    • Text: Enter a JSON payload in the editor
    • Data Source: Select a digital asset from the picker
  2. Choose Output type: JSON or Data Outbound
    • JSON: Results appear inline
    • Data Outbound: Select a target digital asset to write into
  3. Click Run to execute

Storm tool configuration

When creating a Storm tool, you provide a digital asset ID (digital_asset_id) that points to the processing configuration or model files used by the Storm engine. This is set in Step 2 of the tool editor.

Unlike other runtimes where you write source code, the Storm runtime references a pre-uploaded digital asset. The platform’s Storm engine handles execution.


Notes

  • Storm tools cannot be switched to a different runtime.
  • The digital_asset_id is required when creating a Storm tool — without it, the tool cannot be saved.
  • Storm tools support the same pricing, versioning, and publishing workflow as other tool types.
  • Storm tools are not suitable for general-purpose computation — use Python, JavaScript, or Lua for that.