接口详情
GET /v1/admin/site-publications
List publications for one tenant scope
- operationId
listAdminSitePublications- 认证
- 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
- 所需权限
全部需要:edge_publications.read
说明(契约原文)
Requires a platform-scoped principal with edge_publications.read. The opaque keyset cursor is bound to the tenant scope and stable ordering.
参数
listAdminSitePublications 参数| 名称 | 位置 | 类型 | 必填 | 说明 |
|---|
scope_id | query | string(uuid) | 是 | Platform route target tenant access-scope UUID. |
|---|
limit | query | integer | 否 | — |
|---|
cursor | query | string | 否 | Versioned base64url HMAC-SHA256 envelope returned by the immediately preceding page. It is bound to audience, resolved tenant scope, resource kind, and the rollout ID for deployment pages. It cannot be reused across those boundaries or modified. |
|---|
响应
listAdminSitePublications 响应| 状态码 | 说明 |
|---|
200 | Stable publication page. Response body is limited to 1 MiB. 字段:items: array<AdminPublication> current_source_revision: integer(int64) next_cursor?: string pending_modules?: array<PendingModule> automatic_failure?: AutomaticPublicationFailure |
|---|
400 | Invalid UUID, RFC3339 value, enum, cursor, header, query, or JSON body. |
|---|
401 | Authentication is missing or invalid. |
|---|
403 | Wrong audience, missing permission, or tenant scope override. |
|---|
503 | Storage, signing, cancellation, response validation, or another internal dependency is unavailable. |
|---|
失败时怎么办
400 按字段说明修正参数或请求体再发;不要原样重试。401 检查凭据格式、是否过期或被轮换。403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。503 依赖暂不可用:稍后用原 Idempotency-Key 重试。
↑ 回到列表
POST /v1/admin/site-publications
Publish the current Site/L4 revision to an immutable target snapshot
- operationId
publishSiteConfiguration- 认证
- 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
- 所需权限
全部需要:edge_publications.manage
说明(契约原文)
Requires a platform-scoped principal with edge_publications.manage. Exactly one nodes or line_group_snapshot target is accepted. The domain service performs source revision CAS, target eligibility checks, local non-grace entitlement verification, canonical compilation, signing, config/rollout/deployment/outbox persistence, idempotency, and success audit in one transaction. An unknown write result may be retried only with the same Idempotency-Key and original business payload.
参数
publishSiteConfiguration 参数| 名称 | 位置 | 类型 | 必填 | 说明 |
|---|
Idempotency-Key | header | string | 是 | Stable for the frozen business payload. Request, correlation, trace, and task identifiers may change on an identical retry. |
|---|
X-Request-ID | header | string(uuid) | 是 | — |
|---|
Traceparent | header | string | 是 | — |
|---|
X-Correlation-ID | header | string(uuid) | 否 | Defaults to X-Request-ID when omitted. |
|---|
X-Task-ID | header | string | 否 | — |
|---|
请求体
application/json · 必填:是
publishSiteConfiguration 请求体| 名称 | 类型 | 必填 | 说明 |
|---|
configuration_scope_id | string(uuid) | 是 | — |
|---|
expected_source_revision | integer(int64) | 是 | — |
|---|
target | ExplicitNodeTarget | LineGroupSnapshotTarget | 是 | — |
|---|
health_check | HealthCheck | 是 | — |
|---|
rollout | RolloutPolicyInput | 否 | Progressive policy for a target frozen at publication time. Nodes are ordered by UUID bytes, then assigned to the canary and fixed-size cohorts. Commands outside the released cohort remain held. The failure threshold is an absolute failed-node count within the current cohort; reaching it pauses the rollout. |
|---|
max_attempts | integer | 是 | — |
|---|
deadline | string(date-time) | 是 | Future RFC3339 deployment deadline. |
|---|
响应
publishSiteConfiguration 响应| 状态码 | 说明 |
|---|
201 | Created publication, or the stored result of an identical retry. 字段:id: string(uuid) configuration_scope_id: string(uuid) source_revision: integer(int64) config_version_id: string(uuid) rollout_id: string(uuid) canonical_source_sha256: string artifact_sha256: string target: object | object node_count: integer created_at: string(date-time) replayed?: boolean |
|---|
400 | Invalid UUID, RFC3339 value, enum, cursor, header, query, or JSON body. |
|---|
401 | Authentication is missing or invalid. |
|---|
403 | Wrong audience, missing permission, or tenant scope override. |
|---|
409 | Idempotency, target snapshot, rollout state, active deployment, or retry conflict. |
|---|
412 | The source or rollout expected revision is stale. |
|---|
422 | Entitlement or target/resource readiness prevents publication. |
|---|
503 | Storage, signing, cancellation, response validation, or another internal dependency is unavailable. |
|---|
失败时怎么办
400 按字段说明修正参数或请求体再发;不要原样重试。401 检查凭据格式、是否过期或被轮换。403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。409 先回读资源当前状态;同一操作重试保持原 Idempotency-Key 和原请求内容。412 版本已变:回读最新 ETag 后重新判断,再带新的 If-Match 提交。503 依赖暂不可用:稍后用原 Idempotency-Key 重试。
↑ 回到列表
GET /v1/admin/site-publications/{publication_id}
Get one publication in an explicit tenant scope
- operationId
getAdminSitePublication- 认证
- 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
- 所需权限
全部需要:edge_publications.read
参数
getAdminSitePublication 参数| 名称 | 位置 | 类型 | 必填 | 说明 |
|---|
publication_id | path | string(uuid) | 是 | — |
|---|
scope_id | query | string(uuid) | 是 | Platform route target tenant access-scope UUID. |
|---|
响应
getAdminSitePublication 响应| 状态码 | 说明 |
|---|
200 | Platform publication detail. 字段:id: string(uuid) configuration_scope_id: string(uuid) source_revision: integer(int64) config_version_id: string(uuid) rollout_id: string(uuid) canonical_source_sha256: string artifact_sha256: string target: object | object node_count: integer created_at: string(date-time) replayed?: boolean |
|---|
400 | Invalid UUID, RFC3339 value, enum, cursor, header, query, or JSON body. |
|---|
401 | Authentication is missing or invalid. |
|---|
403 | Wrong audience, missing permission, or tenant scope override. |
|---|
404 | Resource is absent in the authorized tenant scope. Cross-tenant IDs use the same response. |
|---|
503 | Storage, signing, cancellation, response validation, or another internal dependency is unavailable. |
|---|
失败时怎么办
400 按字段说明修正参数或请求体再发;不要原样重试。401 检查凭据格式、是否过期或被轮换。403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。404 资源不存在或不属于当前租户。503 依赖暂不可用:稍后用原 Idempotency-Key 重试。
↑ 回到列表
POST /v1/admin/site-publications/{publication_id}/rollback
Roll selected nodes back to their direct previous published configuration
- operationId
rollbackSitePublication- 认证
- 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
- 所需权限
全部需要:edge_publications.manage
说明(契约原文)
Creates a rollback rollout for the immutable configuration referenced by the selected publication. Every selected node must currently name that configuration as its direct previous version. No new configuration or artifact bytes are created, and rollback remains available when an entitlement no longer permits expansion.
参数
rollbackSitePublication 参数| 名称 | 位置 | 类型 | 必填 | 说明 |
|---|
publication_id | path | string(uuid) | 是 | — |
|---|
Idempotency-Key | header | string | 是 | Stable for the frozen business payload. Request, correlation, trace, and task identifiers may change on an identical retry. |
|---|
X-Request-ID | header | string(uuid) | 是 | — |
|---|
Traceparent | header | string | 是 | — |
|---|
X-Correlation-ID | header | string(uuid) | 否 | Defaults to X-Request-ID when omitted. |
|---|
X-Task-ID | header | string | 否 | — |
|---|
请求体
application/json · 必填:是
rollbackSitePublication 请求体| 名称 | 类型 | 必填 | 说明 |
|---|
configuration_scope_id | string(uuid) | 是 | — |
|---|
target | ExplicitNodeTarget | LineGroupSnapshotTarget | 是 | — |
|---|
health_check | HealthCheck | 是 | — |
|---|
rollout | RolloutPolicyInput | 否 | Progressive policy for a target frozen at publication time. Nodes are ordered by UUID bytes, then assigned to the canary and fixed-size cohorts. Commands outside the released cohort remain held. The failure threshold is an absolute failed-node count within the current cohort; reaching it pauses the rollout. |
|---|
max_attempts | integer | 是 | — |
|---|
deadline | string(date-time) | 是 | Future RFC3339 rollback deadline. |
|---|
响应
rollbackSitePublication 响应| 状态码 | 说明 |
|---|
201 | Created rollback rollout, or the stored result of an identical retry. 字段:publication_id: string(uuid) configuration_scope_id: string(uuid) config_version_id: string(uuid) rollout_id: string(uuid) action: string target: object | object node_count: integer created_at: string(date-time) replayed?: boolean |
|---|
400 | Invalid UUID, RFC3339 value, enum, cursor, header, query, or JSON body. |
|---|
401 | Authentication is missing or invalid. |
|---|
403 | Wrong audience, missing permission, or tenant scope override. |
|---|
404 | Resource is absent in the authorized tenant scope. Cross-tenant IDs use the same response. |
|---|
409 | Idempotency, target snapshot, rollout state, active deployment, or retry conflict. |
|---|
422 | Entitlement or target/resource readiness prevents publication. |
|---|
503 | Storage, signing, cancellation, response validation, or another internal dependency is unavailable. |
|---|
失败时怎么办
400 按字段说明修正参数或请求体再发;不要原样重试。401 检查凭据格式、是否过期或被轮换。403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。404 资源不存在或不属于当前租户。409 先回读资源当前状态;同一操作重试保持原 Idempotency-Key 和原请求内容。503 依赖暂不可用:稍后用原 Idempotency-Key 重试。
↑ 回到列表