Files
lingniu-vehicle-ingest/vehicle-data-platform/docs/design/history-export-owner-scope-audit-20260723

历史导出任务账号范围审计

结论

管理员的历史导出任务中心现在可以明确切换“全部账号”和“仅我的任务”。账号范围由服务端在汇总与分页前执行,客户账号仍只能访问自己的任务;管理员的全局审计权限不变,但不再需要靠创建人关键词猜测自己的任务。

筛选状态写入 exportOwner=mine,可刷新、分享和跨设备恢复。当前账号没有任务时,空状态会说明已经检查完整账号范围,并提供“查看全部账号任务”恢复入口,不再把筛选结果误写成平台没有任何导出记录。

交互步骤与证据

  1. 旧管理员任务中心(需改进)
    任务中心提供搜索与状态筛选,但没有明确账号范围。管理员看到所有可审计任务,只能依赖创建人文本自行判断。
    旧版无账号范围

  2. 仅我的任务(健康)
    桌面端明确显示“仅我的任务”;当前账号没有任务时,总数、摘要和空状态一致,并提供返回全部账号的恢复入口。
    仅我的任务桌面端

  3. 全部账号审计(健康)
    切回“全部账号”后恢复完整管理员审计列表,搜索、状态、账号范围和分页继续使用同一服务端结果。
    全部账号审计

  4. 移动端深链恢复(健康)
    390 × 844 下通过 exportOwner=mine 直接恢复账号范围;搜索独占一行,状态与账号筛选并排,固定刷新和完成操作未被遮挡。
    移动端仅我的任务

  5. 前后视觉对照(健康)
    同一桌面尺寸下,账号范围从隐含规则变为可见、可操作、可恢复的筛选。
    账号范围前后对照

验证

  • 历史数据专项44 项通过。
  • Web 正式套件78 个测试文件、509 项通过。
  • APIgo test ./... 全量通过。
  • 生产构建TypeScript、Vite 构建与发布资产门禁通过。
  • 浏览器1440 × 900 桌面与 390 × 844 手机真实本地前后端联调通过。
  • 服务端测试证明管理员“仅我的任务”按持久化 owner ID 隔离,同时保留“全部账号”审计能力。

无障碍与证据边界

  • 账号范围选择器具有独立可访问名称;空状态恢复按钮、状态筛选和固定底栏均可通过语义节点定位。
  • 截图中的 Mock 数据全部由旧 admin 主体创建,因此当前 local-developer 的“仅我的任务”为 0这正好验证了主体隔离和可信空状态但不是多账号生产数据量测试。
  • 本轮未执行屏幕阅读器或真实键盘全流程测试,不能据此声明完整辅助技术兼容。