Reqon
Declarative DSL for fetch, map, validate pipelines. File extension: .vague
Quick Start
mission SyncData {
source API { auth: bearer, base: "https://api.example.com" }
store items: memory("items")
action Fetch {
get "/items" { paginate: page(page, 100), until: length(response) == 0 }
store response -> items { key: .id }
}
run Fetch
}
Core Constructs
mission - Pipeline container (sources, stores, schemas, actions, schedule)
source - API: auth (bearer/basic/api_key/oauth2/none), base, headers, rateLimit
source Name from "./spec.yaml" - OAS-based source
store - Storage: memory("name"), file("path"), sql("table"), postgrest("table")
action - Pipeline step: fetch, map, validate, store, wait
run [A, B] then C - Parallel then sequential execution
match response { Schema -> ..., _ -> skip } - Pattern matching
for item in store where .active { ... } - Iteration with filter
call Source.operationId - OAS-based fetch by operationId
wait { timeout, path, eventFilter, storage } - Webhook/callback waiting
schedule: every N hours or schedule: cron "..." or schedule: at "datetime"
Flow Control
continue, skip, abort "msg", retry {...}, queue dlq, jump Action then retry
Reference Files
- references/syntax.md - Full DSL syntax
- references/examples.md - Complete examples
1---2name: reqon3description: Use when writing or editing .vague files for Reqon declarative API data pipelines4---5
6# Reqon
7
8Declarative DSL for fetch, map, validate pipelines. File extension: `.vague`
9
10## Quick Start
11
12```
13mission SyncData {
14 source API { auth: bearer, base: "https://api.example.com" }
15 store items: memory("items")
16
17 action Fetch {
18 get "/items" { paginate: page(page, 100), until: length(response) == 0 }
19 store response -> items { key: .id }
20 }
21
22 run Fetch
23}
24```
25
26## Core Constructs
27
28- `mission` - Pipeline container (sources, stores, schemas, actions, schedule)
29- `source` - API: auth (bearer/basic/api_key/oauth2/none), base, headers, rateLimit
30- `source Name from "./spec.yaml"` - OAS-based source
31- `store` - Storage: `memory("name")`, `file("path")`, `sql("table")`, `postgrest("table")`
32- `action` - Pipeline step: fetch, map, validate, store, wait
33- `run [A, B] then C` - Parallel then sequential execution
34- `match response { Schema -> ..., _ -> skip }` - Pattern matching
35- `for item in store where .active { ... }` - Iteration with filter
36- `call Source.operationId` - OAS-based fetch by operationId
37- `wait { timeout, path, eventFilter, storage }` - Webhook/callback waiting
38- `schedule: every N hours` or `schedule: cron "..."` or `schedule: at "datetime"`
39
40## Flow Control
41
42`continue`, `skip`, `abort "msg"`, `retry {...}`, `queue dlq`, `jump Action then retry`
43
44## Reference Files
45
46- [references/syntax.md](references/syntax.md) - Full DSL syntax
47- [references/examples.md](references/examples.md) - Complete examples