Storm
Storm is Rival’s content tagging engine. Unlike Function and MCP tools, a Storm tool has no handler code. Instead, you upload a topic file - a document that defines the topics, categories, or tags you want to classify against - and Storm reads incoming content against that file and returns the tagged result.
In the Studio editor, choose Storm as the tool type. The Code step is replaced by a topic-file configuration: no cortexone_function.* file, no handler. The platform handles all tagging execution.
For background on the engine, see What is Storm.
When to use Storm
Use Storm when you need to:
- Classify documents, articles, tickets, or any text against a predefined taxonomy
- Tag large volumes of incoming content automatically
- Apply consistent labeling without writing classification logic
- Keep your tagging taxonomy updatable without changing any code
For general-purpose logic or computation, pick a Function tool in Python, JavaScript, or Lua instead.
How a Storm tool runs
A Storm tool execution involves three things:
- A topic file - the digital asset that defines what to tag against (your taxonomy)
- A source - either a JSON payload or a digital asset containing the content to tag
- A target - either inline JSON output or a digital asset to write the tagged result into
Input types
| Input type | Description |
|---|---|
| Text (JSON) | Pass a JSON object directly in the event |
| Data source | Reference a digital asset by its ID (source_asset_id) |
Output types
| Output type | Description |
|---|---|
| JSON | The result is returned as a JSON object |
| Data outbound | Results 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 Digital Assets section lists all assets in your organization.
Each asset has two identifiers you need for Storm:
| What to copy | Where to find it | Used as |
|---|---|---|
File reference (asset.file) | Click Copy Ref button on the asset | topic_file field in your event |
| Asset ID (UUID) | Shown on the asset detail page | source_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 inputtarget_asset_id- the asset the Storm engine writes results into
You can also select digital assets directly in the Storm test UI without typing IDs manually.
Testing a Storm tool
Test runs live in the Test panel inside the Code step of the Tool Editor - just like Function and MCP tools - but the panel is tailored to Storm:
- Choose Input type: Text or Data Source
- Text: enter a JSON payload in the editor
- Data Source: pick a digital asset from the picker
- Choose Output type: JSON or Data Outbound
- JSON: results appear inline
- Data Outbound: pick a target digital asset to write into
- Click Run to execute
See Testing & Executing for the full workflow.
Storm tool configuration
When creating a Storm tool, you provide a digital asset ID (digital_asset_id) that points to your topic file. This is set in the Code step of the Tool Editor.
Unlike Function and MCP tools where you write source code, a Storm tool references an uploaded topic file from Digital Assets. The platform handles all tagging execution - you do not write any classification logic.
Notes
- Storm tools cannot be switched to a different tool type after creation.
- The
digital_asset_id(your topic file) is required when creating a Storm tool - without it, the tool cannot be saved. - Storm tools follow the same pricing, versioning, and publishing workflow as Function and MCP tools.
- Storm is designed for content tagging and classification - for general-purpose computation, build a Function tool instead.