以下 ADS 错误与响应头描述带认证的 ADS 合约,其运行时尚未提供。管理合约已经定义账号限额、会话与 CSRF 检查及令牌管理错误,供账号访问开放后使用。下载规范本身不会启用尚未提供的接口。
限额
| 限额 | 含义 |
|---|---|
| 每日 10,000 次 | 同一账号每 UTC 日进入已匹配 PMS 和 ADS handler 的合计次数,由所有会话、令牌和 service 共用;00:00 UTC 重置。 |
| 200 条策略 | 每个账号的授权策略和角色策略合计。 |
| 每条 SPDL 4 KiB | 完整策略最多 4,096 个 UTF-8 字节,不是 4,096 个字符。 |
| 2 个有效令牌 | 每个 service;已撤销的历史记录不占此名额。 |
| 每令牌每分钟 600 次 | 每个节点的近似突发限制,与严格的账号每日总额分开。 |
| 请求正文 64 KiB | 解析前的全局上限。可选输入 attributes 仍受 50 个属性、规范化 UTF-8 JSON 16,384 字节的限制。 |
每个账号只有一个 service。令牌名称为 1–128 个字符。凭据生命周期规则见应用令牌。
每日额度计算
进入已匹配的 handler 即扣除一次每日额度,包括策略拒绝、无效业务输入和内部错误。认证与会话接口不消耗此额度。在进入 handler 前被认证、路由、CSRF、正文大小、突发限流或额度预留检查拒绝的请求,也不消耗每日额度。
已过期或被放弃的预留 lease 不会重新发放,因此实际可用次数可能少于 10,000。GET /api/me 返回当天已预留用量和重置时间,本身不扣每日额度。
更换令牌不会增加账号额度。严格的账号每日总额与近似的节点级令牌突发限额分别执行。
HTTP 错误
错误使用扁平 JSON 响应。请按说明修正请求或凭据;其他情况下应默认拒绝,并采用有界退避,不要无限重试。
| HTTP 状态与错误 | 应用处理方式 |
|---|---|
401 {"error":"unauthorized"} |
检查环境和凭据。ADS 带 Bearer challenge。匿名请求或只带会话 cookie 的请求不能授权 ADS。 |
403 {"error":"reauth_required"} |
创建令牌前,使用已关联供应商重新认证。普通操作不会刷新认证时间。 |
403 {"error":"service_mismatch"} |
修正 service 输入,不得改用其他租户的数据重试。 |
400 {"error":"SPDL-0004 …"} |
Speedle 拒绝了请求,例如属性值类型不符。error 是 Speedle 的原始消息。修正请求,不要原样重试。 |
令牌撤销返回 404 |
令牌 ID 未知、不属于自己或已经撤销。先刷新元数据,再决定下一步操作。 |
413 {"error":"request_too_large"} |
缩小请求正文。 |
429 {"error":"rate_limited"} |
遵守 Retry-After,此突发限制为 60 秒,并使用有界退避。 |
429 {"error":"daily_quota_exceeded"} |
按 Retry-After 等待至下一个 UTC 零点。更换令牌不会增加账号额度。 |
503 {"error":"quota_unavailable"} 或 snapshot_unavailable |
默认拒绝,仅在有界退避后重试,不得回退到 demo 或 D1 策略判定。 |
500 {"error":"internal_error"} |
默认拒绝。保留安全的 request ID 供排障,避免记录凭据。 |
对于 503 响应,snapshot_unavailable 在进入 handler 后已经扣额,quota_unavailable 未扣额。提前拒绝的响应不带下文所述的每日剩余额度响应头。
非 POST 的 ADS 请求也可能被公开边缘规则拦截并返回 Cloudflare 的 403,该响应不是应用授权判定。
限流和额度响应头
完成验证后,X-RateLimit-Limit 为 600。ADS 不提供精确的 X-RateLimit-Remaining 值。
完成扣额的 handler 响应若带 X-Quota-Daily-Remaining,它估计账号今天剩余的调用次数:授予 lease 时的未预留余额,加上本 isolate 尚余的 lease 次数。该估计在授予时偏保守,随后最多缓存至有效的 30 秒 lease 结束,到期或 UTC 换日即作废。
其他 isolate 的并发调用可能使该值高估可用次数,最多高估授予时的全部未预留余额,并非仅 32 次;未使用或被放弃的预留则可能使其低估。发布或回滚期间,旧分配器会保守回退为本地 lease 余量。此响应头仅供参考,不改变额度执行方式。提前拒绝的响应不带此头。
已匹配的应用 ADS 响应还使用 Cache-Control: no-store,不要将判定结果或凭据放入共享缓存。
请求示例和接入限制见授权 API 预览。