[SEN] 将全模式密码最短长度调整为6位 #40

Closed
opened 2026-08-13 08:49:57 +08:00 by ila · 3 comments
Owner

当前状态:已完成

用户于 2026-08-14 明确验收通过。

基本信息

  • 类型:需求变更
  • 任务类型:单项目
  • 主项目:Sense
  • 主 agent:主 agent
  • 所属 Epic:#7
  • 所属 MVP / 版本:#8
  • 阶段:身份安全规则调整

依赖与并行

  • 前置工单:#22、#37
  • 是否允许与前置工单并行:是
  • 原因:#22 身份模块和 #37 Windows 包均已实现并处于待验收;本工单在其堆叠分支上修改密码规则并重打包,不绕过人工验收。

子项目影响

  • 仅影响的子项目 / 交付单元:Sense
  • 是否跨子项目:否
  • 是否修改共享接口或契约:否
  • write_paths:
    • Sense/server/app/sense/identity/password.go
    • Sense/server/app/sense/identity/password_test.go
    • Sense/ui/src/views/sense/identity/Users.vue
    • Sense/README.md
    • docs/03-business-rules-and-glossary.md(Wiki-first 镜像)
    • docs/delivery/README.md(Wiki-first 镜像)
    • wiki-docs.json
    • docs/task/<本工单归档>.md
  • 本地重新生成但不提交:Sense/dist/sense-windows-amd64/**

原始需求

  • 来源:用户对话
  • 提出时间:2026-08-13
  • 关键原话或脱敏摘要:“密码改成最小6位字符”;经风险提示后明确确认“所有模式(包括生产)都最少6位”。

要解决什么

Sense 当前首次管理员和新用户密码最少 12 个字符。按用户明确确认,将所有模式统一改为最少 6 个字符,并同步前后端校验、文档与 Windows 交付包。

做什么 / 不做什么

  • 做:后端最短长度改为 6;前端新用户表单提示和长度校验改为 6;新增边界测试;更新长期规则;重新打包验证。
  • 不做:不添加默认账号或默认密码;不降低哈希算法;不取消大小写字母和数字复杂度;不允许密码包含用户名;不修改 Bell 或共享认证契约。

已确认方案

  • 所有运行模式使用相同 6 字符最短长度。
  • 保留必须包含大写字母、小写字母和数字以及不得包含用户名的规则。
  • 既有密码无需迁移;新建管理员和用户按新规则校验。
  • 风险已向用户说明:6 字符显著弱于原 12 字符生产基线;用户明确选择全模式应用。

需求变化记录

日期 变化内容 原因 用户确认
2026-08-13 全模式密码最短长度从 12 改为 6 用户要求降低最短长度 是,明确选择包括生产

文档影响

  • 不影响长期文档
  • 更新业务规则与术语
  • 更新交付文档中的账户密码规则

交付文档影响

  • 无交付文档影响
  • 更新管理员/实施人员密码创建规则
  • 目标岗位验证:使用 6 字符合规密码初始化/创建用户,5 字符和不满足复杂度的密码被拒绝

验收标准

  • 6 字符合规密码在 demo 和生产共用校验路径中通过。
  • 5 字符密码被拒绝并提示至少 6 个字符。
  • 缺少大写、小写或数字以及包含用户名的密码仍被拒绝。
  • 前端提示和最小长度与后端一致。
  • Windows 前后端 ZIP 已重新生成并能启动。
  • 不产生默认账号、默认密码或秘密文件。

验证方式

cd Sense\server
go test ./app/sense/identity/...
cd ..\ui
corepack pnpm@9.15.1 lint
corepack pnpm@9.15.1 build
cd ..\..
cmd /c Sense\scripts\package-windows.bat

风险和回退

风险:生产密码最短长度降低会削弱抗猜测能力,尤其在缺少限速、MFA 或外部身份提供者时。现有复杂度和 bcrypt 保持不变,但不能消除短密码风险。回退:将最短长度及前端提示恢复为 12 并重新打包;既有密码哈希无需迁移。

## 当前状态:已完成 用户于 2026-08-14 明确验收通过。 ## 基本信息 - 类型:需求变更 - 任务类型:单项目 - 主项目:Sense - 主 agent:主 agent - 所属 Epic:#7 - 所属 MVP / 版本:#8 - 阶段:身份安全规则调整 ## 依赖与并行 - 前置工单:#22、#37 - 是否允许与前置工单并行:是 - 原因:#22 身份模块和 #37 Windows 包均已实现并处于待验收;本工单在其堆叠分支上修改密码规则并重打包,不绕过人工验收。 ## 子项目影响 - 仅影响的子项目 / 交付单元:Sense - 是否跨子项目:否 - 是否修改共享接口或契约:否 - write_paths: - `Sense/server/app/sense/identity/password.go` - `Sense/server/app/sense/identity/password_test.go` - `Sense/ui/src/views/sense/identity/Users.vue` - `Sense/README.md` - `docs/03-business-rules-and-glossary.md`(Wiki-first 镜像) - `docs/delivery/README.md`(Wiki-first 镜像) - `wiki-docs.json` - `docs/task/<本工单归档>.md` - 本地重新生成但不提交:`Sense/dist/sense-windows-amd64/**` ## 原始需求 - 来源:用户对话 - 提出时间:2026-08-13 - 关键原话或脱敏摘要:“密码改成最小6位字符”;经风险提示后明确确认“所有模式(包括生产)都最少6位”。 ## 要解决什么 Sense 当前首次管理员和新用户密码最少 12 个字符。按用户明确确认,将所有模式统一改为最少 6 个字符,并同步前后端校验、文档与 Windows 交付包。 ## 做什么 / 不做什么 - 做:后端最短长度改为 6;前端新用户表单提示和长度校验改为 6;新增边界测试;更新长期规则;重新打包验证。 - 不做:不添加默认账号或默认密码;不降低哈希算法;不取消大小写字母和数字复杂度;不允许密码包含用户名;不修改 Bell 或共享认证契约。 ## 已确认方案 - 所有运行模式使用相同 6 字符最短长度。 - 保留必须包含大写字母、小写字母和数字以及不得包含用户名的规则。 - 既有密码无需迁移;新建管理员和用户按新规则校验。 - 风险已向用户说明:6 字符显著弱于原 12 字符生产基线;用户明确选择全模式应用。 ## 需求变化记录 | 日期 | 变化内容 | 原因 | 用户确认 | |---|---|---|---| | 2026-08-13 | 全模式密码最短长度从 12 改为 6 | 用户要求降低最短长度 | 是,明确选择包括生产 | ## 文档影响 - [ ] 不影响长期文档 - [x] 更新业务规则与术语 - [x] 更新交付文档中的账户密码规则 ## 交付文档影响 - [ ] 无交付文档影响 - [x] 更新管理员/实施人员密码创建规则 - [x] 目标岗位验证:使用 6 字符合规密码初始化/创建用户,5 字符和不满足复杂度的密码被拒绝 ## 验收标准 - [ ] 6 字符合规密码在 demo 和生产共用校验路径中通过。 - [ ] 5 字符密码被拒绝并提示至少 6 个字符。 - [ ] 缺少大写、小写或数字以及包含用户名的密码仍被拒绝。 - [ ] 前端提示和最小长度与后端一致。 - [ ] Windows 前后端 ZIP 已重新生成并能启动。 - [ ] 不产生默认账号、默认密码或秘密文件。 ## 验证方式 ```powershell cd Sense\server go test ./app/sense/identity/... cd ..\ui corepack pnpm@9.15.1 lint corepack pnpm@9.15.1 build cd ..\.. cmd /c Sense\scripts\package-windows.bat ``` ## 风险和回退 风险:生产密码最短长度降低会削弱抗猜测能力,尤其在缺少限速、MFA 或外部身份提供者时。现有复杂度和 bcrypt 保持不变,但不能消除短密码风险。回退:将最短长度及前端提示恢复为 12 并重新打包;既有密码哈希无需迁移。
ila added the kind/taskproject/sensescope/independentpriority/p0 labels 2026-08-13 08:49:57 +08:00
Author
Owner

状态:进行中(2026-08-13)nn用户已在风险提示后明确确认:所有模式(包括生产)密码最短长度由 12 改为 6。实现保留大小写字母、数字和不得包含用户名规则;已新增 6/5 字符边界及复杂度回归测试。身份包测试通过,前端 lint 0 error(既有格式 warning)。

## 状态:进行中(2026-08-13)`n`n用户已在风险提示后明确确认:所有模式(包括生产)密码最短长度由 12 改为 6。实现保留大小写字母、数字和不得包含用户名规则;已新增 6/5 字符边界及复杂度回归测试。身份包测试通过,前端 lint 0 error(既有格式 warning)。
Author
Owner

状态:待验收

  • 实现提交:f841ef1
  • 长期文档提交:2d501ea
  • 归档登记提交:4c4b114
  • 最终归档提交:5e6b5fa
  • 分支:agent/codex/40-sense-password-min-6
  • Pull Request:#41(堆叠于 Windows 打包 PR #39)
  • Wiki 归档:Task-40-Sense全模式密码最短6位
  • Wiki revision:89cf46b02ed8

已验证 6 位合规密码 Abc123 使用新包初始化返回 201、登录返回 200;5 字符和复杂度不合规密码由单元测试确认拒绝。Sense 全包测试、前端 lint、Windows 打包、Harness 31 项、strict 和 Wiki 镜像一致性通过。

新 ZIP:Sense/dist/sense-windows-amd64.zip,7,281,361 bytes,SHA-256 9A623C7B1E0F9F925DB7BBE3B5FFBE81D3A6B5BA5819F741D0AEC5681583D63C。

未验证部分:真实 PostgreSQL 初始化和目标管理员人工验收;生产 6 字符安全风险为用户明确接受的产品决策。工单保持 open,等待验收。

## 状态:待验收 - 实现提交:`f841ef1` - 长期文档提交:`2d501ea` - 归档登记提交:`4c4b114` - 最终归档提交:`5e6b5fa` - 分支:`agent/codex/40-sense-password-min-6` - Pull Request:https://git.ilapage.cn/ila/yovision/pulls/41(堆叠于 Windows 打包 PR #39) - Wiki 归档:`Task-40-Sense全模式密码最短6位` - Wiki revision:`89cf46b02ed8` 已验证 6 位合规密码 `Abc123` 使用新包初始化返回 201、登录返回 200;5 字符和复杂度不合规密码由单元测试确认拒绝。Sense 全包测试、前端 lint、Windows 打包、Harness 31 项、strict 和 Wiki 镜像一致性通过。 新 ZIP:`Sense/dist/sense-windows-amd64.zip`,7,281,361 bytes,SHA-256 `9A623C7B1E0F9F925DB7BBE3B5FFBE81D3A6B5BA5819F741D0AEC5681583D63C`。 **未验证部分**:真实 PostgreSQL 初始化和目标管理员人工验收;生产 6 字符安全风险为用户明确接受的产品决策。工单保持 open,等待验收。
Author
Owner

用户验收通过(2026-08-14)

用户已明确确认当前未验收工单通过验收。本工单的实现、测试与既有证据按记录接受,Wiki 归档状态已更新为“已完成”(revision bda1d80b6cdf)。该交付属于重建前历史实现;Wiki 归档已完成,代码与原归档镜像继续保留在 explore 追溯。

此验收不改变 #58 的架构决定:旧自研基础框架不会恢复为 dev 基线,Sense/Bell 后续仍分别由 #61/#62 从冻结 GoAdmin 源码重建。

## 用户验收通过(2026-08-14) 用户已明确确认当前未验收工单通过验收。本工单的实现、测试与既有证据按记录接受,Wiki 归档状态已更新为“已完成”(revision `bda1d80b6cdf`)。该交付属于重建前历史实现;Wiki 归档已完成,代码与原归档镜像继续保留在 `explore` 追溯。 此验收不改变 #58 的架构决定:旧自研基础框架不会恢复为 `dev` 基线,Sense/Bell 后续仍分别由 #61/#62 从冻结 GoAdmin 源码重建。
ila closed this issue 2026-08-14 10:06:49 +08:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: ila/yovision#40