feat(history): scope export tasks to owners
This commit is contained in:
@@ -190,7 +190,18 @@
|
||||
|
||||
### P0-05 导出任务账号归属与审计
|
||||
|
||||
状态:`待开发`
|
||||
状态:`已完成`
|
||||
|
||||
已上线结果(release `export-owner-scope-20260716165737`):
|
||||
|
||||
- 创建、列表和下载接口均使用当前认证主体;任务固化创建账号、显示名、角色/用户类型、认证来源、客户/租户、已授权 VIN、逐车时间范围和创建/完成时间。
|
||||
- 客户和内部普通账号只能看到、下载自己的任务;管理员保留全局审计视角。旧版无 owner 的历史任务不会暴露给非管理员,猜测或复用其他任务 ID 统一按不存在处理。
|
||||
- 客户创建任务时同步解析车牌/VIN 并校验车辆与历史时间授权;异步任务开始、每 5,000 行批次及下载前再次查询账号启用状态和车辆授权。账号停用、车辆撤权或授权区间变化后,未完成任务停止,已完成文件拒绝下载。
|
||||
- 导出任务持久化保存 owner 与车辆时间 Scope;服务重启后继续按同一主体授权下载。排队或执行中的任务在重启后安全标记失败,不会以无主体状态恢复。
|
||||
- CSV 增加导出账号、角色、客户、创建/生成时间、车辆 Scope、查询条件、字段/单位及质量原因;任务名和下载文件名包含业务时间及创建者,中文文件名通过 RFC 5987/URL 编码安全传递。
|
||||
- Web 下载改为带 Bearer Token 的受控 Blob 请求,不再使用绕过请求头的直接 `<a>` 链接;客户历史页可创建自己的导出,列表展示创建者、车辆数和时间范围。
|
||||
- 自动化覆盖客户 A/B 任务隔离、管理员审计、越权下载、撤权停止、持久化审计元数据和前端 Bearer 下载;本地后端全量测试及前端 241 项测试通过。
|
||||
- ECS 真实车辆 `LNXNEGRR7SR318212` 在 `2026-07-14 00:00–06:00` 导出 1,274 行,`rowCount = processedRows = totalRows`;下载文件 215,212 字节,包含审计/Scope/质量元数据。伪造任务 ID 返回 404;API 重启前后 SHA-256 均为 `00a4b1a877364f048a06e8bf6d80828e0dacaddd2f946b39b6cd00cfb2e9013e`,且无 `.part` 残留。
|
||||
|
||||
目标:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user