MethodPathSummaryAuth
GET/v1/admin/admin-access-policyRead the platform administration access allowlistSession
PUT/v1/admin/admin-access-policySave the platform administration access allowlistSession

Contract file:api/openapi/v1/control.yaml

Operation details

GET /v1/admin/admin-access-policy

Read the platform administration access allowlist

operationId
getAdminAccessPolicy
Auth
  • Session: the Bearer session of a signed-in control plane user, used by the customer in their own control plane; a plugin must never ask for it.
Required permissions

The contract has no separate permission annotation; see the description below and the 403 response.

Description (from the contract)

Requires system_configuration.read on the platform scope. current_ip is the client address the control plane resolved for this request.

Responses

getAdminAccessPolicy Responses
StatusDescription
200Current policy (revision 0 and disabled when never saved).

Fields:revision: integer(int64) enabled: boolean allowlist: array<string> updated_at: string(date-time) current_ip: string

401Authentication failed or the session is invalid.
403The authenticated principal is not allowed to perform the action.

What to do on failure

  • 401 Check the credential format and whether it expired or was rotated.
  • 403 Check the key scopes, the owner’s current permissions and the tenant scope; never switch to a more privileged account.

↑ Back to list

PUT /v1/admin/admin-access-policy

Save the platform administration access allowlist

operationId
updateAdminAccessPolicy
Auth
  • Session: the Bearer session of a signed-in control plane user, used by the customer in their own control plane; a plugin must never ask for it.
Required permissions

The contract has no separate permission annotation; see the description below and the 403 response.

Description (from the contract)

Requires system_configuration.manage on the platform scope. When enabled, platform-scope sign-in, refresh and every platform-scope session request must come from an allowed address or CIDR prefix; loopback is always allowed; tenant sessions and API keys are not affected. A policy that would not allow the saving request's own address is refused (422 admin_access_self_lockout). Recovery when locked out: run `control-api admin-access-allowlist disable` as root on the control host. Requests refused by the policy get 403 admin_access_denied.

Request body

application/json · Required:Yes

updateAdminAccessPolicy Request body
NameTypeRequiredDescription
expected_revisioninteger(int64)Yes—
enabledbooleanYes—
allowlistarray<string>Yes—

Responses

updateAdminAccessPolicy Responses
StatusDescription
200Saved.

Fields:revision: integer(int64) enabled: boolean allowlist: array<string> updated_at: string(date-time) current_ip: string

400The request body or parameters are invalid.
401Authentication failed or the session is invalid.
403The authenticated principal is not allowed to perform the action.
409The requested state conflicts with an existing resource or idempotency fact.
422admin_access_self_lockout.

What to do on failure

  • 400 Fix the parameters or body per the field list; do not retry unchanged.
  • 401 Check the credential format and whether it expired or was rotated.
  • 403 Check the key scopes, the owner’s current permissions and the tenant scope; never switch to a more privileged account.
  • 409 Read the current state first; a retry of the same operation keeps the original Idempotency-Key and body.

↑ Back to list