All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 7m55s
3.9 KiB
3.9 KiB
0. 验证准备与覆盖矩阵确认
- 0.1 梳理资产敏感写操作覆盖矩阵(卡/设备/统一资产入口/自动停复机/导入任务创建),明确每个操作对应
operation_type - 0.2 定义日志字段验收清单:
operator_*、asset_*、operation_*、before_data、after_data、request_*、result_* - 0.3 准备手工验收数据与脚本(Postman/curl + PostgreSQL MCP 查询语句),覆盖 success/failed/denied 三类结果
1. 资产域日志模型与迁移
- 1.1 新增资产操作日志 Model(
tb_asset_operation_log)与 JSONB 字段结构,确保无外键/无 GORM 关联标签 - 1.2 新增迁移文件(up/down):创建资产日志表和索引(按资产、操作人、时间、结果等维度)
- 1.3 新增 Store 能力(Create + 常用查询基础方法),满足异步写入与后续审计检索
- 1.4 使用 PostgreSQL MCP 验证表结构、索引、字段类型与约束符合设计
2. 审计基础设施与常量
- 2.1 在
pkg/constants新增资产审计常量:操作类型、结果类型、资产类型、系统操作者类型等 - 2.2 新增
asset_audit服务与统一写入接口(异步落库、失败不阻断主流程) - 2.3 新增日志构建 helper(统一 before/after、请求上下文、错误信息组装)
- 2.4 在 bootstrap 完成依赖注入(
iot_card、device、stop_resume、asset lifecycle、asset polling、导入服务) - 2.5 编译校验与静态检查(
gofmt、go build)确保注入链路无回归
3. IoT 卡相关操作接入审计
- 3.1 接入单卡分配/回收审计日志(包含前后归属、结果态)
- 3.2 接入卡系列绑定、轮询开关、实名策略更新审计日志
- 3.3 接入手动实名状态更新审计日志(必须记录 before/after)
- 3.4 接入卡删除/批量删除审计日志
- 3.5 对卡相关拒绝与失败路径补充 denied/failed 审计日志
- 3.6 手工验证卡操作日志完整性(success/failed/denied + before/after)
4. 设备相关操作接入审计
- 4.1 接入设备删除、分配、回收、系列绑定审计日志
- 4.2 接入设备绑卡/解绑审计日志(记录设备、卡、插槽与状态变化)
- 4.3 接入设备停机/复机审计日志(记录成功数、失败数、失败摘要)
- 4.4 接入设备远程控制审计日志(限速/WiFi/切卡/切卡模式/重启/恢复出厂)
- 4.5 落实敏感字段脱敏(WiFi 密码等不得明文写入日志)
- 4.6 手工验证设备操作日志(含敏感字段脱敏校验)
5. 统一资产入口与停复机链路接入
- 5.1 在统一资产入口相关写操作中补齐审计日志(停复机、停用、轮询状态、实名策略)
- 5.2 在自动停复机链路补齐审计日志(自动停机/自动复机成功与失败)
- 5.3 在手动停复机拒绝场景补齐 denied 审计日志(未实名、保护期等)
- 5.4 校验系统触发操作的操作者语义(
operator_type=system等) - 5.5 手工验证统一入口与停复机链路审计闭环
6. 导入任务创建与批量链路补齐
- 6.1 接入设备导入任务创建审计日志(记录任务参数摘要与创建结果)
- 6.2 接入卡导入任务创建审计日志(记录任务参数摘要与创建结果)
- 6.3 校验批量操作日志的聚合字段(
batch_total/success_count/fail_count) - 6.4 手工验证导入与批量链路审计数据可追溯
7. 文档与最终验收
- 7.1 编写功能总结文档(
docs/{feature-id}/),说明字段规范、覆盖范围、脱敏规则、查询示例 - 7.2 更新 README 相关章节(资产审计日志能力与排障入口)
- 7.3 完成全链路手工验收:卡与设备典型操作各覆盖 success/failed/denied 至少一例
- 7.4 输出验收证据:接口请求响应、日志样例、数据库快照与关键 SQL 查询结果