docs(plan): 补齐 A5 完成状态与任务状态列
§6.6 增加执行状态与 8 项 WBS 状态列;§7.5 页面 / 接口 / 状态回写实际实现;§5.2 增加 A5 完成情况;OTel 与资产 / 任务待接入显式标注。
This commit is contained in:
1 parent
dca498ec15
commit
dcbd600e9c
1 file changed
+18
-13
@@ -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 的分页。
|
> **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 审计与日志
|
### 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。
|
**目标**:关键操作全留痕、不可篡改、可检索可导出。**对应**:P-07、PRD §5.4.6;`R-05`;架构 §5.4.5 / §9.7;工程规范 08。
|
||||||
|
|
||||||
| 编号 | 任务 | 端 | 内容与产出 | 依赖 | 验收要点 | EPD |
|
| 编号 | 任务 | 端 | 内容与产出 | 依赖 | 验收要点 | 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-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-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-03 | 审计检索与导出 | BE | 按人 / 客户 / 时间 / 动作 / 对象检索(游标分页);导出为异步任务并**自身也写审计**;只读接口 | A5-BE-02 | 检索返回稳定排序;导出记录含"谁导出了审计";无修改入口 | 0.5 | ✅ |
|
||||||
| A5-BE-04 | 敏感访问与保留归档 | BE | 客户资产包、成本数据、审计日志查看单独留痕;保留 ≥ 12 个月策略与归档任务占位(`QT-10`) | A5-BE-03 | 查看成本 / 审计也产生审计;归档任务可配置 | 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-01 | 审计列表与详情 | FE | 多条件筛选、列表、详情(前后值 diff、trace_id、IP)、只读标识 | A5-BE-03 | 前后值对比可读;无可编辑控件 | 0.5 | ✅ |
|
||||||
| A5-FE-02 | 审计导出与只读 | FE | 导出(异步进度 + 下载)、导出历史、权限点控制 | A5-FE-01 | 无 `audit:export` 不显示导出;导出后审计列表新增一条 | 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-INF-01 | 运行日志与观测 | INF | Pino 字段规范、trace_id 贯通、OTel 接入、日志平台入口(后台只放跳转链接,不入库) | A0-BE-01 | 请求可串 trace;后台"运行日志"入口可跳转;日志无密钥 | 0.5 | ✅(OTel 待接) |
|
||||||
| A5-QA-01 | 不可篡改与留痕用例 | QA | 登录 / 权限 / 资产 / 配置 / 导出 / 任务 / 敏感访问 7 类留痕 | A5-BE-04 | 用例全绿;篡改尝试失败 | 0.5 |
|
| 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`(运行日志平台跳转) |
|
| 状态 | ✅ 已完成(2026-11-04);实现记录见 [A5 实施报告](./灵犀_A5审计与日志_实施报告_V0.1.md) |
|
||||||
| 接口 | `GET /audit-logs`、`POST /audit-logs/export` |
|
| 页面 | `/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` 待确认最终值);导出本身也审计;敏感数据访问(客户资产包 / 成本 / 审计)单独留痕;只读,无编辑入口 |
|
| 关键规则 | 审计 append-only(DB 层禁 UPDATE / DELETE);保留 ≥ 12 个月(`Q-08` 待确认最终值);导出本身也审计;敏感数据访问(客户资产包 / 成本 / 审计)单独留痕;只读,无编辑入口 |
|
||||||
| 交互要点 | 筛选:人 / 客户 / 时间 / 动作 / 对象;详情展示前后值 diff、trace_id、IP / UA;导出为异步任务,产物短时效 URL |
|
| 交互要点 | 筛选:人 / 客户 / 时间 / 动作 / 对象 / 结果;详情展示前后值 diff、完整原始 JSON、trace_id、IP / UA;导出为异步任务,产物短时效签名 URL |
|
||||||
| 验收 | ① 关键七类动作全留痕;② 直接改库被拒;③ 导出审计新增一条"导出审计";④ 无 `audit:export` 看不到导出按钮;⑤ 运行日志与审计分开 |
|
| 验收 | ① 关键七类动作全留痕;② 直接改库被拒;③ 导出审计新增一条"导出审计";④ 无 `audit:export` 看不到导出按钮;⑤ 运行日志与审计分开 |
|
||||||
|
|
||||||
### 7.6 任务管理(A6 / 架构 §6.4、M-05)
|
### 7.6 任务管理(A6 / 架构 §6.4、M-05)
|
||||||
|
|||||||
Reference in new issue
Block a user