Commit Graph
143 Commits
Author SHA1 Message Date
t8y2 fde76d5576 fix(grid): show query errors as alert instead of table row 2026-05-07 02:23:33 +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
rarnu 969f441753 add: 对SQL编辑器增加Ctrl(Mac下是Cmd)+左键点击的功能,点击表名可以查看建表DDL,点击列名可以查看列信息 (#122)
* add: 对SQL编辑器增加Ctrl(Mac下是Cmd)+左键点击的功能,点击表名可以查看建表DDL,点击列名可以查看列信息

* add: 修复联表情况下获取列信息的问题

* fix: 修复联表场景下的SQL语句提示

* remove: 移除不需要的调试打印

* add: 补充'列详情'多语言字段

* remove: 移除不必要的函数

* remove: 移除不必要的导入

* add: 目前会分析SQL语句内引用的表,并且只加载对应的表内的列信息,不再对全表做列信息拉取
2026-05-07 01:04:52 +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 02813f4b9e feat(sidebar): add fuzzy search for table/schema filtering 2026-05-06 22:49:56 +08:00
t8y2 4b11506bee feat(ai): add markdown rendering for AI assistant responses
Use `marked` library to parse LLM output so bold, headings, lists and
other markdown syntax render properly instead of showing raw symbols.
Also fix missing oxfmt darwin-arm64 native binding.
2026-05-06 22:33:30 +08:00
t8y2 6523d1b3f6 feat(sidebar): add table management context menu operations (#114)
Add create, drop, empty, truncate, and duplicate structure operations
to the sidebar table right-click menu. Also extends the table structure
editor to support create mode from the database/schema context menu.
2026-05-06 21:21:08 +08:00
t8y2 6a3e8067e1 feat(transfer): add upsert mode for data transfer (#105)
Add a third transfer mode that inserts new rows and updates existing
rows based on primary key, supporting PostgreSQL, MySQL, SQLite,
SQL Server, Oracle, and DuckDB with database-specific upsert syntax.
Also fixes DuckDB primary key detection in transfer operations.
2026-05-06 20:44:05 +08:00
t8y2 569cb26261 feat(grid): show column type and comment in tooltip instead of inline
Move the column type annotation from inline display (#type) to a hover
tooltip on the header cell. The tooltip shows the column type with color
and comment (if present), matching the tab tooltip style.
2026-05-06 19:50:41 +08:00
t8y2 ecdc86a478 feat(connection): add file picker for SQLite/DuckDB and fix default host (#121)
Add a browse button next to the file path input for SQLite and DuckDB
connections, allowing users to select database files via system dialog
instead of manually typing paths. Clear the default host value when
switching to file-based database types.
2026-05-06 18:51:53 +08:00
skyler 133690bca7 Merge pull request #116 from SuLea-IT/codex/issue-110-mongodb-legacy
feat: add MongoDB form URL parameters
2026-05-06 18:29:14 +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
SuLea-IT 8c1a75d3d5 fix: improve mongodb legacy connection params 2026-05-06 13:10:46 +08:00
t8y2 746a4c491a fix(grid): display JSONB values as JSON string instead of [object Object]
Closes #100
2026-05-06 12:10:33 +08:00
t8y2 0aa562f6ee fix: replace crypto.randomUUID with polyfill for HTTP contexts
crypto.randomUUID() is only available in secure contexts (HTTPS/localhost).
Add uuid() utility with fallback for HTTP deployments.
2026-05-05 23:51:07 +08:00
t8y2 0f40488bf1 feat(web): add password setup page, change password, and settings tabs
- First-time visitors see a password setup page instead of open access
- Password persisted to SQLite (env var DBX_PASSWORD takes priority)
- Add change password in settings dialog (Security tab, web only)
- Split settings dialog into Editor and Security tabs
- Argon2 hashing for all password storage
2026-05-05 22:22:04 +08:00
skyler 6918903cad Merge pull request #95 from wu-clan/optimize-conn-error
feat: optimize connection error alerts
2026-05-05 17:35:03 +08:00
t8y2 025b676b0b feat(AppTabBar): improve tab scrolling behavior and enhance tab styling 2026-05-05 17:34:18 +08:00
Wu Clan 5242cbb3c6 fix: lint 2026-05-05 17:10:07 +08:00
Wu Clan cc70e4b59c feat: optimize connection error alerts 2026-05-05 17:07:58 +08:00
t8y2 7a71c4866d feat(ContentArea): enhance tab display with improved styling for table name and database info 2026-05-05 16:55:14 +08:00
t8y2 4cef22904b feat(chart): add chart functionality with ECharts integration and update output view options 2026-05-05 16:53:26 +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 c295bf5780 feat(sql): add save/open SQL file buttons and enable tab persistence on desktop 2026-05-05 15:18:54 +08:00
t8y2 10d1d31053 Refactor code structure for improved readability and maintainability 2026-05-05 13:21:04 +08:00
t8y2 6beae4e139 feat: add Docker update instructions for non-desktop users in UpdateDialog 2026-05-05 12:01:56 +08:00
t8y2 e76b836eb4 feat: refactor database loading logic and update database options handling 2026-05-05 05:13:55 +08:00
t8y2 bdd8b3fa03 refactor: split App.vue into composables and layout components
Extract 11 composables and 5 layout components from App.vue, reducing it
from 1921 to 327 lines. Unify dialog overlay style across DialogContent
and DialogScrollContent for consistent backdrop appearance.
2026-05-05 04:14:00 +08:00
t8y2 41bceffc0e feat: add web deployment with axum server, Docker support, and browser UI
Introduce src-web (axum HTTP server) exposing all 43 database operations
as REST APIs with SSE streaming for AI, transfers, and SQL file execution.
Frontend adapts automatically between Tauri and HTTP backends via api.ts.
Includes password authentication, Docker packaging, and login page.
2026-05-05 03:16:50 +08:00
t8y2 50f55bd6dc feat: enhance connection selection UI with database icons 2026-05-04 23:51:33 +08:00
t8y2 790791f946 feat: add execute mode settings and cursor position handling in SQL editor 2026-05-04 21:19:07 +08:00
Wu Clan 14d23a5824 feat: refactor the new connection dialog 2026-05-04 17:11:13 +08:00
t8y2 bc7f521604 feat: add connection group management and sidebar layout persistence 2026-05-04 13:52:42 +08:00
skyler 1818cd3b78 Merge pull request #78 from SuLea-IT/codex/issue-76-database-search
[codex] Add database-wide search
2026-05-04 12:05:37 +08:00
SuLea-IT 5534b13fde feat: add database-wide search 2026-05-04 12:01:19 +08:00
SuLea-IT 8bd1d4c2a8 feat: improve connection and table tree UX 2026-05-04 11:49:28 +08:00
t8y2 33cb298a8d feat: disable autocorrect and spellcheck for input fields across components 2026-05-04 02:55:19 +08:00
t8y2 71c7ae08c8 feat: add type filtering functionality and update translations for filter options 2026-05-04 02:55:19 +08:00
yavon007 2bd7d1be1a fix: use AcceptableValue type for Select update handler
The Select component's @update:model-value callback expects
AcceptableValue (string | number | null), not string.
2026-05-03 20:44:29 +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 51dfba9829 feat: improve index editor with dropdowns, resizable columns, and search
- Replace text inputs with dropdown menus for index and included column selection
- Add search/filter support in column dropdowns for large column lists
- Highlight selected items with background color for easy toggling
- Add resizable column widths via drag handles on table headers
- Add index type, included columns, filter, and comment columns to index table
2026-05-03 20:10:35 +08:00
t8y2 58d6acb2b1 feat: add DM (Dameng) database support and compatibility hint 2026-05-03 12:56:25 +08:00
t8y2 a66cffb692 feat: add configuration export/import with passphrase encryption 2026-05-03 12:46:49 +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
SuLea-IT 5a37f584aa feat: add field lineage viewer 2026-05-03 05:39:05 +08:00
yavon007 83f5e34cea feat: add autocomplete to DataGrid search input
- Show WHERE keyword suggestion when typing 'w'/'wh' at the start
- Auto-complete column names from current table after WHERE clause
- Dropdown follows cursor position dynamically
- Tab or mouse click to accept suggestion, Enter for WHERE search
- Smart quote/parenthesis pairing: ', ", ( auto-close with cursor centered
- Skip over existing closing character instead of duplicating
- Arrow keys navigate suggestions, Escape dismisses
2026-05-03 04:39:14 +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
skyler fb2982500e Merge pull request #62 from rarnu/fix/ai-chat-api
fix: 大模型配置中的API选项边框
2026-05-02 21:56:12 +08:00