Getting Started
Deploy and connect to your first database.
PondPilot Proxy enables clients to execute SQL queries against multiple data sources through a unified interface. Each user gets an isolated DuckDB instance running in a Docker container, with queries proxied via the Apache Arrow Flight SQL protocol.
PondPilot Proxy is a multi-tenant data proxy that provides:
PondPilot Proxy ┌─────────────────────────────────────────────────┐ │ │ HTTP :8080 │ ┌──────────┐ ┌────────────────────────┐ │ ──────────────┼─▶│ Router │───▶│ Middleware Pipeline │ │ │ └──────────┘ │ - Auth (JWT) │ │ │ │ - RateLimiter │ │ │ └────────────────────────┘ │ │ │ │ │ ┌──────────────┴──────────────┐ │ │ ▼ ▼ │ │ ┌──────────────┐ ┌───────────┐ │ │ │ AI Handlers │ │ Health │ │ │ │ /ai/chat │ │ Endpoints │ │ │ │ /ai/embed │ └───────────┘ │ │ └──────────────┘ │ │ │ gRPC :8081 │ ┌───────────────────────────────────────────┐ │ ──────────────┼─▶│ Flight SQL Server │ │ │ │ (JWT Auth via gRPC Interceptors) │ │ │ └───────────────────┬───────────────────────┘ │ │ │ │ │ ▼ │ │ ┌───────────────────────────────────────────┐ │ │ │ Container Manager │ │ │ │ - Per-user isolation │ │ │ │ - Idle container reaping │ │ │ │ - Resource limits (CPU, memory) │ │ │ └───────────────────┬───────────────────────┘ │ │ │ │ └──────────────────────┼─────────────────────────┘ │ ┌──────────────────────┼──────────────────────┐ │ Docker Network │ │ │ ▼ │ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ │ │Container│ │Container│ │Container│ ... │ │ │ User A │ │ User B │ │ User C │ │ │ │ SQLFlite│ │ SQLFlite│ │ SQLFlite│ │ │ │ DuckDB │ │ DuckDB │ │ DuckDB │ │ │ └────┬────┘ └────┬────┘ └────┬────┘ │ │ │ │ │ │ └───────┼────────────┼────────────┼──────────┘ │ │ │ ▼ ▼ ▼ ┌──────────┐ ┌──────────┐ ┌──────────┐ │PostgreSQL│ │ MySQL │ │ SQLite │ │ Database │ │ Database │ │ Files │ └──────────┘ └──────────┘ └──────────┘| Port | Protocol | Purpose |
|---|---|---|
| 8080 | HTTP | REST API, health checks, AI endpoints |
| 8081 | gRPC | Flight SQL queries |
Each user gets a dedicated Docker container running:
Containers are:
| Layer | Mechanism |
|---|---|
| Authentication | JWT tokens (required) |
| Process isolation | Separate container per user |
| Network isolation | Containers on isolated Docker network |
| Resource limits | CPU and memory limits enforced |
| Privileges | Non-root user, capabilities dropped |
| Database | Extension | Notes |
|---|---|---|
| PostgreSQL | postgres | Full read access with schema support |
| MySQL | mysql | MySQL and MariaDB compatible |
| SQLite | sqlite | Local or remote SQLite files |
| DuckDB | native | In-memory and persistent tables |
Getting Started
Deploy and connect to your first database.
Configuration
YAML configuration, environment variables, container settings.
Cross-Database Queries
Query multiple databases with Flight SQL.
Deployment
Docker Compose, production setup, scaling.