All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 7m55s
59 lines
4.1 KiB
Markdown
59 lines
4.1 KiB
Markdown
# 资产审计日志验收准备
|
||
|
||
## 0.1 资产敏感写操作覆盖矩阵
|
||
|
||
| 业务域 | 场景 | `operation_type` | 主要入口 |
|
||
|---|---|---|---|
|
||
| IoT 卡 | 分配 | `card_allocate` | `iot_card.Service.AllocateCards` |
|
||
| IoT 卡 | 回收 | `card_recall` | `iot_card.Service.RecallCards` |
|
||
| IoT 卡 | 系列绑定 | `card_series_binding` | `iot_card.Service.BatchSetSeriesBinding` |
|
||
| IoT 卡 | 轮询开关 | `card_polling_status` | `iot_card.Service.UpdatePollingStatus/BatchUpdatePollingStatus` |
|
||
| IoT 卡 | 实名策略 | `card_realname_policy` | `iot_card.Service.UpdateRealnamePolicy` |
|
||
| IoT 卡 | 手动实名状态 | `card_realname_status` | `iot_card.Service.ManualUpdateRealnameStatus` |
|
||
| IoT 卡 | 删除/批量删除 | `card_delete` / `card_batch_delete` | `iot_card.Service.DeleteCard/BatchDeleteCards` |
|
||
| IoT 卡停复机 | 自动停机/复机 | `card_auto_stop` / `card_auto_start` | `iot_card.StopResumeService.stopCardWithRetry/resumeSingleCard` |
|
||
| IoT 卡停复机 | 手动停机/复机 | `card_manual_stop` / `card_manual_start` | `iot_card.StopResumeService.ManualStopCard/ManualStartCard` |
|
||
| 设备 | 删除 | `device_delete` | `device.Service.Delete` |
|
||
| 设备 | 分配/回收 | `device_allocate` / `device_recall` | `device.Service.AllocateDevices/RecallDevices` |
|
||
| 设备 | 系列绑定 | `device_series_binding` | `device.Service.BatchSetSeriesBinding` |
|
||
| 设备 | 绑卡/解绑 | `device_bind_card` / `device_unbind_card` | `device.Service.BindCard/UnbindCard` |
|
||
| 设备 | 停机/复机 | `device_stop` / `device_start` | `device.Service.StopDevice/StartDevice` |
|
||
| 设备远程控制 | 限速 | `device_speed_limit` | `device.Service.GatewaySetSpeedLimit` |
|
||
| 设备远程控制 | WiFi 设置 | `device_set_wifi` | `device.Service.GatewaySetWiFi` |
|
||
| 设备远程控制 | 切卡 | `device_switch_card` | `device.Service.GatewaySwitchCard` |
|
||
| 设备远程控制 | 切卡模式 | `device_switch_mode` | `device.Service.GatewaySwitchMode` |
|
||
| 设备远程控制 | 重启/恢复出厂 | `device_reboot` / `device_reset` | `device.Service.GatewayRebootDevice/ResetDevice` |
|
||
| 统一资产入口 | 停用 | `asset_deactivate` | `asset.LifecycleService.DeactivateIotCard/DeactivateDevice` |
|
||
| 统一资产入口 | 轮询开关 | `asset_polling_status` | `polling.AssetPollingService.UpdatePollingStatus` |
|
||
| 统一资产入口 | 实名策略 | `asset_realname_policy` | `device.Service.UpdateRealnamePolicy`(设备路径) |
|
||
| 导入任务 | 设备导入任务创建 | `device_import_task_create` | `device_import.Service.CreateImportTask` |
|
||
| 导入任务 | 卡导入任务创建 | `iot_card_import_task_create` | `iot_card_import.Service.CreateImportTask` |
|
||
|
||
## 0.2 审计字段验收清单
|
||
|
||
| 字段组 | 核对项 | 说明 |
|
||
|---|---|---|
|
||
| `operator_*` | `operator_id/operator_type/operator_name` | 系统触发场景 `operator_type=system` 且 `operator_id` 可为空 |
|
||
| `asset_*` | `asset_type/asset_id/asset_identifier` | 设备使用虚拟号,卡使用 ICCID;批量/导入场景允许按任务摘要记录 |
|
||
| `operation_*` | `operation_type/operation_desc` | `operation_type` 必须来自 `pkg/constants/asset_audit.go` |
|
||
| `before_data/after_data` | 变更镜像 | 状态/配置修改类要求体现前后差异 |
|
||
| `request_*` | `request_id/ip_address/user_agent/request_path/request_method` | 由日志中间件注入到 `context`,审计统一读取 |
|
||
| `result_*` | `result_status/error_code/error_msg` | 覆盖 `success/failed/denied`;失败/拒绝需记录错误摘要 |
|
||
| 批量聚合 | `batch_total/success_count/fail_count` | 批量与设备停复机场景需写入聚合统计 |
|
||
|
||
## 0.3 手工验收数据与脚本
|
||
|
||
### 接口回放建议(Postman/curl)
|
||
|
||
1. 成功样例:设备分配、卡分配、设备远程控制(限速)
|
||
2. 失败样例:远程控制网关失败、非法设备 ID、事务失败
|
||
3. 拒绝样例:停复机保护期、越权分配、无效实名策略
|
||
|
||
### SQL 脚本
|
||
|
||
- 统一查询脚本:`docs/add-asset-operation-audit-log/手工验收脚本.sql`
|
||
- 重点核对:
|
||
- 同一操作存在 `success/failed/denied` 三类结果
|
||
- `before_data/after_data` 存在且字段合理
|
||
- WiFi 密码字段已脱敏(不出现明文)
|