arangodb_aql
Execute an AQL query against ArangoDB via the HTTP Cursor API.
Parameters
- urlstring*
- ArangoDB server URL (e.g.
http://localhost:8529) - databasestring*
- Database name
- querystringrequired
- AQL query string
- bindVarsobject
- Bind variables for the query
- batchSizenumber
- Max results per batch
- timeoutnumberdefault 30
- HTTP request timeout in seconds
- output_keystringdefault "aql"
- Prefix for output context keys
- tokenstring*
- JWT bearer token for authentication
- usernamestring*
- Username for basic auth
- passwordstring*
- Password for basic auth
*Falls back to environment variables if not provided in config.
Environment Variable Fallbacks
| Config Key | Environment Variable |
|---|---|
url | ARANGODB_URL |
database | ARANGODB_DATABASE |
token | ARANGODB_TOKEN |
username | ARANGODB_USERNAME |
password | ARANGODB_PASSWORD |
Authentication
Supports two authentication methods:
- JWT Bearer — set
tokenorARANGODB_TOKEN - Basic Auth — set
username/passwordorARANGODB_USERNAME/ARANGODB_PASSWORD
If both are provided, JWT takes precedence.
Context Output
| Key | Type | Description |
|---|---|---|
{output_key}_result | array | Query result rows |
{output_key}_count | number | Number of results returned |
{output_key}_has_more | boolean | Whether more results are available (pagination) |
{output_key}_stats | object | AQL execution statistics (if available) |
{output_key}_success | boolean | true on success |
Context Interpolation
All string parameters support ${ctx.key} interpolation, including values inside bindVars.
Examples
Simple query
flow:step("list_users", nodes.arangodb_aql({
query = "FOR u IN users LIMIT 10 RETURN u",
output_key = "users"
}))
Query with bind variables
flow:step("find_user", nodes.arangodb_aql({
query = "FOR u IN users FILTER u.email == @email RETURN u",
bindVars = {
email = "${ctx.email}"
},
output_key = "result"
}))
Explicit connection (overrides env)
flow:step("query", nodes.arangodb_aql({
url = "http://arangodb-prod:8529",
database = "mydb",
username = "root",
password = env("ARANGO_PROD_PASS"),
query = "RETURN LENGTH(users)",
output_key = "count"
}))