Pipelinesdeclared, not coded.On any platform.
A single Go binary and a YAML file for HTTP, webhook, and database pipelines with auth, retries, state, and dry-run previews.
- binary
- ~14 MB
- examples
- 34 maintained
- license
- apache 2.0
One declarative shape:input → filters → output.
Every pipeline is the same three-block YAML. The shape never changes — only the modules slotted into each block.
Pull records.
Polled HTTP or SOAP APIs (page · offset · cursor), webhook listeners (HMAC, queue, rate limit), or SQL databases — all driven by one block of YAML.
- httpPolling
- soapPolling
- webhook
- database
Compose transforms.
Map fields, route on conditions, iterate arrays, enrich via HTTP, SOAP, or SQL, run JavaScript, set or remove keys. Filters run in declared order, top to bottom.
- mapping
- condition
- loop
- script
- http_call
- soap_call
- sql_call
- set
- remove
- drop
Ship anywhere.
POST to an HTTP endpoint, call a SOAP service, or upsert into a relational database via prepared queries — with retries, transactions, and auth.
- httpRequest
- soapRequest
- database
Production concerns,wired in from configuration.
Retries, auth, secrets, schedules, state, dry-runs — the parts you'd rebuild by hand every time you wire a new integration.
- linux · darwin · windows
One binary, any OS.
Static Go build for Linux, macOS, and Windows. No runtime, no Python venv, no Docker required — just a CLI you can drop in a CI image.
- json-schema · cannectors validate
YAML you can read at 2 AM.
Pipelines validate against a JSON Schema. cannectors validate gives line-accurate errors before anything runs. Reviewers see intent, not glue code.
- exponential · jittered · capped
Retries that match reality.
Backoff, max delay, retryable status codes, and Retry-After header support — declared once at the defaults level, inherited everywhere unless overridden.
- oauth2 · bearer · basic · api-key
Auth out of the box.
OAuth2 client_credentials, Bearer, Basic, and API key (header or query). Secrets stay in env vars — never in the YAML, never in logs.
- --dry-run · output preview
Dry-run before you ship.
cannectors run --dry-run executes everything up to the output stage and previews what would be sent. Confidence before a destination ever sees a byte.
- cursor · id · timestamp
State for incremental loads.
Cursors, last-seen IDs, and timestamps persist between runs. Restart-safe by default. Schedule on CRON and resume where you left off.
The whole pipeline,on one printable page.
Real examples from the maintained examples/ set. Annotations explain the parts that aren't obvious yet.
— Poll an API on a schedule, transform, ship a batch.
name: sync-ordersversion: 1.0.0input:type: httpPollingschedule: "*/15 * * * *"endpoint: https://source.example.com/api/ordersdataField: ordersauthentication:type: oauth2credentials:tokenUrl: ${OAUTH_TOKEN_URL}clientId: ${OAUTH_CLIENT_ID}clientSecret: ${OAUTH_CLIENT_SECRET}filters:- type: mappingmappings:- source: order_idtarget: id- source: customer.emailtarget: emailtransforms:- op: lowercase- type: conditionexpression: "status == 'paid'"else:- type: dropoutput:type: httpRequestendpoint: https://warehouse.example.com/api/orders/importmethod: POSTrequestMode: batchretry:maxAttempts: 3delayMs: 500backoffMultiplier: 2retryableStatusCodes: [429, 500, 502, 503, 504]
16 modules.Every option documented.
The full module surface, with options, defaults, and pitfalls generated from the same JSON Schemas the binary uses to validate.
inputs
filters
- mapping
Map fields · trim · lowercase · uppercase · concat · split.
- condition
Boolean expressions · keep/drop/route on match.
- script
Inline or file JavaScript (Goja) · full record access.
- http_call
Per-record HTTP enrichment · LRU+TTL cache · merge or append.
- soap_call
Per-record SOAP enrichment · XML body · cache · merge or append.
- sql_call
Per-record SQL enrichment · positional params · cache · merge.
- set
Add or overwrite fields (literal or template).
- remove
Drop one or more fields (top-level or nested paths).
- drop
Stop records intentionally · useful for dry-run and branch tests.
Raw project context for pipeline generation.
The AI context page is a plain text endpoint containing the Cannectors documentation, module options, JSON Schemas, and all maintained YAML examples so online agents can generate valid pipelines with full context.
open ai contextShip pipelines, not glue code.
Install the CLI, copy one of the 34 maintained examples, run it locally with --dry-run, then schedule it. The whole loop fits inside a coffee break.
go install github.com/alexandrecano/cannectors/cmd/cannectors@latest