A clean sandbox environment to try drt -- the open-source Reverse ETL framework.
- Python 3.10+
- pip (or uv)
- duckdb Python package (installed automatically with drt)
# Clone the sandbox
git clone https://github.com/drt-hub/drt-sandbox.git
cd drt-sandbox
# Run setup (installs drt, creates sample DuckDB database)
chmod +x setup.sh cleanup.sh
./setup.sh
# Try drt commands
drt validate # Validate project config
drt list # List configured syncs
drt run --dry-run # Test run without sending data
drt run # Run all syncs
drt status # Check run results
# New in v0.8.0 — generate a lineage catalog site for this project
drt docs generate # → target/docs/ ; open target/docs/index.htmlSee it hosted: the live demo is exactly what
drt docs generateproduces — every sync, its model and destination, and an ownership lineage DAG. Connection labels are docs-safe by default (no endpoints / emails / phones leak into the output).
| File | Description |
|---|---|
drt_project.yml |
Project configuration (points to the sandbox profile) |
syncs/example_users.yml |
Example sync: sends users to httpbin.org (safe for testing) |
setup.sh |
Creates a sample DuckDB database with users and orders tables |
cleanup.sh |
Resets the sandbox to a clean state |
target/docs/ |
Generated by drt docs generate — a static lineage catalog of the project (v0.8.0) |
CLAUDE.md |
Instructions for Claude Code (slash commands) |
.claude/commands/ |
Claude Code skills: /drt-init, /drt-create-sync, /drt-debug, /drt-migrate |
If you have Claude Code installed, you can use the built-in slash commands:
/drt-init # Initialize a new drt project
/drt-create-sync # Create a sync YAML interactively
/drt-debug # Debug a failing sync
/drt-migrate # Migrate from Census/Hightouch/etc. to drt
setup.sh creates a DuckDB database (sandbox.duckdb) with two tables:
users -- 5 sample users with name, email, and department
orders -- 5 sample orders with product, amount, and timestamp
This repository contains no real credentials or production data. All API endpoints use safe public services (e.g., httpbin.org). Secrets are referenced via environment variables (*_env fields) and are never hardcoded in sync files.
MIT