Local connector runner that verifies, migrates, and loads data to your analytics database.
Project description
causum-sync
causum-sync is a lightweight local client that lets users securely run data connector synchronizations entirely on their own machines โ without ever sharing database credentials externally.
It executes open-source Airbyte connectors under the hood via Docker, verifies all source and destination connections, and loads the resulting data into your unified analytics database (Postgres).
๐ Key Features
- ๐งฉ Automatic source verification โ checks all source connections before migration
- ๐๏ธ Destination verification โ validates your Postgres connection before loading
- ๐ณ Docker-based execution โ runs Airbyte connectors locally using Docker SDK
- ๐ Full migration pipeline โ extracts, verifies, and loads automatically
- ๐ง Multi-connector support โ runs all configs in one bundle (up to 19+)
- ๐จ Colorized CLI with emojis โ clear cross-platform terminal output
- ๐งพ Verbose mode โ detailed Docker and psycopg2 logs for debugging
- ๐ก๏ธ Offline and private โ credentials never leave the userโs environment
๐ฆ Installation
Requires:
- Python 3.8+
- Docker running locally
- Network access to your source databases
- Network access to the specified destination database
Install from source:
git clone https://github.com/yourorg/causum-sync.git
cd causum-sync
pip install -e .
โ๏ธ How It Works
The frontend generates a ZIP bundle containing all connection configurations:
causum_configs_2025-11-04.zip
โโโ config/
โ โโโ postgres.json
โ โโโ mysql.json
โ โโโ mongo.json
โ โโโ ...
โโโ destination_config.json
config/*.jsonโ source database connector configurationsdestination_config.jsonโ your specified Postgres destination
The library:
- Extracts and validates the bundle.
- Runs Airbyte Docker connectors for each source.
- Streams their output into your Postgres destination.
๐งโ๐ป Usage
Run with a bundle path
causum-sync --bundle ~/Downloads/causum_configs_2025-11-04.zip
Auto-import the latest bundle from Downloads
causum-sync --auto-import
Enable verbose debug output
causum-sync --bundle ~/Downloads/causum_configs_2025-11-04.zip --verbose
๐ง Workflow Summary
1๏ธโฃ Extract bundle
๐ฆ Detects and unpacks causum_configs_*.zip
2๏ธโฃ Verify connections ๐งฉ Runs connection checks for every source and destination
3๏ธโฃ Migrate data ๐ Sequentially extracts from each source and loads into Postgres
4๏ธโฃ Report results โ Green = success โ Red = failure โ ๏ธ Warns if configs require correction
๐ง Example Output
๐ฆ Imported bundle from ~/Downloads/causum_configs_2025-11-04.zip
๐งฉ Verifying source connections...
โ
postgres
โ
mysql
โ mongo (Authentication failed)
โ
snowflake
๐งฉ Verifying destination connection...
โ
destination
โ ๏ธ Connection issues: mongo
Fix configs and retry.
If all succeed:
๐ All connections verified, starting migration...
โ๏ธ Migrating postgres โ unified_mimic.public ...
โ
postgres complete
โ
All sources migrated successfully!
๐ณ Connectors Supported
Out of the box, causum-sync supports these Airbyte sources:
| Connector | Image |
|---|---|
| Postgres | source-postgres |
| MySQL | source-mysql |
| MongoDB | source-mongodb-v2 |
| Snowflake | source-snowflake |
| ClickHouse | source-clickhouse |
| Oracle | source-oracle |
| MSSQL | source-mssql |
| Redshift | source-redshift |
| ...and more |
New connectors can be added in mapping.py.
โ๏ธ Command Reference
| Flag | Description |
|---|---|
--bundle <path> |
Path to the ZIP bundle from frontend |
--auto-import |
Automatically use the latest bundle from Downloads |
--verbose |
Print detailed Docker and database logs |
-h, --help |
Show help message |
๐งฑ Development
Structure:
causum-sync/
โโโ src/
โ โโโ cli.py
โ โโโ runner.py
โ โโโ migrate.py
โ โโโ to_postgres.py
โ โโโ utils.py
โ โโโ constants.py
โ โโโ mapping.py
โโโ setup.py
โโโ README.md
๐ชช License
MIT License ยฉ 2025 Causumโข Analytics See LICENSE for details.
๐ฌ Acknowledgments
This library uses Airbyte connectors under the hood to perform source extraction and validation, leveraging Docker for execution and psycopg2 for Postgres ingestion.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file causum_sync-1.0.0.tar.gz.
File metadata
- Download URL: causum_sync-1.0.0.tar.gz
- Upload date:
- Size: 4.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2a94129a75b7a94d05483f369a76d55f51916c83930940beb3812324231d8ebf
|
|
| MD5 |
108861368d8d52d0369ffa74f63843cb
|
|
| BLAKE2b-256 |
bee31c729eee4935a0423f213dbc8bfb1b5c0366973c1d99eb4084682170a417
|
File details
Details for the file causum_sync-1.0.0-py3-none-any.whl.
File metadata
- Download URL: causum_sync-1.0.0-py3-none-any.whl
- Upload date:
- Size: 4.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
407979b85d88ab818e5b0fab42547462cfa6542ccbd50a793b1429d37aae536e
|
|
| MD5 |
875e3eb1042320f487d586183eca8d74
|
|
| BLAKE2b-256 |
7e4b8b6e7cfc2d2ec7172bf1ee07b051bc6d0f3d989e2d6da2de041ba471961a
|