方法路径摘要认证
GET/v1/admin/control-upgrade-planRead native standalone publication and matching execution status登录会话
POST/v1/admin/control-upgrade-planPublish a verified signed control-plane upgrade bundle登录会话
POST/v1/admin/control-upgrade-plan/issueHave the License service issue a signed plan and publish it登录会话
GET/v1/admin/control-upgrade-plan/optionsList the versions the master may upgrade to (version picker)登录会话
GET/v1/admin/control-upgrade-plan/run-logRead the native master upgrade script log and service-log tail登录会话

契约文件:api/control-upgrade-plan.openapi.yaml

接口详情

GET /v1/admin/control-upgrade-plan

Read native standalone publication and matching execution status

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

全部需要:control.upgrades.manage

说明(契约原文)

Available only in explicitly enabled native-standalone mode. Requires a platform session with control.upgrades.manage and rejects every query parameter. This no-store projection does not expose signed bundle bytes, download URLs, tokens, process identifiers, or filesystem paths. Unknown, corrupt, stale, or mismatched execution evidence is unavailable, never an invented not_started or success. Publication revision is zero exactly when publication is null. A running or completed execution is bound to that publication's plan, bundle digest, release sequence and, for a receipt, its versions and native-standalone target.

响应

getNativeControlUpgradePlanStatus 响应
状态码说明
200Installation-bound publication, execution, and runtime readiness.

字段:schema: string observed_at: string(date-time) mode: string publication_revision: integer(int64) publication: PublicationReceipt | null execution: NativeExecutionStatus runtime: object

400Stable error code and request identifier.
401Stable error code and request identifier.
403Stable error code and request identifier.
503Stable error code and request identifier.

失败时怎么办

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

↑ 回到列表

POST /v1/admin/control-upgrade-plan

Publish a verified signed control-plane upgrade bundle

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

全部需要:control.upgrades.manage

说明(契约原文)

Requires a platform session with control.upgrades.manage. If-Match is the current publication revision and Idempotency-Key is bound to the exact signed bundle. The bundle is verified against the local License trust snapshot before the Kubernetes Secret or installation-bound systemd PostgreSQL repository is updated with revision compare-and-swap. Systemd HA uses the same repository as the internal plan source and does not relax its strict-majority quorum. Native-standalone uses a separate root-owned executor, package digest and fail-closed maintenance gate; a new publication requires a trusted ready runner and recent authenticated plan-source read. It may interrupt the single management host and is not an HA upgrade. An exact authenticated native replay remains a read-only operation during drain and after the installed version changes: raw bundle bytes, idempotency key, expected revision, actor and scope must match the durable publication. The original publication receipt and ETag are returned.

参数

publishControlUpgradePlan 参数
名称位置类型必填说明
If-Matchheaderstring是—
Idempotency-Keyheaderstring是—

请求体

application/json · 必填:是

响应

publishControlUpgradePlan 响应
状态码说明
201A new monotonic publication was persisted.

字段:schema: string receipt_id: string plan_id: string(uuid) bundle_sha256: string publication_revision: integer(int64) expected_revision: integer(int64) channel_revision: integer(int64) release_sequence: integer(int64) installation_id: string(uuid) component: string current_version: string current_digest: string target_version: string target_digest: string rollback_version: string rollback_digest: string protocol_version: integer idempotency_sha256: string request_id: string actor_user_id: string(uuid) actor_scope_id: string(uuid) published_at: integer(int64)

200The exact idempotent publication was replayed without another write.

字段:schema: string receipt_id: string plan_id: string(uuid) bundle_sha256: string publication_revision: integer(int64) expected_revision: integer(int64) channel_revision: integer(int64) release_sequence: integer(int64) installation_id: string(uuid) component: string current_version: string current_digest: string target_version: string target_digest: string rollback_version: string rollback_digest: string protocol_version: integer idempotency_sha256: string request_id: string actor_user_id: string(uuid) actor_scope_id: string(uuid) published_at: integer(int64)

400Stable error code and request identifier.
401Stable error code and request identifier.
403Stable error code and request identifier.
409Stable error code and request identifier.
415Stable error code and request identifier.
503Stable error code and request identifier.

失败时怎么办

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

↑ 回到列表

POST /v1/admin/control-upgrade-plan/issue

Have the License service issue a signed plan and publish it

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

全部需要:control.upgrades.manage

说明(契约原文)

Available only in native-standalone mode. Requires a platform session with control.upgrades.manage, exactly one Idempotency-Key and no query parameter. The control API asks the License service for a parent upgrade grant (the channel target, the pin, or requested_artifact_id from the version picker) and a signed plan artifact bundle, then publishes it as POST /v1/admin/control-upgrade-plan does, at the current publication revision. A target the License service refuses is 409 upgrade_target_blocked with its reason_code (for example same_version when the parent grant is a reinstall, downgrade_not_supported for a rollback). Any other License business refusal (403/409/422 with a code) is passed through as 409 with the License code, for example upgrade_plan_artifact_bundle_unavailable or installation_banned. Only an unreachable License service, a timeout or a License 5xx is 503 control_upgrade_state_unavailable. Without a License client the answer is 503 plan_source_unavailable; a draining master is 503 control_upgrade_draining.

参数

issueNativeControlUpgradePlan 参数
名称位置类型必填说明
Idempotency-Keyheaderstring是—

请求体

application/json · 必填:是

issueNativeControlUpgradePlan 请求体
名称类型必填说明
requested_artifact_idstring(uuid)否The chosen option's artifact_id (lower case canonical UUID); absent keeps the channel target or the pin.

响应

issueNativeControlUpgradePlan 响应
状态码说明
201A new monotonic publication was persisted.

字段:schema: string receipt_id: string plan_id: string(uuid) bundle_sha256: string publication_revision: integer(int64) expected_revision: integer(int64) channel_revision: integer(int64) release_sequence: integer(int64) installation_id: string(uuid) component: string current_version: string current_digest: string target_version: string target_digest: string rollback_version: string rollback_digest: string protocol_version: integer idempotency_sha256: string request_id: string actor_user_id: string(uuid) actor_scope_id: string(uuid) published_at: integer(int64)

200The exact idempotent publication was replayed without another write.

字段:schema: string receipt_id: string plan_id: string(uuid) bundle_sha256: string publication_revision: integer(int64) expected_revision: integer(int64) channel_revision: integer(int64) release_sequence: integer(int64) installation_id: string(uuid) component: string current_version: string current_digest: string target_version: string target_digest: string rollback_version: string rollback_digest: string protocol_version: integer idempotency_sha256: string request_id: string actor_user_id: string(uuid) actor_scope_id: string(uuid) published_at: integer(int64)

400Stable error code and request identifier.
401Stable error code and request identifier.
403Stable error code and request identifier.
409version_conflict, idempotency_conflict, control_upgrade_plan_conflict, a passed-through License refusal code (ErrorEnvelope), or upgrade_target_blocked with reason_code.
415Stable error code and request identifier.
503Stable error code and request identifier.

失败时怎么办

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

↑ 回到列表

GET /v1/admin/control-upgrade-plan/options

List the versions the master may upgrade to (version picker)

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

全部需要:control.upgrades.manage

说明(契约原文)

Available only in native-standalone mode. Requires a platform session with control.upgrades.manage and rejects every query parameter. The License service lists the installation's selectable versions for the running control API version and protocol. Without a License client the answer is 503 plan_source_unavailable; a License service that cannot list versions is 503 upgrade_options_unavailable.

响应

listNativeControlUpgradeOptions 响应
状态码说明
200The License service's upgrade options.

字段:schema: string observed_at: string(date-time) options: UpgradeOptions

400Stable error code and request identifier.
401Stable error code and request identifier.
403Stable error code and request identifier.
503Stable error code and request identifier.

失败时怎么办

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

↑ 回到列表

GET /v1/admin/control-upgrade-plan/run-log

Read the native master upgrade script log and service-log tail

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

全部需要:control.upgrades.manage

说明(契约原文)

Available only in native-standalone mode. Requires a platform session with control.upgrades.manage and rejects every query parameter. The root-owned runner publishes a bounded log for the current execution: stable event and reason codes (rendered per locale by the console, never server text) and, at terminal points, the last journal lines of the control API, gateway and runner. Journal lines are stripped of control characters and redacted (URL query strings and userinfo, bearer/basic credentials, JWTs, secret-named flags and key/value pairs, private keys) by the runner and again before this response. Download events record only the artifact host. A log of another plan or sequence, or one that is missing or corrupt, is state unavailable with a null run_log.

响应

getNativeControlUpgradeRunLog 响应
状态码说明
200The current execution's run log, or unavailable.

字段:schema: string observed_at: string(date-time) state: string: available / unavailable run_log: NativeRunLog | null

400Stable error code and request identifier.
401Stable error code and request identifier.
403Stable error code and request identifier.
503Stable error code and request identifier.

失败时怎么办

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

↑ 回到列表