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 参数类型错误未通过。
2.7 KiB
2.7 KiB
主体资源活动接口
代理和企业使用独立安全投影,不得调用 /api/admin/audit/*,也不复用平台审计 DTO。
接口
- 代理:
GET /api/admin/agent/resource-activities/{resource_type}/{identifier} - 企业:
GET /api/admin/enterprise/resource-activities/{resource_type}/{identifier} - 查询参数:
page默认 1,page_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=card、iccid |
/agent/resource-activities/iot_card/{iccid} |
ICCID 为空时隐藏入口 |
| 代理设备资产详情 | asset_type=device、virtual_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 仅保留为平台切换前历史入口,不向代理或企业开放,也不把旧记录拼接到新活动接口。