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
|