背景: - 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。
This commit is contained in:
1 parent
46959fd5fc
commit
f11d6759fb
1 file changed
+18
-13
@@ -10,7 +10,7 @@
|
|||||||
| 文档名称 | 灵犀 · 信息流素材生产平台 项目开发计划 |
|
| 文档名称 | 灵犀 · 信息流素材生产平台 项目开发计划 |
|
||||||
| 版本 | V0.1(初稿,待评审) |
|
| 版本 | V0.1(初稿,待评审) |
|
||||||
| 日期 | 2026-11-02 |
|
| 日期 | 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)) |
|
| 需求基线 | PRD V1.6([灵犀-信息流广告素材一站式生产平台PRD.md](../PRD/灵犀-信息流广告素材一站式生产平台PRD.md)) |
|
||||||
| 技术基线 | 技术架构 V0.4([灵犀_信息流素材生产平台_技术架构_V0.1.md](../技术架构/灵犀_信息流素材生产平台_技术架构_V0.1.md))+ `AGENTS.md` V1.0 + `docs/工程规范/` V1.0 |
|
| 技术基线 | 技术架构 V0.4([灵犀_信息流素材生产平台_技术架构_V0.1.md](../技术架构/灵犀_信息流素材生产平台_技术架构_V0.1.md))+ `AGENTS.md` V1.0 + `docs/工程规范/` V1.0 |
|
||||||
| 覆盖范围 | **M0 任务级;M1–M4 迭代级 + 任务组级;M5 预研边界(不排期)** |
|
| 覆盖范围 | **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 | 初稿:全项目 M0–M4 开发计划(M0 十二批次任务级 WBS;M1–M4 迭代 + 任务组 WBS;M5 预研边界)、七个管理模块专项、前后端并行与联调机制、质量门禁、风险与验收、待确认事项 |
|
||||||
| V0.1(进度回写) | 2026-11-02 | A0 工程骨架与契约基线完成:批次总览增加状态列、A0 WBS 标注完成、回写执行证据与偏差;不改变原计划范围与验收口径 |
|
| V0.1(进度回写) | 2026-11-02 | A0 工程骨架与契约基线完成:批次总览增加状态列、A0 WBS 标注完成、回写执行证据与偏差;不改变原计划范围与验收口径 |
|
||||||
|
| V0.1(进度回写 A1) | 2026-11-03 | A1 身份认证与用户管理完成:批次总览更新 A1 状态、A1 WBS 标注完成、回写执行证据与遗留;不改变原计划范围与验收口径 |
|
||||||
|
|
||||||
### 0.2 引用约定
|
### 0.2 引用约定
|
||||||
|
|
||||||
@@ -376,7 +377,7 @@ flowchart LR
|
|||||||
| 批次 | 状态 | 主题 | 依赖 | EPD | 参考工期 | 并行波次 | 退出条件(摘要) |
|
| 批次 | 状态 | 主题 | 依赖 | EPD | 参考工期 | 并行波次 | 退出条件(摘要) |
|
||||||
| --- | --- | --- | --- | --- | --- | --- | --- |
|
| --- | --- | --- | --- | --- | --- | --- | --- |
|
||||||
| **A0** | ✅ 已完成 | 工程骨架与契约基线 | — | 6 | 4–5 日 | W0 | lint / typecheck / test / CI 全绿;三依赖可起;api / web / worker 可启动;OpenAPI 可导出 |
|
| **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 命中拒绝;特殊权限默认关闭;范围过滤生效 |
|
| **A2** | 未开始 | 角色权限与数据范围 | A1 | 5.5 | 4–5 日 | W2 | 角色可配;SoD 命中拒绝;特殊权限默认关闭;范围过滤生效 |
|
||||||
| **A3** | 未开始 | 客户与行业目录 | A1 / A2 | 7 | 4–5 日 | W2 | 行业 / 客户 / 客户组可用;唯一性;状态只读;字段审批 |
|
| **A3** | 未开始 | 客户与行业目录 | A1 / A2 | 7 | 4–5 日 | W2 | 行业 / 客户 / 客户组可用;唯一性;状态只读;字段审批 |
|
||||||
| **A4** | 未开始 | 数据字典与系统配置 | A3 | 4 | 3–4 日 | W3 | 三层合并;编码不可改;阈值同源;配置版本 + 审计 |
|
| **A4** | 未开始 | 数据字典与系统配置 | A3 | 4 | 3–4 日 | W3 | 三层合并;编码不可改;阈值同源;配置版本 + 审计 |
|
||||||
@@ -391,6 +392,8 @@ flowchart LR
|
|||||||
**合计**:12 个批次,68.5 EPD,6–7 周(含 25% 缓冲与 M0 末集成缓冲)。
|
**合计**: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` 为准。
|
> **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 批次依赖图
|
### 5.3 批次依赖图
|
||||||
|
|
||||||
@@ -525,20 +528,22 @@ PRD §7 把 **M-27(素材元素级拆解)** 与「自动字幕 → TTS 配
|
|||||||
|
|
||||||
### 6.2 A1 身份认证与用户管理
|
### 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` 前置。
|
**目标**:能登录、能装人、能按权限渲染页面。**对应**:P-01、PRD §5.4.1;架构 §6.2 / §7.1;`R-16` / `R-17` 前置。
|
||||||
|
|
||||||
| 编号 | 任务 | 端 | 内容与产出 | 依赖 | 验收要点 | EPD |
|
| 编号 | 任务 | 端 | 内容与产出 | 依赖 | 验收要点 | EPD | 状态 |
|
||||||
| --- | --- | --- | --- | --- | --- | --- |
|
| --- | --- | --- | --- | --- | --- | --- | --- |
|
||||||
| A1-BE-01 | 部门与用户 | BE | `departments`(两级,父级最多两级校验)、`users`(手机号唯一、离职停用不删、一人多角色);用户 CRUD、停用 / 启用、角色绑定、客户转交接口占位 | A0-BE-02 | 建部门超两级被拒;停用后登录被拒;删除用户被拒、只能停用 | 1.0 |
|
| 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-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-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-BE-04 | `/me` 与权限上下文 | BE | 当前用户、角色、权限点集合、数据范围、可见客户集合;权限变更即时生效(不缓存旧权限) | A1-BE-03 | `/me` 与登录返回一致;角色变更后下一次请求生效 | 0.5 | ✅ |
|
||||||
| A1-FE-01 | 登录与会话 | FE | 登录页、token 存储与刷新、登出、会话过期跳转、路由回跳 | A0-FE-03 | 登录 → 刷新页面仍在线;token 过期自动刷新一次;刷新失败回登录 | 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-02 | 用户管理页 | FE | 用户列表(游标分页 / 筛选)、新建 / 编辑、停用确认、部门树、角色多选、客户转交入口 | A0-FE-02 | 列表可分页筛选;停用需二次确认;页面按 `user:manage` 隐藏写操作 | 1.0 | ✅ |
|
||||||
| A1-FE-03 | 权限上下文与路由守卫 | FE | `/me` 全局缓存、权限点 Hook(`usePermission`)、路由级与按钮级控制、403 页 | A1-FE-01 | 无权限路由被拦截;按钮级无权限不渲染(非 `removeChild` 式隐藏) | 0.5 |
|
| 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 |
|
| A1-QA-01 | 账号生命周期用例 | QA | 登录 / 刷新 / 登出 / 停用 / 角色变更 / 越权 6 类用例 | A1-BE-04 | 用例全部通过并进 CI | 0.5 | ✅ |
|
||||||
|
|
||||||
**本批门禁**:登录闭环;用户生命周期可演示;权限三态(有 / 无 / 范围外)用例通过;审计已记录登录与用户变更。
|
**本批门禁**:登录闭环;用户生命周期可演示;权限有 / 无用例通过(范围外 ScopeContext 随 A2 补齐);审计已记录登录与用户变更(当前为结构化日志,落库随 A5)。
|
||||||
|
|
||||||
### 6.3 A2 角色权限与数据范围
|
### 6.3 A2 角色权限与数据范围
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user