Files
a-share-analysis/docs/features/GOV-011-runtime-version-series/prd.md
T

34 lines
2.0 KiB
Markdown

# Node 与 MySQL 系列版本约束 PRD
- 功能编号:GOV-011
- 状态:设计复核
- 日期:2026-08-17
## 背景
项目目标基线一直是 Node.js 22.x 与 MySQL 5.7.x,但部分实现、错误提示和现行规范把实际开发环境的 MySQL 5.7.42 写成了唯一允许的补丁版本。Node 运行时已经按 22 主版本校验,只是历史验证记录会显示实际使用的 22.11.0 或 22.22.0。用户明确说明本项目主要由本人部署,不需要锁定某个补丁版本,希望现行口径统一为系列版本。
## 目标
- Node.js 接受全部格式合法的 22.x,拒绝其他主版本。
- MySQL 客户端、mysqldump、服务端和运行时健康检查接受全部格式合法的 5.7.x,拒绝 5.6.x、8.x 及其他系列。
- 字符集 `utf8mb4`、排序规则 `utf8mb4_general_ci`、会话时区 `+08:00`、固定开发库和主机白名单继续严格校验。
- 健康结果展示服务端返回的实际版本,不再硬编码 5.7.42。
- 当前规范统一使用系列口径,历史 QA、Schema 清单和已发布档案继续保留当时真实补丁版本。
## 非目标
- 不升级 Node、MySQL、pnpm、数据库驱动或 ORM。
- 不修改数据库结构、数据、账号、网络或部署方式。
- 不支持 Node 23、MySQL 8.x、MariaDB 或其他“兼容 MySQL”数据库。
- 不为各补丁版本建立兼容矩阵或自动安装运行时。
## 验收标准
1. Node 22.0.0、22.11.0 和带预发布/构建后缀的合法 22.x 版本通过;21.x、23.x 和无效格式拒绝。
2. MySQL 5.7.0、5.7.41、5.7.42-log 等合法 5.7.x 通过;5.6.x、8.0.x 和无效格式拒绝。
3. MySQL 5.7.x 即使版本通过,字符集、排序规则、库名或时区错误仍拒绝。
4. 既有 v0.0.5 至 v0.0.7 Schema 历史清单继续验证,不被改写。
5. 健康详情包含实际服务端版本;不泄漏连接地址、账号或密码。
6. 全量测试、构建、Playwright、源码发布门禁和两类 Review 通过。