Skip to content

Storage & I/O Nodes

Storage nodes read and write data from databases, file storage, KV caches, and external HTTP services.

NodeTypeOutput
Supabase Querysupabase_queryjson
SQL Querysql_queryjson
KV Readkv_store_readjson
KV Writekv_store_writejson
File Readerfile_readerfile
File Writerfile_writerfile
Object Storage Uploadobject_storage_uploadfile
Object Storage Downloadobject_storage_downloadfile
Webhook Sendwebhook_senderjson
HTTP Requesthttp_requestjson
GraphQL Requestgraphql_requestjson

Supabase Query

Type: supabase_query · Category: Storage & I/O

Run an allowed Supabase RPC or table query using server-side credentials.

Required Config

FieldTypeDescription
rpcNamestringRPC name or table identifier (e.g. workflows.fn_recent_battle_results).

Optional Config

FieldTypeDefault
paramsjson
timeoutMsnumber15000

Example

json
{
  "rpcName": "workflows.fn_recent_battle_results",
  "params": { "window": "7d" }
}

Expected output: { "rows": [{ "battleId": "battle_123", "winner": "sourced" }] }

Downstream:aggregate

Execution Notes

  • Only RPCs and tables allowed by the workflow execution security policy are accessible.
  • Runs in worker / server environment.

SQL Query

Type: sql_query · Category: Storage & I/O

Run a parameterized SQL query in an approved environment.

Required Config

FieldTypeDescription
querytemplateParameterized SQL with :param placeholders.

Optional Config

FieldTypeDefault
paramsjson
timeoutMsnumber15000

Example

json
{
  "query": "select title, winner from arena.battles where created_at >= :since",
  "params": { "since": "$.firedAt" }
}

Downstream:data_mapper


KV Read

Type: kv_store_read · Category: Storage & I/O

Read a value from workflow KV storage by key.

Required Config

FieldTypeDescription
keystringStorage key (e.g. digest:lastSuccessfulRun).

Example

json
{ "key": "digest:lastSuccessfulRun" }

Expected output: { "value": "2026-05-09T08:00:00Z" }

Downstream:supabase_query with { "since": "$.value" }


KV Write

Type: kv_store_write · Category: Storage & I/O

Write a value to workflow KV storage with an optional TTL.

Required Config

FieldTypeDescription
keystringStorage key.

Optional Config

FieldTypeDefault
valuePathstring
ttlSecondsnumber

Example

json
{ "key": "digest:lastSuccessfulRun", "valuePath": "$.completedAt", "ttlSeconds": 604800 }

File Reader

Type: file_reader · Category: Storage & I/O

Read text or binary file content from a URL or object storage.

Required Config

FieldTypeDescription
sourcestringSource type: url or object-storage.

Example

json
{
  "source": "object-storage",
  "bucket": "workflow-inputs",
  "objectKey": "$.fileKey"
}

Expected output: { "file": { "url": "https://storage.example.com/report.pdf", "mimeType": "application/pdf" } }

Downstream:media_convert


File Writer

Type: file_writer · Category: Storage & I/O

Write text, JSON, or binary output to a file destination.

Required Config

FieldTypeDescription
destinationstringDestination type: object-storage or local.

Example

json
{
  "destination": "object-storage",
  "bucket": "workflow-outputs",
  "objectKeyTemplate": "digests/{{runId}}.md",
  "contentPath": "$.summary"
}

Downstream:email_send


Object Storage Upload

Type: object_storage_upload · Category: Storage & I/O

Upload a file to object storage and return a public or signed URL.

Inputs

NameTypeRequired
filefileYes

Required Config

FieldTypeDescription
bucketstringStorage bucket name.

Example

json
{
  "bucket": "workflow-artifacts",
  "objectKeyTemplate": "media/{{runId}}/{{filename}}",
  "filePath": "$.file.url"
}

Downstream:slack_notify


Object Storage Download

Type: object_storage_download · Category: Storage & I/O

Download a file from object storage.

Required Config

FieldTypeDescription
bucketstringStorage bucket name.

Example

json
{ "bucket": "workflow-artifacts", "objectKey": "$.objectKey" }

Downstream:image_analyze


Webhook Send

Type: webhook_sender · Category: Storage & I/O

Send an outbound webhook request to an external service.

Required Config

FieldTypeDescription
urlstringTarget webhook URL or mapping.

Optional Config

FieldTypeDefaultOptions
methodstringPOSTPOST · PUT
bodyPathstring$

Example

json
{
  "url": "https://hooks.example.com/lenserfight",
  "method": "POST",
  "bodyPath": "$"
}

Expected output: { "status": 202, "responseBody": { "accepted": true } }


HTTP Request

Type: http_request · Category: Storage & I/O

Call an HTTP endpoint and return response data. Use for REST API calls, authentication flows, and external service integration.

Required Config

FieldTypeDescription
urlstringEndpoint URL or mapping.

Optional Config

FieldTypeDefaultOptions
methodstringGETGET · POST · PUT · PATCH · DELETE
headersjsonRequest headers.
bodyjsonRequest body.

Example

json
{
  "url": "https://api.github.com/repos/org/repo/pulls/42",
  "method": "GET",
  "headers": { "Authorization": "Bearer {{secrets.github}}" }
}

Expected output: { "status": 200, "body": { "title": "Add catalog" } }

Downstream:github_pr_review

Execution Notes

  • Secrets referenced with {{secrets.keyName}} are resolved at runtime.
  • timeoutMs defaults to 15000 ms.

GraphQL Request

Type: graphql_request · Category: Storage & I/O

Call a GraphQL endpoint with a query and variables.

Required Config

FieldTypeDescription
querystringGraphQL query document.

Optional Config

FieldTypeDefault
endpointstring
variablesjson

Example

json
{
  "endpoint": "https://api.github.com/graphql",
  "query": "query($owner:String!,$repo:String!){repository(owner:$owner,name:$repo){pullRequests(first:5){nodes{title}}}}",
  "variables": { "owner": "ofcskn", "repo": "lenserfight-web" }
}

Downstream:summarizer


See also: Node Catalog Index · Integration Nodes · Utility Nodes · Workflow Studio