docs: complete task 40 acceptance archive (#40)

This commit is contained in:
QiuSW
2026-08-13 09:01:23 +08:00
parent 4c4b11470d
commit 5e6b5fa0d9
+35 -15
View File
@@ -2,16 +2,16 @@
generated: true (请先修改 Gitea Wiki,禁止直接编辑本文件)
wiki_page: Task-40-Sense全模式密码最短6位
wiki_url: https://git.ilapage.cn/ila/yovision/wiki/Task-40-Sense%E5%85%A8%E6%A8%A1%E5%BC%8F%E5%AF%86%E7%A0%81%E6%9C%80%E7%9F%AD6%E4%BD%8D.-
wiki_revision: 391bae6007e43a324789a9214d926e542f4ed0df
synchronized_at: 2026-08-13T00:58:33Z
wiki_revision: 89cf46b02ed85e26165cd835ccebb78a6621aa8b
synchronized_at: 2026-08-13T01:00:27Z
<!-- gitea-wiki-mirror:end -->
# 40 Sense全模式密码最短6位
- 类型:需求 / 缺陷 / 重构
- 所属 Epic:#
- 所属 MVP / 版本:#
- 状态:待验收 / 已完成
- 类型:需求变更
- 所属 Epic:#7
- 所属 MVP / 版本:#8
- 状态:待验收
- 日期:2026-08-13
- Gitea 工单:https://git.ilapage.cn/ila/yovision/issues/40
- Wiki 页面:Task-40-Sense全模式密码最短6位
@@ -19,32 +19,52 @@ synchronized_at: 2026-08-13T00:58:33Z
## 背景与目标
<!-- 原来有什么问题,这次达到什么结果。 -->
Sense 原规则要求密码至少 12 个字符。负责人在收到生产安全风险提示后,明确确认 demo 与生产全部调整为最少 6 个字符;大小写字母、数字和不得包含用户名的复杂度规则保持不变。
## 最终方案
<!-- 说明实际实现。与建单方案不同之处必须写清原因。 -->
- 后端统一密码校验最短长度由 12 改为 6,bootstrap 和管理员创建用户继续复用同一校验入口。
- 新增 6 字符通过、5 字符拒绝及大小写/数字/用户名约束的表驱动测试。
- 前端新用户表单最小长度和中文提示同步为 6。
- Wiki 记录全模式稳定规则和管理员交付说明。
- 重新生成 Windows amd64 前后端 ZIP,并用包内程序执行 6 位密码初始化和登录。
## 修改文件
- `<文件>`:<改动说明>
- `Sense/server/app/sense/identity/password.go`:最短长度改为 6。
- `Sense/server/app/sense/identity/password_test.go`:长度和复杂度边界测试。
- `Sense/ui/src/views/sense/identity/Users.vue`:前端最小长度及提示。
- `docs/03-business-rules-and-glossary.md`、`docs/delivery/README.md`:Wiki-first 规则镜像。
- `wiki-docs.json`、`docs/task/40-Sense全模式密码最短6位.md`:任务归档。
## 验收结果
| 验收标准 | 结果 |
|---|---|
| | 通过 / 未通过 |
| 6 字符合规密码通过统一校验 | 通过 |
| 5 字符密码被拒绝 | 通过 |
| 大写、小写、数字和用户名限制保留 | 通过 |
| 前后端提示一致 | 通过 |
| Windows ZIP 重新生成并启动 | 通过 |
| 不生成默认账号、密码或秘密 | 通过 |
## 测试
- 执行命令:`<命令>`
- 结果:
- **未验证部分**:<!-- 必填;没有就写“无”。 -->
- `go test ./app/sense/identity/...`:通过。
- `go test ./...`:Sense 全包通过。
- `corepack pnpm@9.15.1 lint`:0 error;存在既有格式 warning。
- `cmd /c Sense\scripts\package-windows.bat`:通过;前端仅有既有 vendor bundle 体积警告。
- 包内接口验证:使用 `Abc123` 初始化返回 201,登录返回 200。
- ZIP:7,281,361 bytes;SHA-256 `9A623C7B1E0F9F925DB7BBE3B5FFBE81D3A6B5BA5819F741D0AEC5681583D63C`。
- Harness:31 项测试和 strict 检查通过;Wiki 镜像检查通过。
- **未验证部分**:未在真实 PostgreSQL 环境执行首次管理员初始化,未由目标管理员人工验收;生产采用 6 字符密码的安全风险为用户明确接受的产品决策。
## 遗留问题
<!-- 没有就删除本节。 -->
- 6 字符最短长度显著弱于原 12 字符规则;本工单未增加 MFA、登录限速或外部身份提供者。
## 相关提交
- `<提交哈希>` <提交说明>
- `f841ef1` feat: lower Sense password minimum to six characters (#40)
- `2d501ea` docs: record Sense six-character password policy (#40)
- `4c4b114` docs: create task 40 acceptance archive (#40)