Commit Graph
617 Commits
Author SHA1 Message Date
Illuminated2020 99e7997620 fix(sql_safety): 修正子查询边界误判 2026-05-12 16:45:30 +08:00
Illuminated2020 1909856467 fix(sql-safety): 修复 SQL 风险复审问题
- 调整环境标签优先级,并阻止显式非生产标签回退

- 将无 WHERE/LIMIT 的 DELETE/UPDATE 标记为 critical

- 跳过 PostgreSQL dollar quote,扫描 MySQL executable comment

- 补充 sql_safety 覆盖测试
2026-05-12 16:45:30 +08:00
Illuminated2020 99e5e6317d fix(sql-safety): 修正危险 SQL 分类与风险上下文
- 扫描可执行 SQL token,避免 WITH、EXPLAIN ANALYZE 和多语句中的写入/DDL 被判为 Read
- 引入 RiskContext 支持 environment_label,并保留 risk_for_connection 便捷调用
- 补充 SQL 安全分类与生产环境风险识别测试

BREAKING CHANGE: risk_for 现在接收 RiskContext;三参数便捷调用迁移为 risk_for_connection
2026-05-12 16:45:30 +08:00
Illuminated2020 bc6898cd22 feat(dbx-core): 新增 SQL 安全风险分类
- 添加 sql_safety 模块,区分 READ、WRITE、DDL 和 Unknown

- 增加生产连接信号识别和风险元数据输出

- 导出模块并补充分类器单元测试
2026-05-12 16:45:30 +08:00
Illuminated2020 7f83739040 fix(cli): 校验 CLI envelope 反序列化
- 为 CliEnvelope 增加 ok/data/error 一致性校验和回归测试

- 让 dbx-cli commands 复用 dbx-core 的 CLI DTO 与 helper
2026-05-12 16:45:30 +08:00
Illuminated2020 10373bdf36 feat(dbx-core): 新增 CLI envelope DTO
- 添加 CLI source、error code、error 和 envelope 类型

- 导出 dbx-core::cli 模块并补充序列化单元测试

- 补齐既有测试 fixture 的 JDBC 默认字段以恢复目标测试编译
2026-05-12 16:45:30 +08:00
Illuminated2020 dd113ed714 build(dbx-cli): 将 CLI 二进制改名为 dbx-cli
- 更新 dbx-cli crate 的 bin 目标名,避免与桌面 dbx 目标冲突

- 同步计划文档中的 cargo run 命令引用

- 保留 runtime_client.rs 现有格式化改动
2026-05-12 16:43:46 +08:00
Illuminated2020 01110945a1 fix(dbx-cli): 补齐最小 runtime client 模块以恢复编译
- 新增 commands 和 runtime_client 最小实现,补足 main.rs 所需模块

- 允许 context 读取 GUI runtime,GUI 专属命令在 headless 下返回结构化错误

- 更新 Cargo.lock 并确认 cargo check -p dbx-cli --locked 通过
2026-05-12 16:43:46 +08:00
Illuminated2020 5720f05dd0 feat(cli): 添加 CLI crate 骨架 2026-05-12 16:43:46 +08:00
Illuminated2020 4991acf79a docs: add dbx cli runtime implementation plan 2026-05-12 16:43:46 +08:00
Illuminated2020 b0d4575455 chore: ignore worktree directory 2026-05-12 16:43:46 +08:00
t8y2 99439c143b feat(grid): add Clone Row to row context menu (closes #227)
Copy the selected row as a new row with primary key columns set to
null so auto-increment values are generated on save.
2026-05-12 16:36:05 +08:00
t8y2 24ab55ed17 fix(sqlserver): preserve batch semantics for CTE and DECLARE statements
SQL Server treats `;` as a statement terminator, not a batch separator.
The previous logic split multi-statement SQL by `;` and executed each
independently, breaking variable/CTE scope across statements.

Send the entire SQL as a single batch via `simple_query` so DECLARE,
SET, and CTE definitions remain visible to subsequent statements.
Split only on the `GO` client directive when present.
2026-05-12 16:22:22 +08:00
t8y2 01c4b744ef fix(updater): show real app version and release notes 2026-05-12 15:15:46 +08:00
t8y2 724813c72a chore: bump version to 0.5.4 v0.5.4 2026-05-12 14:56:10 +08:00
t8y2 45e67fae6e feat(jdbc): support SSH tunnel and proxy for JDBC connections
Parse host:port from JDBC URLs and rewrite them when an SSH or proxy
tunnel is active, so the Java plugin connects through the local
forwarded port. Enable the SSH/Proxy tabs in the connection dialog
for JDBC.
2026-05-12 14:53:45 +08:00
t8y2 c8d4a04a31 test(sidebar): align flat tree buffer expectation 2026-05-12 14:53:22 +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 76ff987d00 fix(sidebar): clear children cache before refreshing expanded nodes
When refreshAllTree skipped collapsed child nodes, their IDs remained
in loadedTreeNodeChildrenIds. After the parent was rebuilt with fresh
children, expanding a previously-collapsed node hit useCachedChildren
and returned immediately with empty children.
2026-05-12 14:06:10 +08:00
t8y2 03cc4ba80a fix(grid): refine data grid toolbar layout 2026-05-12 14:05:03 +08:00
t8y2 9463ff07a7 fix(grid): preserve page size when reloading data after save
The reload event did not carry limit/offset, so buildTableSelectSql
always fell back to its default LIMIT 100, resetting 1000-row pages
back to 100 after every commit.
2026-05-12 13:55:15 +08:00
t8y2 78184544cf perf(grid): optimize virtual scroll to reduce white flash during fast scrolling
Add buffer, skip-hover, will-change, and CSS contain properties to all
RecycleScroller instances (DataGrid, ConnectionTree, ObjectBrowser,
RedisKeyBrowser). Disable pointer-events during scroll in DataGrid to
reduce repaint overhead.
2026-05-12 13:50:03 +08:00
t8y2 368fa5a102 feat(redis): add bulk operations and command runner 2026-05-12 13:38:43 +08:00
t8y2 f2e8b49df7 feat(settings): improve settings dialog links 2026-05-12 13:02:36 +08:00
skyler 30f9b4ab8c Merge pull request #224 from Abeautifulsnow/fix/db-placement-copy
feat(connection): 为不同数据库类型展示各自对应的 connection URL placeholder
2026-05-12 10:58:26 +08:00
runstone 3652db8fa3 feat(connection): 为不同数据库类型展示各自对应的 connection URL placeholder
## 修改内容
- 新增 connectionUrlPlaceholder 纯函数于 connectionPresentation.ts,根据 db_type 返回对应 URL 格式
- ConnectionDialog.vue 中引用该函数替换原有统一的 i18n placeholder
- 新增 20 个单元测试覆盖所有数据库类型及边界场景
2026-05-12 10:21:19 +08:00
skyler 57874ce33c Merge pull request #221 from rarnu/feat/ai-thinking-option
feat: 为AI设置增加了thinking的开关
2026-05-12 09:43:06 +08:00
rarnu 4f0a13f24f add: 为AI设置增加了thinking的开关 2026-05-12 01:16:40 +08:00
t8y2 8cf0f612d4 fix(tree): Modify the shouldVirtualizeFlatTree function to support virtualization for non-empty trees. 2026-05-12 01:12:18 +08:00
skyler ab1b4ae227 Merge pull request #220 from rarnu/feat/editor-settings
Opt: 优化设置页面
2026-05-12 00:08:26 +08:00
rarnu c18593d003 add: 修改布局方案中选中项的样式为浅蓝色(与AI内API选项的样式一致) 2026-05-11 23:33:27 +08:00
rarnu e8ab15140a add: 将AI大模型的设置移至设置页 2026-05-11 23:25:27 +08:00
skyler 4af72bf2a6 Merge pull request #219 from xKrah/main
Add support new types for postgresql
2026-05-11 22:10:01 +08:00
Alexandr ad5e6fcce4 Merge branch 't8y2:main' into main 2026-05-11 17:11:12 +04:00
KraH 23bbfcb157 Added support for integer arrays
Added support for float4
2026-05-11 17:06:43 +04:00
Abeautifulsnow dddb813fc6 refactor(grid): 提取 cellValue 格式化到共享模块并增加测试 (#218)
将 CellValue 类型和 displayCellValue(原 formatCell)提取到
src/lib/cellValue.ts,DataGrid.vue 和 useDataGridExport.ts 统一引用,
移除 composable 中冗余的 formatCell 参数传递。
2026-05-11 18:56:08 +08:00
t8y2 e4c1d6639b fix(sidebar): 保持表列表滚动显示 2026-05-11 17:15:36 +08:00
t8y2 cab0e79dad fix(oracle): 修复表数据加载与编辑 2026-05-11 16:35:59 +08:00
t8y2 79277c660f feat(proxy): 增加数据库和 AI 代理支持 2026-05-11 15:05:25 +08:00
Alexandr 1d5a2b2220 Fixed single quotes causing build failures (#214)
* i18n for redis key browser;

* Fixed single quotes causing build failures
2026-05-11 13:49:10 +08:00
t8y2 02b2c31b7c fix(oracle): support RAC/SCAN connection redirect (closes #209)
Update rust-oracle to include Oracle connection redirect support.
Previously connections through RAC/SCAN listeners failed with
"redirect not implemented" error.
2026-05-11 13:46:28 +08:00
Alexandr a6a0b0c5b2 Merge branch 'main' into main 2026-05-11 09:35:51 +04:00
KraH e817141234 Fixed single quotes causing build failures 2026-05-11 09:31:51 +04:00
Alexandr 6de801557a i18n for redis key browser; (#213) 2026-05-11 13:26:28 +08:00
KraH 60bfac35e6 i18n for redis key browser; 2026-05-11 09:21:27 +04: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 7197f83eda perf(sidebar): fix UI lag with 100+ databases (closes #201)
- Lower virtual scrolling threshold from 400 to 100 nodes so
  RecycleScroller activates earlier with many databases
- Memoize getConfig() with a computed Map to avoid O(n) linear
  search on every TreeItem computed property evaluation
2026-05-11 13:08:57 +08:00
t8y2 7c38af6cbb fix(oracle): speed up schema diff and add comment sync (closes #198)
- Replace ALL_OBJECTS with ALL_TABLES UNION ALL_VIEWS in list_databases
  query to avoid slow full scan on large Oracle instances
- Add loading indicator in SchemaDiffDialog during database/schema loading
- Generate COMMENT ON TABLE/COLUMN statements in schema diff sync SQL
- Compare column and table comments in diff detection
2026-05-11 12:59:07 +08:00
t8y2 1934205c86 feat(grid): add LIKE, NOT LIKE, <, > context menu filters
Add four new filter options to the right-click context menu in table
data view: contains (LIKE), does not contain (NOT LIKE), less than (<),
and greater than (>). Includes en/zh-CN/es translations.
2026-05-11 12:39:31 +08:00
t8y2 1b0c17315b feat(i18n): replace locale toggle with dropdown menu and country flags
Replace the single-click locale cycle button with a dropdown menu
showing all available languages with their country flag emoji.
Locale switching logic moved from App.vue into AppToolbar.vue.
2026-05-11 12:30:04 +08:00