Files
junhong_cmp_fiber/docs/feature-504-multi-view-audit-center/主体资源活动接口.md
break b3499adfca 固化七月迭代审计治理进展以隔离线上热修
Constraint: 切换 main 前必须保存当前七月分支全部项目进展,套餐生效提案仅属于 Iteration/7-11。

Rejected: 将七月套餐修复直接移植到 main | 两个分支的可靠投递架构不同。

Confidence: medium

Scope-risk: broad

Directive: 不得将本提交整体 cherry-pick 到 main;main 套餐热修必须基于其纯 Asynq 代码独立实施。

Tested: git diff --check;openspec validate fix-package-activation-starvation --strict。

Not-tested: 按用户要求未运行自动化测试;go build ./... 因当前审计改造中的 Enterprise 模型字面量和 role.recordFailure 参数类型错误未通过。
2026-08-03 09:47:22 +08:00

2.7 KiB
Raw Blame History

主体资源活动接口

代理和企业使用独立安全投影,不得调用 /api/admin/audit/*,也不复用平台审计 DTO。

接口

  • 代理:GET /api/admin/agent/resource-activities/{resource_type}/{identifier}
  • 企业:GET /api/admin/enterprise/resource-activities/{resource_type}/{identifier}
  • 查询参数:page 默认 1page_size 默认 20、最大 100。

响应资源摘要仅包含 resource_type/resource_id/resource_key/display_name;活动项仅包含动作编码及中文名、subject_summary、Registry 白名单约束的 subject_data、结果、发生时间和当前主体仍有权查看的关联资源摘要。

平台操作者、内部原因和备注、风险、内部 before/after、Audit Event ID、Integration Log 内容及系统安全凭据均不返回。internal_only 事件不会产生占位记录或数量提示。

页面字段映射

主体与前置接口 response.data 字段 目标调用 降级行为
代理卡资产详情 GET /api/admin/assets/resolve/{identifier} asset_type=cardiccid /agent/resource-activities/iot_card/{iccid} ICCID 为空时隐藏入口
代理设备资产详情 asset_type=devicevirtual_no /agent/resource-activities/device/{virtual_no} VirtualNo 为空时隐藏入口
代理分配记录 allocation_no /agent/resource-activities/asset_allocation_record/{allocation_no} 后端独立复核记录关联店铺和当前资产归属
代理换货单 exchange_no /agent/resource-activities/exchange_order/{exchange_no} 后端按换货单当前所属店铺复核
代理店铺 shop_code /agent/resource-activities/shop/{shop_code} 仅自己及下级店铺
代理归属企业 enterprise_code /agent/resource-activities/enterprise/{enterprise_code} 仅 owner shop 在代理范围内
企业卡列表 GET /api/admin/enterprises/{id}/cards items[].iccid /enterprise/resource-activities/iot_card/{iccid} 路由企业 ID 不作为授权证明
企业设备列表 GET /api/admin/enterprises/{id}/devices items[].virtual_no /enterprise/resource-activities/device/{virtual_no} 授权撤销或字段为空时隐藏入口

企业不能调用统一资产 resolve 接口,因此不从该页面构造活动入口。所有 shop ID、enterprise ID 和授权范围都来自认证上下文;调用方不能通过 query、path 或 body 伪造。资源不存在、不支持、越权或授权已撤销统一返回“无权限操作该资源或资源不存在”。

GET /api/admin/assets/{identifier}/operation-logs 仅保留为平台切换前历史入口,不向代理或企业开放,也不把旧记录拼接到新活动接口。