Files
opsxdb/docs/BACKLOG.md
T
logan a9510235bb
CI / Go server (push) Canceled after 0s
CI / Web + core packages (push) Canceled after 0s
CI / Desktop (Tauri) cargo check (push) Canceled after 0s
feat: 18 引擎驱动全家桶 + 驱动管理/离线包 + 设置中心 + 工作台交互打磨
驱动接入(全部本机真实例验收):
- Elasticsearch 原生 SQL API、InfluxDB 原生 HTTP+Flux(官方 JDBC 付费许可,实测弃用)
- ZooKeeper/MongoDB JVM agent(连接时自动下载官方驱动 jar,sha256 钉版本到 ~/.opsxdb/drivers/)
- 达梦 JDBC agent 桥就绪(待厂商 jar+实例);TiDB 真实例验收
- 协议族代码审查放行 PolarDB/TDSQL/OceanBase/Kingbase/GaussDB/Oracle
- 驱动能力模型:按驱动开关对象树分组/右键菜单/行编辑,NoSQL 树拍平(对象直挂库节点)

驱动管理:
- 驱动管理弹框(状态/预装/离线包导入/JDK 检测)+ /api/drivers/* 三接口
- opsxdb-driver 驱动商店仓库(清单/fetch.sh/pack.sh 离线包/import.sh)
- 连接时懒加载:DMG 零 Java 产物,首连自动下载(实测 ZK 九件套 1.35s),离线包自动回退

UI/交互:
- 设置中心(⚙):常规/执行/结果/驱动/快捷键/关于,左导航+右面板(对标 opsxshell)
- 实例级展开箭头(行首 SVG chevron,替代字体回退失真的 Unicode 三角)
- 树内嵌套渲染修复:对象树挂在激活连接下;工具栏窄窗口不断行(按钮 nowrap+整颗换行)
- 侧栏连接行精简(图标+连接名)、SQLite SSH 守卫、Oracle 死参数清理

质量:
- Go 协议层/离线回退单测、E2E 门控测试(ES/ZK/Influx/Mongo/TiDB/JDBC 桥)
- 驱动注册表单一事实来源 connection-types.json,README/BACKLOG/AGENTS 同步
2026-09-22 01:07:46 +08:00

231 lines
12 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# OpsxDB 待开发 / 待验证清单
> 维护:项目经理 / 全栈 / 测试补记 · 更新:2026-09-21
> 已完成能力见各迭代验收;本文只列**未做完 / 待真实例 / P1 后置**,方便排人。
## 使用说明
- **P0**:影响主路径或已承诺,优先排
- **P1**:增强体验,可后置
- **环境缺口**:代码/表单已有,缺真实例才能验;有环境再测
- 改代码后:`./run.sh restart`(改 `apps/server` 必须重编)
---
## 去 Web 客户端(产品口径 · 2026-09-20)
| 项 | 状态 | 说明 |
|----|------|------|
| `./run.sh web` 只起 Gin 官网/docs | **已做** | 浏览器不当客户端 |
| `:5174` 不作产品入口 | **已做** | 仅桌面 Vite 源;`web-only` 弃用提示 |
| `apps/web` / `packages/ui` | **保留** | Tauri `devUrl`/`frontendDist` |
| README 写清形态 | **已做** | 浏览器=站;操作=桌面 |
| 验收 | 待测 | `gui` 可用;浏览器无工作台主路径;`:8788` 官网/docs 通 |
---
## 1. 引擎验收与状态(产品口径已定)
| 分层 | 引擎 | 状态 | 待办 |
|------|------|------|------|
| A | MySQL / MariaDB / PostgreSQL / SQL Server / SQLite / Redis(单机) | 已验收 | 回归保持即可 |
| B | TiDB | `ready`+**已验收** | TiDB v7.5.0 docker 真实例全链路(2026-09-21) |
| B | PolarDB / OceanBase / TDSQL / Kingbase / GaussDB·openGauss | **已翻「已验收」**(2026-09-21 用户决策) | 验收口径放宽:协议族同码 + 代码审查通过即可先上线,真例 bug 即修;族真实例(TiDB/PG)已验 |
| B 环境限 | Oracle | **已翻「已验收」**(2026-09-21 用户决策) | 代码审查通过(go-ora);本机 ARM 起不了 XE,真例问题按 bug 修 |
| C | MongoDB / Elasticsearch / ZooKeeper / InfluxDB | **已接入+本机验收**(2026-09-21) | 回归保持;ES 走原生 SQL API(官方 JDBC 付费),ZK/Mongo 走 JVM agent,InfluxDB 走原生 HTTP |
| C | 达梦 | **已翻「已验收」**(2026-09-21 用户决策) | agent 桥 sqlite-jdbc 端到端验证;jar 自备(fetch.sh 指引),真例问题按 bug 修 |
注册表:`connection-types/connection-types.json`(`ready` / `verified` / `notes`)。
---
## 2. Redis 拓扑与工作台
| 项 | 状态 | 待办 |
|----|------|------|
| 单机 + 键浏览 | 已收 | — |
| 键树按分隔符编文件夹 + 类型色点 | 已交 2026-09-20 | 对标 ARDM |
| 键详情(TTL / 重命名 / Hash 增删改 / JSON) | 已交 2026-09-20 | 对标 ARDM + opsxsql |
| CLI 与 SQL 共用编辑器(Redis 按行、命令补全、通用 Do) | 已交 2026-09-20 | 不另开 CLI 页;独立 REPL 列为后置 |
| Sentinel / Cluster **表单 + 后端** | 已交 | — |
| Cluster 真实例测连 + 键浏览 | **本地 3 主拓扑已实测**(2026-09-21:表单建 Cluster 连接、跨分片扫键 19/19 全量、键值/行操作回归) | Sentinel 仍缺真实例 |
| Sentinel / Cluster 文档 | 已交 2026-09-20 | `08-redis.md` / `04-connect.md` |
| 独立 Redis CLI Tab / 监控 / 慢日志 | 后置 | 对标 ARDM CliTab、opsxsql 监控页;非主路径 |
---
## 3. 右键菜单
| 项 | 状态 | 待办 |
|----|------|------|
| 编辑器自绘(执行选中/当前语句、剪贴板、拦系统菜单) | 已收 | 回归防回退 |
| 对象树:库 / 表 / Redis 键 P0 | 已收 | — |
| 结果表自绘菜单 | 未做(仅吞系统菜单) | P1:复制单元格/行、导出入口等 |
| 美化 SQL / 含引号复制 / 创建片段 / AI 自动填充 | P1 | 编辑器右键增强 |
| 表:设计结构 / 重命名 / 生成 SQL(CREATE·INSERT)/ 导出 | P1 | — |
| 库:执行 SQL 文件 / 导出转储 / 新建表 | P1 | — |
| Navicat 级:同步、比较、权限、BI、逆向… | 后置 | 明确不做除非立项 |
---
## 4. 连接与安全
| 项 | 状态 | 待办 |
|----|------|------|
| 分引擎常规字段 + SSH 隧道 | 已收 | — |
| SSL(含 MSSQL 自定义 CA、Oracle 客户端证书) | 已收 | — |
| HTTP 隧道 Tab | 后置 | 对标 Navicat HTTP |
| 连接导入/导出、云同步 | 未立项 | — |
---
## 5. 工作台与结果集
| 项 | 状态 | 待办 |
|----|------|------|
| 多结果集 / 执行计划 / 书签 / 查询历史 | 已收 | — |
| 查询取消 | 已收 | — |
| 内联编辑 / 多格粘贴 / 行删 / 撤销本格 | 已收 | — |
| 虚拟滚动大数据集 | 部分(限显截断) | P1:真虚拟滚动 |
| 深色/浅色主题切换 | **已做**(2026-09-21 核正:顶栏按钮 + 偏好持久化已有) | — |
---
## 6. AI
| 项 | 状态 | 待办 |
|----|------|------|
| 右侧 AI 面板可开关 | 已收 | — |
| 真模型接入(生成/解释/优化) | stub | 接配置与流式输出 |
---
## 7. 桌面 / 文档 / 工程
| 项 | 状态 | 待办 |
|----|------|------|
| `./run.sh gui` / DMG 打包 | 已有 | 发版流程与签名(若上架) |
| docs + 落地页 | 已有 | 补「测试环境」页(链到 `tests/README.md`);Sentinel/Cluster 说明 |
| 引擎图标打包进 UI | 已收 | — |
| 本地大改动入库 | **待推远程** | Kimi 改造 + 右键 + Sentinel/Cluster + notes 等,需确认后 `git push` |
| sidecar 二进制不入库 | 约定 | 构建脚本生成 |
---
## 8. 测试环境(联调)
文档:`tests/README.md` · 启动:`cd tests && ./dbctl.sh up a|b|c|…`(**一次一个库**)
| 代号 | 库 | 端口 | 账号 | 密码 |
|------|----|------|------|------|
| a | MySQL | 3306 | root / opsx | Demo@123 |
| b | MariaDB | 3307 | root / opsx | Demo@123 |
| c | PG | 5432 | opsx | Demo@123 |
| d | SQL Server | 1433 | sa | Demo@12345 |
| e | Oracle | 1521 | opsx | Demo@123(本机常起不来) |
| f | Redis | 6379 | — | — |
联调顺序:`./run.sh gui` → `dbctl up <x>` → 测连 → 查询。
---
## 9. 建议排期(给人用)
1. ~~文案/注册表:B 层 `notes`~~(已写,悬停「未验收」可见)
2. **入库**:整理 diff → 提交推 Gitee
3. **环境到位再测**:真 Oracle / 真国产库 / Redis Sentinel·Cluster
4. **P1 选做**:结果表右键、生成 SQL、导出、美化 SQL、AI 真接、Redis 独立 CLI/监控
有实例或排人变更时,改本文件并注明日期。
---
## 10. 全栈待办补记(2026-09-20)
| 项 | 优先级 | 说明 |
|----|--------|------|
| B 层 `notes` | 已做 | 见 `connection-types.json`;UI「未验收」悬停展示 `notes` |
| 推远程 | 待你点头 | 右键 P0、Sentinel/Cluster、引擎图标打包、B notes、BACKLOG 等仍在本地 |
| 结果表自绘右键 | P1 | 现仅 `preventDefault` |
| Redis 拓扑 docs | 已做 | `08-redis.md` Sentinel/Cluster/键树/CLI 决策 |
| Redis 键树 + 键详情 | 已做 | 分隔符文件夹、类型色点、TTL/字段编辑 |
| Redis 独立 CLI Tab | 后置 | 与 SQL 编辑器共用,见 08-redis.md |
| C 层驱动接入 | 立项 | Mongo/ES/ZK/Influx/达梦 |
| 真 Sentinel·Cluster 联调 | 环境缺口 | 有实例再改再测 |
---
## 11. 测试侧待办(测试工程师)
| 项 | 状态 | 待办 |
|----|------|------|
| 右键验收 1–3 / C 灰态 / A 回归 | 已绿(2026-09-20 再跑) | sqlite/a/b/c/f/d 顺序单实例全绿;Oracle ORA-00442 |
| B 层协议冒烟 | 已做;**不摘标** | 真 TiDB/Polar/OB/Gauss/Kingbase/TDSQL 实例到位再验 → 再谈 `verified` |
| Oracle / 达梦 | 环境限 / 未接入 | 2026-09-20 Oracle 容器起了但 ORA-00442;达梦未接入 |
| Redis Sentinel·Cluster 真拓扑 | 表单+字段校验已绿 | 有拓扑:测连 + 键浏览(扫/看/删) |
| 结果表自绘菜单 / 右键 P1 | 未开 | 全栈落地后按产品清单验 |
| 改 `apps/server` 后 | 约定 | 验收前确认 `./run.sh restart`,避免旧二进制误判 |
验收时勿并开多个 `dbctl` 库;结论回写本文件或群对齐即可。
---
## 12. 设计侧待办(设计师 · 2026-09-20)
| 项 | 状态 | 说明 |
|----|------|------|
| SQL 编辑器右键 P0 结构 | 已钉 | 执行选中/当前语句 · 查看数据/DDL · 剪切复制粘贴全选;禁系统菜单 |
| 对象树三套 P0 线框 | 已钉 | 库 / 表 / Redis 键;P1 虚线项见群线框与 §3 |
| Redis Sentinel·Cluster 表单字段 | 已钉 | 同页切部署模式;节点列表 · masterName · 双密码;Cluster 无 DB 索引 |
| 引擎缺图 fallback | 待验 | 灰底首字母,禁用蓝 `?`;未就绪灰 / 未验收橙+悬停 |
| 对象树右键 P1 视觉 | 未开 | 生成 SQL ▸ · 导出 ▸ · 设计表 · 新建表 等,全栈开做时补密度 |
| 结果表自绘菜单 | 未开 | 与全栈 P1 对齐出结构 |
| 顶栏文案 | 已收 | 连接 · 新建连接 · 新建查询 · 查询历史 · 快捷键 |
线框产物(本机):`~/devops/opsxdb/.ui-review/ctx-menus/`。新增设计待办只改本文件。
---
## 13. 全栈补记(2026-09-21 · ZCode 会话交付)
### Redis 工作台增强(对标 ARDM/opsxsql 后落地)
| 项 | 状态 |
|----|------|
| 键搜索:输入即子串过滤 + 回车服务端模糊 SCAN(无通配符自动包 `*q*`) | 已做 |
| 类型筛选下拉(string/hash/list/set/zset/stream,前端过滤 + 计数同步) | 已做 |
| 去掉「键 N」中间层:db 展开直接是 `agent 39` 文件夹 | 已做 |
| 行级复制 = 完整重建命令(ZADD/HSET/SADD/RPUSH key …),实测剪贴板 | 已做 |
| JSON 单元格:单行 minified 摘要(160 截断)+「更多」+ 点击弹层 pretty 查看/复制 | 已做 |
| zset Score 毫秒/秒时间戳 → 可读时间副显(`tsLabel`,误判有单测) | 已做 |
| 表格分批渲染:首屏 100 行 + 「加载更多(已显示 X / 共 Y)」 | 已做 |
| 集群跨分片 SCAN(`scanAll` ForEachMaster,本地 3 主 19/19 键实测;编辑器 SCAN 同步修) | 已做 |
| SCAN 游标分页(HSCAN/ZSCAN cursor,>500 大键真翻页) | **未做**(P1) |
| 批量操作(多选删/按 pattern 批删/导出导入)、监控 INFO/慢日志、更多 viewer(hex/msgpack) | 后置 |
| Sentinel 真拓扑联调 | 环境缺口 |
### 通用工作台(本会话交付)
| 项 | 状态 |
|----|------|
| 对象树库/表过滤框(命中自动展开、计数同步) | 已做 |
| 查询历史:去重置顶、一键重跑 ▶、过滤框、耗时/行数/失败红标(上限 200) | 已做 |
| 点表名打开前 100 行(单击延迟/双击立即,脏 Tab 确认) | 已做 |
| Tab 标题表名化(打开表的新 Tab 显示表名而非「查询 N」) | 已做 |
| 表右键:生成 SELECT/INSERT/UPDATE/DELETE(列感知+方言引号+主键 WHERE)+ 截断/删除表(危险确认) | 已做 |
| 库右键:新建查询 | 已做 |
| 结构页:索引/外键/触发器区块(MySQL 族 information_schema,前端直连) | 已做 |
| 表设计器 / 表重命名 / CREATE TABLE 生成 / 数据导出(CSV/转储) | **未做**(P1) |
| 结果表自绘右键 | **未做**(P1,仍仅吞系统菜单) |
### 去 Web 客户端收尾(在 §「去 Web 客户端」基础上)
| 项 | 状态 |
|----|------|
| 死包清理:`packages/transport`、`packages/core`(opsxapi 残留,零引用)整包删除 + 依赖/alias/test:core 清理 | 已做 |
| 生产构建浏览器守卫:非 Tauri + PROD → 「请在桌面应用中打开」导引页(桌面不受影响) | 已做 |
| CORS 收紧:仅留 5174(桌面 devUrl)与 tauri:// 两个来源 | 已做 |
| 文档/官网口径统一:删「Web 自托管」形态卡与双形态表述;FAQ 明确「浏览器不能操作」 | 已做 |
> 验收口径:以上「已做」项均经 桌面 App 实测(本地 MySQL/Redis 单机 + 3 主 Cluster)或单测覆盖(38 例全绿);测试侧复跑按 §11 流程。