All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Postgres-compatible driver routing: CockroachDB, TimescaleDB, Redshift, YugabyteDB, AlloyDB, Supabase, Neon, and Citus now route through the native PostgreSQL driver automatically
- CI auto-publish: Every push to
mainwith a new version automatically publishes to npm and creates a git tag - Stale transaction cleanup: Periodic cleanup (every 5 minutes) automatically rolls back transactions older than 1 hour
- Graceful shutdown improvements: Active transactions are rolled back before connection pools are closed
rollbackAll()method on TransactionManager for shutdown scenarios
- Credential leak (Security):
list_connectionswithincludeDetails=trueandget_connection_infono longer expose passwords — all sensitive fields are redacted - Debug log credential leak (Security): Tool arguments are redacted before debug logging to prevent passwords appearing in logs
- Pool creation race condition: Concurrent
getPool()calls for the same connection no longer create duplicate pools — uses a pending-creation map for deduplication - Transaction resource leak: Failed
commit/rollbacknow releases the database client back to the pool instead of leaking it - Insights file unbounded growth: Capped at 1,000 entries, oldest entries are trimmed on save
- CI workflow now includes a
publishjob that runs after all checks pass onmain - Pool manager's
isPostgresCompatible()is now a public method shared with dbeaver-client
- Connection whitelist via
DBEAVER_ALLOWED_CONNECTIONSenvironment variable — restrict which DBeaver connections are visible by ID or name enforceReadOnly()query-level enforcement —execute_querynow strictly allows only read-only statements (SELECT, EXPLAIN, SHOW, DESCRIBE, PRAGMA)- Test queries for SAP HANA (
SELECT * FROM DUMMY) and DB2 (SYSIBM.SYSDUMMY1)
- Read-only mode bypass (Issue #19):
execute_queryno longer allows write operations (INSERT/UPDATE/DELETE/CREATE/ALTER/DROP). Transaction tools (begin_transaction,commit_transaction,rollback_transaction,execute_in_transaction) are now blocked in read-only mode. - Unsupported driver errors (Issue #17): DBeaver CLI fallback now provides clear, actionable error messages listing natively supported drivers and workarounds. DBeaver availability is checked before attempting CLI fallback.
- UPDATE validation regex:
UPDATE ... SET ... WHERE ...was incorrectly blocked by the dangerous query filter. The regex now correctly allows UPDATE with WHERE clause.
- DBeaver CLI fallback uses connection name-based spec for better compatibility
- Native MySQL/MariaDB support via
mysql2library - Read-only mode (
DBEAVER_READ_ONLY=true) to disable write operations - Tool filtering via
DBEAVER_DISABLED_TOOLSenvironment variable - GitHub Actions CI/CD pipeline
- ESLint and Prettier configuration
- Pre-commit hooks via Husky
- Vitest test framework
- Issue and PR templates
- Connection pooling for PostgreSQL, MySQL, and MSSQL with configurable pool settings
- Transaction support with
begin_transaction,commit_transaction,rollback_transaction, andexecute_in_transactiontools - Query explain tool (
explain_query) for analyzing query execution plans - Schema comparison tool (
compare_schemas) for diffing schemas between connections - Pool statistics tool (
get_pool_stats) for monitoring connection pool health
- Upgraded
@modelcontextprotocol/sdkfrom 1.9.0 to 1.25.2 (security fix) - Improved error messages for unsupported database drivers
- Better trailing semicolon handling in LIMIT clause
- Security vulnerabilities in dependencies
@types/mssqlmoved to devDependencies- SQL injection vulnerability in table/schema name handling
- Deprecated
.substr()replaced with securecrypto.randomBytes() - Added maxRows validation with upper bounds (100k query, 1M export)
- Removed unsupported export formats (xml, excel) from API schema
- Native MSSQL/SQL Server support via
mssqllibrary xml2jsdependency for DBeaver config parsing
- Missing
xml2jsruntime dependency that broke npm installations - PostgreSQL connection cleanup logging
- SSL/TLS support for PostgreSQL connections
- Credential decryption from DBeaver's credentials-config.json
- Authentication failures with PostgreSQL (Issue #8)
- Native PostgreSQL support via
pglibrary - Native SQLite support via sqlite3 CLI
- DBeaver CLI fallback for unsupported databases
- Business insights tracking feature
- Query execution no longer requires DBeaver GUI for supported databases
- Initial MCP server implementation
- Support for DBeaver 6.x (XML) and 21.x+ (JSON) config formats
- Connection management tools
- Query execution tools
- Schema management tools
- Data export functionality