Files
huang fe4c545308
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 7m55s
修正数据
2026-04-27 18:10:08 +08:00

3.3 KiB

ADDED Requirements

Requirement: 资产域操作日志使用独立数据模型

系统 SHALL 为资产域操作日志使用独立数据模型与数据表,不得复用账号域日志表;资产日志模型 MUST 支持记录资产类型、资产ID、资产标识符、操作动作、操作结果、前后镜像和请求上下文。

Scenario: 新增资产日志表并独立于账号日志

  • WHEN 系统初始化资产域审计能力
  • THEN 系统使用独立的 tb_asset_operation_log 存储资产日志,且不写入 tb_account_operation_log

Scenario: 资产日志表不使用外键约束

  • WHEN 创建资产日志表结构
  • THEN 表间关联通过 ID 字段维护,不创建数据库外键和 GORM 关联标签

Requirement: 资产敏感写操作必须全量记录

系统 SHALL 对卡和设备相关敏感写操作进行全量审计记录,结果态 MUST 覆盖 successfaileddenied

Scenario: 成功操作写入 success 日志

  • WHEN 设备分配、卡绑定、手动实名、停用等写操作执行成功
  • THEN 系统写入 result_status=success 的资产操作日志

Scenario: 业务失败写入 failed 日志

  • WHEN 写操作执行过程中发生网关失败或数据库失败
  • THEN 系统写入 result_status=failed 的资产操作日志,并记录错误码与错误摘要

Scenario: 权限或规则拒绝写入 denied 日志

  • WHEN 操作被权限规则、保护期规则或业务前置条件拒绝
  • THEN 系统写入 result_status=denied 的资产操作日志,并记录拒绝原因

Requirement: 审计日志必须包含完整上下文

系统 SHALL 在资产日志中记录“谁、何时、做了什么、从什么变成什么”,并包含请求链路上下文。

Scenario: 记录操作人和时间

  • WHEN 生成任一资产操作日志
  • THEN 日志包含 operator_idoperator_typeoperator_namecreated_at

Scenario: 记录前后镜像

  • WHEN 记录状态流转或配置修改类操作
  • THEN 日志同时包含 before_dataafter_data,可直接体现变更差异

Scenario: 记录请求上下文

  • WHEN 记录资产操作日志
  • THEN 日志包含 request_idip_addressuser_agentrequest_pathrequest_method

Requirement: 审计写入异步且不阻塞主流程

系统 SHALL 采用异步方式写入资产审计日志,日志写入失败 MUST 不影响业务主流程结果。

Scenario: 异步写入

  • WHEN 业务操作完成并触发审计记录
  • THEN 主流程先返回业务结果,日志由异步流程落库

Scenario: 日志写入失败降级

  • WHEN 资产日志落库失败
  • THEN 系统仅记录 Error 级别应用日志,不回滚已成功的主业务操作

Requirement: 敏感字段脱敏与日志体积控制

系统 SHALL 对敏感字段执行脱敏处理,并对日志体积设置上限,避免泄露与性能风险。

Scenario: 远程配置敏感字段脱敏

  • WHEN 记录设备 WiFi/密码等敏感配置变更日志
  • THEN before_data/after_data 中不得出现明文密码,仅保留掩码或摘要

Scenario: 超长数据裁剪

  • WHEN 业务上下文数据超过日志体积阈值
  • THEN 系统对超长字段进行裁剪并保留裁剪标记,保证日志写入稳定