-
Notifications
You must be signed in to change notification settings - Fork 16
Closed
Labels
enhancementNew feature or requestNew feature or request
Description
Phase 2: Connection Manager + DB Drivers
Parent: #214
Depends on: Phase 1
What
Replace the Python ConnectionRegistry, 10 warehouse connectors, credential store, SSH tunneling, and Docker discovery with TypeScript equivalents using native Node.js drivers.
Sub-tasks
-
native/connections/registry.ts— reads connections.json, env vars, project config -
native/connections/credential-store.ts— 3-tier: keytar → AES-256 → env vars (no plaintext) -
native/connections/ssh-tunnel.ts— ssh2 with SIGINT/exit cleanup -
native/connections/docker-discovery.ts— dockerode -
native/connections/dbt-profiles.ts— YAML + Jinja{{ env_var() }}regex - 10 driver files: snowflake, bigquery, postgres, databricks, redshift, mysql, sqlserver, oracle, duckdb, sqlite
- Lazy driver loading via dynamic
import() - Register 14 dispatcher methods
-
connections.jsonbackward compatibility test - Integration tests against local PostgreSQL + DuckDB
Drivers
| Driver | Package | Pure JS? |
|---|---|---|
| snowflake | snowflake-sdk |
Yes |
| bigquery | @google-cloud/bigquery |
Yes |
| postgres | pg |
Yes |
| databricks | @databricks/sql / REST |
Yes |
| redshift | pg |
Yes |
| mysql | mysql2 |
Yes |
| sqlserver | mssql/tedious |
Yes |
| oracle | oracledb thin |
Yes (12.1+) |
| duckdb | @duckdb/node-api |
optionalDep |
| sqlite | better-sqlite3 |
optionalDep |
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request