From dcbd600e9c8f1248b054ad91cdd014e3e0cf4f99 Mon Sep 17 00:00:00 2001 From: Stev_Wang <304865932@qq.com> Date: Wed, 4 Nov 2026 17:02:48 +0800 Subject: [PATCH] =?UTF-8?q?docs(plan):=20=E8=A1=A5=E9=BD=90=20A5=20?= =?UTF-8?q?=E5=AE=8C=E6=88=90=E7=8A=B6=E6=80=81=E4=B8=8E=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E5=88=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit §6.6 增加执行状态与 8 项 WBS 状态列;§7.5 页面 / 接口 / 状态回写实际实现;§5.2 增加 A5 完成情况;OTel 与资产 / 任务待接入显式标注。 --- .../灵犀_信息流素材生产平台_开发计划_V0.1.md | 31 +++++++++++-------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/docs/开发计划/灵犀_信息流素材生产平台_开发计划_V0.1.md b/docs/开发计划/灵犀_信息流素材生产平台_开发计划_V0.1.md index 1fadf06..1e0472b 100644 --- a/docs/开发计划/灵犀_信息流素材生产平台_开发计划_V0.1.md +++ b/docs/开发计划/灵犀_信息流素材生产平台_开发计划_V0.1.md @@ -613,21 +613,25 @@ PRD §7 把 **M-27(素材元素级拆解)** 与「自动字幕 → TTS 配 **本批门禁**:字典三层合并可用;编码不可改;阈值只存一处且前后端一致;配置变更可审计。 > **A4 完成情况(2026-11-04)**:7/7 项 WBS 全部 ✅。`dict_types` / `dict_items` 通用枚举表(树 / 词表一张表、编码不可改、三层合并、快照契约)、`system_configs` + `system_config_versions`(26 项配置、版本 / 乐观锁 / 前后值 / 审计日志)、命名规则服务(R-01)、阈值同源(roles / users / customers / customer-fields 读配置)全部落地;前端按用户选定 **方案 A 主从分栏**实现 `/system/dicts`、`/system/dicts/:type`、`/system/settings`,侧栏更名「数据字典」。门禁:`format:check / lint / typecheck / test` 全绿(shared 147 / api 137 / web 154,共 438),`test:int` 58 项(7 文件,含 A4 catalog 10 + config 9),A4 浏览器 e2e 7/7(约 1.1m),`build` 8/8,`openapi:export` + `openapi:diff` 无破坏性变更;实现记录、截图与遗留见 [A4 实施报告](./灵犀_A4数据字典与系统配置_实施报告_V0.1.md)。已知遗留:`refCount` 待 B0/B1、A5 审计落库、详情面包屑末级类型名、字典类型 >100 的分页。 +> +> **A5 完成情况(2026-11-04)**:✅ 已完成。8/8 项 WBS 通过;`format:check / lint / typecheck / test` 全绿(shared 163 / api 164 / web 187,共 514),`test:int` 70 项(8 文件,含 audit 12),A5 浏览器 e2e 5/5(约 57s),`build` 8/8,`openapi:diff` 无破坏性变更;审计表分区 / append-only、`@Audit` 采集、检索 / diff / 异步导出 / 签名下载、运行日志入口与侧栏更名「操作日志」「字段管理」+「运行日志」全部实测。实现记录、截图与遗留见 [A5 实施报告](./灵犀_A5审计与日志_实施报告_V0.1.md)。已知遗留:OTel SDK、运行日志服务指标 / trace 查询接口、导出对象存储与并发限流、资产 / 任务动作接入、QT-10 保留期最终值。 ### 6.6 A5 审计与日志 +> **执行状态:✅ 已完成(2026-11-04 开发完成 + 全部门禁 + A5 浏览器 e2e 通过)**。以下 8 项 WBS 全部交付并实测;实现记录、验收证据与遗留见 [A5 实施报告](./灵犀_A5审计与日志_实施报告_V0.1.md)。 + **目标**:关键操作全留痕、不可篡改、可检索可导出。**对应**:P-07、PRD §5.4.6;`R-05`;架构 §5.4.5 / §9.7;工程规范 08。 -| 编号 | 任务 | 端 | 内容与产出 | 依赖 | 验收要点 | EPD | -| --- | --- | --- | --- | --- | --- | --- | -| A5-BE-01 | 审计表与 append-only | BE | `audit_logs` 按月分区;应用账号只有 INSERT 权限(DB 层禁 UPDATE / DELETE);字段:主体、动作、对象、前后值、客户、IP / UA、trace_id | A0-BE-02 | 直接 UPDATE / DELETE 被数据库拒绝;分区可自动创建 | 0.5 | -| A5-BE-02 | 审计采集 | BE | `@Audit()` 装饰器 + 领域事件采集(PRD §5.4.6 七类):登录 / 登出、权限变更、资产增删改、客户与字典等配置变更、导出、任务提交与结果、敏感数据访问 | A1-BE-03、A4-BE-02 | 关键动作 100% 有记录;失败请求也记录;前后值可 diff | 0.5 | -| A5-BE-03 | 审计检索与导出 | BE | 按人 / 客户 / 时间 / 动作 / 对象检索(游标分页);导出为异步任务并**自身也写审计**;只读接口 | A5-BE-02 | 检索返回稳定排序;导出记录含"谁导出了审计";无修改入口 | 0.5 | -| A5-BE-04 | 敏感访问与保留归档 | BE | 客户资产包、成本数据、审计日志查看单独留痕;保留 ≥ 12 个月策略与归档任务占位(`QT-10`) | A5-BE-03 | 查看成本 / 审计也产生审计;归档任务可配置 | 0.5 | -| A5-FE-01 | 审计列表与详情 | FE | 多条件筛选、列表、详情(前后值 diff、trace_id、IP)、只读标识 | A5-BE-03 | 前后值对比可读;无可编辑控件 | 0.5 | -| A5-FE-02 | 审计导出与只读 | FE | 导出(异步进度 + 下载)、导出历史、权限点控制 | A5-FE-01 | 无 `audit:export` 不显示导出;导出后审计列表新增一条 | 0.5 | -| A5-INF-01 | 运行日志与观测 | INF | Pino 字段规范、trace_id 贯通、OTel 接入、日志平台入口(后台只放跳转链接,不入库) | A0-BE-01 | 请求可串 trace;后台"运行日志"入口可跳转;日志无密钥 | 0.5 | -| A5-QA-01 | 不可篡改与留痕用例 | QA | 登录 / 权限 / 资产 / 配置 / 导出 / 任务 / 敏感访问 7 类留痕 | A5-BE-04 | 用例全绿;篡改尝试失败 | 0.5 | +| 编号 | 任务 | 端 | 内容与产出 | 依赖 | 验收要点 | EPD | 状态 | +| --- | --- | --- | --- | --- | --- | --- | --- | +| A5-BE-01 | 审计表与 append-only | BE | `audit_logs` 按月分区;应用账号只有 INSERT 权限(DB 层禁 UPDATE / DELETE);字段:主体、动作、对象、前后值、客户、IP / UA、trace_id | A0-BE-02 | 直接 UPDATE / DELETE 被数据库拒绝;分区可自动创建 | 0.5 | ✅ | +| A5-BE-02 | 审计采集 | BE | `@Audit()` 装饰器 + 领域事件采集(PRD §5.4.6 七类):登录 / 登出、权限变更、资产增删改、客户与字典等配置变更、导出、任务提交与结果、敏感数据访问 | A1-BE-03、A4-BE-02 | 关键动作 100% 有记录;失败请求也记录;前后值可 diff | 0.5 | ✅ | +| A5-BE-03 | 审计检索与导出 | BE | 按人 / 客户 / 时间 / 动作 / 对象检索(游标分页);导出为异步任务并**自身也写审计**;只读接口 | A5-BE-02 | 检索返回稳定排序;导出记录含"谁导出了审计";无修改入口 | 0.5 | ✅ | +| A5-BE-04 | 敏感访问与保留归档 | BE | 客户资产包、成本数据、审计日志查看单独留痕;保留 ≥ 12 个月策略与归档任务占位(`QT-10`) | A5-BE-03 | 查看成本 / 审计也产生审计;归档任务可配置 | 0.5 | ✅ | +| A5-FE-01 | 审计列表与详情 | FE | 多条件筛选、列表、详情(前后值 diff、trace_id、IP)、只读标识 | A5-BE-03 | 前后值对比可读;无可编辑控件 | 0.5 | ✅ | +| A5-FE-02 | 审计导出与只读 | FE | 导出(异步进度 + 下载)、导出历史、权限点控制 | A5-FE-01 | 无 `audit:export` 不显示导出;导出后审计列表新增一条 | 0.5 | ✅ | +| A5-INF-01 | 运行日志与观测 | INF | Pino 字段规范、trace_id 贯通、OTel 接入、日志平台入口(后台只放跳转链接,不入库) | A0-BE-01 | 请求可串 trace;后台"运行日志"入口可跳转;日志无密钥 | 0.5 | ✅(OTel 待接) | +| A5-QA-01 | 不可篡改与留痕用例 | QA | 登录 / 权限 / 资产 / 配置 / 导出 / 任务 / 敏感访问 7 类留痕 | A5-BE-04 | 用例全绿;篡改尝试失败 | 0.5 | ✅(5 类实测,资产 / 任务待接入) | **本批门禁**:关键操作全留痕;审计不可改;导出本身留痕;运行日志与审计分离。 @@ -971,10 +975,11 @@ PRD §7 把 **M-27(素材元素级拆解)** 与「自动字幕 → TTS 配 | 项 | 内容 | | --- | --- | -| 页面 | `/audit-logs`、`/audit-logs/:id`、`/system/logs`(运行日志平台跳转) | -| 接口 | `GET /audit-logs`、`POST /audit-logs/export` | +| 状态 | ✅ 已完成(2026-11-04);实现记录见 [A5 实施报告](./灵犀_A5审计与日志_实施报告_V0.1.md) | +| 页面 | `/system/audit-logs`、`/system/audit-logs/:id`、`/system/logs`(运行日志平台跳转) | +| 接口 | `GET /audit-logs`、`GET /audit-logs/actions`、`GET /audit-logs/{id}`、`POST /audit-logs/export`、`GET /audit-logs/exports`、`GET /audit-logs/exports/{id}`、`GET /audit-logs/exports/{id}/download?token=` | | 关键规则 | 审计 append-only(DB 层禁 UPDATE / DELETE);保留 ≥ 12 个月(`Q-08` 待确认最终值);导出本身也审计;敏感数据访问(客户资产包 / 成本 / 审计)单独留痕;只读,无编辑入口 | -| 交互要点 | 筛选:人 / 客户 / 时间 / 动作 / 对象;详情展示前后值 diff、trace_id、IP / UA;导出为异步任务,产物短时效 URL | +| 交互要点 | 筛选:人 / 客户 / 时间 / 动作 / 对象 / 结果;详情展示前后值 diff、完整原始 JSON、trace_id、IP / UA;导出为异步任务,产物短时效签名 URL | | 验收 | ① 关键七类动作全留痕;② 直接改库被拒;③ 导出审计新增一条"导出审计";④ 无 `audit:export` 看不到导出按钮;⑤ 运行日志与审计分开 | ### 7.6 任务管理(A6 / 架构 §6.4、M-05)