Node Types
Source Nodes
- Static JSON: Inline JSON data
- CSV: File upload
- REST Source: HTTP API calls
- Database: SQL queries from connections
- Map Input: Special node for map-reduce sub-pipelines
Transform Nodes
- Python: Custom Python code (transform or process functions)
- SQL: DuckDB SQL queries
- Filter: Row filtering with conditions
- Reduce: Aggregations (sum, avg, count, min, max)
- Map: Map-reduce pattern with sub-pipelines
- DBT: DBT model execution
- REST Transform: REST API calls with data
Destination Nodes
- File: Export to CSV/JSON/YAML
- Database: Write to database tables
- Staging: DuckDB staging tables
Node Configuration
Python Node
{
"id": "python-1",
"type": "python",
"data": {
"code": "def transform(df):\n return df[df['amount'] > 100]",
"function_name": "transform"
}
}
SQL Node
{
"id": "sql-1",
"type": "sql",
"data": {
"query": "SELECT * FROM input WHERE amount > 100"
}
}
Filter Node
{
"id": "filter-1",
"type": "filter",
"data": {
"conditions": [
{"column": "status", "operator": "equals", "value": "active"}
]
}
}
Reduce Node
{
"id": "reduce-1",
"type": "reduce",
"data": {
"operations": [
{"type": "sum", "column": "amount"},
{"type": "avg", "column": "quantity"}
],
"group_by": ["category"]
}
}
REST Source Node
{
"id": "rest-1",
"type": "rest",
"data": {
"url": "https://api.example.com/data",
"method": "GET",
"headers": {
"Authorization": "Bearer {{secrets.API_KEY}}"
}
}
}
Database Source Node
{
"id": "db-1",
"type": "database",
"data": {
"connection_id": "uuid-of-connection",
"query": "SELECT * FROM orders WHERE date > '2024-01-01'"
}
}
Database Destination Node
{
"id": "db-dest-1",
"type": "database",
"data": {
"connection_id": "uuid-of-connection",
"table": "orders_staging",
"mode": "append" // or "replace"
}
}