Commit Graph
43 Commits
Author SHA1 Message Date
t8y2 7ce2cf2163 feat: add 12 new agent-driven databases, migrate GaussDB to agent
Add H2, Snowflake, Trino, Hive, DB2, Informix, Neo4j, Cassandra,
BigQuery, Apache Kylin, SunDB as new agent-driven database types.
Migrate GaussDB from native rust-gaussdb to JDBC agent.

Remove rust-gaussdb dependency. Total agent-driven databases: 17.
2026-05-13 09:47:22 +08:00
t8y2 e85f9df1fe feat(agent): pluggable database drivers via JDBC agent subprocess
Migrate domestic database support (DaMeng, KingBase, Vastbase, GoldenDB) from
built-in ODBC/protocol drivers to standalone Java agent processes communicating
via stdin/stdout JSON-RPC 2.0. Agents are distributed as fat JARs with embedded
JDBC drivers, downloaded on-demand from GitHub Releases with proxy fallback.

- Add AgentDriverClient for subprocess lifecycle + JSON-RPC communication
- Add AgentManager for JRE/JAR install state management
- Add Tauri commands for driver install/uninstall/list
- Add DriverManager UI panel in settings dialog
- Extend DatabaseType with Kingbase, Vastbase, Goldendb variants
- Migrate Dameng from ODBC (dm_driver.rs) to JDBC agent
- Delete dm_driver.rs (343 lines)
- Add GitHub proxy fallback for downloads (update.hwdns.net, gh-proxy.org)

Agent code lives at https://github.com/t8y2/dbx-agents
2026-05-13 04:44:52 +08:00
t8y2 53a45330a6 feat(sidebar): group objects by type and add Object Browser context menus (#222)
Sidebar tree now groups database objects into Tables, Views, Procedures,
and Functions folders instead of a flat list. Empty groups are hidden
and each group shows its item count.

Object Browser rows now have right-click context menus with actions
like View Data, New Query, View Source, and Drop.
2026-05-12 14:33:52 +08:00
t8y2 79277c660f feat(proxy): 增加数据库和 AI 代理支持 2026-05-11 15:05:25 +08:00
t8y2 39f33e15d4 fix(sidebar): allow search to find tables hidden behind object browser
When a database has more than 15 tables, only the first 15 are shown
in the tree with an "object browser" entry for the rest. The sidebar
search could not find tables beyond the first 15.

Store hidden table nodes on the object-browser TreeNode and search
through them in filterTree when a query is active.
2026-05-11 13:21:19 +08:00
t8y2 8032c63727 fix(grid): persist WHERE filter input across tab switches (closes #210)
whereFilterInput was a component-local ref that got lost when switching
tabs because DataGrid is destroyed and recreated via :key binding.

Store whereInput in the QueryTab state and pass it as initialWhereInput
prop so it survives tab switches.
2026-05-11 12:24:08 +08:00
t8y2 03bea705e7 feat(objects): edit database object source 2026-05-11 11:48:46 +08:00
t8y2 6d513afc16 feat(objects): show routines in object browser 2026-05-10 21:14:16 +08:00
t8y2 0e0195f734 feat(objects): add virtual object browser 2026-05-10 18:32:24 +08:00
t8y2 10bfede1c7 feat(jdbc): add optional JDBC plugin support 2026-05-10 12:57:38 +08:00
t8y2 b013a2ac29 feat(sql): persist SQL library in app database 2026-05-10 00:41:17 +08:00
t8y2 cac383e6bf feat(sql): add saved SQL library 2026-05-10 00:33:25 +08:00
t8y2 9c71442f43 feat(connection): add configurable SSH timeout 2026-05-09 19:34:30 +08:00
Bacon2994 3b4b6c1ff7 fix(query): 修复查询结果表头提示与全量排序 (#164)
* fix(grid): 修复查询结果表头提示与排序

修复 MySQL 查询结果列元数据取错库名的问题,并补齐查询结果全量排序链路,避免表头提示与排序行为失效。

* fix(query): 修复结果排序重复列名报错
2026-05-08 18:31:09 +08:00
rarnu 814fda7433 add: 增加对于查询得到的结果集直接进行数据编辑的功能。当查询是单表且包含主键(有联合主键时包含全部主键)时,可以在结果集内双击单元格修改数据,修改结果以事务形式提交或回滚。 2026-05-07 15:09:59 +08:00
t8y2 b79e5b53bc feat: add GaussDB ODBC support and flatten connection list
- Add GaussDB/openGauss support via ODBC (resolves #106)
- Use pg_catalog queries instead of information_schema for compatibility
- Share ODBC environment across drivers with auto ODBCSYSINI detection
- Fix ODBC error message false positive on "Driver" keyword match
- Merge connection dialog categories into a single flat list
- Remove duplicate DDL button from data grid footer
2026-05-07 02:18:20 +08:00
t8y2 4bf4f3b77f feat: add DM (Dameng) database support via ODBC
Connect to DM8 databases using the odbc-api crate with unixODBC.
Includes schema browsing, query execution, DDL generation,
and full frontend integration with download link to DM ODBC driver.
2026-05-07 01:02:56 +08:00
t8y2 b6a39c1fa0 feat(query): set schema context (search_path) before query execution (#113)
Add schema selector to the editor toolbar for schema-aware databases
(PostgreSQL, SQL Server, Oracle). When a schema is selected, the backend
sets the appropriate search_path before executing queries so users no
longer need to write schema-qualified table names.
2026-05-06 18:22:41 +08:00
t8y2 e315c4ad36 feat(oracle): add SYSDBA authentication support
Switch oracle-rs to t8y2/oracle-rs fork with SYSDBA support.
Add sysdba field to ConnectionConfig and a checkbox in the
Oracle connection dialog to enable connecting as SYS with
SYSDBA privileges.
2026-05-06 13:23:56 +08:00
t8y2 3acd9280ac chore: add oxfmt + husky + lint-staged for code formatting and CI format checks 2026-05-05 15:41:34 +08:00
t8y2 bc7f521604 feat: add connection group management and sidebar layout persistence 2026-05-04 13:52:42 +08:00
t8y2 ae21053f69 feat: add execute_multi command and update query handling for multiple results 2026-05-04 02:55:19 +08:00
yavon007 4e1b35186b feat: add index type, included columns, filter, and comment support
- Add filter, index_type, included_columns, and comment fields to IndexInfo
- PostgreSQL: query pg_am for index type, use indnkeyatts to split key/included columns, retrieve index comments via obj_description()
- SQL Server: add type_desc, filter_definition, included columns via is_included_column
- MySQL: add INDEX_TYPE from information_schema.STATISTICS
- Oracle: add INDEX_TYPE from ALL_INDEXES
- DDL generation: add USING (PostgreSQL), type prefix + INCLUDE + WHERE (SQL Server), COMMENT ON INDEX (PostgreSQL)
- Frontend: update types, state mapping, SQL generation, and i18n translations
2026-05-03 20:10:35 +08:00
yavon007 58ca9a3b21 feat: add SSH key passphrase field and file picker for key path
- Add ssh_key_passphrase field to ConnectionConfig model with full keyring lifecycle
- Pass passphrase to russh load_secret_key for encrypted SSH keys
- Add native file picker (FolderOpen icon) next to SSH key path input
- Add password-type input for key passphrase in connection dialog
- Make connection dialog form scrollable for short windows
- Fix alignment of key path input and browse button
- Add i18n keys (en + zh-CN)
2026-05-03 04:39:03 +08:00
SuLea-IT d180539778 feat: add explain plan viewer 2026-05-02 21:00:53 +08:00
kingcanfish d1075c0042 fix: resolve PostgreSQL/MySQL/SQL Server NUMERIC/DECIMAL display issues
- Add rust_decimal feature to sqlx and tiberius for proper Decimal type handling
- Fix try_get_unchecked<String> causing NULL or garbled output for numeric types
- Add numeric_precision and numeric_scale to ColumnInfo for all database drivers
- Update frontend to display precision (e.g., numeric(20,6)) in column headers
- Fix typeColorClass to handle type names with precision suffix

Root cause: PostgreSQL binary protocol sends NUMERIC as PgNumeric binary format,
not UTF-8 text. try_get_unchecked<String> attempted to decode binary bytes as UTF-8,
causing decode failures (NULL) or garbage characters (乱码).
2026-05-02 10:14:01 +08:00
t8y2 6e0fdf1c92 feat: add ssh_expose_lan configuration and localization support 2026-05-01 15:37:52 +08:00
t8y2 b43e67b4fc feat: add support for Doris, StarRocks, and Redshift databases in connection handling and UI 2026-05-01 01:26:35 +08:00
806a855ef0 Add query cancellation controls (#41)
Co-authored-by: SuLe <sule@SuLedeMacBook-Air.local>
Co-authored-by: skyler <77960507+t8y2@users.noreply.github.com>
2026-05-01 00:05:15 +08:00
skyler b1f4d4c300 feat: add Elasticsearch support with document browser (#38)
- New elasticsearch_driver using reqwest HTTP client
- Reuse MongoDB document browser (MongoDocBrowser) for ES indices
- ES indices shown as collections under "default" database
- Document CRUD via ES REST API (_search, _doc)
- No extra dependencies (uses existing reqwest)
2026-04-30 19:40:12 +08:00
skyler 9fa6ab063d feat: display column comments in sidebar and data grid header (#37)
- Add comment field to ColumnInfo (MySQL COLUMN_COMMENT, PostgreSQL col_description)
- Show column comments in sidebar tree nodes
- Show column comments on hover in data grid header
- Default MySQL charset to utf8mb4 for proper CJK support
Closes #14
2026-04-30 18:54:26 +08:00
skyler 2b4cd311b3 feat(mongodb): support direct URL connection string (#32)
* chore: bump version to 0.2.1

* fix(ci): wait for Release workflow before publishing packages

Changed trigger from release:published to workflow_run on Release
completion, so assets are already uploaded when download starts.

* feat(mongodb): support direct URL connection string

Allow pasting a full MongoDB URI (e.g. mongodb+srv://) to connect
to Atlas clusters, replica sets, and other multi-instance setups.
2026-04-30 17:23:50 +08:00
SuLea-ITandSuLe 48f56f15b1 feat: pin tabs and tree nodes (#17)
Co-authored-by: SuLe <sule@SuLedeMacBook-Air.local>
2026-04-30 14:50:40 +08:00
SuLea-ITandSuLe e3b8f57326 feat: execute selected sql (#13)
Co-authored-by: SuLe <sule@SuLedeMacBook-Air.local>
2026-04-30 14:38:26 +08:00
t8y2 5490ed007e refactor(redis): keep keys out of sidebar tree 2026-04-30 14:29:25 +08:00
t8y2 4ef13e68c4 feat(connection): add compatible driver profiles 2026-04-30 14:00:59 +08:00
t8y2 1a60c5b7ac feat(connection): add connection colors and database tab labels 2026-04-30 13:18:15 +08:00
t8y2 5c546f68af feat(redis): implement pagination for Redis key scanning and enhance UI for loading more keys 2026-04-30 13:04:48 +08:00
vrustx 753b72ebe4 feat(database): 优化数据库编辑体验 (#10)
改进关系型数据库表格编辑,增加新增、修改、删除和恢复等行状态展示,保存时按主键生成对应 SQL。

优化 MongoDB 文档编辑,默认保留 JSON 阅读视图,点击 Edit 后使用递归 JSON 结构编辑器,支持嵌套对象和数组分层编辑,边界更清晰。

同步中英文界面文案。

验证:pnpm build;git diff --check。
2026-04-30 13:03:57 +08:00
t8y2 b325cc50c4 feat: add SSL/TLS support for Redis connections and update related configurations 2026-04-30 11:01:14 +08:00
t8y2 2e971ce152 feat: add Oracle database support 2026-04-30 04:28:33 +08:00
t8y2 3e1ab0b3a4 feat: add SSH password authentication support 2026-04-29 20:36:07 +08:00
t8y2 b2e6dfad7e feat: initial release
Multi-database management tool built with Tauri + Vue 3.
Supports MySQL, PostgreSQL, SQLite, Redis, MongoDB, DuckDB, ClickHouse, SQL Server.
2026-04-29 18:09:23 +08:00