审批与重试
适用范围
只有启用企业控制面审批的租户才需要此流程;未启用的租户保留直接写入行为。只读余额监控不需要审批。
- 旧写接口收到
APPROVAL_REQUIRED时读取data.operation和executed:false,在可信用户站域名打开operation.approvalPath,由企业主人工完成确认。 - 机器不能代替用户确认,也不能用管理 Key 调用人工审批接口。
- 同一意图重试必须复用相同幂等键;不要因网络超时换键重复创建。修改意图会返回
CONTROL_IDEMPOTENCY_CONFLICT。
| POST | /enterprise/v1/operations | Submit an operation |
| GET | /enterprise/v1/operations/{id} | Read status |
| POST | /enterprise/v1/operations/{id}/cancel | Cancel a pending operation |
操作仅允许原请求 Key 和所属企业主对应的机器身份访问;使用 operation UUID。提交字段为 action、parameters、idempotencyKey;返回 HTTP 202、code:200 不代表操作已执行。
支持动作:create_sub_account、set_sub_account_status、delete_sub_account、set_sub_account_model_access、create_sub_account_api_key、update_sub_account_api_key、delete_sub_account_api_key、provision_sub_account。每项要求对应成员/策略/Key 写 scope,组合开通要求三者齐备。
组合开通 parameters 包含 member、modelAccess、key,在同一操作内创建成员、策略和推理 Key。不要提交任意动作序列或机器提供的密码。
查询状态不返回凭证明文。人工执行成功响应中的一次性凭证不会因再次查询或重复审批而重放;响应丢失时先查询状态,不要重新创建成员。
MCP 使用 /enterprise/mcp 并遵守相同 scope 和审批边界,但协议响应不同:写入需要审批时返回 isError:true、error.code:APPROVAL_REQUIRED、operation 和 executed:false。不能把 REST JSON 示例直接作为 MCP 请求使用。
操作参数
除 create_sub_account(只传创建表单)外,单资源 action 的 parameters 使用对应接口的请求体,并加入路径参数 subAccountId;Key 更新/删除还需 hash。删除成员只需 subAccountId,删除 Key 需 subAccountId 和 hash。
status: pending_approval, succeeded, failed, rejected, cancelled, expired. executed=true 仅表示 succeeded。
1{
2 "action": "provision_sub_account",
3 "parameters": {
4 "member": {
5 "username": "team_app"
6 },
7 "modelAccess": {
8 "restriction": "INHERIT"
9 },
10 "key": {
11 "name": "service-key",
12 "spendLimit": 100,
13 "limitReset": "monthly"
14 }
15 },
16 "idempotencyKey": "provision-team-app-001"
17}