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 confignative/connections/credential-store.ts — 3-tier: keytar → AES-256 → env vars (no plaintext)native/connections/ssh-tunnel.ts — ssh2 with SIGINT/exit cleanupnative/connections/docker-discovery.ts — dockerodenative/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 methodsconnections.json backward compatibility test Integration tests against local PostgreSQL + DuckDBDrivers Driver Package Pure JS? snowflake snowflake-sdkYes bigquery @google-cloud/bigqueryYes postgres pgYes databricks @databricks/sql / RESTYes redshift pgYes mysql mysql2Yes sqlserver mssql/tediousYes oracle oracledb thinYes (12.1+) duckdb @duckdb/node-apioptionalDep sqlite better-sqlite3optionalDep
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 confignative/connections/credential-store.ts— 3-tier: keytar → AES-256 → env vars (no plaintext)native/connections/ssh-tunnel.ts— ssh2 with SIGINT/exit cleanupnative/connections/docker-discovery.ts— dockerodenative/connections/dbt-profiles.ts— YAML + Jinja{{ env_var() }}regeximport()connections.jsonbackward compatibility testDrivers
snowflake-sdk@google-cloud/bigquerypg@databricks/sql/ RESTpgmysql2mssql/tediousoracledbthin@duckdb/node-apibetter-sqlite3