From f11d6759fb30d9aab5d1012f686cce876820ddf6 Mon Sep 17 00:00:00 2001 From: Stev_Wang <304865932@qq.com> Date: Tue, 3 Nov 2026 07:40:13 +0800 Subject: [PATCH] =?UTF-8?q?docs(plan):=20=E5=9B=9E=E5=86=99=20A1=20?= =?UTF-8?q?=E9=98=B6=E6=AE=B5=E5=AE=8C=E6=88=90=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 背景: - A1 身份认证与用户管理已完成并推送(4d9eb98),开发计划需与执行状态同步。 改动: - 顶部状态更新为 A0 / A1 已完成、A2 待启动; - 批次总览 A1 标记为已完成,并补充 A1 进度与验证证据; - 6.2 A1 WBS 增加状态列并标注完成,补充实施报告链接与遗留; - 版本记录新增「V0.1(进度回写 A1)」。 影响面: - 仅计划文档的进度回写,不改变范围、EPD、质量门禁与验收口径。 回滚方式: - 回滚本提交即恢复「A1 待启动」的表述,无代码与数据影响。 验证证据: - pnpm format:check 通过; - 进度数据对应 A1 实施记录:shared 95 / api 60 / web 55,test:int 7,A1 e2e 6/6。 --- .../灵犀_信息流素材生产平台_开发计划_V0.1.md | 31 +++++++++++-------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/docs/开发计划/灵犀_信息流素材生产平台_开发计划_V0.1.md b/docs/开发计划/灵犀_信息流素材生产平台_开发计划_V0.1.md index d3b7996..6b301e7 100644 --- a/docs/开发计划/灵犀_信息流素材生产平台_开发计划_V0.1.md +++ b/docs/开发计划/灵犀_信息流素材生产平台_开发计划_V0.1.md @@ -10,7 +10,7 @@ | 文档名称 | 灵犀 · 信息流素材生产平台 项目开发计划 | | 版本 | V0.1(初稿,待评审) | | 日期 | 2026-11-02 | -| 状态 | **执行中**:A0 工程骨架与契约基线已完成(2026-11-02);A1 待启动 | +| 状态 | **执行中**:A0 工程骨架与契约基线已完成(2026-11-02);A1 身份认证与用户管理已完成(2026-11-03);A2 待启动 | | 需求基线 | PRD V1.6([灵犀-信息流广告素材一站式生产平台PRD.md](../PRD/灵犀-信息流广告素材一站式生产平台PRD.md)) | | 技术基线 | 技术架构 V0.4([灵犀_信息流素材生产平台_技术架构_V0.1.md](../技术架构/灵犀_信息流素材生产平台_技术架构_V0.1.md))+ `AGENTS.md` V1.0 + `docs/工程规范/` V1.0 | | 覆盖范围 | **M0 任务级;M1–M4 迭代级 + 任务组级;M5 预研边界(不排期)** | @@ -23,6 +23,7 @@ | --- | --- | --- | | V0.1 | 2026-11-02 | 初稿:全项目 M0–M4 开发计划(M0 十二批次任务级 WBS;M1–M4 迭代 + 任务组 WBS;M5 预研边界)、七个管理模块专项、前后端并行与联调机制、质量门禁、风险与验收、待确认事项 | | V0.1(进度回写) | 2026-11-02 | A0 工程骨架与契约基线完成:批次总览增加状态列、A0 WBS 标注完成、回写执行证据与偏差;不改变原计划范围与验收口径 | +| V0.1(进度回写 A1) | 2026-11-03 | A1 身份认证与用户管理完成:批次总览更新 A1 状态、A1 WBS 标注完成、回写执行证据与遗留;不改变原计划范围与验收口径 | ### 0.2 引用约定 @@ -376,7 +377,7 @@ flowchart LR | 批次 | 状态 | 主题 | 依赖 | EPD | 参考工期 | 并行波次 | 退出条件(摘要) | | --- | --- | --- | --- | --- | --- | --- | --- | | **A0** | ✅ 已完成 | 工程骨架与契约基线 | — | 6 | 4–5 日 | W0 | lint / typecheck / test / CI 全绿;三依赖可起;api / web / worker 可启动;OpenAPI 可导出 | -| **A1** | 未开始 | 身份认证与用户管理 | A0 | 6 | 4–5 日 | W1 | 登录 / 刷新 / 登出;用户生命周期;路由权限;权限三态用例 | +| **A1** | ✅ 已完成 | 身份认证与用户管理 | A0 | 6 | 4–5 日 | W1 | 登录 / 刷新 / 登出;用户生命周期;路由权限;权限三态用例 | | **A2** | 未开始 | 角色权限与数据范围 | A1 | 5.5 | 4–5 日 | W2 | 角色可配;SoD 命中拒绝;特殊权限默认关闭;范围过滤生效 | | **A3** | 未开始 | 客户与行业目录 | A1 / A2 | 7 | 4–5 日 | W2 | 行业 / 客户 / 客户组可用;唯一性;状态只读;字段审批 | | **A4** | 未开始 | 数据字典与系统配置 | A3 | 4 | 3–4 日 | W3 | 三层合并;编码不可改;阈值同源;配置版本 + 审计 | @@ -391,6 +392,8 @@ flowchart LR **合计**:12 个批次,68.5 EPD,6–7 周(含 25% 缓冲与 M0 末集成缓冲)。 > **A0 进度(2026-11-02)**:✅ 已完成。10/10 项 WBS 通过;本批门禁 `format:check / lint / typecheck / test / build / test:int / openapi:export / openapi:diff / e2e` 与本地 CI `pnpm ci:local` 全绿;`/health`、`/api/docs`、web 布局与登录壳、worker 启动均实测通过。实现记录与偏差见 [A0 实施报告](./灵犀_A0工程骨架与契约基线_实施报告_V0.1.md)。环境适配:本地 PG/Redis 复用已有 Docker、对象存储使用公网 RustFS、种子仅 `system_configs`(`Q-A0-01`)、Gitea 暂无 runner 时以 `pnpm ci:local` 为准。 +> +> **A1 进度(2026-11-03)**:✅ 已完成。8/8 项 WBS 通过;`format:check / lint / typecheck / test` 全绿(shared 95 / api 60 / web 55),`test:int` 7 项(真实 PG / Redis),A1-QA-01 浏览器 e2e 6/6;登录 → 首次登录强改 → 用户列表 / 新建 / 详情 / 停用启用 / 角色调整 / 客户转交占位全链路实测。实现记录、口径与遗留见 [A1 实施报告](./灵犀_A1身份认证与用户管理_实施报告_V0.1.md)。已知遗留:六类数据范围(A2)、客户转交真实接口(A3)、审计落库(A5)。 ### 5.3 批次依赖图 @@ -525,20 +528,22 @@ PRD §7 把 **M-27(素材元素级拆解)** 与「自动字幕 → TTS 配 ### 6.2 A1 身份认证与用户管理 +> **执行状态:✅ 已完成(2026-11-03)**。以下 8 项 WBS 全部交付并实测;验收证据、口径与遗留见 [A1 实施报告](./灵犀_A1身份认证与用户管理_实施报告_V0.1.md)。 + **目标**:能登录、能装人、能按权限渲染页面。**对应**:P-01、PRD §5.4.1;架构 §6.2 / §7.1;`R-16` / `R-17` 前置。 -| 编号 | 任务 | 端 | 内容与产出 | 依赖 | 验收要点 | EPD | -| --- | --- | --- | --- | --- | --- | --- | -| A1-BE-01 | 部门与用户 | BE | `departments`(两级,父级最多两级校验)、`users`(手机号唯一、离职停用不删、一人多角色);用户 CRUD、停用 / 启用、角色绑定、客户转交接口占位 | A0-BE-02 | 建部门超两级被拒;停用后登录被拒;删除用户被拒、只能停用 | 1.0 | -| A1-BE-02 | 认证与会话 | BE | 账号密码登录(Argon2)、JWT access + refresh 旋转、`jti` 吊销、登出、失败次数限制、密码策略;SSO 适配器接口(不实现) | A0-BE-02 | 登录 → 刷新 → 登出全链路;旧 refresh 立即失效;错误码 40101 / 40102 正确 | 1.0 | -| A1-BE-03 | 守卫链与审计拦截 | BE | `JwtGuard` → `PermissionGuard` → `SpecialPermissionGuard` → `ScopeGuard` 骨架 → 业务校验;`@Audit()` 装饰器与请求上下文(用户、客户、trace_id) | A1-BE-02、A0-SH-01 | 无 token 401;无权限点 40301;守卫顺序可单测 | 1.0 | -| A1-BE-04 | `/me` 与权限上下文 | BE | 当前用户、角色、权限点集合、数据范围、可见客户集合;权限变更即时生效(不缓存旧权限) | A1-BE-03 | `/me` 与登录返回一致;角色变更后下一次请求生效 | 0.5 | -| A1-FE-01 | 登录与会话 | FE | 登录页、token 存储与刷新、登出、会话过期跳转、路由回跳 | A0-FE-03 | 登录 → 刷新页面仍在线;token 过期自动刷新一次;刷新失败回登录 | 0.5 | -| A1-FE-02 | 用户管理页 | FE | 用户列表(游标分页 / 筛选)、新建 / 编辑、停用确认、部门树、角色多选、客户转交入口 | A0-FE-02 | 列表可分页筛选;停用需二次确认;页面按 `user:manage` 隐藏写操作 | 1.0 | -| A1-FE-03 | 权限上下文与路由守卫 | FE | `/me` 全局缓存、权限点 Hook(`usePermission`)、路由级与按钮级控制、403 页 | A1-FE-01 | 无权限路由被拦截;按钮级无权限不渲染(非 `removeChild` 式隐藏) | 0.5 | -| A1-QA-01 | 账号生命周期用例 | QA | 登录 / 刷新 / 登出 / 停用 / 角色变更 / 越权 6 类用例 | A1-BE-04 | 用例全部通过并进 CI | 0.5 | +| 编号 | 任务 | 端 | 内容与产出 | 依赖 | 验收要点 | EPD | 状态 | +| --- | --- | --- | --- | --- | --- | --- | --- | +| A1-BE-01 | 部门与用户 | BE | `departments`(两级,父级最多两级校验)、`users`(手机号唯一、离职停用不删、一人多角色);用户 CRUD、停用 / 启用、角色绑定、客户转交接口占位 | A0-BE-02 | 建部门超两级被拒;停用后登录被拒;删除用户被拒、只能停用 | 1.0 | ✅ | +| A1-BE-02 | 认证与会话 | BE | 账号密码登录(Argon2)、JWT access + refresh 旋转、`jti` 吊销、登出、失败次数限制、密码策略;SSO 适配器接口(不实现) | A0-BE-02 | 登录 → 刷新 → 登出全链路;旧 refresh 立即失效;错误码 40101 / 40102 正确 | 1.0 | ✅ | +| A1-BE-03 | 守卫链与审计拦截 | BE | `JwtGuard` → `PermissionGuard` → `SpecialPermissionGuard` → `ScopeGuard` 骨架 → 业务校验;`@Audit()` 装饰器与请求上下文(用户、客户、trace_id) | A1-BE-02、A0-SH-01 | 无 token 401;无权限点 40301;守卫顺序可单测 | 1.0 | ✅ | +| A1-BE-04 | `/me` 与权限上下文 | BE | 当前用户、角色、权限点集合、数据范围、可见客户集合;权限变更即时生效(不缓存旧权限) | A1-BE-03 | `/me` 与登录返回一致;角色变更后下一次请求生效 | 0.5 | ✅ | +| A1-FE-01 | 登录与会话 | FE | 登录页、token 存储与刷新、登出、会话过期跳转、路由回跳 | A0-FE-03 | 登录 → 刷新页面仍在线;token 过期自动刷新一次;刷新失败回登录 | 0.5 | ✅ | +| A1-FE-02 | 用户管理页 | FE | 用户列表(游标分页 / 筛选)、新建 / 编辑、停用确认、部门树、角色多选、客户转交入口 | A0-FE-02 | 列表可分页筛选;停用需二次确认;页面按 `user:manage` 隐藏写操作 | 1.0 | ✅ | +| A1-FE-03 | 权限上下文与路由守卫 | FE | `/me` 全局缓存、权限点 Hook(`usePermission`)、路由级与按钮级控制、403 页 | A1-FE-01 | 无权限路由被拦截;按钮级无权限不渲染(非 `removeChild` 式隐藏) | 0.5 | ✅ | +| A1-QA-01 | 账号生命周期用例 | QA | 登录 / 刷新 / 登出 / 停用 / 角色变更 / 越权 6 类用例 | A1-BE-04 | 用例全部通过并进 CI | 0.5 | ✅ | -**本批门禁**:登录闭环;用户生命周期可演示;权限三态(有 / 无 / 范围外)用例通过;审计已记录登录与用户变更。 +**本批门禁**:登录闭环;用户生命周期可演示;权限有 / 无用例通过(范围外 ScopeContext 随 A2 补齐);审计已记录登录与用户变更(当前为结构化日志,落库随 A5)。 ### 6.3 A2 角色权限与数据范围