Commit Graph
129 Commits
Author SHA1 Message Date
t8y2 23edbe391f feat(postgres): support schema comments 2026-06-24 18:35:43 +08:00
t8y2 829f6dc7eb feat(grid): add current page sorting 2026-06-24 15:39:40 +08:00
dalew c8291d0d7d feat(redis): add Redis Instance Info Dashboard panel (#1411) 2026-06-24 13:21:00 +08:00
t8y2 c411cc6707 fix(grid): reset filter/sort when reusing data tab 2026-06-24 12:52:31 +08:00
不吃西葫芦 9a0a32e04c fix(connection): recover connection state after VPN failures (#641) 2026-06-24 01:44:46 +08:00
二丫讲梵 3ebfae05a2 feat(nacos): add Nacos management console (#1456) 2026-06-24 01:19:18 +08:00
t8y2 f29d393c37 fix(sidebar): handle double-click on saved SQL files
- Add missing 'open-saved-sql' action handler in onDoubleClick
- Add openSavedSqlFile() function to open saved SQL files
- Fixes issue where double-clicking saved SQL files did nothing
  when sidebarActivation is set to 'double' mode

Fixes #1636
2026-06-23 21:42:23 +08:00
luoianun a36d2f12f7 feat: add selectable database charset options 2026-06-23 21:17:55 +08:00
t8y2 5c4c87a042 feat(grid): align query result editing 2026-06-23 17:07:30 +08:00
t8y2 2f2fc36b18 fix(data): align table preview ordering 2026-06-23 10:51:30 +08:00
t8y2 4346192713 feat(mongodb): show collection metadata in sidebar 2026-06-22 12:42:31 +08:00
林剑凛 41edb3da91 feat(mongo): add database and collection deletion 2026-06-20 22:22:04 +08:00
AiLi 8b6eb353db feat(insert-template): add TDengine-aware insert template strategy and table-type propagation 2026-06-19 23:58:34 +08:00
t8y2 59ea4eafdc feat(sql): add table generate sql menu 2026-06-19 10:53:26 +08:00
t8y2 e27d34a34a feat(vector): add qdrant and milvus support 2026-06-19 10:07:56 +08:00
t8y2 7511753f71 fix(desktop): handle object source tab save close 2026-06-18 16:15:58 +08:00
t8y2 35c2d7973b feat(sidebar): show connection details in tooltip 2026-06-18 15:31:38 +08:00
t8y2 9e75f62dbf feat(sqlserver): support linked server browsing 2026-06-18 13:17:44 +08:00
t8y2 22b8ba17bb fix(schema): handle view DDL object types 2026-06-17 19:29:24 +08:00
miracleandt8y2 2a59d3143e feat(mq): implement Apache Pulsar message queue admin
* feat(mq): implement Apache Pulsar message queue admin

- Add complete MQ admin adapter layer with version detection
  * Pulsar adapter with multi-version API support
  * OAuth2 token caching and authentication
  * JWT token signing for Pulsar clients
  * Transport layer (SSH/Proxy) integration

- Implement comprehensive admin operations
  * Tenant, namespace, topic management
  * Subscription and consumer/producer monitoring
  * Rate limits, backlog quotas, retention policies
  * Permissions and role-based access control
  * Raw admin API for advanced operations

- Add desktop UI components
  * MQ admin console with tabbed interface
  * Tenant, namespace, topic panels
  * Subscription management and cursor operations
  * Monitoring panel with stats visualization
  * Policy configuration UI

- Add web routes for MQ admin operations
- Add secret store support for MQ auth credentials
- Add comprehensive test coverage

* fix: del local test files

* fix(mq): mark message queue as unsupported mcpMode in driver manifest

MQ admin connections do not use the MCP query bridge - they use a
separate REST admin API. Mark mcpMode as 'unsupported' to align with
the test expectations and reflect the actual architecture.

Fixes CI test: driver-manifest.test.ts

* fix(mq): fix TypeScript errors in MQ components

- Fix typo in SubscriptionsPanel.vue: messagformatError(e)Id -> message.messageId
- Use formatError() helper in RawApiPanel.vue instead of accessing e?.message
- Fix undefined 'tab' reference in ConnectionTree.vue: use config.db_type instead

Fixes frontend CI TypeScript check errors.

* fix(mcp): add 'mq' to MCP server connection type description

The MCP server's connection type description must include all database
types from the driver manifest. Add 'mq' to the list to fix the test:
'add connection database type description includes every manifest database type'

Fixes: packages/mcp-server/tests/driver-manifest.test.ts

* fix(mq): add missing ConnectionConfig fields for Rust compilation

- Add gbase_server and keepalive_interval_secs fields to all ConnectionConfig
  test constructors in mq/config.rs, mq/service.rs, and storage.rs
- Import uses_bare_mysql_pool in connection.rs tests module

Fixes compilation errors from upstream ConnectionConfig changes.

* chore(ui): simplify Pulsar icon to logo-only version

Remove text from Pulsar icon (127x30 -> 35x30), keeping only
the wave logo symbol for a cleaner, more consistent appearance
with other database icons.

* fix(mq): return removed pools from drain_connection_pools

---------

Co-authored-by: t8y2 <1156263951@qq.com>
2026-06-16 21:57:17 +08:00
t8y2 8339d23df5 fix: distinguish materialized view from regular view 2026-06-16 21:23:42 +08:00
lexmin0412 11b6fc2d74 feat(ui): add View DDL for tables in sidebar and object browser 2026-06-16 18:07:59 +08:00
t8y2 c77948b3c0 feat(editor): drag columns into SQL editor 2026-06-16 17:12:37 +08:00
t8y2 d053facdd5 fix(connection): allow deleting broken connections 2026-06-15 22:54:08 +08:00
t8y2 59fa888149 fix(dialog): keep drop database confirmation loading 2026-06-15 22:02:59 +08:00
t8y2 e0d481cc2e fix(postgres): handle tsvector columns 2026-06-15 16:59:01 +08:00
t8y2 abc7136ed2 feat: sidebar table context menu — smart SQL templates (SELECT/INSERT/UPDATE) 2026-06-14 23:33:37 +08:00
dbin0123 14e095215b feat(generate): fix date range persistence, add i18n for data generation
Thanks @dbin0123!
2026-06-14 22:54:11 +08:00
t8y2 cbc7f9b0db fix(gbase): support 8a and 8s profiles 2026-06-14 10:16:24 +08:00
LC 2d98b9fdd2 feat(sqlite): add database backup action
* feat(sqlite): add database backup action

* fix(sqlite): sanitize default backup file name
2026-06-13 18:39:12 +08:00
t8y2 d091b0db85 feat(sidebar): reveal local db file in OS file manager 2026-06-13 16:00:47 +08:00
t8y2 30afcb8e69 fix(sidebar): page large table groups 2026-06-13 13:40:36 +08:00
t8y2 2ec8ed1523 feat(sidebar): locate query table from cursor 2026-06-13 12:45:00 +08:00
t8y2 0d63fcd3a3 fix(oracle): avoid rowid for view data 2026-06-12 21:02:32 +08:00
t8y2 3f7987aa59 fix(table-data): load metadata before initial query 2026-06-11 23:19:45 +08:00
t8y2 57d03c2f08 feat(sidebar): support nested groups 2026-06-11 22:35:00 +08:00
haipengno1 cee8cbb95a feat(sidebar): add copy name to database, schema and connection-group context menu 2026-06-11 22:16:13 +08:00
t8y2 a9882d5312 feat(sidebar): show table comments on hover 2026-06-11 15:09:56 +08:00
t8y2 26d714909e feat(elasticsearch): model indices as first-class nodes 2026-06-11 12:52:47 +08:00
SuLea-IT 806d7c758b feat: add SQL library history query entry points 2026-06-11 10:53:54 +08:00
Abeautifulsnow 1ca3081c2f feat(ui): add readonly mode visual badge to sidebar and tab bar
Add visual indicators so users can distinguish readonly connections from
read-write connections at a glance:

- Sidebar: show a lock icon badge on readonly connection nodes
- Tab bar: show a lock icon with tooltip on tabs with readonly connections
- Add isConnectionReadonly() helper in tabPresentation.ts
- Add readOnlyBadge i18n key for all 6 locales (en, zh-CN, zh-TW, es, it, pt-BR)
2026-06-10 15:56:37 +08:00
John Jin 0bd07ccf46 feat: add InfluxDB support (#980) 2026-06-10 14:37:53 +08:00
t8y2 edba8214b5 feat: show username/password fields for Access database connections 2026-06-10 08:37:18 +08:00
t8y2 9ffa4c41d9 feat: add SQL library panel with folder/file management, rename, and sync support 2026-06-10 02:46:10 +08:00
二丫讲梵 41758e6bb1 ✨ feat(connection): 增加可见数据库选择功能 (#944)
感谢 @eryajf 的贡献!此功能允许用户在创建或编辑连接时选择可见的数据库,支持多种数据库类型。
2026-06-09 20:56:39 +08:00
t8y2 a5d9addbf3 feat(ui): show instant tooltips for truncated labels 2026-06-09 17:51:07 +08:00
t8y2 befee2fd4c feat(postgres): support sequence objects 2026-06-08 22:54:14 +08:00
t8y2 f1a94262b5 feat(user-admin): add database user privilege management 2026-06-08 13:47:56 +08:00
14fa15531f fix(sidebar): multi-select drag, blank-click deselect, empty-group-name (#681) (#823)
Three independent connection-list bugs:

1. Multi-select drag only moved one row. The drag system tracks a single
   draggedId and ignored selectedTreeNodeIds. The drop callback now expands
   to the full selection when the grabbed row is part of it, and the store
   gains reorderSidebarEntries() to move them together.

2. Clicking the blank tree area didn't clear the selection (notably in
   double-click activation mode). Row clicks now stopPropagation and the
   tree containers clear the selection on click, so only blank clicks reset.

3. Creating a group then submitting an empty name dissolved ALL groups.
   Enter (@keydown.enter) and the following @blur both fired finishRenameGroup;
   the first call rebuilt the tree and recycled props.node onto another group,
   so the second deleted the wrong one, cascading. Guard against double
   invocation and treat an empty name as a cancel (never delete here — deleting
   a group stays in the context menu).

Verified end-to-end on the web build: multi-select drag nests both
connections under the group; blank-click clears selection; empty-name Enter
keeps all groups intact. pnpm check is green.

Co-authored-by: vrustx <vrustx@vrustxdeMac-mini.local>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 02:09:26 +08:00
t8y2 e6062b2b07 feat(etcd): add agent-backed etcd support 2026-06-08 00:58:42 +08:00