Skip to main content
Schedules

批量归档 Schedules

按明确的 Schedule ID 批量归档 Forward Schedule。

POST /api/v1/forward/schedules/archive 该接口只执行归档,不物理删除 Schedule 或 Schedule Run。仅允许 PAT 或管理员 SAT 调用;Identity-bound SAT 无权执行批量归档。

请求头

Header是否必填说明
AuthorizationBearer <PAT 或管理员 SAT>
Content-Typeapplication/json
Idempotency-Key相同 owner、路径和请求体可安全重放。

请求体参数

参数类型是否必填说明
schedule_idsarray<string>去重后必须包含 1~50 个非空 Schedule ID。
请求体采用严格 JSON 字段校验,未知字段或尾随第二个 JSON 值会返回 400 invalid_request_body

示例请求

curl -s -X POST 'https://api.qoder.com.cn/api/v1/forward/schedules/archive' \
  -H "Authorization: Bearer $QODER_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: archive-schedules-20260821" \
  -d '{
    "schedule_ids": [
      "sched_019f00112233445566778899aabbccdd",
      "sched_019f00112233445566778899aabbccee"
    ]
  }'

清理指定 Identity 或当前 owner 的全部 Schedule

接口不提供无上限同步归档整个 Identity 或 owner 的方式。先通过 GET /api/v1/forward/schedules?identity_id=<id>&limit=100 查询指定 Identity,或省略 identity_id 查询当前 owner;沿响应中的 last_id 继续传 after_id,确认目标后再将 ID 按每批最多 50 个提交。建议每批使用独立的 Idempotency-Key 单批原子,跨批不原子。如果清理期间可能创建新 Schedule,完成一轮后应从第一页重新查询,直到没有目标。

示例响应

{
  "archived_count": 2
}
archived_count 表示本次从未归档变为已归档的 Schedule 数量;已归档目标不重复计数。

归档语义

  • activepaused Schedule 都可以归档。归档会设置 archived_at、清除下次计划触发时间,并阻止创建新的 Run。
  • 服务端先在当前 owner 内解析全部 ID;任一 ID 不存在或属于其他 owner 时整批返回 404,不部分归档,也不指出失败 ID。
  • 已归档 ID 是幂等 no-op;如果所有目标都已归档,返回 archived_count: 0
  • 已有 pendingrunning Run 不阻断归档,也不会被取消、跳过、强杀、修改或删除。
  • 归档后的 Schedule 可按 ID 查询,也可通过 include_archived=true 列出;历史 Schedule Run 始终可查询。
  • 未提供 Idempotency-Key 时重复请求仍自然幂等;相同键和请求体会重放首次响应,并返回 Idempotency-Replayed: true
  • Forward 不提供 DELETE /api/v1/forward/schedules,也不提供 Schedule 或 Schedule Run 的物理删除接口。

错误

HTTPTypeCode触发条件
400invalid_request_errorinvalid_request_bodyJSON 错误、存在 scopeidentity_id 等未知字段或尾随额外 JSON 值。
400invalid_request_errorinvalid_requestID 为空或去重后数量不在 1~50。
401authentication_errorauthentication_requiredPAT 或 SAT 无效或已过期。
403permission_erroridentity_mismatchIdentity-bound SAT 调用管理员批量归档接口。
404not_found_errorschedule_not_foundSchedule 不存在或属于其他 owner。
409conflict_erroridempotency_key_reused相同 Idempotency-Key 被用于不同请求体。

相关