方法路径摘要认证
POST/v1/tenant-scopes/{scope_id}/l4-line-switchesCreate an idempotent line-group switch登录会话
GET/v1/tenant-scopes/{scope_id}/l4-line-switches/currentRead the latest durable switch for operator recovery登录会话
GET/v1/tenant-scopes/{scope_id}/l4-line-switches/{switch_id}Read durable switch state登录会话
POST/v1/tenant-scopes/{scope_id}/l4-line-switches/{switch_id}/reconcileAdvance one idempotent state-machine step from durable facts登录会话
GET/v1/tenant-scopes/{scope_id}/sites/{site_id}/telemetry-capture-policy—登录会话
PUT/v1/tenant-scopes/{scope_id}/sites/{site_id}/telemetry-capture-policy—登录会话
GET/v1/tenant-scopes/{tenant_scope_id}/challenge-policiesList active challenge policies in one tenant scope登录会话
POST/v1/tenant-scopes/{tenant_scope_id}/challenge-policiesCreate a challenge policy for a tenant-owned site and host登录会话
GET/v1/tenant-scopes/{tenant_scope_id}/challenge-policies/{policy_id}Read one challenge policy登录会话
PATCH/v1/tenant-scopes/{tenant_scope_id}/challenge-policies/{policy_id}Append a new challenge policy configuration revision登录会话
DELETE/v1/tenant-scopes/{tenant_scope_id}/challenge-policies/{policy_id}Soft-delete a challenge policy by appending a tombstone revision登录会话
POST/v1/tenant-scopes/{tenant_scope_id}/challenge-policies/{policy_id}/disableDisable a challenge policy with revision CAS登录会话
POST/v1/tenant-scopes/{tenant_scope_id}/challenge-policies/{policy_id}/enableEnable a challenge policy with revision CAS登录会话
POST/v1/tenant-scopes/{tenant_scope_id}/challenge-policies/{policy_id}/publicationsPublish one exact enabled challenge policy revision to Edge nodes登录会话
GET/v1/tenant-scopes/{tenant_scope_id}/challenge-policies/{policy_id}/publications/{rollout_id}Read the bounded rollout state for an exact policy artifact登录会话
POST/v1/tenant-scopes/{tenant_scope_id}/challenge-policies/{policy_id}/publications/{rollout_id}/promotePromote an exact healthy challenge rollout into Edge configuration登录会话
POST/v1/tenant-scopes/{tenant_scope_id}/error-page-publications发布租户作用域的错误页配置登录会话
GET/v1/tenant-scopes/{tenant_scope_id}/error-page-publications/{publication_id}读取一个不可变错误页发布结果登录会话
GET/v1/tenant-scopes/{tenant_scope_id}/http-policiesList non-deleted HTTP policies in one tenant scope登录会话
POST/v1/tenant-scopes/{tenant_scope_id}/http-policiesCreate revision one for a tenant-owned site登录会话
GET/v1/tenant-scopes/{tenant_scope_id}/http-policies/publication-previewRead a deterministic unsigned Edge v1 source snapshot登录会话
GET/v1/tenant-scopes/{tenant_scope_id}/http-policies/{policy_id}Read one HTTP policy登录会话
PATCH/v1/tenant-scopes/{tenant_scope_id}/http-policies/{policy_id}Append a configuration revision登录会话
DELETE/v1/tenant-scopes/{tenant_scope_id}/http-policies/{policy_id}Soft-delete a policy by appending a tombstone revision登录会话
POST/v1/tenant-scopes/{tenant_scope_id}/http-policies/{policy_id}/disableDisable a policy with revision CAS登录会话
POST/v1/tenant-scopes/{tenant_scope_id}/http-policies/{policy_id}/enableEnable a policy with revision CAS登录会话
GET/v1/tenant-scopes/{tenant_scope_id}/origin-auth/credentialsList redacted credential heads in one tenant登录会话
POST/v1/tenant-scopes/{tenant_scope_id}/origin-auth/credentialsEncrypt and append credential revision 1登录会话
GET/v1/tenant-scopes/{tenant_scope_id}/origin-auth/credentials/{credential_id}Read one redacted credential head登录会话
DELETE/v1/tenant-scopes/{tenant_scope_id}/origin-auth/credentials/{credential_id}Append a credential tombstone revision登录会话
POST/v1/tenant-scopes/{tenant_scope_id}/origin-auth/credentials/{credential_id}/disableAppend a disabled credential revision登录会话
POST/v1/tenant-scopes/{tenant_scope_id}/origin-auth/credentials/{credential_id}/replaceEncrypt replacement material with the active envelope key登录会话
POST/v1/tenant-scopes/{tenant_scope_id}/origin-auth/credentials/{credential_id}/verifyInvoke the injected verifier and append a verified revision登录会话
POST/v1/tenant-scopes/{tenant_scope_id}/origin-auth/edge-publications发布租户作用域的源站鉴权配置登录会话
GET/v1/tenant-scopes/{tenant_scope_id}/origin-auth/edge-publications/{publication_id}读取一个不可变源站鉴权发布结果登录会话
GET/v1/tenant-scopes/{tenant_scope_id}/origin-auth/publicationsRead the latest deterministic secret-free snapshot登录会话
POST/v1/tenant-scopes/{tenant_scope_id}/origin-auth/publicationsAppend the next tenant publication snapshot登录会话
GET/v1/tenant-scopes/{tenant_scope_id}/origin-auth/rulesList current rule revisions登录会话
POST/v1/tenant-scopes/{tenant_scope_id}/origin-auth/rulesCreate a tenant, site, and source-bound rule登录会话
GET/v1/tenant-scopes/{tenant_scope_id}/origin-auth/rules/{rule_id}Read one current rule revision登录会话
PATCH/v1/tenant-scopes/{tenant_scope_id}/origin-auth/rules/{rule_id}Append a rule configuration revision登录会话
DELETE/v1/tenant-scopes/{tenant_scope_id}/origin-auth/rules/{rule_id}Append a rule tombstone revision登录会话
POST/v1/tenant-scopes/{tenant_scope_id}/origin-auth/rules/{rule_id}/disableDisable a rule by revision CAS登录会话
POST/v1/tenant-scopes/{tenant_scope_id}/origin-auth/rules/{rule_id}/enableEnable a rule after verified credential gates pass登录会话
POST/v1/tenant-scopes/{tenant_scope_id}/origin-auth/rules/{rule_id}/rotateSchedule current and previous credential cutover登录会话
GET/v1/tenant-scopes/{tenant_scope_id}/plugin-installationsList tenant plugin installation authorization state登录会话
GET/v1/tenant-scopes/{tenant_scope_id}/plugin-installations/{authorization_id}Read one tenant plugin installation authorization登录会话
POST/v1/tenant-scopes/{tenant_scope_id}/plugin-installations/{authorization_id}/confirmConfirm declared and sensitive plugin scopes before installation登录会话
POST/v1/tenant-scopes/{tenant_scope_id}/plugin-installations/{authorization_id}/disableProtectively disable an installed plugin without consulting License登录会话
POST/v1/tenant-scopes/{tenant_scope_id}/plugin-installations/{authorization_id}/uninstallRevoke local plugin identity and record protective uninstall登录会话
POST/v1/tenant-scopes/{tenant_scope_id}/plugin-installations/{authorization_id}/upgradeApprove a compatible plugin upgrade and any newly declared scopes登录会话
GET/v1/tenant-scopes/{tenant_scope_id}/plugin-webhook-subscriptionsList webhook subscriptions登录会话
POST/v1/tenant-scopes/{tenant_scope_id}/plugin-webhook-subscriptionsCreate a webhook subscription and one-time secret登录会话
GET/v1/tenant-scopes/{tenant_scope_id}/plugin-webhook-subscriptions/{subscription_id}Get a webhook subscription登录会话
GET/v1/tenant-scopes/{tenant_scope_id}/plugin-webhook-subscriptions/{subscription_id}/deliveriesList subscription deliveries登录会话
GET/v1/tenant-scopes/{tenant_scope_id}/plugin-webhook-subscriptions/{subscription_id}/deliveries/{delivery_id}Get a delivery status登录会话
POST/v1/tenant-scopes/{tenant_scope_id}/plugin-webhook-subscriptions/{subscription_id}/deliveries/{delivery_id}/replaysReplay a delivered or dead-lettered delivery登录会话
POST/v1/tenant-scopes/{tenant_scope_id}/plugin-webhook-subscriptions/{subscription_id}/delivery-replaysReplay the terminal deliveries of a time range登录会话
POST/v1/tenant-scopes/{tenant_scope_id}/plugin-webhook-subscriptions/{subscription_id}/revokeRevoke a webhook subscription and fence new deliveries登录会话
POST/v1/tenant-scopes/{tenant_scope_id}/plugin-webhook-subscriptions/{subscription_id}/secret-rotationsGenerate a pending secret rotation登录会话
POST/v1/tenant-scopes/{tenant_scope_id}/plugin-webhook-subscriptions/{subscription_id}/secret-rotations/{rotation_id}/activateActivate a pending secret rotation登录会话
POST/v1/tenant-scopes/{tenant_scope_id}/plugin-webhook-subscriptions/{subscription_id}/test-deliveriesQueue a signed CloudEvents test delivery登录会话
GET/v1/tenant-scopes/{tenant_scope_id}/theme—登录会话
PUT/v1/tenant-scopes/{tenant_scope_id}/theme—登录会话

契约文件:api/control-l4-line-switch.openapi.yaml api/control-site-capture.openapi.yaml api/control-challenge-policies.openapi.yaml api/control-error-page-publications.openapi.yaml api/control-http-policies.openapi.yaml api/control-origin-auth.openapi.yaml api/control-origin-auth-publications.openapi.yaml api/control-plugin-installations.openapi.yaml api/control-plugin-webhooks.openapi.yaml api/control-themes.openapi.yaml

接口详情

POST /v1/tenant-scopes/{scope_id}/l4-line-switches

Create an idempotent line-group switch

operationId
createL4LineSwitch
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

契约没有单独标注权限码,权限要求见下方说明与 403 响应。

参数

createL4LineSwitch 参数
名称位置类型必填说明
scope_idpathstring(uuid)是—
X-Request-IDheaderstring(uuid)是—
X-Correlation-IDheaderstring(uuid)否—
Idempotency-Keyheaderstring是—
Traceparentheaderstring是—

请求体

application/json · 必填:是

createL4LineSwitch 请求体
名称类型必填说明
expected_source_revisioninteger(int64)是—
fromSnapshot是—
toSnapshot是—
healthHealthPolicy是—
drainDrainPolicy是—
max_attemptsinteger是—
deadlinestring(date-time)是—

响应

createL4LineSwitch 响应
状态码说明
201Switch created or replayed

字段:id: string(uuid) configuration_scope_id: string(uuid) expected_source_revision: integer(int64) from: Snapshot to: Snapshot prepare_node_count: integer retiring_node_count: integer state: string: preparing / health_gate / draining_old / compensating_old / completed / rolled_back / needs_attention state_revision: integer(int64) prepare_publication: Publication compensation_publication: Publication drain_command_count: integer error_code?: string dns_gate?: DNSGate deadline: string(date-time) created_at: string(date-time) updated_at: string(date-time) replayed?: boolean

400Stable error code; clients map it through locale resources.
401Stable error code; clients map it through locale resources.
403Stable error code; clients map it through locale resources.
409Stable error code; clients map it through locale resources.
503Stable error code; clients map it through locale resources.

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 409 先回读资源当前状态;同一操作重试保持原 Idempotency-Key 和原请求内容。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

GET /v1/tenant-scopes/{scope_id}/l4-line-switches/current

Read the latest durable switch for operator recovery

operationId
getCurrentL4LineSwitch
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

契约没有单独标注权限码,权限要求见下方说明与 403 响应。

参数

getCurrentL4LineSwitch 参数
名称位置类型必填说明
scope_idpathstring(uuid)是—
X-Request-IDheaderstring(uuid)是—

响应

getCurrentL4LineSwitch 响应
状态码说明
200Latest durable switch state

字段:id: string(uuid) configuration_scope_id: string(uuid) expected_source_revision: integer(int64) from: Snapshot to: Snapshot prepare_node_count: integer retiring_node_count: integer state: string: preparing / health_gate / draining_old / compensating_old / completed / rolled_back / needs_attention state_revision: integer(int64) prepare_publication: Publication compensation_publication: Publication drain_command_count: integer error_code?: string dns_gate?: DNSGate deadline: string(date-time) created_at: string(date-time) updated_at: string(date-time) replayed?: boolean

401Stable error code; clients map it through locale resources.
403Stable error code; clients map it through locale resources.
404Stable error code; clients map it through locale resources.
503Stable error code; clients map it through locale resources.

失败时怎么办

  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 404 资源不存在或不属于当前租户。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

GET /v1/tenant-scopes/{scope_id}/l4-line-switches/{switch_id}

Read durable switch state

operationId
getL4LineSwitch
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

契约没有单独标注权限码,权限要求见下方说明与 403 响应。

参数

getL4LineSwitch 参数
名称位置类型必填说明
scope_idpathstring(uuid)是—
switch_idpathstring(uuid)是—
X-Request-IDheaderstring(uuid)是—

响应

getL4LineSwitch 响应
状态码说明
200Current state

字段:id: string(uuid) configuration_scope_id: string(uuid) expected_source_revision: integer(int64) from: Snapshot to: Snapshot prepare_node_count: integer retiring_node_count: integer state: string: preparing / health_gate / draining_old / compensating_old / completed / rolled_back / needs_attention state_revision: integer(int64) prepare_publication: Publication compensation_publication: Publication drain_command_count: integer error_code?: string dns_gate?: DNSGate deadline: string(date-time) created_at: string(date-time) updated_at: string(date-time) replayed?: boolean

401Stable error code; clients map it through locale resources.
403Stable error code; clients map it through locale resources.
404Stable error code; clients map it through locale resources.
503Stable error code; clients map it through locale resources.

失败时怎么办

  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 404 资源不存在或不属于当前租户。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

POST /v1/tenant-scopes/{scope_id}/l4-line-switches/{switch_id}/reconcile

Advance one idempotent state-machine step from durable facts

operationId
reconcileL4LineSwitch
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

契约没有单独标注权限码,权限要求见下方说明与 403 响应。

说明(契约原文)

The request has no body and cannot nominate a desired state. Production workers call the same service method.

参数

reconcileL4LineSwitch 参数
名称位置类型必填说明
scope_idpathstring(uuid)是—
switch_idpathstring(uuid)是—
X-Request-IDheaderstring(uuid)是—

响应

reconcileL4LineSwitch 响应
状态码说明
200Current state after reconciliation

字段:id: string(uuid) configuration_scope_id: string(uuid) expected_source_revision: integer(int64) from: Snapshot to: Snapshot prepare_node_count: integer retiring_node_count: integer state: string: preparing / health_gate / draining_old / compensating_old / completed / rolled_back / needs_attention state_revision: integer(int64) prepare_publication: Publication compensation_publication: Publication drain_command_count: integer error_code?: string dns_gate?: DNSGate deadline: string(date-time) created_at: string(date-time) updated_at: string(date-time) replayed?: boolean

400Stable error code; clients map it through locale resources.
401Stable error code; clients map it through locale resources.
403Stable error code; clients map it through locale resources.
404Stable error code; clients map it through locale resources.
409Stable error code; clients map it through locale resources.
503Stable error code; clients map it through locale resources.

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 404 资源不存在或不属于当前租户。
  • 409 先回读资源当前状态;同一操作重试保持原 Idempotency-Key 和原请求内容。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

GET /v1/tenant-scopes/{scope_id}/sites/{site_id}/telemetry-capture-policy

operationId
getSiteCapturePolicy
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:site_capture.read

说明(契约原文)

A readable site that never saved a policy answers 200 with state=unconfigured, revision 0 and the default (capture off) document; create it with expected_revision 0. 404 means the site is missing, deleted or not visible to the caller.

参数

getSiteCapturePolicy 参数
名称位置类型必填说明
scope_idpathstring(uuid)是—
site_idpathstring(uuid)是—

响应

getSiteCapturePolicy 响应
状态码说明
200Current authoritative policy, or the explicit unconfigured default.
401Stable localized-by-client error response.
403Stable localized-by-client error response.
404Stable localized-by-client error response.
503Stable localized-by-client error response.

失败时怎么办

  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 404 资源不存在或不属于当前租户。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

PUT /v1/tenant-scopes/{scope_id}/sites/{site_id}/telemetry-capture-policy

operationId
updateSiteCapturePolicy
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:site_capture.manage

参数

updateSiteCapturePolicy 参数
名称位置类型必填说明
scope_idpathstring(uuid)是—
site_idpathstring(uuid)是—
Idempotency-Keyheaderstring是—
X-Request-IDheaderstring是—
X-Trace-IDheaderstring是—

请求体

application/json · 必填:是

updateSiteCapturePolicy 请求体
名称类型必填说明
expected_revisioninteger是—
documentPolicyDocument是—

响应

updateSiteCapturePolicy 响应
状态码说明
200Policy CAS committed or idempotently replayed.

字段:policy: Policy replayed: boolean

400Stable localized-by-client error response.
401Stable localized-by-client error response.
403Stable localized-by-client error response.
404Stable localized-by-client error response.
409Stable localized-by-client error response.
412Stable localized-by-client error response.
503Stable localized-by-client error response.

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 404 资源不存在或不属于当前租户。
  • 409 先回读资源当前状态;同一操作重试保持原 Idempotency-Key 和原请求内容。
  • 412 版本已变:回读最新 ETag 后重新判断,再带新的 If-Match 提交。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

GET /v1/tenant-scopes/{tenant_scope_id}/challenge-policies

List active challenge policies in one tenant scope

operationId
listChallengePolicies
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:challenge_policies.read

说明(契约原文)

Requires challenge_policies.read. Results use stable keyset ordering; the versioned HMAC-SHA256 cursor is opaque and must be replayed unchanged with the same authenticated actor, target scope, filters, limit, and sort. Invalid cursors return 400 before storage is read. Pages may contain fewer than the requested limit to stay within the default 256 KiB response byte budget; next_cursor resumes after the last emitted item. Soft-deleted policies are excluded. A tenant principal targeting another tenant receives the same 404 shape as an unknown scope.

参数

listChallengePolicies 参数
名称位置类型必填说明
tenant_scope_idpathstring(uuid)是Explicit target tenant access-scope UUID.
X-Request-IDheaderstring是Stable request correlation ID; 1 to 128 safe ASCII characters.
X-Trace-IDheaderstring是Stable trace correlation ID; 1 to 128 safe ASCII characters.
limitqueryinteger否—
cursorquerystring否Opaque URL-safe versioned HMAC-SHA256 envelope returned by the preceding page. It binds key ID, API audience, authenticated actor user/scope/kind, target scope, site/host/enabled filters, limit, fixed sort, and keyset position. Replay it byte-for-byte; wrong key, audience, version, key ID, scope, filter, limit, sort, semantic re-encoding, or an overlong value returns 400 before storage is read.
site_idquerystring(uuid)否—
hostquerystring否—
enabledqueryboolean否—

响应

listChallengePolicies 响应
状态码说明
200Stable byte-budgeted page of non-deleted challenge policies. A non-empty next_cursor resumes after the final item emitted in this response.

字段:items: array<ChallengePolicy> next_cursor?: string

400Stable error envelope without SQL, internal errors, key references, or provider details.
401Stable error envelope without SQL, internal errors, key references, or provider details.
403Stable error envelope without SQL, internal errors, key references, or provider details.
404Stable error envelope without SQL, internal errors, key references, or provider details.
405Stable error envelope without SQL, internal errors, key references, or provider details.
422Stable error envelope without SQL, internal errors, key references, or provider details.
503Stable error envelope without SQL, internal errors, key references, or provider details.

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 404 资源不存在或不属于当前租户。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

POST /v1/tenant-scopes/{tenant_scope_id}/challenge-policies

Create a challenge policy for a tenant-owned site and host

operationId
createChallengePolicy
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:challenge_policies.manage

说明(契约原文)

Requires challenge_policies.manage and a currently valid, non-grace sites.manage entitlement. The site must belong to the target tenant and the host must equal the site domain or be covered by its wildcard. The request creates immutable revision 1 and a transactional audit event. A completed same-actor, same-scope, same-operation, same-key/same-payload retry returns the frozen stored result before mutable site or entitlement state is rechecked; a new request still performs all current checks. A key reused with another payload returns 409.

参数

createChallengePolicy 参数
名称位置类型必填说明
tenant_scope_idpathstring(uuid)是Explicit target tenant access-scope UUID.
X-Request-IDheaderstring是Stable request correlation ID; 1 to 128 safe ASCII characters.
X-Trace-IDheaderstring是Stable trace correlation ID; 1 to 128 safe ASCII characters.
Idempotency-Keyheaderstring是Operation-scoped durable key. Retry an unknown result only with the same key and unchanged business payload.

请求体

application/json · 必填:是

createChallengePolicy 请求体
名称类型必填说明
site_idstring(uuid)是—
hoststring是Lowercase ASCII hostname without scheme, port, path, wildcard, or trailing dot.
enabledboolean是—
configChallengeConfig是challenge_ttl_seconds must be greater than min_delay_seconds plus clock_skew_seconds. external is a fail-closed reference-only mode; provider connectivity is outside this contract.

响应

createChallengePolicy 响应
状态码说明
201Created policy or the stored result of an identical retry.

字段:id: string(uuid) tenant_scope_id: string(uuid) site_id: string(uuid) host: string priority: integer mode: string: delay / click / slider / captcha / external min_delay_seconds: integer challenge_ttl_seconds: integer pass_ttl_seconds: integer clock_skew_seconds: integer attempts_per_nonce: integer failure_window_seconds: integer max_failures_per_window: integer ip_binding: string: none / exact bind_user_agent: boolean bypass_routes: array<BypassRoute> key_reference_configured: boolean external_provider_configured: boolean enabled: boolean deleted: boolean revision: integer(int64) created_at: string(date-time) updated_at: string(date-time)

400Stable error envelope without SQL, internal errors, key references, or provider details.
401Stable error envelope without SQL, internal errors, key references, or provider details.
403Stable error envelope without SQL, internal errors, key references, or provider details.
404Stable error envelope without SQL, internal errors, key references, or provider details.
405Stable error envelope without SQL, internal errors, key references, or provider details.
409Stable error envelope without SQL, internal errors, key references, or provider details.
422Stable error envelope without SQL, internal errors, key references, or provider details.
503Stable error envelope without SQL, internal errors, key references, or provider details.

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 404 资源不存在或不属于当前租户。
  • 409 先回读资源当前状态;同一操作重试保持原 Idempotency-Key 和原请求内容。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

GET /v1/tenant-scopes/{tenant_scope_id}/challenge-policies/{policy_id}

Read one challenge policy

operationId
getChallengePolicy
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:challenge_policies.read

说明(契约原文)

Requires challenge_policies.read. Soft-deleted, unknown, and out-of-tenant policy IDs all return the same 404 response.

参数

getChallengePolicy 参数
名称位置类型必填说明
tenant_scope_idpathstring(uuid)是Explicit target tenant access-scope UUID.
policy_idpathstring(uuid)是—
X-Request-IDheaderstring是Stable request correlation ID; 1 to 128 safe ASCII characters.
X-Trace-IDheaderstring是Stable trace correlation ID; 1 to 128 safe ASCII characters.

响应

getChallengePolicy 响应
状态码说明
200Challenge policy.

字段:id: string(uuid) tenant_scope_id: string(uuid) site_id: string(uuid) host: string priority: integer mode: string: delay / click / slider / captcha / external min_delay_seconds: integer challenge_ttl_seconds: integer pass_ttl_seconds: integer clock_skew_seconds: integer attempts_per_nonce: integer failure_window_seconds: integer max_failures_per_window: integer ip_binding: string: none / exact bind_user_agent: boolean bypass_routes: array<BypassRoute> key_reference_configured: boolean external_provider_configured: boolean enabled: boolean deleted: boolean revision: integer(int64) created_at: string(date-time) updated_at: string(date-time)

400Stable error envelope without SQL, internal errors, key references, or provider details.
401Stable error envelope without SQL, internal errors, key references, or provider details.
403Stable error envelope without SQL, internal errors, key references, or provider details.
404Stable error envelope without SQL, internal errors, key references, or provider details.
405Stable error envelope without SQL, internal errors, key references, or provider details.
503Stable error envelope without SQL, internal errors, key references, or provider details.

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 404 资源不存在或不属于当前租户。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

PATCH /v1/tenant-scopes/{tenant_scope_id}/challenge-policies/{policy_id}

Append a new challenge policy configuration revision

operationId
updateChallengePolicy
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:challenge_policies.manage

说明(契约原文)

Requires challenge_policies.manage and a currently valid, non-grace sites.manage entitlement. If-Match is compared with the current revision under a row lock. Site and host identity cannot be changed.

参数

updateChallengePolicy 参数
名称位置类型必填说明
tenant_scope_idpathstring(uuid)是Explicit target tenant access-scope UUID.
policy_idpathstring(uuid)是—
X-Request-IDheaderstring是Stable request correlation ID; 1 to 128 safe ASCII characters.
X-Trace-IDheaderstring是Stable trace correlation ID; 1 to 128 safe ASCII characters.
Idempotency-Keyheaderstring是Operation-scoped durable key. Retry an unknown result only with the same key and unchanged business payload.
If-Matchheaderstring是Current positive revision encoded as a quoted decimal ETag, for example "3".

请求体

application/json · 必填:是

updateChallengePolicy 请求体
名称类型必填说明
configChallengeConfig是challenge_ttl_seconds must be greater than min_delay_seconds plus clock_skew_seconds. external is a fail-closed reference-only mode; provider connectivity is outside this contract.

响应

updateChallengePolicy 响应
状态码说明
200Updated policy or the stored result of an identical retry.

字段:id: string(uuid) tenant_scope_id: string(uuid) site_id: string(uuid) host: string priority: integer mode: string: delay / click / slider / captcha / external min_delay_seconds: integer challenge_ttl_seconds: integer pass_ttl_seconds: integer clock_skew_seconds: integer attempts_per_nonce: integer failure_window_seconds: integer max_failures_per_window: integer ip_binding: string: none / exact bind_user_agent: boolean bypass_routes: array<BypassRoute> key_reference_configured: boolean external_provider_configured: boolean enabled: boolean deleted: boolean revision: integer(int64) created_at: string(date-time) updated_at: string(date-time)

400Stable error envelope without SQL, internal errors, key references, or provider details.
401Stable error envelope without SQL, internal errors, key references, or provider details.
403Stable error envelope without SQL, internal errors, key references, or provider details.
404Stable error envelope without SQL, internal errors, key references, or provider details.
405Stable error envelope without SQL, internal errors, key references, or provider details.
409Stable error envelope without SQL, internal errors, key references, or provider details.
412Stable error envelope without SQL, internal errors, key references, or provider details.
422Stable error envelope without SQL, internal errors, key references, or provider details.
503Stable error envelope without SQL, internal errors, key references, or provider details.

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 404 资源不存在或不属于当前租户。
  • 409 先回读资源当前状态;同一操作重试保持原 Idempotency-Key 和原请求内容。
  • 412 版本已变:回读最新 ETag 后重新判断,再带新的 If-Match 提交。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

DELETE /v1/tenant-scopes/{tenant_scope_id}/challenge-policies/{policy_id}

Soft-delete a challenge policy by appending a tombstone revision

operationId
deleteChallengePolicy
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:challenge_policies.manage

说明(契约原文)

Requires challenge_policies.manage. The request body must be empty. Historical revisions remain immutable so future publication references cannot be destroyed. Delete is intentionally allowed during entitlement grace because it reduces active configuration.

参数

deleteChallengePolicy 参数
名称位置类型必填说明
tenant_scope_idpathstring(uuid)是Explicit target tenant access-scope UUID.
policy_idpathstring(uuid)是—
X-Request-IDheaderstring是Stable request correlation ID; 1 to 128 safe ASCII characters.
X-Trace-IDheaderstring是Stable trace correlation ID; 1 to 128 safe ASCII characters.
Idempotency-Keyheaderstring是Operation-scoped durable key. Retry an unknown result only with the same key and unchanged business payload.
If-Matchheaderstring是Current positive revision encoded as a quoted decimal ETag, for example "3".

响应

deleteChallengePolicy 响应
状态码说明
200Updated policy or the stored result of an identical retry.

字段:id: string(uuid) tenant_scope_id: string(uuid) site_id: string(uuid) host: string priority: integer mode: string: delay / click / slider / captcha / external min_delay_seconds: integer challenge_ttl_seconds: integer pass_ttl_seconds: integer clock_skew_seconds: integer attempts_per_nonce: integer failure_window_seconds: integer max_failures_per_window: integer ip_binding: string: none / exact bind_user_agent: boolean bypass_routes: array<BypassRoute> key_reference_configured: boolean external_provider_configured: boolean enabled: boolean deleted: boolean revision: integer(int64) created_at: string(date-time) updated_at: string(date-time)

400Stable error envelope without SQL, internal errors, key references, or provider details.
401Stable error envelope without SQL, internal errors, key references, or provider details.
403Stable error envelope without SQL, internal errors, key references, or provider details.
404Stable error envelope without SQL, internal errors, key references, or provider details.
405Stable error envelope without SQL, internal errors, key references, or provider details.
409Stable error envelope without SQL, internal errors, key references, or provider details.
412Stable error envelope without SQL, internal errors, key references, or provider details.
503Stable error envelope without SQL, internal errors, key references, or provider details.

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 404 资源不存在或不属于当前租户。
  • 409 先回读资源当前状态;同一操作重试保持原 Idempotency-Key 和原请求内容。
  • 412 版本已变:回读最新 ETag 后重新判断,再带新的 If-Match 提交。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

POST /v1/tenant-scopes/{tenant_scope_id}/challenge-policies/{policy_id}/disable

Disable a challenge policy with revision CAS

operationId
disableChallengePolicy
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:challenge_policies.manage

说明(契约原文)

Requires challenge_policies.manage. The body must be absent or exactly an empty JSON object. Disabling is allowed during entitlement grace because it reduces active configuration. Disabling an already disabled policy returns 409.

参数

disableChallengePolicy 参数
名称位置类型必填说明
tenant_scope_idpathstring(uuid)是Explicit target tenant access-scope UUID.
policy_idpathstring(uuid)是—
X-Request-IDheaderstring是Stable request correlation ID; 1 to 128 safe ASCII characters.
X-Trace-IDheaderstring是Stable trace correlation ID; 1 to 128 safe ASCII characters.
Idempotency-Keyheaderstring是Operation-scoped durable key. Retry an unknown result only with the same key and unchanged business payload.
If-Matchheaderstring是Current positive revision encoded as a quoted decimal ETag, for example "3".

请求体

application/json · 必填:否

响应

disableChallengePolicy 响应
状态码说明
200Updated policy or the stored result of an identical retry.

字段:id: string(uuid) tenant_scope_id: string(uuid) site_id: string(uuid) host: string priority: integer mode: string: delay / click / slider / captcha / external min_delay_seconds: integer challenge_ttl_seconds: integer pass_ttl_seconds: integer clock_skew_seconds: integer attempts_per_nonce: integer failure_window_seconds: integer max_failures_per_window: integer ip_binding: string: none / exact bind_user_agent: boolean bypass_routes: array<BypassRoute> key_reference_configured: boolean external_provider_configured: boolean enabled: boolean deleted: boolean revision: integer(int64) created_at: string(date-time) updated_at: string(date-time)

400Stable error envelope without SQL, internal errors, key references, or provider details.
401Stable error envelope without SQL, internal errors, key references, or provider details.
403Stable error envelope without SQL, internal errors, key references, or provider details.
404Stable error envelope without SQL, internal errors, key references, or provider details.
405Stable error envelope without SQL, internal errors, key references, or provider details.
409Stable error envelope without SQL, internal errors, key references, or provider details.
412Stable error envelope without SQL, internal errors, key references, or provider details.
503Stable error envelope without SQL, internal errors, key references, or provider details.

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 404 资源不存在或不属于当前租户。
  • 409 先回读资源当前状态;同一操作重试保持原 Idempotency-Key 和原请求内容。
  • 412 版本已变:回读最新 ETag 后重新判断,再带新的 If-Match 提交。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

POST /v1/tenant-scopes/{tenant_scope_id}/challenge-policies/{policy_id}/enable

Enable a challenge policy with revision CAS

operationId
enableChallengePolicy
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:challenge_policies.manage

说明(契约原文)

Requires challenge_policies.manage and a currently valid, non-grace sites.manage entitlement. The body must be absent or exactly an empty JSON object. Enabling an already enabled policy returns 409.

参数

enableChallengePolicy 参数
名称位置类型必填说明
tenant_scope_idpathstring(uuid)是Explicit target tenant access-scope UUID.
policy_idpathstring(uuid)是—
X-Request-IDheaderstring是Stable request correlation ID; 1 to 128 safe ASCII characters.
X-Trace-IDheaderstring是Stable trace correlation ID; 1 to 128 safe ASCII characters.
Idempotency-Keyheaderstring是Operation-scoped durable key. Retry an unknown result only with the same key and unchanged business payload.
If-Matchheaderstring是Current positive revision encoded as a quoted decimal ETag, for example "3".

请求体

application/json · 必填:否

响应

enableChallengePolicy 响应
状态码说明
200Updated policy or the stored result of an identical retry.

字段:id: string(uuid) tenant_scope_id: string(uuid) site_id: string(uuid) host: string priority: integer mode: string: delay / click / slider / captcha / external min_delay_seconds: integer challenge_ttl_seconds: integer pass_ttl_seconds: integer clock_skew_seconds: integer attempts_per_nonce: integer failure_window_seconds: integer max_failures_per_window: integer ip_binding: string: none / exact bind_user_agent: boolean bypass_routes: array<BypassRoute> key_reference_configured: boolean external_provider_configured: boolean enabled: boolean deleted: boolean revision: integer(int64) created_at: string(date-time) updated_at: string(date-time)

400Stable error envelope without SQL, internal errors, key references, or provider details.
401Stable error envelope without SQL, internal errors, key references, or provider details.
403Stable error envelope without SQL, internal errors, key references, or provider details.
404Stable error envelope without SQL, internal errors, key references, or provider details.
405Stable error envelope without SQL, internal errors, key references, or provider details.
409Stable error envelope without SQL, internal errors, key references, or provider details.
412Stable error envelope without SQL, internal errors, key references, or provider details.
503Stable error envelope without SQL, internal errors, key references, or provider details.

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 404 资源不存在或不属于当前租户。
  • 409 先回读资源当前状态;同一操作重试保持原 Idempotency-Key 和原请求内容。
  • 412 版本已变:回读最新 ETag 后重新判断,再带新的 If-Match 提交。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

POST /v1/tenant-scopes/{tenant_scope_id}/challenge-policies/{policy_id}/publications

Publish one exact enabled challenge policy revision to Edge nodes

operationId
publishChallengePolicy
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:challenge_policies.manage

说明(契约原文)

Requires challenge_policies.manage. The current policy revision is re-authorized and locked before resolving its opaque key reference. The immutable artifact is signed and HPKE-encrypted separately for each eligible node. Missing key material or an unconfigured external adapter fails closed and does not change the active Edge configuration.

参数

publishChallengePolicy 参数
名称位置类型必填说明
tenant_scope_idpathstring(uuid)是Explicit target tenant access-scope UUID.
policy_idpathstring(uuid)是—
X-Request-IDheaderstring是Stable request correlation ID; 1 to 128 safe ASCII characters.
X-Trace-IDheaderstring是Stable trace correlation ID; 1 to 128 safe ASCII characters.
Idempotency-Keyheaderstring是Operation-scoped durable key. Retry an unknown result only with the same key and unchanged business payload.
If-Matchheaderstring是Current positive revision encoded as a quoted decimal ETag, for example "3".

请求体

application/json · 必填:否

响应

publishChallengePolicy 响应
状态码说明
202Signed per-node challenge artifact rollout was durably accepted.

字段:policy_id: string(uuid) policy_revision: integer(int64) rollout_id: string(uuid) config_version_id: string(uuid) state: string: queued / running / healthy / failed / active reason: string: - / waiting_for_nodes / node_apply_failed / external_adapter_missing / configuration_publish_failed total: integer pending: integer running: integer healthy: integer failed: integer cancelled: integer superseded: integer config_publication?: object

400Stable error envelope without SQL, internal errors, key references, or provider details.
401Stable error envelope without SQL, internal errors, key references, or provider details.
403Stable error envelope without SQL, internal errors, key references, or provider details.
404Stable error envelope without SQL, internal errors, key references, or provider details.
405Stable error envelope without SQL, internal errors, key references, or provider details.
409Stable error envelope without SQL, internal errors, key references, or provider details.
412Stable error envelope without SQL, internal errors, key references, or provider details.
422Stable error envelope without SQL, internal errors, key references, or provider details.
503Stable error envelope without SQL, internal errors, key references, or provider details.

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 404 资源不存在或不属于当前租户。
  • 409 先回读资源当前状态;同一操作重试保持原 Idempotency-Key 和原请求内容。
  • 412 版本已变:回读最新 ETag 后重新判断,再带新的 If-Match 提交。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

GET /v1/tenant-scopes/{tenant_scope_id}/challenge-policies/{policy_id}/publications/{rollout_id}

Read the bounded rollout state for an exact policy artifact

operationId
getChallengePolicyPublication
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:challenge_policies.read

说明(契约原文)

Requires challenge_policies.read. The rollout must belong to the target tenant, policy, and revision; another same-tenant rollout is not relabeled through this path. This read has no publication or promotion side effects.

参数

getChallengePolicyPublication 参数
名称位置类型必填说明
tenant_scope_idpathstring(uuid)是Explicit target tenant access-scope UUID.
policy_idpathstring(uuid)是—
rollout_idpathstring(uuid)是—
X-Request-IDheaderstring是Stable request correlation ID; 1 to 128 safe ASCII characters.
X-Trace-IDheaderstring是Stable trace correlation ID; 1 to 128 safe ASCII characters.

响应

getChallengePolicyPublication 响应
状态码说明
200Exact challenge rollout state, optionally including its promoted Edge publication.

字段:policy_id: string(uuid) policy_revision: integer(int64) rollout_id: string(uuid) config_version_id: string(uuid) state: string: queued / running / healthy / failed / active reason: string: - / waiting_for_nodes / node_apply_failed / external_adapter_missing / configuration_publish_failed total: integer pending: integer running: integer healthy: integer failed: integer cancelled: integer superseded: integer config_publication?: object

400Stable error envelope without SQL, internal errors, key references, or provider details.
401Stable error envelope without SQL, internal errors, key references, or provider details.
403Stable error envelope without SQL, internal errors, key references, or provider details.
404Stable error envelope without SQL, internal errors, key references, or provider details.
405Stable error envelope without SQL, internal errors, key references, or provider details.
503Stable error envelope without SQL, internal errors, key references, or provider details.

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 404 资源不存在或不属于当前租户。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

POST /v1/tenant-scopes/{tenant_scope_id}/challenge-policies/{policy_id}/publications/{rollout_id}/promote

Promote an exact healthy challenge rollout into Edge configuration

operationId
promoteChallengePolicyPublication
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:challenge_policies.manage

说明(契约原文)

Requires challenge_policies.manage. Promotion is revision-CAS and idempotent. Only a fully healthy rollout whose immutable artifact binds the same tenant, policy, and revision can advance the signed Edge configuration. Partial, failed, stale, forged, or cross-policy rollouts preserve the current configuration and LKG.

参数

promoteChallengePolicyPublication 参数
名称位置类型必填说明
tenant_scope_idpathstring(uuid)是Explicit target tenant access-scope UUID.
policy_idpathstring(uuid)是—
rollout_idpathstring(uuid)是—
X-Request-IDheaderstring是Stable request correlation ID; 1 to 128 safe ASCII characters.
X-Trace-IDheaderstring是Stable trace correlation ID; 1 to 128 safe ASCII characters.
Idempotency-Keyheaderstring是Operation-scoped durable key. Retry an unknown result only with the same key and unchanged business payload.
If-Matchheaderstring是Current positive revision encoded as a quoted decimal ETag, for example "3".

请求体

application/json · 必填:否

响应

promoteChallengePolicyPublication 响应
状态码说明
200Exact challenge rollout state, optionally including its promoted Edge publication.

字段:policy_id: string(uuid) policy_revision: integer(int64) rollout_id: string(uuid) config_version_id: string(uuid) state: string: queued / running / healthy / failed / active reason: string: - / waiting_for_nodes / node_apply_failed / external_adapter_missing / configuration_publish_failed total: integer pending: integer running: integer healthy: integer failed: integer cancelled: integer superseded: integer config_publication?: object

400Stable error envelope without SQL, internal errors, key references, or provider details.
401Stable error envelope without SQL, internal errors, key references, or provider details.
403Stable error envelope without SQL, internal errors, key references, or provider details.
404Stable error envelope without SQL, internal errors, key references, or provider details.
405Stable error envelope without SQL, internal errors, key references, or provider details.
409Stable error envelope without SQL, internal errors, key references, or provider details.
412Stable error envelope without SQL, internal errors, key references, or provider details.
503Stable error envelope without SQL, internal errors, key references, or provider details.

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 404 资源不存在或不属于当前租户。
  • 409 先回读资源当前状态;同一操作重试保持原 Idempotency-Key 和原请求内容。
  • 412 版本已变:回读最新 ETag 后重新判断,再带新的 If-Match 提交。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

POST /v1/tenant-scopes/{tenant_scope_id}/error-page-publications

发布租户作用域的错误页配置

operationId
publishErrorPageConfiguration
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:edge_publications.manage

说明(契约原文)

Requires a platform session with edge_publications.manage. If-Match is the exact current source revision. Target nodes or an immutable line-group snapshot, health policy, deadline, actor, and idempotency metadata are committed through the existing production publisher. An outcome_unknown response may be retried only with the unchanged body, If-Match, path, and Idempotency-Key.

参数

publishErrorPageConfiguration 参数
名称位置类型必填说明
tenant_scope_idpathstring(uuid)是—
If-Matchheaderstring是当前源配置 revision 的强 ETag,例如 "7"。
Idempotency-Keyheaderstring是—
X-Request-IDheaderstring(uuid)是—
X-Correlation-IDheaderstring(uuid)否—
Traceparentheaderstring是—
X-Task-IDheaderstring否—

请求体

application/json · 必填:是

publishErrorPageConfiguration 请求体
名称类型必填说明
targetNodeTarget | SnapshotTarget是—
health_checkHealthCheck是—
max_attemptsinteger(int32)是—
deadlinestring(date-time)是—

响应

publishErrorPageConfiguration 响应
状态码说明
201创建成功,或返回完全相同请求的持久化结果

字段:tenant_id: string(uuid) tenant_scope_id: string(uuid) publication_id: string(uuid) source_revision: integer(int64) error_page_publication_revision: integer(int64) config_version_id: string(uuid) rollout_id: string(uuid) artifact_sha256: string target: PublicationTarget node_count: integer created_at: string(date-time) replayed?: boolean

400请求或强前置条件格式无效
401会话无效或已撤销
403当前实时 RBAC 或作用域绑定拒绝访问
405方法不受支持
409幂等或目标快照冲突
412If-Match 与当前源 revision 不一致
422节点状态或 entitlement 不允许发布
502生产发布器或持久化 readback 身份不一致
503写入结果未知。客户端只可使用响应 retry 中的 method、path、 if_match、idempotency_key 和 body_sha256 原样重试。

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 409 先回读资源当前状态;同一操作重试保持原 Idempotency-Key 和原请求内容。
  • 412 版本已变:回读最新 ETag 后重新判断,再带新的 If-Match 提交。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

GET /v1/tenant-scopes/{tenant_scope_id}/error-page-publications/{publication_id}

读取一个不可变错误页发布结果

operationId
getErrorPagePublication
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:edge_publications.read

说明(契约原文)

Requires edge_publications.read. The session and RBAC grant are checked again in the read transaction. The selected publication must belong to tenant_scope_id and its ordinal-one configuration artifact must use the signed error-page snapshot media type. Cross-scope resources are never returned.

参数

getErrorPagePublication 参数
名称位置类型必填说明
tenant_scope_idpathstring(uuid)是—
publication_idpathstring(uuid)是—
X-Request-IDheaderstring(uuid)否—

响应

getErrorPagePublication 响应
状态码说明
200不可变发布结果

字段:tenant_id: string(uuid) tenant_scope_id: string(uuid) publication_id: string(uuid) source_revision: integer(int64) error_page_publication_revision: integer(int64) config_version_id: string(uuid) rollout_id: string(uuid) artifact_sha256: string target: PublicationTarget node_count: integer created_at: string(date-time) replayed?: boolean

400请求或强前置条件格式无效
401会话无效或已撤销
403当前实时 RBAC 或作用域绑定拒绝访问
404该作用域中不存在指定的错误页发布
405方法不受支持
502生产发布器或持久化 readback 身份不一致
503依赖暂不可用;GET 可安全重试

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 404 资源不存在或不属于当前租户。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

GET /v1/tenant-scopes/{tenant_scope_id}/http-policies

List non-deleted HTTP policies in one tenant scope

operationId
listHTTPPolicies
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:http_policies.read

说明(契约原文)

Requires http_policies.read. Results use stable keyset ordering. The server may emit fewer items than limit so the complete ListResult JSON envelope, including next_cursor and the trailing response newline, stays within the 2 MiB byte budget. A single maximum schema-legal policy is always returned. When more rows remain, the opaque next_cursor is anchored to the last item emitted. Pagination resumes strictly after it without gaps or duplicates. Tenant principals see only sites they own. Platform principals must provide this explicit tenant scope and pass the live database permission check.

参数

listHTTPPolicies 参数
名称位置类型必填说明
tenant_scope_idpathstring(uuid)是Explicit target tenant access-scope UUID.
X-Request-IDheaderstring是Stable request correlation ID.
X-Trace-IDheaderstring是Stable trace correlation ID.
limitqueryinteger否—
cursorquerystring否Opaque URL-safe keyset cursor returned by the preceding page.
site_idquerystring(uuid)否—
enabledqueryboolean否—

响应

listHTTPPolicies 响应
状态码说明
200Stable page of non-deleted policies.

字段:items: array<HTTPPolicy> next_cursor?: string

400Stable error envelope. Dependency failures, including PostgreSQL serialization, deadlock, lock-not-available, and unknown failures, use HTTP 503 with service_unavailable and never expose SQLSTATE, SQL, internal errors, hidden policy facts, entitlement payloads, or signing and delivery state.
401Stable error envelope. Dependency failures, including PostgreSQL serialization, deadlock, lock-not-available, and unknown failures, use HTTP 503 with service_unavailable and never expose SQLSTATE, SQL, internal errors, hidden policy facts, entitlement payloads, or signing and delivery state.
403Stable error envelope. Dependency failures, including PostgreSQL serialization, deadlock, lock-not-available, and unknown failures, use HTTP 503 with service_unavailable and never expose SQLSTATE, SQL, internal errors, hidden policy facts, entitlement payloads, or signing and delivery state.
404Stable error envelope. Dependency failures, including PostgreSQL serialization, deadlock, lock-not-available, and unknown failures, use HTTP 503 with service_unavailable and never expose SQLSTATE, SQL, internal errors, hidden policy facts, entitlement payloads, or signing and delivery state.
405Stable error envelope. Dependency failures, including PostgreSQL serialization, deadlock, lock-not-available, and unknown failures, use HTTP 503 with service_unavailable and never expose SQLSTATE, SQL, internal errors, hidden policy facts, entitlement payloads, or signing and delivery state.
503Stable error envelope. Dependency failures, including PostgreSQL serialization, deadlock, lock-not-available, and unknown failures, use HTTP 503 with service_unavailable and never expose SQLSTATE, SQL, internal errors, hidden policy facts, entitlement payloads, or signing and delivery state.

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 404 资源不存在或不属于当前租户。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

POST /v1/tenant-scopes/{tenant_scope_id}/http-policies

Create revision one for a tenant-owned site

operationId
createHTTPPolicy
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:http_policies.manage

说明(契约原文)

Requires http_policies.manage and a currently valid, non-grace sites.manage entitlement. Same-key same-payload retries return the stored result; a key reused with another payload returns 409. JSON is limited to 1 MiB and duplicate keys, unknown fields, and trailing values are rejected. A platform principal whose role holds http_policies.manage (or platform.admin) writes any site of this tenant scope, as do the update, enable, disable, and delete operations; the revision records the platform actor and the audit event's scope is this tenant scope.

参数

createHTTPPolicy 参数
名称位置类型必填说明
tenant_scope_idpathstring(uuid)是Explicit target tenant access-scope UUID.
X-Request-IDheaderstring是Stable request correlation ID.
X-Trace-IDheaderstring是Stable trace correlation ID.
Idempotency-Keyheaderstring是Operation-scoped durable key. Retry an unknown result with this key and the unchanged business payload.

请求体

application/json · 必填:是

createHTTPPolicy 请求体
名称类型必填说明
site_idstring(uuid)是—
enabledboolean是—
configHTTPPolicyConfig是—

响应

createHTTPPolicy 响应
状态码说明
201Created policy or stored identical retry result.

字段:max_upload_bytes: integer(int64) request_headers: array<HeaderAction> response_headers: array<HeaderAction> rewrites: array<RewriteRule> redirect_allowed_hosts: array<string> redirects: array<RedirectRule> cors: CORSPolicy | null referer_check: RefererCheckPolicy | null id: string(uuid) tenant_scope_id: string(uuid) site_id: string(uuid) site_owner_user_id: string(uuid) enabled: boolean deleted: boolean revision: integer(int64) publication_revision: integer(int64) created_at: string(date-time) updated_at: string(date-time)

400Stable error envelope. Dependency failures, including PostgreSQL serialization, deadlock, lock-not-available, and unknown failures, use HTTP 503 with service_unavailable and never expose SQLSTATE, SQL, internal errors, hidden policy facts, entitlement payloads, or signing and delivery state.
401Stable error envelope. Dependency failures, including PostgreSQL serialization, deadlock, lock-not-available, and unknown failures, use HTTP 503 with service_unavailable and never expose SQLSTATE, SQL, internal errors, hidden policy facts, entitlement payloads, or signing and delivery state.
403Stable error envelope. Dependency failures, including PostgreSQL serialization, deadlock, lock-not-available, and unknown failures, use HTTP 503 with service_unavailable and never expose SQLSTATE, SQL, internal errors, hidden policy facts, entitlement payloads, or signing and delivery state.
404Stable error envelope. Dependency failures, including PostgreSQL serialization, deadlock, lock-not-available, and unknown failures, use HTTP 503 with service_unavailable and never expose SQLSTATE, SQL, internal errors, hidden policy facts, entitlement payloads, or signing and delivery state.
405Stable error envelope. Dependency failures, including PostgreSQL serialization, deadlock, lock-not-available, and unknown failures, use HTTP 503 with service_unavailable and never expose SQLSTATE, SQL, internal errors, hidden policy facts, entitlement payloads, or signing and delivery state.
409Stable error envelope. Dependency failures, including PostgreSQL serialization, deadlock, lock-not-available, and unknown failures, use HTTP 503 with service_unavailable and never expose SQLSTATE, SQL, internal errors, hidden policy facts, entitlement payloads, or signing and delivery state.
422Stable error envelope. Dependency failures, including PostgreSQL serialization, deadlock, lock-not-available, and unknown failures, use HTTP 503 with service_unavailable and never expose SQLSTATE, SQL, internal errors, hidden policy facts, entitlement payloads, or signing and delivery state.
503Stable error envelope. Dependency failures, including PostgreSQL serialization, deadlock, lock-not-available, and unknown failures, use HTTP 503 with service_unavailable and never expose SQLSTATE, SQL, internal errors, hidden policy facts, entitlement payloads, or signing and delivery state.

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 404 资源不存在或不属于当前租户。
  • 409 先回读资源当前状态;同一操作重试保持原 Idempotency-Key 和原请求内容。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

GET /v1/tenant-scopes/{tenant_scope_id}/http-policies/publication-preview

Read a deterministic unsigned Edge v1 source snapshot

operationId
previewHTTPPolicyPublication
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:http_policies.read

说明(契约原文)

Requires http_policies.read. The result contains only enabled, non-deleted policies visible in the target tenant and is sorted by site_id. state is always preview. The SHA-256 covers canonical snapshot JSON with a trailing newline. It is not a signature or delivery receipt.

参数

previewHTTPPolicyPublication 参数
名称位置类型必填说明
tenant_scope_idpathstring(uuid)是Explicit target tenant access-scope UUID.
X-Request-IDheaderstring是Stable request correlation ID.
X-Trace-IDheaderstring是Stable trace correlation ID.

响应

previewHTTPPolicyPublication 响应
状态码说明
200Deterministic unsigned Edge v1 source preview.

字段:state: string sha256: string snapshot: EdgeSnapshot

400Stable error envelope. Dependency failures, including PostgreSQL serialization, deadlock, lock-not-available, and unknown failures, use HTTP 503 with service_unavailable and never expose SQLSTATE, SQL, internal errors, hidden policy facts, entitlement payloads, or signing and delivery state.
401Stable error envelope. Dependency failures, including PostgreSQL serialization, deadlock, lock-not-available, and unknown failures, use HTTP 503 with service_unavailable and never expose SQLSTATE, SQL, internal errors, hidden policy facts, entitlement payloads, or signing and delivery state.
403Stable error envelope. Dependency failures, including PostgreSQL serialization, deadlock, lock-not-available, and unknown failures, use HTTP 503 with service_unavailable and never expose SQLSTATE, SQL, internal errors, hidden policy facts, entitlement payloads, or signing and delivery state.
404Stable error envelope. Dependency failures, including PostgreSQL serialization, deadlock, lock-not-available, and unknown failures, use HTTP 503 with service_unavailable and never expose SQLSTATE, SQL, internal errors, hidden policy facts, entitlement payloads, or signing and delivery state.
405Stable error envelope. Dependency failures, including PostgreSQL serialization, deadlock, lock-not-available, and unknown failures, use HTTP 503 with service_unavailable and never expose SQLSTATE, SQL, internal errors, hidden policy facts, entitlement payloads, or signing and delivery state.
409Stable error envelope. Dependency failures, including PostgreSQL serialization, deadlock, lock-not-available, and unknown failures, use HTTP 503 with service_unavailable and never expose SQLSTATE, SQL, internal errors, hidden policy facts, entitlement payloads, or signing and delivery state.
503Stable error envelope. Dependency failures, including PostgreSQL serialization, deadlock, lock-not-available, and unknown failures, use HTTP 503 with service_unavailable and never expose SQLSTATE, SQL, internal errors, hidden policy facts, entitlement payloads, or signing and delivery state.

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 404 资源不存在或不属于当前租户。
  • 409 先回读资源当前状态;同一操作重试保持原 Idempotency-Key 和原请求内容。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

GET /v1/tenant-scopes/{tenant_scope_id}/http-policies/{policy_id}

Read one HTTP policy

operationId
getHTTPPolicy
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:http_policies.read

说明(契约原文)

Requires http_policies.read. Unknown, deleted, out-of-tenant, and tenant actor non-owned policy IDs share the same 404 response.

参数

getHTTPPolicy 参数
名称位置类型必填说明
tenant_scope_idpathstring(uuid)是Explicit target tenant access-scope UUID.
policy_idpathstring(uuid)是—
X-Request-IDheaderstring是Stable request correlation ID.
X-Trace-IDheaderstring是Stable trace correlation ID.

响应

getHTTPPolicy 响应
状态码说明
200HTTP policy.

字段:max_upload_bytes: integer(int64) request_headers: array<HeaderAction> response_headers: array<HeaderAction> rewrites: array<RewriteRule> redirect_allowed_hosts: array<string> redirects: array<RedirectRule> cors: CORSPolicy | null referer_check: RefererCheckPolicy | null id: string(uuid) tenant_scope_id: string(uuid) site_id: string(uuid) site_owner_user_id: string(uuid) enabled: boolean deleted: boolean revision: integer(int64) publication_revision: integer(int64) created_at: string(date-time) updated_at: string(date-time)

400Stable error envelope. Dependency failures, including PostgreSQL serialization, deadlock, lock-not-available, and unknown failures, use HTTP 503 with service_unavailable and never expose SQLSTATE, SQL, internal errors, hidden policy facts, entitlement payloads, or signing and delivery state.
401Stable error envelope. Dependency failures, including PostgreSQL serialization, deadlock, lock-not-available, and unknown failures, use HTTP 503 with service_unavailable and never expose SQLSTATE, SQL, internal errors, hidden policy facts, entitlement payloads, or signing and delivery state.
403Stable error envelope. Dependency failures, including PostgreSQL serialization, deadlock, lock-not-available, and unknown failures, use HTTP 503 with service_unavailable and never expose SQLSTATE, SQL, internal errors, hidden policy facts, entitlement payloads, or signing and delivery state.
404Stable error envelope. Dependency failures, including PostgreSQL serialization, deadlock, lock-not-available, and unknown failures, use HTTP 503 with service_unavailable and never expose SQLSTATE, SQL, internal errors, hidden policy facts, entitlement payloads, or signing and delivery state.
405Stable error envelope. Dependency failures, including PostgreSQL serialization, deadlock, lock-not-available, and unknown failures, use HTTP 503 with service_unavailable and never expose SQLSTATE, SQL, internal errors, hidden policy facts, entitlement payloads, or signing and delivery state.
503Stable error envelope. Dependency failures, including PostgreSQL serialization, deadlock, lock-not-available, and unknown failures, use HTTP 503 with service_unavailable and never expose SQLSTATE, SQL, internal errors, hidden policy facts, entitlement payloads, or signing and delivery state.

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 404 资源不存在或不属于当前租户。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

PATCH /v1/tenant-scopes/{tenant_scope_id}/http-policies/{policy_id}

Append a configuration revision

operationId
updateHTTPPolicy
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:http_policies.manage

说明(契约原文)

Requires http_policies.manage and a currently valid, non-grace sites.manage entitlement. If-Match is compared under a row lock. Site identity and enabled state cannot be changed by this operation.

参数

updateHTTPPolicy 参数
名称位置类型必填说明
tenant_scope_idpathstring(uuid)是Explicit target tenant access-scope UUID.
policy_idpathstring(uuid)是—
X-Request-IDheaderstring是Stable request correlation ID.
X-Trace-IDheaderstring是Stable trace correlation ID.
Idempotency-Keyheaderstring是Operation-scoped durable key. Retry an unknown result with this key and the unchanged business payload.
If-Matchheaderstring是Current positive revision as a quoted decimal ETag, for example "3".

请求体

application/json · 必填:是

updateHTTPPolicy 请求体
名称类型必填说明
configHTTPPolicyConfig是—

响应

updateHTTPPolicy 响应
状态码说明
200Updated policy or stored identical retry result.

字段:max_upload_bytes: integer(int64) request_headers: array<HeaderAction> response_headers: array<HeaderAction> rewrites: array<RewriteRule> redirect_allowed_hosts: array<string> redirects: array<RedirectRule> cors: CORSPolicy | null referer_check: RefererCheckPolicy | null id: string(uuid) tenant_scope_id: string(uuid) site_id: string(uuid) site_owner_user_id: string(uuid) enabled: boolean deleted: boolean revision: integer(int64) publication_revision: integer(int64) created_at: string(date-time) updated_at: string(date-time)

400Stable error envelope. Dependency failures, including PostgreSQL serialization, deadlock, lock-not-available, and unknown failures, use HTTP 503 with service_unavailable and never expose SQLSTATE, SQL, internal errors, hidden policy facts, entitlement payloads, or signing and delivery state.
401Stable error envelope. Dependency failures, including PostgreSQL serialization, deadlock, lock-not-available, and unknown failures, use HTTP 503 with service_unavailable and never expose SQLSTATE, SQL, internal errors, hidden policy facts, entitlement payloads, or signing and delivery state.
403Stable error envelope. Dependency failures, including PostgreSQL serialization, deadlock, lock-not-available, and unknown failures, use HTTP 503 with service_unavailable and never expose SQLSTATE, SQL, internal errors, hidden policy facts, entitlement payloads, or signing and delivery state.
404Stable error envelope. Dependency failures, including PostgreSQL serialization, deadlock, lock-not-available, and unknown failures, use HTTP 503 with service_unavailable and never expose SQLSTATE, SQL, internal errors, hidden policy facts, entitlement payloads, or signing and delivery state.
405Stable error envelope. Dependency failures, including PostgreSQL serialization, deadlock, lock-not-available, and unknown failures, use HTTP 503 with service_unavailable and never expose SQLSTATE, SQL, internal errors, hidden policy facts, entitlement payloads, or signing and delivery state.
409Stable error envelope. Dependency failures, including PostgreSQL serialization, deadlock, lock-not-available, and unknown failures, use HTTP 503 with service_unavailable and never expose SQLSTATE, SQL, internal errors, hidden policy facts, entitlement payloads, or signing and delivery state.
412Stable error envelope. Dependency failures, including PostgreSQL serialization, deadlock, lock-not-available, and unknown failures, use HTTP 503 with service_unavailable and never expose SQLSTATE, SQL, internal errors, hidden policy facts, entitlement payloads, or signing and delivery state.
422Stable error envelope. Dependency failures, including PostgreSQL serialization, deadlock, lock-not-available, and unknown failures, use HTTP 503 with service_unavailable and never expose SQLSTATE, SQL, internal errors, hidden policy facts, entitlement payloads, or signing and delivery state.
503Stable error envelope. Dependency failures, including PostgreSQL serialization, deadlock, lock-not-available, and unknown failures, use HTTP 503 with service_unavailable and never expose SQLSTATE, SQL, internal errors, hidden policy facts, entitlement payloads, or signing and delivery state.

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 404 资源不存在或不属于当前租户。
  • 409 先回读资源当前状态;同一操作重试保持原 Idempotency-Key 和原请求内容。
  • 412 版本已变:回读最新 ETag 后重新判断,再带新的 If-Match 提交。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

DELETE /v1/tenant-scopes/{tenant_scope_id}/http-policies/{policy_id}

Soft-delete a policy by appending a tombstone revision

operationId
deleteHTTPPolicy
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:http_policies.manage

说明(契约原文)

Requires http_policies.manage, Idempotency-Key, and revision CAS. The body must be empty. Delete remains available during entitlement grace and preserves all historical revisions.

参数

deleteHTTPPolicy 参数
名称位置类型必填说明
tenant_scope_idpathstring(uuid)是Explicit target tenant access-scope UUID.
policy_idpathstring(uuid)是—
X-Request-IDheaderstring是Stable request correlation ID.
X-Trace-IDheaderstring是Stable trace correlation ID.
Idempotency-Keyheaderstring是Operation-scoped durable key. Retry an unknown result with this key and the unchanged business payload.
If-Matchheaderstring是Current positive revision as a quoted decimal ETag, for example "3".

响应

deleteHTTPPolicy 响应
状态码说明
200Updated policy or stored identical retry result.

字段:max_upload_bytes: integer(int64) request_headers: array<HeaderAction> response_headers: array<HeaderAction> rewrites: array<RewriteRule> redirect_allowed_hosts: array<string> redirects: array<RedirectRule> cors: CORSPolicy | null referer_check: RefererCheckPolicy | null id: string(uuid) tenant_scope_id: string(uuid) site_id: string(uuid) site_owner_user_id: string(uuid) enabled: boolean deleted: boolean revision: integer(int64) publication_revision: integer(int64) created_at: string(date-time) updated_at: string(date-time)

400Stable error envelope. Dependency failures, including PostgreSQL serialization, deadlock, lock-not-available, and unknown failures, use HTTP 503 with service_unavailable and never expose SQLSTATE, SQL, internal errors, hidden policy facts, entitlement payloads, or signing and delivery state.
401Stable error envelope. Dependency failures, including PostgreSQL serialization, deadlock, lock-not-available, and unknown failures, use HTTP 503 with service_unavailable and never expose SQLSTATE, SQL, internal errors, hidden policy facts, entitlement payloads, or signing and delivery state.
403Stable error envelope. Dependency failures, including PostgreSQL serialization, deadlock, lock-not-available, and unknown failures, use HTTP 503 with service_unavailable and never expose SQLSTATE, SQL, internal errors, hidden policy facts, entitlement payloads, or signing and delivery state.
404Stable error envelope. Dependency failures, including PostgreSQL serialization, deadlock, lock-not-available, and unknown failures, use HTTP 503 with service_unavailable and never expose SQLSTATE, SQL, internal errors, hidden policy facts, entitlement payloads, or signing and delivery state.
405Stable error envelope. Dependency failures, including PostgreSQL serialization, deadlock, lock-not-available, and unknown failures, use HTTP 503 with service_unavailable and never expose SQLSTATE, SQL, internal errors, hidden policy facts, entitlement payloads, or signing and delivery state.
409Stable error envelope. Dependency failures, including PostgreSQL serialization, deadlock, lock-not-available, and unknown failures, use HTTP 503 with service_unavailable and never expose SQLSTATE, SQL, internal errors, hidden policy facts, entitlement payloads, or signing and delivery state.
412Stable error envelope. Dependency failures, including PostgreSQL serialization, deadlock, lock-not-available, and unknown failures, use HTTP 503 with service_unavailable and never expose SQLSTATE, SQL, internal errors, hidden policy facts, entitlement payloads, or signing and delivery state.
503Stable error envelope. Dependency failures, including PostgreSQL serialization, deadlock, lock-not-available, and unknown failures, use HTTP 503 with service_unavailable and never expose SQLSTATE, SQL, internal errors, hidden policy facts, entitlement payloads, or signing and delivery state.

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 404 资源不存在或不属于当前租户。
  • 409 先回读资源当前状态;同一操作重试保持原 Idempotency-Key 和原请求内容。
  • 412 版本已变:回读最新 ETag 后重新判断,再带新的 If-Match 提交。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

POST /v1/tenant-scopes/{tenant_scope_id}/http-policies/{policy_id}/disable

Disable a policy with revision CAS

operationId
disableHTTPPolicy
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:http_policies.manage

说明(契约原文)

Requires http_policies.manage. The body must be exactly an empty JSON object. Disable remains available during entitlement grace.

参数

disableHTTPPolicy 参数
名称位置类型必填说明
tenant_scope_idpathstring(uuid)是Explicit target tenant access-scope UUID.
policy_idpathstring(uuid)是—
X-Request-IDheaderstring是Stable request correlation ID.
X-Trace-IDheaderstring是Stable trace correlation ID.
Idempotency-Keyheaderstring是Operation-scoped durable key. Retry an unknown result with this key and the unchanged business payload.
If-Matchheaderstring是Current positive revision as a quoted decimal ETag, for example "3".

请求体

application/json · 必填:是

响应

disableHTTPPolicy 响应
状态码说明
200Updated policy or stored identical retry result.

字段:max_upload_bytes: integer(int64) request_headers: array<HeaderAction> response_headers: array<HeaderAction> rewrites: array<RewriteRule> redirect_allowed_hosts: array<string> redirects: array<RedirectRule> cors: CORSPolicy | null referer_check: RefererCheckPolicy | null id: string(uuid) tenant_scope_id: string(uuid) site_id: string(uuid) site_owner_user_id: string(uuid) enabled: boolean deleted: boolean revision: integer(int64) publication_revision: integer(int64) created_at: string(date-time) updated_at: string(date-time)

400Stable error envelope. Dependency failures, including PostgreSQL serialization, deadlock, lock-not-available, and unknown failures, use HTTP 503 with service_unavailable and never expose SQLSTATE, SQL, internal errors, hidden policy facts, entitlement payloads, or signing and delivery state.
401Stable error envelope. Dependency failures, including PostgreSQL serialization, deadlock, lock-not-available, and unknown failures, use HTTP 503 with service_unavailable and never expose SQLSTATE, SQL, internal errors, hidden policy facts, entitlement payloads, or signing and delivery state.
403Stable error envelope. Dependency failures, including PostgreSQL serialization, deadlock, lock-not-available, and unknown failures, use HTTP 503 with service_unavailable and never expose SQLSTATE, SQL, internal errors, hidden policy facts, entitlement payloads, or signing and delivery state.
404Stable error envelope. Dependency failures, including PostgreSQL serialization, deadlock, lock-not-available, and unknown failures, use HTTP 503 with service_unavailable and never expose SQLSTATE, SQL, internal errors, hidden policy facts, entitlement payloads, or signing and delivery state.
405Stable error envelope. Dependency failures, including PostgreSQL serialization, deadlock, lock-not-available, and unknown failures, use HTTP 503 with service_unavailable and never expose SQLSTATE, SQL, internal errors, hidden policy facts, entitlement payloads, or signing and delivery state.
409Stable error envelope. Dependency failures, including PostgreSQL serialization, deadlock, lock-not-available, and unknown failures, use HTTP 503 with service_unavailable and never expose SQLSTATE, SQL, internal errors, hidden policy facts, entitlement payloads, or signing and delivery state.
412Stable error envelope. Dependency failures, including PostgreSQL serialization, deadlock, lock-not-available, and unknown failures, use HTTP 503 with service_unavailable and never expose SQLSTATE, SQL, internal errors, hidden policy facts, entitlement payloads, or signing and delivery state.
503Stable error envelope. Dependency failures, including PostgreSQL serialization, deadlock, lock-not-available, and unknown failures, use HTTP 503 with service_unavailable and never expose SQLSTATE, SQL, internal errors, hidden policy facts, entitlement payloads, or signing and delivery state.

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 404 资源不存在或不属于当前租户。
  • 409 先回读资源当前状态;同一操作重试保持原 Idempotency-Key 和原请求内容。
  • 412 版本已变:回读最新 ETag 后重新判断,再带新的 If-Match 提交。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

POST /v1/tenant-scopes/{tenant_scope_id}/http-policies/{policy_id}/enable

Enable a policy with revision CAS

operationId
enableHTTPPolicy
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:http_policies.manage

说明(契约原文)

Requires http_policies.manage and a currently valid, non-grace sites.manage entitlement. The body must be exactly an empty JSON object.

参数

enableHTTPPolicy 参数
名称位置类型必填说明
tenant_scope_idpathstring(uuid)是Explicit target tenant access-scope UUID.
policy_idpathstring(uuid)是—
X-Request-IDheaderstring是Stable request correlation ID.
X-Trace-IDheaderstring是Stable trace correlation ID.
Idempotency-Keyheaderstring是Operation-scoped durable key. Retry an unknown result with this key and the unchanged business payload.
If-Matchheaderstring是Current positive revision as a quoted decimal ETag, for example "3".

请求体

application/json · 必填:是

响应

enableHTTPPolicy 响应
状态码说明
200Updated policy or stored identical retry result.

字段:max_upload_bytes: integer(int64) request_headers: array<HeaderAction> response_headers: array<HeaderAction> rewrites: array<RewriteRule> redirect_allowed_hosts: array<string> redirects: array<RedirectRule> cors: CORSPolicy | null referer_check: RefererCheckPolicy | null id: string(uuid) tenant_scope_id: string(uuid) site_id: string(uuid) site_owner_user_id: string(uuid) enabled: boolean deleted: boolean revision: integer(int64) publication_revision: integer(int64) created_at: string(date-time) updated_at: string(date-time)

400Stable error envelope. Dependency failures, including PostgreSQL serialization, deadlock, lock-not-available, and unknown failures, use HTTP 503 with service_unavailable and never expose SQLSTATE, SQL, internal errors, hidden policy facts, entitlement payloads, or signing and delivery state.
401Stable error envelope. Dependency failures, including PostgreSQL serialization, deadlock, lock-not-available, and unknown failures, use HTTP 503 with service_unavailable and never expose SQLSTATE, SQL, internal errors, hidden policy facts, entitlement payloads, or signing and delivery state.
403Stable error envelope. Dependency failures, including PostgreSQL serialization, deadlock, lock-not-available, and unknown failures, use HTTP 503 with service_unavailable and never expose SQLSTATE, SQL, internal errors, hidden policy facts, entitlement payloads, or signing and delivery state.
404Stable error envelope. Dependency failures, including PostgreSQL serialization, deadlock, lock-not-available, and unknown failures, use HTTP 503 with service_unavailable and never expose SQLSTATE, SQL, internal errors, hidden policy facts, entitlement payloads, or signing and delivery state.
405Stable error envelope. Dependency failures, including PostgreSQL serialization, deadlock, lock-not-available, and unknown failures, use HTTP 503 with service_unavailable and never expose SQLSTATE, SQL, internal errors, hidden policy facts, entitlement payloads, or signing and delivery state.
409Stable error envelope. Dependency failures, including PostgreSQL serialization, deadlock, lock-not-available, and unknown failures, use HTTP 503 with service_unavailable and never expose SQLSTATE, SQL, internal errors, hidden policy facts, entitlement payloads, or signing and delivery state.
412Stable error envelope. Dependency failures, including PostgreSQL serialization, deadlock, lock-not-available, and unknown failures, use HTTP 503 with service_unavailable and never expose SQLSTATE, SQL, internal errors, hidden policy facts, entitlement payloads, or signing and delivery state.
503Stable error envelope. Dependency failures, including PostgreSQL serialization, deadlock, lock-not-available, and unknown failures, use HTTP 503 with service_unavailable and never expose SQLSTATE, SQL, internal errors, hidden policy facts, entitlement payloads, or signing and delivery state.

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 404 资源不存在或不属于当前租户。
  • 409 先回读资源当前状态;同一操作重试保持原 Idempotency-Key 和原请求内容。
  • 412 版本已变:回读最新 ETag 后重新判断,再带新的 If-Match 提交。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

GET /v1/tenant-scopes/{tenant_scope_id}/origin-auth/credentials

List redacted credential heads in one tenant

operationId
listOriginAuthCredentials
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:origin_auth.read

参数

listOriginAuthCredentials 参数
名称位置类型必填说明
tenant_scope_idpathstring(uuid)是—
X-Request-IDheaderstring否—
X-Trace-IDheaderstring否—
providerquerystring: s3 / oss / cos否—
statusquerystring: pending / verified / disabled / deleted否—
limitqueryinteger否—
cursorquerystring否Opaque stable keyset cursor, at most 512 bytes.

响应

listOriginAuthCredentials 响应
状态码说明
200Stable credential page.

字段:items: array<Credential> next_cursor?: string

400Unknown field, malformed UUID/body/header/query, invalid cursor, or exceeded bound.
401Authentication is missing or invalid.
403Permission or entitlement denied.
404Unknown or out-of-tenant resource; both use the same response shape.
405Request method is not allowed for this route.
503Storage, encryption key, entitlement, verifier, timeout, or cancellation unavailable.

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 404 资源不存在或不属于当前租户。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

POST /v1/tenant-scopes/{tenant_scope_id}/origin-auth/credentials

Encrypt and append credential revision 1

operationId
createOriginAuthCredential
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:origin_auth.manage

说明(契约原文)

Requires origin_auth.manage and a valid sites.manage entitlement. The credential remains pending until an injected real verifier accepts it. Same-key same-payload retries replay the stored redacted response.

参数

createOriginAuthCredential 参数
名称位置类型必填说明
tenant_scope_idpathstring(uuid)是—
X-Request-IDheaderstring否—
X-Trace-IDheaderstring否—
Idempotency-Keyheaderstring是—

请求体

application/json · 必填:是

createOriginAuthCredential 请求体
名称类型必填说明
providerstring: s3 / oss / cos是—
namestring是—
secretCredentialSecret是—

响应

createOriginAuthCredential 响应
状态码说明
201Pending credential created.

字段:id: string(uuid) tenant_scope_id: string(uuid) provider: string: s3 / oss / cos name: string status: string: pending / verified / disabled / deleted revision: integer revision_ref: string(uuid) not_before: string(date-time) expires_at: string(date-time) verified_at?: string(date-time) created_at: string(date-time) updated_at: string(date-time)

400Unknown field, malformed UUID/body/header/query, invalid cursor, or exceeded bound.
401Authentication is missing or invalid.
403Permission or entitlement denied.
404Unknown or out-of-tenant resource; both use the same response shape.
405Request method is not allowed for this route.
409State, uniqueness, active-reference, or idempotency conflict.
422Provider binding, endpoint, path, credential state, or verification rejected.
503Storage, encryption key, entitlement, verifier, timeout, or cancellation unavailable.

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 404 资源不存在或不属于当前租户。
  • 409 先回读资源当前状态;同一操作重试保持原 Idempotency-Key 和原请求内容。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

GET /v1/tenant-scopes/{tenant_scope_id}/origin-auth/credentials/{credential_id}

Read one redacted credential head

operationId
getOriginAuthCredential
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:origin_auth.read

参数

getOriginAuthCredential 参数
名称位置类型必填说明
tenant_scope_idpathstring(uuid)是—
credential_idpathstring(uuid)是—
X-Request-IDheaderstring否—
X-Trace-IDheaderstring否—

响应

getOriginAuthCredential 响应
状态码说明
200Redacted credential head.

字段:id: string(uuid) tenant_scope_id: string(uuid) provider: string: s3 / oss / cos name: string status: string: pending / verified / disabled / deleted revision: integer revision_ref: string(uuid) not_before: string(date-time) expires_at: string(date-time) verified_at?: string(date-time) created_at: string(date-time) updated_at: string(date-time)

400Unknown field, malformed UUID/body/header/query, invalid cursor, or exceeded bound.
401Authentication is missing or invalid.
403Permission or entitlement denied.
404Unknown or out-of-tenant resource; both use the same response shape.
405Request method is not allowed for this route.
503Storage, encryption key, entitlement, verifier, timeout, or cancellation unavailable.

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 404 资源不存在或不属于当前租户。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

DELETE /v1/tenant-scopes/{tenant_scope_id}/origin-auth/credentials/{credential_id}

Append a credential tombstone revision

operationId
deleteOriginAuthCredential
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:origin_auth.manage

说明(契约原文)

The body must be exactly an empty JSON object. A credential referenced by a currently enabled rule cannot be deleted. Historical publication rows and prior encrypted revisions are not mutated.

参数

deleteOriginAuthCredential 参数
名称位置类型必填说明
tenant_scope_idpathstring(uuid)是—
credential_idpathstring(uuid)是—
X-Request-IDheaderstring否—
X-Trace-IDheaderstring否—
Idempotency-Keyheaderstring是—
If-Matchheaderstring是Quoted positive decimal current resource revision.

请求体

application/json · 必填:是

响应

deleteOriginAuthCredential 响应
状态码说明
200Credential revision appended.

字段:id: string(uuid) tenant_scope_id: string(uuid) provider: string: s3 / oss / cos name: string status: string: pending / verified / disabled / deleted revision: integer revision_ref: string(uuid) not_before: string(date-time) expires_at: string(date-time) verified_at?: string(date-time) created_at: string(date-time) updated_at: string(date-time)

400Unknown field, malformed UUID/body/header/query, invalid cursor, or exceeded bound.
401Authentication is missing or invalid.
403Permission or entitlement denied.
404Unknown or out-of-tenant resource; both use the same response shape.
405Request method is not allowed for this route.
409State, uniqueness, active-reference, or idempotency conflict.
412If-Match does not equal the current revision.
422Provider binding, endpoint, path, credential state, or verification rejected.
503Storage, encryption key, entitlement, verifier, timeout, or cancellation unavailable.

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 404 资源不存在或不属于当前租户。
  • 409 先回读资源当前状态;同一操作重试保持原 Idempotency-Key 和原请求内容。
  • 412 版本已变:回读最新 ETag 后重新判断,再带新的 If-Match 提交。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

POST /v1/tenant-scopes/{tenant_scope_id}/origin-auth/credentials/{credential_id}/disable

Append a disabled credential revision

operationId
disableOriginAuthCredential
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:origin_auth.manage

说明(契约原文)

The body must be exactly an empty JSON object. A credential referenced by an enabled rule must first be removed from or disabled in that rule.

参数

disableOriginAuthCredential 参数
名称位置类型必填说明
tenant_scope_idpathstring(uuid)是—
credential_idpathstring(uuid)是—
X-Request-IDheaderstring否—
X-Trace-IDheaderstring否—
Idempotency-Keyheaderstring是—
If-Matchheaderstring是Quoted positive decimal current resource revision.

请求体

application/json · 必填:是

响应

disableOriginAuthCredential 响应
状态码说明
200Credential revision appended.

字段:id: string(uuid) tenant_scope_id: string(uuid) provider: string: s3 / oss / cos name: string status: string: pending / verified / disabled / deleted revision: integer revision_ref: string(uuid) not_before: string(date-time) expires_at: string(date-time) verified_at?: string(date-time) created_at: string(date-time) updated_at: string(date-time)

400Unknown field, malformed UUID/body/header/query, invalid cursor, or exceeded bound.
401Authentication is missing or invalid.
403Permission or entitlement denied.
404Unknown or out-of-tenant resource; both use the same response shape.
405Request method is not allowed for this route.
409State, uniqueness, active-reference, or idempotency conflict.
412If-Match does not equal the current revision.
503Storage, encryption key, entitlement, verifier, timeout, or cancellation unavailable.

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 404 资源不存在或不属于当前租户。
  • 409 先回读资源当前状态;同一操作重试保持原 Idempotency-Key 和原请求内容。
  • 412 版本已变:回读最新 ETag 后重新判断,再带新的 If-Match 提交。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

POST /v1/tenant-scopes/{tenant_scope_id}/origin-auth/credentials/{credential_id}/replace

Encrypt replacement material with the active envelope key

operationId
replaceOriginAuthCredential
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:origin_auth.manage

参数

replaceOriginAuthCredential 参数
名称位置类型必填说明
tenant_scope_idpathstring(uuid)是—
credential_idpathstring(uuid)是—
X-Request-IDheaderstring否—
X-Trace-IDheaderstring否—
Idempotency-Keyheaderstring是—
If-Matchheaderstring是Quoted positive decimal current resource revision.

请求体

application/json · 必填:是

replaceOriginAuthCredential 请求体
名称类型必填说明
secretCredentialSecret是—

响应

replaceOriginAuthCredential 响应
状态码说明
200Credential revision appended.

字段:id: string(uuid) tenant_scope_id: string(uuid) provider: string: s3 / oss / cos name: string status: string: pending / verified / disabled / deleted revision: integer revision_ref: string(uuid) not_before: string(date-time) expires_at: string(date-time) verified_at?: string(date-time) created_at: string(date-time) updated_at: string(date-time)

400Unknown field, malformed UUID/body/header/query, invalid cursor, or exceeded bound.
401Authentication is missing or invalid.
403Permission or entitlement denied.
404Unknown or out-of-tenant resource; both use the same response shape.
405Request method is not allowed for this route.
409State, uniqueness, active-reference, or idempotency conflict.
412If-Match does not equal the current revision.
422Provider binding, endpoint, path, credential state, or verification rejected.
503Storage, encryption key, entitlement, verifier, timeout, or cancellation unavailable.

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 404 资源不存在或不属于当前租户。
  • 409 先回读资源当前状态;同一操作重试保持原 Idempotency-Key 和原请求内容。
  • 412 版本已变:回读最新 ETag 后重新判断,再带新的 If-Match 提交。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

POST /v1/tenant-scopes/{tenant_scope_id}/origin-auth/credentials/{credential_id}/verify

Invoke the injected verifier and append a verified revision

operationId
verifyOriginAuthCredential
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:origin_auth.manage

说明(契约原文)

The body must be exactly an empty JSON object. If no real verifier is configured, the response is 503 and the credential remains pending. This endpoint never treats schema validation or a synthetic network probe as successful provider verification.

参数

verifyOriginAuthCredential 参数
名称位置类型必填说明
tenant_scope_idpathstring(uuid)是—
credential_idpathstring(uuid)是—
X-Request-IDheaderstring否—
X-Trace-IDheaderstring否—
Idempotency-Keyheaderstring是—
If-Matchheaderstring是Quoted positive decimal current resource revision.

请求体

application/json · 必填:是

响应

verifyOriginAuthCredential 响应
状态码说明
200Credential revision appended.

字段:id: string(uuid) tenant_scope_id: string(uuid) provider: string: s3 / oss / cos name: string status: string: pending / verified / disabled / deleted revision: integer revision_ref: string(uuid) not_before: string(date-time) expires_at: string(date-time) verified_at?: string(date-time) created_at: string(date-time) updated_at: string(date-time)

400Unknown field, malformed UUID/body/header/query, invalid cursor, or exceeded bound.
401Authentication is missing or invalid.
403Permission or entitlement denied.
404Unknown or out-of-tenant resource; both use the same response shape.
405Request method is not allowed for this route.
409State, uniqueness, active-reference, or idempotency conflict.
412If-Match does not equal the current revision.
422Provider binding, endpoint, path, credential state, or verification rejected.
503Storage, encryption key, entitlement, verifier, timeout, or cancellation unavailable.

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 404 资源不存在或不属于当前租户。
  • 409 先回读资源当前状态;同一操作重试保持原 Idempotency-Key 和原请求内容。
  • 412 版本已变:回读最新 ETag 后重新判断,再带新的 If-Match 提交。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

POST /v1/tenant-scopes/{tenant_scope_id}/origin-auth/edge-publications

发布租户作用域的源站鉴权配置

operationId
publishOriginAuthEdgeConfiguration
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:edge_publications.manage origin_auth.manage

说明(契约原文)

Requires a platform session with edge_publications.manage and origin_auth.manage. If-Match is the exact latest source revision. The server locks each target node and its active recipient key, produces one signed HPKE artifact per node, and commits the immutable config, rollout, deployment commands, and outbox records in one transaction. An outcome_unknown response may be retried only with the unchanged body, path, If-Match, Idempotency-Key, X-Request-ID, X-Correlation-ID, Traceparent, and X-Task-ID.

参数

publishOriginAuthEdgeConfiguration 参数
名称位置类型必填说明
tenant_scope_idpathstring(uuid)是—
If-Matchheaderstring是当前源配置 revision 的强 ETag,例如 "7"。
Idempotency-Keyheaderstring是—
X-Request-IDheaderstring(uuid)是—
X-Correlation-IDheaderstring(uuid)否—
Traceparentheaderstring是—
X-Task-IDheaderstring否—

请求体

application/json · 必填:是

publishOriginAuthEdgeConfiguration 请求体
名称类型必填说明
node_idsarray<string(uuid)>是—
health_checkHealthCheck是—
deadlinestring(date-time)是—

响应

publishOriginAuthEdgeConfiguration 响应
状态码说明
201创建成功,或返回完全相同请求的持久化结果

字段:tenant_id: string(uuid) tenant_scope_id: string(uuid) publication_id: string(uuid) source_publication_id: string(uuid) source_revision: integer(int64) config_version_id: string(uuid) rollout_id: string(uuid) config_snapshot_sha256: string artifact_manifest_sha256: string recipient_binding_sha256: string node_count: integer created_at: string(date-time) replayed?: boolean

400请求格式或参数无效
401会话无效或已撤销
403作用域或权限拒绝
404源配置或发布记录不存在
405方法不受支持
409幂等键已绑定不同请求
412If-Match 不等于最新源配置 revision
422目标节点、接收密钥或源配置当前不可发布
502持久化事实未通过严格身份校验
503origin_auth_edge_publication_outcome_unknown; only the exact request described by retry may be repeated.

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 404 资源不存在或不属于当前租户。
  • 409 先回读资源当前状态;同一操作重试保持原 Idempotency-Key 和原请求内容。
  • 412 版本已变:回读最新 ETag 后重新判断,再带新的 If-Match 提交。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

GET /v1/tenant-scopes/{tenant_scope_id}/origin-auth/edge-publications/{publication_id}

读取一个不可变源站鉴权发布结果

operationId
getOriginAuthEdgePublication
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:edge_publications.read origin_auth.read

说明(契约原文)

Requires edge_publications.read and origin_auth.read. The session and both grants are checked again in the read transaction. The result is reconstructed only from the immutable rollout, config, source snapshot, per-node artifact, recipient-key, and deployment-command facts. Cross-scope or other secret-rollout subtypes are rejected.

参数

getOriginAuthEdgePublication 参数
名称位置类型必填说明
tenant_scope_idpathstring(uuid)是—
publication_idpathstring(uuid)是—
X-Request-IDheaderstring(uuid)否—

响应

getOriginAuthEdgePublication 响应
状态码说明
200不可变发布结果

字段:tenant_id: string(uuid) tenant_scope_id: string(uuid) publication_id: string(uuid) source_publication_id: string(uuid) source_revision: integer(int64) config_version_id: string(uuid) rollout_id: string(uuid) config_snapshot_sha256: string artifact_manifest_sha256: string recipient_binding_sha256: string node_count: integer created_at: string(date-time) replayed?: boolean

400请求格式或参数无效
401会话无效或已撤销
403作用域或权限拒绝
404源配置或发布记录不存在
405方法不受支持
502持久化事实未通过严格身份校验
503服务暂不可用

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 404 资源不存在或不属于当前租户。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

GET /v1/tenant-scopes/{tenant_scope_id}/origin-auth/publications

Read the latest deterministic secret-free snapshot

operationId
getLatestOriginAuthPublication
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:origin_auth.read

参数

getLatestOriginAuthPublication 参数
名称位置类型必填说明
tenant_scope_idpathstring(uuid)是—
X-Request-IDheaderstring否—
X-Trace-IDheaderstring否—

响应

getLatestOriginAuthPublication 响应
状态码说明
200Latest publication.

字段:id: string(uuid) tenant_scope_id: string(uuid) revision: integer snapshot_hash: string previous_hash?: string snapshot: PublicationSnapshot created_at: string(date-time)

400Unknown field, malformed UUID/body/header/query, invalid cursor, or exceeded bound.
401Authentication is missing or invalid.
403Permission or entitlement denied.
404Unknown or out-of-tenant resource; both use the same response shape.
405Request method is not allowed for this route.
503Storage, encryption key, entitlement, verifier, timeout, or cancellation unavailable.

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 404 资源不存在或不属于当前租户。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

POST /v1/tenant-scopes/{tenant_scope_id}/origin-auth/publications

Append the next tenant publication snapshot

operationId
createOriginAuthPublication
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:origin_auth.manage

说明(契约原文)

If-Match is the current publication revision and may be "0" for the first snapshot. The body must be exactly an empty JSON object. The snapshot contains Edge-aligned public rule fields and opaque credential revision references only. It is not an Edge secret file or deployment.

参数

createOriginAuthPublication 参数
名称位置类型必填说明
tenant_scope_idpathstring(uuid)是—
X-Request-IDheaderstring否—
X-Trace-IDheaderstring否—
Idempotency-Keyheaderstring是—
If-Matchheaderstring是Quoted decimal current publication revision; first write uses "0".

请求体

application/json · 必填:是

响应

createOriginAuthPublication 响应
状态码说明
201Publication appended.

字段:id: string(uuid) tenant_scope_id: string(uuid) revision: integer snapshot_hash: string previous_hash?: string snapshot: PublicationSnapshot created_at: string(date-time)

400Unknown field, malformed UUID/body/header/query, invalid cursor, or exceeded bound.
401Authentication is missing or invalid.
403Permission or entitlement denied.
404Unknown or out-of-tenant resource; both use the same response shape.
405Request method is not allowed for this route.
409State, uniqueness, active-reference, or idempotency conflict.
412If-Match does not equal the current revision.
422Provider binding, endpoint, path, credential state, or verification rejected.
503Storage, encryption key, entitlement, verifier, timeout, or cancellation unavailable.

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 404 资源不存在或不属于当前租户。
  • 409 先回读资源当前状态;同一操作重试保持原 Idempotency-Key 和原请求内容。
  • 412 版本已变:回读最新 ETag 后重新判断,再带新的 If-Match 提交。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

GET /v1/tenant-scopes/{tenant_scope_id}/origin-auth/rules

List current rule revisions

operationId
listOriginAuthRules
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:origin_auth.read

参数

listOriginAuthRules 参数
名称位置类型必填说明
tenant_scope_idpathstring(uuid)是—
X-Request-IDheaderstring否—
X-Trace-IDheaderstring否—
site_idquerystring(uuid)否—
enabledqueryboolean否—
limitqueryinteger否—
cursorquerystring否Opaque stable keyset cursor, at most 512 bytes.

响应

listOriginAuthRules 响应
状态码说明
200Stable rule page.

字段:items: array<Rule> next_cursor?: string

400Unknown field, malformed UUID/body/header/query, invalid cursor, or exceeded bound.
401Authentication is missing or invalid.
403Permission or entitlement denied.
404Unknown or out-of-tenant resource; both use the same response shape.
405Request method is not allowed for this route.
503Storage, encryption key, entitlement, verifier, timeout, or cancellation unavailable.

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 404 资源不存在或不属于当前租户。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

POST /v1/tenant-scopes/{tenant_scope_id}/origin-auth/rules

Create a tenant, site, and source-bound rule

operationId
createOriginAuthRule
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:origin_auth.manage

说明(契约原文)

The source must be an HTTPS port 443 source in the same tenant and its host must exactly equal the normalized endpoint host. An enabled rule can reference only a verified credential revision with matching provider and sufficient validity.

参数

createOriginAuthRule 参数
名称位置类型必填说明
tenant_scope_idpathstring(uuid)是—
X-Request-IDheaderstring否—
X-Trace-IDheaderstring否—
Idempotency-Keyheaderstring是—

请求体

application/json · 必填:是

createOriginAuthRule 请求体
名称类型必填说明
site_idstring(uuid)是—
source_positioninteger是—
configRuleConfig是—
enabledboolean是—

响应

createOriginAuthRule 响应
状态码说明
201Rule created.

字段:id: string(uuid) tenant_scope_id: string(uuid) site_id: string(uuid) source_position: integer provider: string: s3 / oss / cos algorithm: string: aws4-hmac-sha256 / oss4-hmac-sha256 / cos-hmac-sha1 endpoint: string(uri) bucket: string path_prefix: string region: string service: string signature_ttl_seconds: integer egress_policy_reference?: string current_credential: CredentialReference previous_credential?: CredentialReference activate_current_at?: string(date-time) enabled: boolean deleted: boolean revision: integer created_at: string(date-time) updated_at: string(date-time)

400Unknown field, malformed UUID/body/header/query, invalid cursor, or exceeded bound.
401Authentication is missing or invalid.
403Permission or entitlement denied.
404Unknown or out-of-tenant resource; both use the same response shape.
405Request method is not allowed for this route.
409State, uniqueness, active-reference, or idempotency conflict.
422Provider binding, endpoint, path, credential state, or verification rejected.
503Storage, encryption key, entitlement, verifier, timeout, or cancellation unavailable.

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 404 资源不存在或不属于当前租户。
  • 409 先回读资源当前状态;同一操作重试保持原 Idempotency-Key 和原请求内容。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

GET /v1/tenant-scopes/{tenant_scope_id}/origin-auth/rules/{rule_id}

Read one current rule revision

operationId
getOriginAuthRule
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:origin_auth.read

参数

getOriginAuthRule 参数
名称位置类型必填说明
tenant_scope_idpathstring(uuid)是—
rule_idpathstring(uuid)是—
X-Request-IDheaderstring否—
X-Trace-IDheaderstring否—

响应

getOriginAuthRule 响应
状态码说明
200Current rule revision.

字段:id: string(uuid) tenant_scope_id: string(uuid) site_id: string(uuid) source_position: integer provider: string: s3 / oss / cos algorithm: string: aws4-hmac-sha256 / oss4-hmac-sha256 / cos-hmac-sha1 endpoint: string(uri) bucket: string path_prefix: string region: string service: string signature_ttl_seconds: integer egress_policy_reference?: string current_credential: CredentialReference previous_credential?: CredentialReference activate_current_at?: string(date-time) enabled: boolean deleted: boolean revision: integer created_at: string(date-time) updated_at: string(date-time)

400Unknown field, malformed UUID/body/header/query, invalid cursor, or exceeded bound.
401Authentication is missing or invalid.
403Permission or entitlement denied.
404Unknown or out-of-tenant resource; both use the same response shape.
405Request method is not allowed for this route.
503Storage, encryption key, entitlement, verifier, timeout, or cancellation unavailable.

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 404 资源不存在或不属于当前租户。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

PATCH /v1/tenant-scopes/{tenant_scope_id}/origin-auth/rules/{rule_id}

Append a rule configuration revision

operationId
updateOriginAuthRule
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:origin_auth.manage

参数

updateOriginAuthRule 参数
名称位置类型必填说明
tenant_scope_idpathstring(uuid)是—
rule_idpathstring(uuid)是—
X-Request-IDheaderstring否—
X-Trace-IDheaderstring否—
Idempotency-Keyheaderstring是—
If-Matchheaderstring是Quoted positive decimal current resource revision.

请求体

application/json · 必填:是

updateOriginAuthRule 请求体
名称类型必填说明
configRuleConfig是—

响应

updateOriginAuthRule 响应
状态码说明
200Rule revision appended.

字段:id: string(uuid) tenant_scope_id: string(uuid) site_id: string(uuid) source_position: integer provider: string: s3 / oss / cos algorithm: string: aws4-hmac-sha256 / oss4-hmac-sha256 / cos-hmac-sha1 endpoint: string(uri) bucket: string path_prefix: string region: string service: string signature_ttl_seconds: integer egress_policy_reference?: string current_credential: CredentialReference previous_credential?: CredentialReference activate_current_at?: string(date-time) enabled: boolean deleted: boolean revision: integer created_at: string(date-time) updated_at: string(date-time)

400Unknown field, malformed UUID/body/header/query, invalid cursor, or exceeded bound.
401Authentication is missing or invalid.
403Permission or entitlement denied.
404Unknown or out-of-tenant resource; both use the same response shape.
405Request method is not allowed for this route.
409State, uniqueness, active-reference, or idempotency conflict.
412If-Match does not equal the current revision.
422Provider binding, endpoint, path, credential state, or verification rejected.
503Storage, encryption key, entitlement, verifier, timeout, or cancellation unavailable.

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 404 资源不存在或不属于当前租户。
  • 409 先回读资源当前状态;同一操作重试保持原 Idempotency-Key 和原请求内容。
  • 412 版本已变:回读最新 ETag 后重新判断,再带新的 If-Match 提交。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

DELETE /v1/tenant-scopes/{tenant_scope_id}/origin-auth/rules/{rule_id}

Append a rule tombstone revision

operationId
deleteOriginAuthRule
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:origin_auth.manage

参数

deleteOriginAuthRule 参数
名称位置类型必填说明
tenant_scope_idpathstring(uuid)是—
rule_idpathstring(uuid)是—
X-Request-IDheaderstring否—
X-Trace-IDheaderstring否—
Idempotency-Keyheaderstring是—
If-Matchheaderstring是Quoted positive decimal current resource revision.

请求体

application/json · 必填:是

响应

deleteOriginAuthRule 响应
状态码说明
200Rule revision appended.

字段:id: string(uuid) tenant_scope_id: string(uuid) site_id: string(uuid) source_position: integer provider: string: s3 / oss / cos algorithm: string: aws4-hmac-sha256 / oss4-hmac-sha256 / cos-hmac-sha1 endpoint: string(uri) bucket: string path_prefix: string region: string service: string signature_ttl_seconds: integer egress_policy_reference?: string current_credential: CredentialReference previous_credential?: CredentialReference activate_current_at?: string(date-time) enabled: boolean deleted: boolean revision: integer created_at: string(date-time) updated_at: string(date-time)

400Unknown field, malformed UUID/body/header/query, invalid cursor, or exceeded bound.
401Authentication is missing or invalid.
403Permission or entitlement denied.
404Unknown or out-of-tenant resource; both use the same response shape.
405Request method is not allowed for this route.
409State, uniqueness, active-reference, or idempotency conflict.
412If-Match does not equal the current revision.
503Storage, encryption key, entitlement, verifier, timeout, or cancellation unavailable.

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 404 资源不存在或不属于当前租户。
  • 409 先回读资源当前状态;同一操作重试保持原 Idempotency-Key 和原请求内容。
  • 412 版本已变:回读最新 ETag 后重新判断,再带新的 If-Match 提交。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

POST /v1/tenant-scopes/{tenant_scope_id}/origin-auth/rules/{rule_id}/disable

Disable a rule by revision CAS

operationId
disableOriginAuthRule
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:origin_auth.manage

参数

disableOriginAuthRule 参数
名称位置类型必填说明
tenant_scope_idpathstring(uuid)是—
rule_idpathstring(uuid)是—
X-Request-IDheaderstring否—
X-Trace-IDheaderstring否—
Idempotency-Keyheaderstring是—
If-Matchheaderstring是Quoted positive decimal current resource revision.

请求体

application/json · 必填:是

响应

disableOriginAuthRule 响应
状态码说明
200Rule revision appended.

字段:id: string(uuid) tenant_scope_id: string(uuid) site_id: string(uuid) source_position: integer provider: string: s3 / oss / cos algorithm: string: aws4-hmac-sha256 / oss4-hmac-sha256 / cos-hmac-sha1 endpoint: string(uri) bucket: string path_prefix: string region: string service: string signature_ttl_seconds: integer egress_policy_reference?: string current_credential: CredentialReference previous_credential?: CredentialReference activate_current_at?: string(date-time) enabled: boolean deleted: boolean revision: integer created_at: string(date-time) updated_at: string(date-time)

400Unknown field, malformed UUID/body/header/query, invalid cursor, or exceeded bound.
401Authentication is missing or invalid.
403Permission or entitlement denied.
404Unknown or out-of-tenant resource; both use the same response shape.
405Request method is not allowed for this route.
409State, uniqueness, active-reference, or idempotency conflict.
412If-Match does not equal the current revision.
503Storage, encryption key, entitlement, verifier, timeout, or cancellation unavailable.

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 404 资源不存在或不属于当前租户。
  • 409 先回读资源当前状态;同一操作重试保持原 Idempotency-Key 和原请求内容。
  • 412 版本已变:回读最新 ETag 后重新判断,再带新的 If-Match 提交。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

POST /v1/tenant-scopes/{tenant_scope_id}/origin-auth/rules/{rule_id}/enable

Enable a rule after verified credential gates pass

operationId
enableOriginAuthRule
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:origin_auth.manage

参数

enableOriginAuthRule 参数
名称位置类型必填说明
tenant_scope_idpathstring(uuid)是—
rule_idpathstring(uuid)是—
X-Request-IDheaderstring否—
X-Trace-IDheaderstring否—
Idempotency-Keyheaderstring是—
If-Matchheaderstring是Quoted positive decimal current resource revision.

请求体

application/json · 必填:是

响应

enableOriginAuthRule 响应
状态码说明
200Rule revision appended.

字段:id: string(uuid) tenant_scope_id: string(uuid) site_id: string(uuid) source_position: integer provider: string: s3 / oss / cos algorithm: string: aws4-hmac-sha256 / oss4-hmac-sha256 / cos-hmac-sha1 endpoint: string(uri) bucket: string path_prefix: string region: string service: string signature_ttl_seconds: integer egress_policy_reference?: string current_credential: CredentialReference previous_credential?: CredentialReference activate_current_at?: string(date-time) enabled: boolean deleted: boolean revision: integer created_at: string(date-time) updated_at: string(date-time)

400Unknown field, malformed UUID/body/header/query, invalid cursor, or exceeded bound.
401Authentication is missing or invalid.
403Permission or entitlement denied.
404Unknown or out-of-tenant resource; both use the same response shape.
405Request method is not allowed for this route.
409State, uniqueness, active-reference, or idempotency conflict.
412If-Match does not equal the current revision.
422Provider binding, endpoint, path, credential state, or verification rejected.
503Storage, encryption key, entitlement, verifier, timeout, or cancellation unavailable.

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 404 资源不存在或不属于当前租户。
  • 409 先回读资源当前状态;同一操作重试保持原 Idempotency-Key 和原请求内容。
  • 412 版本已变:回读最新 ETag 后重新判断,再带新的 If-Match 提交。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

POST /v1/tenant-scopes/{tenant_scope_id}/origin-auth/rules/{rule_id}/rotate

Schedule current and previous credential cutover

operationId
rotateOriginAuthRuleCredential
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:origin_auth.manage

说明(契约原文)

The new current and prior current revisions must be distinct, verified, provider-matched, and valid through activation plus signature TTL. Activation must be in the future and no more than 30 days away.

参数

rotateOriginAuthRuleCredential 参数
名称位置类型必填说明
tenant_scope_idpathstring(uuid)是—
rule_idpathstring(uuid)是—
X-Request-IDheaderstring否—
X-Trace-IDheaderstring否—
Idempotency-Keyheaderstring是—
If-Matchheaderstring是Quoted positive decimal current resource revision.

请求体

application/json · 必填:是

rotateOriginAuthRuleCredential 请求体
名称类型必填说明
current_credentialCredentialReference是—
activate_current_atstring(date-time)是—

响应

rotateOriginAuthRuleCredential 响应
状态码说明
200Rule revision appended.

字段:id: string(uuid) tenant_scope_id: string(uuid) site_id: string(uuid) source_position: integer provider: string: s3 / oss / cos algorithm: string: aws4-hmac-sha256 / oss4-hmac-sha256 / cos-hmac-sha1 endpoint: string(uri) bucket: string path_prefix: string region: string service: string signature_ttl_seconds: integer egress_policy_reference?: string current_credential: CredentialReference previous_credential?: CredentialReference activate_current_at?: string(date-time) enabled: boolean deleted: boolean revision: integer created_at: string(date-time) updated_at: string(date-time)

400Unknown field, malformed UUID/body/header/query, invalid cursor, or exceeded bound.
401Authentication is missing or invalid.
403Permission or entitlement denied.
404Unknown or out-of-tenant resource; both use the same response shape.
405Request method is not allowed for this route.
409State, uniqueness, active-reference, or idempotency conflict.
412If-Match does not equal the current revision.
422Provider binding, endpoint, path, credential state, or verification rejected.
503Storage, encryption key, entitlement, verifier, timeout, or cancellation unavailable.

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 404 资源不存在或不属于当前租户。
  • 409 先回读资源当前状态;同一操作重试保持原 Idempotency-Key 和原请求内容。
  • 412 版本已变:回读最新 ETag 后重新判断,再带新的 If-Match 提交。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

GET /v1/tenant-scopes/{tenant_scope_id}/plugin-installations

List tenant plugin installation authorization state

operationId
listPluginInstallations
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

契约没有单独标注权限码,权限要求见下方说明与 403 响应。

参数

listPluginInstallations 参数
名称位置类型必填说明
tenant_scope_idpathstring(uuid)是—
X-Request-IDheaderstring是—
limitqueryinteger否—
cursorquerystring否—
statusquerystring: pending_confirmation / authorized / installing / enabled / disabled / upgrade_failed_lkg_preserved / uninstalled否—
plugin_idquerystring否—

响应

listPluginInstallations 响应
状态码说明
200Stable keyset page

字段:items: array<PluginInstallation> next_cursor?: string

400Stable localized-client error envelope
401Stable localized-client error envelope
403Stable localized-client error envelope
502Stable localized-client error envelope

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。

↑ 回到列表

GET /v1/tenant-scopes/{tenant_scope_id}/plugin-installations/{authorization_id}

Read one tenant plugin installation authorization

operationId
getPluginInstallation
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

契约没有单独标注权限码,权限要求见下方说明与 403 响应。

参数

getPluginInstallation 参数
名称位置类型必填说明
tenant_scope_idpathstring(uuid)是—
authorization_idpathstring(uuid)是—
X-Request-IDheaderstring是—

响应

getPluginInstallation 响应
状态码说明
200Plugin installation authorization state

字段:schema: const cdnca.control.plugin-installation/v1 tenant_scope_id: string(uuid) authorization_id: string(uuid) installation_id: string(uuid) verification_id: string(uuid) plugin_id: string resource_scope: string: platform / tenant entrypoint_type: string: theme / rule_pack / external_https / ui_page version: string manifest_sha256: string configuration_schema_sha256: string manifest_scopes: array<string> approved_scopes: array<string> sensitive_scopes: array<string> new_scopes: array<string> status: string: pending_confirmation / authorized / installing / enabled / disabled / upgrade_failed_lkg_preserved / uninstalled revision: integer identity_generation: integer lkg_verification_id: string(uuid) | null lkg_version: string | null stable_reason_code: string | null updated_at: string(date-time) authorization_status?: string: pending_confirmation / authorized / enabled / disabled paused_by?: string: installation / operator / service paused_reason?: string available_upgrade?: PluginInstallationAvailableUpgrade

401Stable localized-client error envelope
403Stable localized-client error envelope
404Stable localized-client error envelope
502Stable localized-client error envelope

失败时怎么办

  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 404 资源不存在或不属于当前租户。

↑ 回到列表

POST /v1/tenant-scopes/{tenant_scope_id}/plugin-installations/{authorization_id}/confirm

Confirm declared and sensitive plugin scopes before installation

operationId
confirmPluginInstallation
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

契约没有单独标注权限码,权限要求见下方说明与 403 响应。

参数

confirmPluginInstallation 参数
名称位置类型必填说明
tenant_scope_idpathstring(uuid)是—
authorization_idpathstring(uuid)是—
If-Matchheaderstring是—
Idempotency-Keyheaderstring是—
X-Request-IDheaderstring是—

请求体

application/json · 必填:是

confirmPluginInstallation 请求体
名称类型必填说明
verification_idstring(uuid)是—
approved_scopesarray<string>是—
sensitive_permissions_confirmedboolean是—
new_permissions_confirmedboolean是—

响应

confirmPluginInstallation 响应
状态码说明
200Durable mutation snapshot; replay returns the original snapshot

字段:installation: PluginInstallation

400Stable localized-client error envelope
401Stable localized-client error envelope
403Stable localized-client error envelope
404Stable localized-client error envelope
409Stable localized-client error envelope
422Stable localized-client error envelope
502Stable localized-client error envelope
503Stable localized-client error envelope

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 404 资源不存在或不属于当前租户。
  • 409 先回读资源当前状态;同一操作重试保持原 Idempotency-Key 和原请求内容。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

POST /v1/tenant-scopes/{tenant_scope_id}/plugin-installations/{authorization_id}/disable

Protectively disable an installed plugin without consulting License

operationId
disablePluginInstallation
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

契约没有单独标注权限码,权限要求见下方说明与 403 响应。

参数

disablePluginInstallation 参数
名称位置类型必填说明
tenant_scope_idpathstring(uuid)是—
authorization_idpathstring(uuid)是—
If-Matchheaderstring是—
Idempotency-Keyheaderstring是—
X-Request-IDheaderstring是—

请求体

application/json · 必填:是

disablePluginInstallation 请求体
名称类型必填说明
reasonstring是—

响应

disablePluginInstallation 响应
状态码说明
200Durable mutation snapshot; replay returns the original snapshot

字段:installation: PluginInstallation

400Stable localized-client error envelope
401Stable localized-client error envelope
403Stable localized-client error envelope
404Stable localized-client error envelope
409Stable localized-client error envelope
502Stable localized-client error envelope
503Stable localized-client error envelope

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 404 资源不存在或不属于当前租户。
  • 409 先回读资源当前状态;同一操作重试保持原 Idempotency-Key 和原请求内容。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

POST /v1/tenant-scopes/{tenant_scope_id}/plugin-installations/{authorization_id}/uninstall

Revoke local plugin identity and record protective uninstall

operationId
uninstallPluginInstallation
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

契约没有单独标注权限码,权限要求见下方说明与 403 响应。

参数

uninstallPluginInstallation 参数
名称位置类型必填说明
tenant_scope_idpathstring(uuid)是—
authorization_idpathstring(uuid)是—
If-Matchheaderstring是—
Idempotency-Keyheaderstring是—
X-Request-IDheaderstring是—

请求体

application/json · 必填:是

uninstallPluginInstallation 请求体
名称类型必填说明
reasonstring是—

响应

uninstallPluginInstallation 响应
状态码说明
200Durable mutation snapshot; replay returns the original snapshot

字段:installation: PluginInstallation

400Stable localized-client error envelope
401Stable localized-client error envelope
403Stable localized-client error envelope
404Stable localized-client error envelope
409Stable localized-client error envelope
502Stable localized-client error envelope
503Stable localized-client error envelope

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 404 资源不存在或不属于当前租户。
  • 409 先回读资源当前状态;同一操作重试保持原 Idempotency-Key 和原请求内容。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

POST /v1/tenant-scopes/{tenant_scope_id}/plugin-installations/{authorization_id}/upgrade

Approve a compatible plugin upgrade and any newly declared scopes

operationId
upgradePluginInstallation
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

契约没有单独标注权限码,权限要求见下方说明与 403 响应。

参数

upgradePluginInstallation 参数
名称位置类型必填说明
tenant_scope_idpathstring(uuid)是—
authorization_idpathstring(uuid)是—
If-Matchheaderstring是—
Idempotency-Keyheaderstring是—
X-Request-IDheaderstring是—

请求体

application/json · 必填:是

upgradePluginInstallation 请求体
名称类型必填说明
verification_idstring(uuid)是—
approved_scopesarray<string>是—
sensitive_permissions_confirmedboolean是—
new_permissions_confirmedboolean是—

响应

upgradePluginInstallation 响应
状态码说明
200Durable mutation snapshot; replay returns the original snapshot

字段:installation: PluginInstallation

400Stable localized-client error envelope
401Stable localized-client error envelope
403Stable localized-client error envelope
404Stable localized-client error envelope
409Stable localized-client error envelope
422Stable localized-client error envelope
502Stable localized-client error envelope
503Stable localized-client error envelope

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 404 资源不存在或不属于当前租户。
  • 409 先回读资源当前状态;同一操作重试保持原 Idempotency-Key 和原请求内容。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

GET /v1/tenant-scopes/{tenant_scope_id}/plugin-webhook-subscriptions

List webhook subscriptions

operationId
listPluginWebhookSubscriptions
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:plugin_webhooks.read

参数

listPluginWebhookSubscriptions 参数
名称位置类型必填说明
tenant_scope_idpathstring(uuid)是—
cursorquerystring否—
limitqueryinteger否—

响应

listPluginWebhookSubscriptions 响应
状态码说明
200Subscription page

字段:items: array<Subscription> next_cursor?: string

400Validation failed
401Authentication required
403Permission or tenant scope denied
404Resource not found
503Store, secret, or write result unavailable

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 404 资源不存在或不属于当前租户。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

POST /v1/tenant-scopes/{tenant_scope_id}/plugin-webhook-subscriptions

Create a webhook subscription and one-time secret

operationId
createPluginWebhookSubscription
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:plugin_webhooks.manage

说明(契约原文)

The secret is returned only through the encrypted receipt window and must never be persisted by the browser. Reusing the same idempotency key replays the same receipt until it expires.

参数

createPluginWebhookSubscription 参数
名称位置类型必填说明
tenant_scope_idpathstring(uuid)是—
Idempotency-Keyheaderstring是—

请求体

application/json · 必填:是

createPluginWebhookSubscription 请求体
名称类型必填说明
namestring是—
target_urlstring(uri)是HTTPS target using an ASCII DNS hostname and either no explicit port or port 443. IP literals, IDNA xn-- labels, userinfo, query strings, fragments and other ports are forbidden. This pattern constrains request syntax only; server/runtime validation remains authoritative for public DNS resolution, address ranges, certificates, redirects and canonical paths.
event_typesarray<string: io.cdnca.certificate.v1.expiry_reached / io.cdnca.certificate.v1.status_changed / io.cdnca.deployment.v1.status_changed / io.cdnca.node.v1.status_changed / io.cdnca.security.v1.incident_detected / io.cdnca.site.v1.updated / io.cdnca.usage.v1.threshold_reached / io.cdnca.webhook.v1.test>是—
installation_authorization_idobject否Optional enabled tenant installation authorization. Required when subscribing to non-test domain events; test-only subscriptions must omit it.
site_idsarray<string(uuid)>否Optional site filter. When present the subscription receives only site-bound events (site.updated, security.incident_detected) of these tenant sites and no tenant-level events; at least one site-bound event type is required. Omit for all events. Immutable.

响应

createPluginWebhookSubscription 响应
状态码说明
201Created subscription with one-time secret

字段:subscription: Subscription secret: string

400Validation failed
401Authentication required
403Permission or tenant scope denied
409State or idempotency conflict
422Target or entitlement rejected
429Rate limited
503Store, secret, or write result unavailable

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 409 先回读资源当前状态;同一操作重试保持原 Idempotency-Key 和原请求内容。
  • 429 被限速:等待后再试,降低并发。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

GET /v1/tenant-scopes/{tenant_scope_id}/plugin-webhook-subscriptions/{subscription_id}

Get a webhook subscription

operationId
getPluginWebhookSubscription
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:plugin_webhooks.read

参数

getPluginWebhookSubscription 参数
名称位置类型必填说明
tenant_scope_idpathstring(uuid)是—
subscription_idpathstring(uuid)是—

响应

getPluginWebhookSubscription 响应
状态码说明
200Subscription

字段:id: string(uuid) tenant_scope_id: string(uuid) name: string target_url: string(uri) event_types: array<string: io.cdnca.certificate.v1.expiry_reached / io.cdnca.certificate.v1.status_changed / io.cdnca.deployment.v1.status_changed / io.cdnca.node.v1.status_changed / io.cdnca.security.v1.incident_detected / io.cdnca.site.v1.updated / io.cdnca.usage.v1.threshold_reached / io.cdnca.webhook.v1.test> status: string: active / revoked revision: integer active_secret_version_id: string(uuid) installation_authorization_id?: object installation_id?: object plugin_id?: string site_ids?: array<string(uuid)> created_at: string(date-time) updated_at: string(date-time)

401Authentication required
403Permission or tenant scope denied
404Resource not found
503Store, secret, or write result unavailable

失败时怎么办

  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 404 资源不存在或不属于当前租户。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

GET /v1/tenant-scopes/{tenant_scope_id}/plugin-webhook-subscriptions/{subscription_id}/deliveries

List subscription deliveries

operationId
listPluginWebhookDeliveries
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:plugin_webhooks.read

参数

listPluginWebhookDeliveries 参数
名称位置类型必填说明
tenant_scope_idpathstring(uuid)是—
subscription_idpathstring(uuid)是—
cursorquerystring否—
limitqueryinteger否—

响应

listPluginWebhookDeliveries 响应
状态码说明
200Delivery page

字段:items: array<Delivery> next_cursor?: string

400Validation failed
401Authentication required
403Permission or tenant scope denied
404Resource not found
503Store, secret, or write result unavailable

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 404 资源不存在或不属于当前租户。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

GET /v1/tenant-scopes/{tenant_scope_id}/plugin-webhook-subscriptions/{subscription_id}/deliveries/{delivery_id}

Get a delivery status

operationId
getPluginWebhookDelivery
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:plugin_webhooks.read

参数

getPluginWebhookDelivery 参数
名称位置类型必填说明
tenant_scope_idpathstring(uuid)是—
subscription_idpathstring(uuid)是—
delivery_idpathstring(uuid)是—

响应

getPluginWebhookDelivery 响应
状态码说明
200Delivery

字段:id: string(uuid) subscription_id: string(uuid) event_id: string(uuid) replay_of?: string(uuid) status: string: pending / queued / claimed / retry_scheduled / delivered / dead_letter_pending / dead_lettered / revoked attempt_count: integer next_attempt_at?: string(date-time) created_at: string(date-time) completed_at?: string(date-time)

401Authentication required
403Permission or tenant scope denied
404Resource not found
503Store, secret, or write result unavailable

失败时怎么办

  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 404 资源不存在或不属于当前租户。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

POST /v1/tenant-scopes/{tenant_scope_id}/plugin-webhook-subscriptions/{subscription_id}/deliveries/{delivery_id}/replays

Replay a delivered or dead-lettered delivery

operationId
replayPluginWebhookDelivery
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:plugin_webhooks.manage

参数

replayPluginWebhookDelivery 参数
名称位置类型必填说明
tenant_scope_idpathstring(uuid)是—
subscription_idpathstring(uuid)是—
delivery_idpathstring(uuid)是—
Idempotency-Keyheaderstring是—

请求体

application/json · 必填:是

响应

replayPluginWebhookDelivery 响应
状态码说明
202Accepted delivery

字段:delivery: Delivery

400Validation failed
401Authentication required
403Permission or tenant scope denied
404Resource not found
409State or idempotency conflict
422Target or entitlement rejected
429Rate limited
503Store, secret, or write result unavailable

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 404 资源不存在或不属于当前租户。
  • 409 先回读资源当前状态;同一操作重试保持原 Idempotency-Key 和原请求内容。
  • 429 被限速:等待后再试,降低并发。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

POST /v1/tenant-scopes/{tenant_scope_id}/plugin-webhook-subscriptions/{subscription_id}/delivery-replays

Replay the terminal deliveries of a time range

operationId
replayPluginWebhookDeliveryRange
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:plugin_webhooks.manage

说明(契约原文)

Re-sends every original (non-replay) delivery of this subscription created in [from, to) with a matching status and event type, up to limit. Each replay has the single-delivery guarantees: same event ID, new delivery ID, audit, rate limit, and the database re-checks that the bound installation still holds the event permission and the site filter still selects the event. A per-delivery idempotency key is derived from Idempotency-Key, so retrying the call never replays a delivery twice. Events from before the subscription existed are never sent.

参数

replayPluginWebhookDeliveryRange 参数
名称位置类型必填说明
tenant_scope_idpathstring(uuid)是—
subscription_idpathstring(uuid)是—
Idempotency-Keyheaderstring是—

请求体

application/json · 必填:是

replayPluginWebhookDeliveryRange 请求体
名称类型必填说明
fromstring(date-time)是Original delivery created at or after this time.
tostring(date-time)是Original delivery created before this time; at most 31 days after from.
statusesarray<string: delivered / dead_lettered>否Defaults to both terminal states; [dead_lettered] re-sends only failed deliveries.
event_typesarray<string: io.cdnca.certificate.v1.expiry_reached / io.cdnca.certificate.v1.status_changed / io.cdnca.deployment.v1.status_changed / io.cdnca.node.v1.status_changed / io.cdnca.security.v1.incident_detected / io.cdnca.site.v1.updated / io.cdnca.usage.v1.threshold_reached / io.cdnca.webhook.v1.test>否—
limitinteger是—

响应

replayPluginWebhookDeliveryRange 响应
状态码说明
202Replay batch outcome.

字段:items: array<object> remaining: boolean

400Validation failed
401Authentication required
403Permission or tenant scope denied
404Resource not found
409State or idempotency conflict
503Store, secret, or write result unavailable

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 404 资源不存在或不属于当前租户。
  • 409 先回读资源当前状态;同一操作重试保持原 Idempotency-Key 和原请求内容。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

POST /v1/tenant-scopes/{tenant_scope_id}/plugin-webhook-subscriptions/{subscription_id}/revoke

Revoke a webhook subscription and fence new deliveries

operationId
revokePluginWebhookSubscription
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:plugin_webhooks.manage

参数

revokePluginWebhookSubscription 参数
名称位置类型必填说明
tenant_scope_idpathstring(uuid)是—
subscription_idpathstring(uuid)是—
Idempotency-Keyheaderstring是—
If-Matchheaderstring是—

请求体

application/json · 必填:是

响应

revokePluginWebhookSubscription 响应
状态码说明
200Updated subscription

字段:subscription: Subscription

400Validation failed
401Authentication required
403Permission or tenant scope denied
404Resource not found
409State or idempotency conflict
412Revision mismatch
428If-Match is required
503Store, secret, or write result unavailable

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 404 资源不存在或不属于当前租户。
  • 409 先回读资源当前状态;同一操作重试保持原 Idempotency-Key 和原请求内容。
  • 412 版本已变:回读最新 ETag 后重新判断,再带新的 If-Match 提交。
  • 428 缺少前置条件:回读资源,带 If-Match(或页面要求的验证)再提交。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

POST /v1/tenant-scopes/{tenant_scope_id}/plugin-webhook-subscriptions/{subscription_id}/secret-rotations

Generate a pending secret rotation

operationId
rotatePluginWebhookSecret
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:plugin_webhooks.manage

参数

rotatePluginWebhookSecret 参数
名称位置类型必填说明
tenant_scope_idpathstring(uuid)是—
subscription_idpathstring(uuid)是—
Idempotency-Keyheaderstring是—
If-Matchheaderstring是—

请求体

application/json · 必填:是

响应

rotatePluginWebhookSecret 响应
状态码说明
201Pending secret rotation and one-time secret

字段:rotation_id: string(uuid) key_id: string(uuid) status: string expires_at: string(date-time) secret: string subscription_revision: integer

400Validation failed
401Authentication required
403Permission or tenant scope denied
404Resource not found
409State or idempotency conflict
412Revision mismatch
422Target or entitlement rejected
428If-Match is required
429Rate limited
503Store, secret, or write result unavailable

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 404 资源不存在或不属于当前租户。
  • 409 先回读资源当前状态;同一操作重试保持原 Idempotency-Key 和原请求内容。
  • 412 版本已变:回读最新 ETag 后重新判断,再带新的 If-Match 提交。
  • 428 缺少前置条件:回读资源,带 If-Match(或页面要求的验证)再提交。
  • 429 被限速:等待后再试,降低并发。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

POST /v1/tenant-scopes/{tenant_scope_id}/plugin-webhook-subscriptions/{subscription_id}/secret-rotations/{rotation_id}/activate

Activate a pending secret rotation

operationId
activatePluginWebhookSecret
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:plugin_webhooks.manage

参数

activatePluginWebhookSecret 参数
名称位置类型必填说明
tenant_scope_idpathstring(uuid)是—
subscription_idpathstring(uuid)是—
rotation_idpathstring(uuid)是—
Idempotency-Keyheaderstring是—
If-Matchheaderstring是—

请求体

application/json · 必填:是

响应

activatePluginWebhookSecret 响应
状态码说明
200Updated subscription

字段:subscription: Subscription

400Validation failed
401Authentication required
403Permission or tenant scope denied
404Resource not found
409State or idempotency conflict
412Revision mismatch
428If-Match is required
503Store, secret, or write result unavailable

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 404 资源不存在或不属于当前租户。
  • 409 先回读资源当前状态;同一操作重试保持原 Idempotency-Key 和原请求内容。
  • 412 版本已变:回读最新 ETag 后重新判断,再带新的 If-Match 提交。
  • 428 缺少前置条件:回读资源,带 If-Match(或页面要求的验证)再提交。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

POST /v1/tenant-scopes/{tenant_scope_id}/plugin-webhook-subscriptions/{subscription_id}/test-deliveries

Queue a signed CloudEvents test delivery

operationId
createPluginWebhookTestDelivery
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

全部需要:plugin_webhooks.manage

参数

createPluginWebhookTestDelivery 参数
名称位置类型必填说明
tenant_scope_idpathstring(uuid)是—
subscription_idpathstring(uuid)是—
Idempotency-Keyheaderstring是—

请求体

application/json · 必填:是

响应

createPluginWebhookTestDelivery 响应
状态码说明
202Accepted delivery

字段:delivery: Delivery

400Validation failed
401Authentication required
403Permission or tenant scope denied
404Resource not found
409State or idempotency conflict
422Target or entitlement rejected
429Rate limited
503Store, secret, or write result unavailable

失败时怎么办

  • 400 按字段说明修正参数或请求体再发;不要原样重试。
  • 401 检查凭据格式、是否过期或被轮换。
  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 404 资源不存在或不属于当前租户。
  • 409 先回读资源当前状态;同一操作重试保持原 Idempotency-Key 和原请求内容。
  • 429 被限速:等待后再试,降低并发。
  • 503 依赖暂不可用:稍后用原 Idempotency-Key 重试。

↑ 回到列表

GET /v1/tenant-scopes/{tenant_scope_id}/theme

operationId
getTenantTheme
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

契约没有单独标注权限码,权限要求见下方说明与 403 响应。

说明(契约原文)

The caller's own tenant theme state (any tenant member) and the downloaded themes it may choose.

参数

getTenantTheme 参数
名称位置类型必填说明
tenant_scope_idpathstring(uuid)是—

响应

getTenantTheme 响应
状态码说明
200Tenant theme

字段:schema: const cdnca.theme.tenant/v1 tenant_scope_id: string(uuid) selection_mode: any platform_allows: boolean selection_allowed: boolean selected_package_sha256?: string assigned_by?: any effective_package_sha256: string effective_theme_id: string follows_platform: boolean revision: integer domains: array<string> choices: array<object>

403Not a member of this tenant scope

失败时怎么办

  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。

↑ 回到列表

PUT /v1/tenant-scopes/{tenant_scope_id}/theme

operationId
selectTenantTheme
认证
  • 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
所需权限

契约没有单独标注权限码,权限要求见下方说明与 403 响应。

说明(契约原文)

Choose the tenant theme (tenant_theme.manage). package_sha256 "" follows the platform theme. Allowed only while the tenant may choose (its selection_mode allow, or inherit while the platform allows) and the platform has not assigned the tenant a theme. Audited as theme.tenant.activate.

参数

selectTenantTheme 参数
名称位置类型必填说明
tenant_scope_idpathstring(uuid)是—
If-Matchheaderstring是"<revision>" from ETag

请求体

application/json · 必填:是

selectTenantTheme 请求体
名称类型必填说明
package_sha256string是—

响应

selectTenantTheme 响应
状态码说明
200New tenant theme

字段:schema: const cdnca.theme.tenant/v1 tenant_scope_id: string(uuid) selection_mode: any platform_allows: boolean selection_allowed: boolean selected_package_sha256?: string assigned_by?: any effective_package_sha256: string effective_theme_id: string follows_platform: boolean revision: integer domains: array<string> choices: array<object>

403theme_permission_denied, theme_tenant_selection_denied or entitlement_feature_denied
404Package not downloaded
412theme_revision_conflict

失败时怎么办

  • 403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。
  • 404 资源不存在或不属于当前租户。
  • 412 版本已变:回读最新 ETag 后重新判断,再带新的 If-Match 提交。

↑ 回到列表