2.3 KiB
2.3 KiB
01 — 建立设备 CSV 批量任务与受控上传基础设施
What to build: 为设备 CSV 批量分配提供可复用的任务基础设施:运营人员能够取得仅允许 CSV 的受控上传地址;系统可持久化并追踪异步任务,严格校验、解析和去重单列表格,安全记录行级失败,并仅以任务 ID 向异步队列投递任务。
Blocked by:
- .scratch/ur36-bulk-package-purchase/issues/02-controlled-upload-object-ownership.md — 02 — 交付受控直传与对象归属证明
- .scratch/tech-public-foundation/issues/06-unified-async-task-contract.md — 06 — 冻结统一异步任务五态和查询契约
- .scratch/tech-global-audit/issues/01-audit-event-write-loop.md — 01 — 交付不可变 Audit Event 写入闭环
Status: ready-for-agent
架构通道: Infrastructure(辅助:简单写 Application)。
完整业务边界: 本票收口受控上传用途、设备批量任务持久化与五态生命周期、CSV 文件级/行级校验边界、去重、失败明细、最小队列载荷及任务创建/终态审计。简单任务记录使用 Application 事务脚本,不为任务表创建空洞聚合。
明确不迁移: 不迁移既有 Excel 设备导入、同步设备分配、同步套餐系列绑定及其他未触碰异步任务。
device_batch_allocation受控用途只生成.csv对象键,默认text/csv,并拒绝错误扩展名、用途、对象归属、实际类型或不存在的对象。- 独立任务保存命令、目标、操作者快照、五态、汇总、脱敏失败明细和中文错误摘要;创建任务或入队失败不会留下永久处理中任务,并写统一 Audit Event。
- CSV 支持 UTF-8(含 BOM)、LF/CRLF 和固定单列表头;在任何业务写入前拒绝文件级错误,逐行保留空值、非法标识、未找到及重复行失败,且保持
total_count = success_count + fail_count。 - 异步载荷仅为结构化
task_id,不含文件字节、临时路径或敏感上下文;下载后的解析和后续批量查询契约支持每批最多 200 条标识。