Commit Graph
118 Commits
Author SHA1 Message Date
t8y2 9ba38a4dc9 chore: bump version to 0.4.2 2026-05-06 20:24:13 +08:00
t8y2 518d47f243 feat(default.json): add updater permission to default capabilities 2026-05-06 20:19:06 +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 2e6ef4b00b docs: revamp README with new screenshots and AGPL-3.0 license
- Restructure features into categorized sections
- Add new 2x2 screenshot grid (light, dark, ER diagram, data grid)
- Add Docker self-hosted section
- Add Elasticsearch to supported databases
- Add missing features (schema diff, explain plan, field lineage, etc.)
- Switch license from MIT to AGPL-3.0
- Update macOS install note (now code-signed and notarized)
2026-05-06 01:40:54 +08:00
t8y2 8cc4dfb268 fix: update workspace paths and optimize Rust caching in CI workflows 2026-05-05 21:45:17 +08:00
t8y2 0ee433763a chore: bump version to 0.4.1 2026-05-05 16:13:53 +08:00
t8y2 41445ff474 chore: add rustfmt.toml and apply unified code formatting 2026-05-05 14:16:18 +08:00
t8y2 edcdd652ae fix(connection): reduce failed connection timeout
Closes #86
2026-05-05 14:13:07 +08:00
t8y2 f9a9945f1f feat: migrate storage from JSON files to SQLite
Replace all JSON file storage (connections, secrets, history, AI config,
conversations, sidebar layout) with a single SQLite database (dbx.db).
Auto-migrates existing JSON data on first launch, renaming old files to
.bak. Remove keyring dependency — passwords now stored in SQLite.
2026-05-05 04:48:45 +08:00
t8y2 cf4f25fd52 feat: extract dbx-core crate for web deployment support
Refactor all database drivers, query execution, schema operations, and
business logic into a shared `dbx-core` crate. The Tauri desktop app
becomes a thin shell delegating to dbx-core, enabling future web and
CLI frontends to reuse the same core.
2026-05-05 03:16:24 +08:00
t8y2 0d6892bae2 fix: base64-encode updater pubkey to match expected format 2026-05-04 23:07:52 +08:00
t8y2 b9e29b423f fix: update SQLite connection options for network paths 2026-05-04 21:45:16 +08:00
t8y2 85706d5c86 fix: update updater pubkey and settings dialog overflow 2026-05-04 21:21:31 +08:00
t8y2 9ced92fdc8 fix: expand tilde in SQLite/DuckDB file paths to home directory
Closes #84
2026-05-04 21:10:34 +08:00
t8y2 af9c206d75 feat: add auto-update support via tauri-plugin-updater 2026-05-04 18:14:40 +08:00
t8y2 8d3c14c24a chore: bump version to 0.4.0 2026-05-04 17:41:07 +08:00
t8y2 bc7f521604 feat: add connection group management and sidebar layout persistence 2026-05-04 13:52:42 +08:00
t8y2 99c5626cc3 chore: bump version to 0.3.10 2026-05-04 03:05:45 +08:00
t8y2 fc71be8f1a feat: remove deprecated connect function and streamline SQLite connection handling 2026-05-04 02:57:05 +08:00
t8y2 ae21053f69 feat: add execute_multi command and update query handling for multiple results 2026-05-04 02:55:19 +08:00
Agent-43 81bd188972 Fix SQLite UNC path connections 2026-05-03 23:28:45 +05:30
yavon007 8013a19e50 fix: separate key columns from included in PG index, add varbinary(max) for SQL Server
PostgreSQL list_indexes was returning all_cols (key + included) in IndexInfo.columns,
causing DDL and UI duplication. Now only key columns are returned in columns, with
included columns correctly split via indnkeyatts.

SQL Server varbinary now handles Some(-1) to display varbinary(max).
2026-05-03 21:03:49 +08:00
yavon007 8106b6370c Merge remote-tracking branch 'origin/main' 2026-05-03 20:34:19 +08:00
yavon007 a59494e4c4 fix: guard index column splits, restrict INCLUDE/WHERE by db, unify index type dropdowns
- Filter empty strings from STRING_AGG/LISTAGG splits in SQL Server, Oracle, MySQL
- Emit INCLUDE clause only for PostgreSQL and SQL Server (not MySQL/SQLite)
- Emit WHERE clause only for PostgreSQL, SQL Server, SQLite (not MySQL)
- Replace index type free-text input with dropdown for all 5 database types
- Fix hardcoded column count in resize handle (use indexColLabels.length - 1)
- Fix pg_get_indexdef type mismatch: cast k.n from bigint to integer
2026-05-03 20:33:09 +08:00
yavon007 25f2f46718 fix: correct PostgreSQL numeric_scale formula and add index SQL test coverage
The numeric_scale extraction used (& 2047) - 1024 which produces negative
values; fixed to & 65535. Added 12 tests for index SQL generation: INCLUDE,
USING, WHERE, COMMENT ON INDEX, type prefix, and combined scenarios.
2026-05-03 20:11:44 +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 b88e1b8ccb fix: improve column type precision and SQL correctness across all databases
- PostgreSQL: rewrite column query from information_schema to pg_attribute for accurate type info via format_type(atttypid, atttypmod); extract character_maximum_length from atttypmod for varchar/bpchar; fix execute_query with persistent(false) and empty result fallback
- SQL Server: reconstruct column types with precision (varchar(max), decimal(p,s), datetime2(p)); stop dividing nvarchar/nchar CHARACTER_MAXIMUM_LENGTH by 2
- MySQL: use COLUMN_TYPE instead of DATA_TYPE for full type definitions; add CHARACTER_MAXIMUM_LENGTH; fix ONLY_FULL_GROUP_BY with MIN(NON_UNIQUE)
- Oracle: add CHAR_LENGTH/DATA_LENGTH for column type precision; fix INDEX_OWNER join to prevent cartesian product
- SQLite: fix PRAGMA injection via double-quote escaping; detect primary key indexes via origin column
2026-05-03 20:10:35 +08:00
t8y2 2e4ac5a574 fix: correct product name casing in tauri configuration 2026-05-03 18:52:05 +08:00
t8y2 3cd328ece8 feat: enhance application run logic to handle macOS window reopening 2026-05-03 18:50:12 +08:00
t8y2 b771e69f29 chore: bump version to 0.3.9 2026-05-03 15:13:48 +08:00
t8y2 53df4e56cb feat: MCP bridge enhancements — window focus, execute-query, markdown output
- Auto-focus DBX window when MCP opens a table or executes a query
- Ensure connections are loaded before handling MCP events
- Add /execute-query bridge route and dbx_execute_and_show tool
- Format all tool responses as markdown tables (less tokens, more readable)
- Extract shared bridgeRequest helper to reduce duplication
2026-05-03 14:50:44 +08:00
t8y2 aa59c26fa2 feat: add MCP bridge for AI agent integration
Localhost HTTP listener (dynamic port) allows MCP Server and other AI agents
to open tables directly in DBX UI via Tauri events.
2026-05-03 14:35:48 +08:00
t8y2 da70b8f2c1 chore: bump version to 0.3.8 2026-05-03 13:01:46 +08:00
skyler 1b8d56a43b Merge pull request #65 from SuLea-IT/codex/field-lineage
[codex] Add field lineage viewer and review fixes
2026-05-03 11:18:36 +08:00
SuLea-IT 4d6cd5351c fix: address lineage review feedback 2026-05-03 06:02:39 +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
t8y2 05d0b0408c chore: bump version to 0.3.7 in Cargo.lock 2026-05-02 23:52:04 +08:00
t8y2 fb8b06cc14 chore: bump version to 0.3.7 2026-05-02 23:29:38 +08:00
t8y2 f598b5a91c feat: enhance MySQL connection handling with bare option and optimize component imports 2026-05-02 23:25:39 +08:00
t8y2 db31a7c45e chore: optimize release profile with panic=abort and fat LTO 2026-05-02 22:54:19 +08:00
t8y2 d3d680b224 chore: switch release LTO from fat to thin for faster builds 2026-05-02 22:30:30 +08:00
skyler adb7bc9253 Merge pull request #61 from SuLea-IT/codex/explain-plan-viewer
feat: add explain plan viewer
2026-05-02 21:54:54 +08:00
t8y2 44c98ba335 feat: add support for bare MySQL connections and improve SQL query handling for doris 2026-05-02 21:51:50 +08:00
SuLea-IT d180539778 feat: add explain plan viewer 2026-05-02 21:00:53 +08:00
t8y2 eab5556b6f feat: enhance AI streaming with reasoning support and UI updates 2026-05-02 20:43:49 +08:00
SuLea-IT 2ebd72b3b7 feat: import table data from files 2026-05-02 19:04:41 +08:00
t8y2 608a02a0bb chore: bump version to 0.3.6 2026-05-02 17:48:30 +08:00
t8y2 a025649f89 fix: update MySql connection options to include pipes as concat and timezone settings 2026-05-02 17:36:00 +08:00
t8y2 c6f9bb89ec fix: support for ClickHouse database username and password configuration 2026-05-02 17:25:16 +08:00