Files
dbtool-cli-v1/DBTOOL_USABLE_V1_PRODUCT_BRIEF.md
Paperclip CTO a28dab4cd9
Some checks failed
release-smoke / macos-13 / x86_64-apple-darwin (push) Has been cancelled
release-smoke / ubuntu-latest / x86_64-unknown-linux-gnu (push) Has been cancelled
release-smoke / windows-latest / x86_64-pc-windows-msvc (push) Has been cancelled
feat(usable): package gui-host validation snapshot
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-31 10:21:36 +00:00

225 lines
6.7 KiB
Markdown
Raw Permalink 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.

# dbtool-usable-v1 Product Brief
日期2026-03-27
作者Product Manager
## 1. 文档目的
这份文档用于冻结 `dbtool-usable-v1` 的当前产品边界,回答四个问题:
- 现有 demo 已经具备什么能力
- 当前版本的真实用户是谁
- “usable-v1” 在本阶段到底意味着什么
- CLI demo 应如何演进到更完整的产品界面与产品流程
配套控制文档:
- `PRODUCT_REQUIREMENTS.md`
- `DATABASE_SUPPORT_MATRIX.md`
- `CTO_REQUIREMENTS_HANDOFF.md`
- `ACCEPTANCE_CHECKLIST.md`
## 2. 当前 demo 已有能力
截至 2026-03-27仓库已经具备以下用户可见基线
- `dbtool` CLI 已提供 `connect``inspect``query``export`
- PostgreSQL、MySQL、SQLite 都已有核心 happy path
- 支持 inline SQL、`.sql` 文件、参数化查询
- 支持导出 CSV / JSON
- 支持 `--password-env` 注入密码,输出保持脱敏
- 仓库已包含 demo fixtures、smoke runbook、release runbook 和 QA 清单
同时,仓库内已出现两类后续产品演进基础,但它们**不改变 usable-v1 当前交付面**
- `crates/db-app`CLI / TUI 可复用的共享应用层
- `apps/tui``gui/`:工作台形态与信息架构验证资产
结论:当前不是“从零定义产品”,而是“把已存在 demo 收敛成明确可交付边界”。
## 3. 目标用户
### 主用户
第一阶段主用户是熟悉终端的技术操作型用户:
- 后端工程师
- 数据工程师
- QA 工程师
- 支持 / 运维排障人员
### 不优先服务的用户
- 需要图形化数据库管理台的非终端用户
- 需要完整 DBA 能力的高级数据库管理员
- 需要团队共享工作台、权限编排或云端协作的组织型用户
## 4. 真实使用场景
### 场景 A跨库排障
用户需要在 PostgreSQL 或 MySQL 中快速确认某个异常是否由数据导致:
1. 指向目标数据库
2. 验证能否连通
3. 查看 schema / table / column
4. 执行验证 SQL
5. 导出结果作为问题证据
### 场景 BSQLite 本地验证
用户拿到一个 SQLite 文件,需要快速核对数据内容:
1. 指向本地文件
2. 查看可用对象
3. 运行查询
4. 导出结果给 QA 或研发
### 场景 C统一心智替代多工具切换
用户不想在 `psql`、MySQL 工具链和 SQLite 工具之间切换,希望用一套统一命令完成最常见操作。
## 5. 最重要的产品流程
usable-v1 的核心流程固定为:
`choose target -> connect -> inspect -> query -> export`
如果这条路径不能在三种目标数据库上稳定成立,则当前阶段不能称为“真实可用”。
## 6. usable-v1 定义
本阶段“真实可用”不是指:
- 支持所有数据库
- 覆盖所有数据库管理能力
- 提供完整 GUI / IDE 体验
本阶段“真实可用”指:
- 用户能在本地 CLI 中稳定完成 `connect -> inspect -> query -> export`
- PostgreSQL、MySQL、SQLite 三库都达到同一核心闭环标准
- 失败路径可理解、可行动、且不会泄露密码
- README、帮助文案、QA 验收和实际行为一致
## 7. 当前阶段范围
### In Scope
- 本地 CLI 作为正式交付面
- PostgreSQL / MySQL / SQLite 三库核心闭环
- ad hoc 连接输入
- schema / table / column inspect
- inline SQL 与 `.sql` 文件执行
- 参数化查询
- 结果导出到 CSV / JSON
- 清晰的执行结果与错误反馈
### Non-Goals
- GUI 正式交付
- 新数据库扩容
- saved profile 用户工作流
- import、migration、schema editing
- transaction UX
- stored procedure / function 管理
- 权限 / 用户管理
- backup / restore
- dashboard、BI、AI 助手、复杂 IDE 能力
- 团队协作空间或云端同步
## 8. 数据库支持边界
当前数据库支持等级以 `DATABASE_SUPPORT_MATRIX.md` 为准,摘要如下:
| 数据库 | 当前等级 | usable-v1 必须做到 |
| --- | --- | --- |
| PostgreSQL | Tier A | connect、inspect、query、export 核心闭环可用 |
| MySQL | Tier A | connect、inspect、query、export 核心闭环可用 |
| SQLite | Tier A | connect、inspect、query、export 核心闭环可用 |
补充边界:
- Tier A 只代表核心闭环完整,不代表数据库管理全功能
- PostgreSQL / MySQL / SQLite 都是当前承诺,不是“先做一库,其他顺带”
- SQL Server、MariaDB、DuckDB 仅保留为后续候选
## 9. usable-v1 验收标准
### 全局标准
- 三库共享同一套产品心智:`connect``inspect``query``export`
- 所有失败都必须返回非成功退出并给出可行动提示
- 所有输出都不得泄露密码或明文秘密
- 数据库差异必须被文档化,但不能破坏主流程
### Connect
- 用户可显式提供目标数据库和连接输入
- 成功时能确认目标已连接
- 失败时能区分认证、网络、不可达目标和 SQLite 路径问题
### Inspect
- 用户可查看 schema 或等价顶层对象
- 用户可继续查看 table / view
- 用户可查看列名、类型、可空性与主键信号
- 空 scope 需给出清晰反馈
### Query
- 支持 inline SQL 与 `.sql` 文件
- 有结果集时输出可读表格或结构化结果
- 无结果集时提供执行摘要
- 空结果是成功,不是故障
- SQL / 权限 / 驱动错误要明确
### Export
- 只承诺结果集导出到 CSV / JSON
- 导出路径必须显式
- 不允许静默覆盖已有文件
- 导出成功与失败都必须可判断
## 10. CLI demo 如何演进为产品界面 / 产品流程
### 阶段 1稳定 CLI 产品语义
- 固定 `connect / inspect / query / export` 的产品对象
- 固定 `ready / success / empty / error / exported` 等用户可感知状态
- 保证文档、帮助和行为一致
### 阶段 2共享应用层复用
- 继续把编排逻辑收敛到 `crates/db-app`
- 让连接、inspect、query、export 输出成为跨界面复用对象
### 阶段 3TUI 验证工作台流程
- 用 TUI 验证单连接工作台、schema browser、query editor、results、status
- TUI 是流程承载层,不是当前 CLI 范围扩张入口
### 阶段 4未来 GUI 复用同一对象模型
- GUI 只是在更强承载层上复用既有产品语义
- 不应借 GUI 开发把范围扩张到 migration、管理面或 BI
## 11. 给 CTO 的交接边界
CTO 拆任务时应优先围绕:
- 三库核心闭环质量收口
- 错误反馈和失败路径可读性
- README / 帮助 / QA 验收一致性
- 共享应用层对象稳定化
CTO 不应在当前阶段混入:
- 新数据库扩容
- 高级数据库管理能力
- 为未来 GUI/TUI 预埋超出本期的产品承诺
## 12. 一句话定义
`dbtool-usable-v1` 的完成标准是:**PostgreSQL、MySQL、SQLite 三库都能以一致心智稳定跑通 `connect -> inspect -> query -> export`,且范围没有扩张到 GUI 正式交付或高级数据库管理能力。**