Skip to content

AlexandreCano/cannectors

Repository files navigation

Cannectors

Cannectors is a cross-platform CLI for running declarative data pipelines. It reads YAML pipeline files and moves records through an input -> filters -> output flow.

What It Does

  • Pull records from HTTP APIs, SOAP APIs, webhooks, PostgreSQL, MySQL, or SQLite.
  • Transform records with mapping, condition, script, set, remove, HTTP call, SOAP call, and SQL call filters.
  • Send records to HTTP APIs, SOAP APIs, or databases.
  • Handle authentication, retries, scheduling, state persistence, and dry-run previews from configuration.

Quick Start

# Build from source
go build -o cannectors ./cmd/cannectors

# Validate a maintained example
./cannectors validate ./examples/01-http-polling-basic-to-http-batch.yaml

# Preview a pipeline without sending output data
./cannectors run --dry-run ./examples/01-http-polling-basic-to-http-batch.yaml

# Run a pipeline
./cannectors run ./examples/01-http-polling-basic-to-http-batch.yaml

Minimal Pipeline

name: sync-orders
version: 1.0.0
description: Poll orders from an API and send them as a batch.

input:
  type: httpPolling
  schedule: "*/15 * * * *"
  endpoint: https://source.example.com/api/orders
  dataField: orders

filters:
  - type: mapping
    mappings:
      - source: order_id
        target: id
      - source: customer.email
        target: email

output:
  type: httpRequest
  endpoint: https://destination.example.com/api/orders/import
  method: POST
  requestMode: batch

Documentation

Examples

The canonical examples live in examples/. They are validated by the test suite and should be used as templates for new pipelines.

./cannectors validate ./examples/10-mapping-transforms-all.yaml
./cannectors validate ./examples/22-defaults-inheritance.yaml

Development

make build
make test
make validate-examples
make lint

Useful test-lab commands:

make test-lab-up
make test-lab-run
make test-lab-down

Requirements

  • Go 1.25.0+
  • Docker, for the local test lab
  • golangci-lint v2.7.1+, for linting

License

Apache License 2.0

Contributing

See CONTRIBUTING.md.

Commercial Support

See COMMERCIAL.md.

About

Portable runtime CLI for executing connector pipelines. Canectors is a cross-platform tool that reads pipeline configurations (JSON/YAML) and executes Input, Filter, and Output modules to transfer data between systems.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages