MG-04-003 平台对接
版本:实现核对 v1(2026-09-18);不是发布的 Contracts 包,也不是 Core/new-api 联调证书。 边界见 CURRENT_BOUNDARY。保留现有兼容协议,按实际消费补契约。
当前可用接口
| 能力 | 代码依据 | 范围与限制 |
|---|---|---|
| 服务/管理 Bearer 鉴权 | internal/serviceauth/auth.go、internal/app/runtime.go | 服务 Key 不能访问管理 API;管理 Key 为运维秘密,不代表员工或客户身份 |
| 视频提交/查询 | internal/httpapi/video、ModelArk Handler | OpenAI /v1/videos 与 ModelArk /api/v3/contents/generations/tasks;只调用已发布目录 |
| 幂等受理 | video/handler.go、async/postgres.go、records/postgres.go | 可选 Idempotency-Key,规范化请求指纹,重复返回原任务、不同请求 409;24 小时窗口 |
| 任务与执行证据 | records、async、video/executor、video/poller | media request/task/attempt/Provider task 本地关联;Core/new-api ID 映射尚未形成跨仓闭环 |
| 提交未知保护 | video/executor、Provider outcome、Attempt 状态 | submission_uncertain 不视为未执行;不能据此授权上层重提 |
| 内容交付 | httpapi/content、assets | 内部身份范围内获取,含 GET/HEAD/Range;尚非终端客户逐人授权 |
| 管理查询 | admin records/tasks/catalog/health | 供应成本、Attempt 和错误属于内部证据,不能把整份管理响应转交客户 |
| 取消 | 状态 DTO 可表达 cancelled | 当前路由没有统一取消命令;不据此声称 Provider Cancel 或自动退款已实现 |
内部身份与幂等作用域
serviceauth.Principal 使用固定内部 UserID/GroupID/KeyID,以兼容历史外键及并发 Permit。 持有服务密钥的请求共享该内部身份;API 不接收可信的终端客户身份,不以任意 Header/metadata 充当客户授权。Core 必须校验客户归属,new-api 保持内部凭据,不向客户浏览器暴露网关 Key。
数据库去重约束为 (api_key_id, idempotency_key_hash)。上层必须为业务操作分配全局唯一且
稳定的幂等键,透传并持久保存;不能每次网络重试换键,也不能仅用客户局部 task 序号。
请求指纹不同返回冲突;过期后同键可能成为新请求,因此 24 小时后的不确定恢复不能盲目 POST。
无键请求不具备重复受理保护。现有 Handler 重放测试与数据库约束不能代替跨仓崩溃恢复验收。
最小联调退出条件(待完成)
- Core operation、new-api task/request、media task/request、Provider attempt 各层持久保存关联, 在提交前记录业务幂等身份,受理后落网关 ID;响应丢失、进程崩溃可查询核对。
- new-api 媒体适配固定版本,验证两种兼容接口字段、状态、模型别名、错误及幂等键传递。 现有 metadata 是兼容请求数据,不承诺它已成为可信、唯一、可检索的跨仓关联索引。
- Core Worker 查询网关任务;媒体 Poller 查询 Provider。上层超时/Lease 过期不能额外发起收费提交。 当前未提供独立的按 Core operation 查询恢复接口;同键窗口内重放与过期后的人工核对需分别验证。
- 明确取消意图、供应确认、unsupported、已完成竞态;客户退款由 Core 根据证据处理,取消不等于退款。
- 定义最终用量、单位、Provider 采购成本、证据来源、完整性/不确定状态;供应报价不冒充最终客户账单。 当前 task/records/管理成本信息尚未冻结为 Core 可消费的结算切片;缺证据进入待核对,不能当零费用。
- 客户结果访问由 Core/受控入口按客户归属校验,验证越权、过期、撤销和结果持久性。 内部对象输出不等于产品已采用的资产;结果保留期限与后续归档需联调确认。
- 同一操作多层超时、重复请求、重复终态、进程退出和响应丢失场景不能多提交/多扣费。
以上由 MG-INT-01/02 协同 Core、new-api、Contracts 完成,不在本次代码合并中跨仓实现。 图片/音频、员工统一登录和新产品流程单列。真实付费与生产测试继续需要对应授权。