Operation details
List tenant plugin installation authorization state in the platform scope of the session (themes, rule data packs; exact plugin_installations.platform permissions)
- operationId
listPlatformPluginInstallations- 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.
Parameters
listPlatformPluginInstallations Parameters| Name | In | Type | Required | Description |
|---|
X-Request-ID | header | string | Yes | — |
|---|
limit | query | integer | No | — |
|---|
cursor | query | string | No | — |
|---|
status | query | string: pending_confirmation / authorized / installing / enabled / disabled / upgrade_failed_lkg_preserved / uninstalled | No | — |
|---|
plugin_id | query | string | No | — |
|---|
Responses
listPlatformPluginInstallations Responses| Status | Description |
|---|
200 | Stable keyset page Fields:items: array<PluginInstallation> next_cursor?: string |
|---|
400 | Stable localized-client error envelope |
|---|
401 | Stable localized-client error envelope |
|---|
403 | Stable localized-client error envelope |
|---|
502 | Stable localized-client error envelope |
|---|
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.
↑ Back to list
Read one tenant plugin installation authorization in the platform scope of the session (themes, rule data packs; exact plugin_installations.platform permissions)
- operationId
getPlatformPluginInstallation- 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.
Parameters
getPlatformPluginInstallation Parameters| Name | In | Type | Required | Description |
|---|
authorization_id | path | string(uuid) | Yes | — |
|---|
X-Request-ID | header | string | Yes | — |
|---|
Responses
getPlatformPluginInstallation Responses| Status | Description |
|---|
200 | Plugin installation authorization state Fields: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 managed_by?: string: platform / tenant targets?: object |
|---|
401 | Stable localized-client error envelope |
|---|
403 | Stable localized-client error envelope |
|---|
404 | Stable localized-client error envelope |
|---|
502 | Stable localized-client error envelope |
|---|
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.404 The resource does not exist or belongs to another tenant.
↑ Back to list
Confirm declared and sensitive plugin scopes before installation in the platform scope of the session (exact plugin_installations.platform permissions). Themes and rule data packs install for the controller; tenant plugins (ui_page, external_https) require targets (all tenants or listed tenant scopes) and are then usable by those tenants without any tenant step. Targets on a platform resource, or a tenant plugin without them, is 422 plugin_installation_targets_invalid.
- operationId
confirmPlatformPluginInstallation- 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.
Parameters
confirmPlatformPluginInstallation Parameters| Name | In | Type | Required | Description |
|---|
authorization_id | path | string(uuid) | Yes | — |
|---|
If-Match | header | string | Yes | — |
|---|
Idempotency-Key | header | string | Yes | — |
|---|
X-Request-ID | header | string | Yes | — |
|---|
Request body
application/json · Required:Yes
confirmPlatformPluginInstallation Request body| Name | Type | Required | Description |
|---|
verification_id | string(uuid) | Yes | — |
|---|
approved_scopes | array<string> | Yes | — |
|---|
sensitive_permissions_confirmed | boolean | Yes | — |
|---|
new_permissions_confirmed | boolean | Yes | — |
|---|
targets | PluginInstallationTargets | No | Platform confirmation of a tenant plugin only (required there, refused elsewhere). |
|---|
Responses
confirmPlatformPluginInstallation Responses| Status | Description |
|---|
200 | Durable mutation snapshot; replay returns the original snapshot Fields:installation: PluginInstallation |
|---|
400 | Stable localized-client error envelope |
|---|
401 | Stable localized-client error envelope |
|---|
403 | Stable localized-client error envelope |
|---|
404 | Stable localized-client error envelope |
|---|
409 | Stable localized-client error envelope |
|---|
422 | Stable localized-client error envelope |
|---|
502 | Stable localized-client error envelope |
|---|
503 | Stable localized-client error envelope |
|---|
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.404 The resource does not exist or belongs to another tenant.409 Read the current state first; a retry of the same operation keeps the original Idempotency-Key and body.503 A dependency is unavailable: retry later with the original Idempotency-Key.
↑ Back to list
Protectively disable an installed plugin without consulting License in the platform scope of the session (themes, rule data packs; exact plugin_installations.platform permissions)
- operationId
disablePlatformPluginInstallation- 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.
Parameters
disablePlatformPluginInstallation Parameters| Name | In | Type | Required | Description |
|---|
authorization_id | path | string(uuid) | Yes | — |
|---|
If-Match | header | string | Yes | — |
|---|
Idempotency-Key | header | string | Yes | — |
|---|
X-Request-ID | header | string | Yes | — |
|---|
Request body
application/json · Required:Yes
Responses
disablePlatformPluginInstallation Responses| Status | Description |
|---|
200 | Durable mutation snapshot; replay returns the original snapshot Fields:installation: PluginInstallation |
|---|
400 | Stable localized-client error envelope |
|---|
401 | Stable localized-client error envelope |
|---|
403 | Stable localized-client error envelope |
|---|
404 | Stable localized-client error envelope |
|---|
409 | Stable localized-client error envelope |
|---|
502 | Stable localized-client error envelope |
|---|
503 | Stable localized-client error envelope |
|---|
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.404 The resource does not exist or belongs to another tenant.409 Read the current state first; a retry of the same operation keeps the original Idempotency-Key and body.503 A dependency is unavailable: retry later with the original Idempotency-Key.
↑ Back to list
Resume a plugin this controller paused (disable) itself in the platform scope of the session (themes, rule data packs; exact plugin_installations.platform permissions)
- operationId
resumePlatformPluginInstallation- 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)
Same as the tenant resume, in the platform scope of the session: requires plugin_installations.platform.manage, If-Match and Idempotency-Key, reads the signed license snapshot first, and only resumes a pause of this controller (paused_by=installation). A platform pause returns 409 plugin_installation_platform_paused and an unreachable license service 503; the plugin then stays paused.
Parameters
resumePlatformPluginInstallation Parameters| Name | In | Type | Required | Description |
|---|
authorization_id | path | string(uuid) | Yes | — |
|---|
If-Match | header | string | Yes | — |
|---|
Idempotency-Key | header | string | Yes | — |
|---|
X-Request-ID | header | string | Yes | — |
|---|
Request body
application/json · Required:Yes
Responses
resumePlatformPluginInstallation Responses| Status | Description |
|---|
200 | Durable mutation snapshot; replay returns the original snapshot Fields:installation: PluginInstallation |
|---|
400 | Stable localized-client error envelope |
|---|
401 | Stable localized-client error envelope |
|---|
403 | Stable localized-client error envelope |
|---|
404 | Stable localized-client error envelope |
|---|
409 | Stable localized-client error envelope |
|---|
422 | Stable localized-client error envelope |
|---|
502 | Stable localized-client error envelope |
|---|
503 | Stable localized-client error envelope |
|---|
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.404 The resource does not exist or belongs to another tenant.409 Read the current state first; a retry of the same operation keeps the original Idempotency-Key and body.503 A dependency is unavailable: retry later with the original Idempotency-Key.
↑ Back to list
Replace the tenants a platform-held tenant plugin is installed for (exact plugin_installations.platform.manage). If-Match is targets.revision; the same Idempotency-Key with the same body while it is the last change answers the current state again. Tenants removed from the targets lose the plugin's pages, identity keys, webhook subscriptions and events at once.
- operationId
updatePlatformPluginInstallationTargets- 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.
Parameters
updatePlatformPluginInstallationTargets Parameters| Name | In | Type | Required | Description |
|---|
authorization_id | path | string(uuid) | Yes | — |
|---|
If-Match | header | string | Yes | — |
|---|
Idempotency-Key | header | string | Yes | — |
|---|
X-Request-ID | header | string | Yes | — |
|---|
Request body
application/json · Required:Yes
updatePlatformPluginInstallationTargets Request body| Name | Type | Required | Description |
|---|
all_tenants | boolean | Yes | — |
|---|
tenant_scope_ids | array<string(uuid)> | Yes | — |
|---|
Responses
updatePlatformPluginInstallationTargets Responses| Status | Description |
|---|
200 | Durable mutation snapshot; replay returns the original snapshot Fields:installation: PluginInstallation |
|---|
400 | Stable localized-client error envelope |
|---|
401 | Stable localized-client error envelope |
|---|
403 | Stable localized-client error envelope |
|---|
404 | Stable localized-client error envelope |
|---|
409 | Stable localized-client error envelope |
|---|
422 | Stable localized-client error envelope |
|---|
502 | Stable localized-client error envelope |
|---|
503 | Stable localized-client error envelope |
|---|
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.404 The resource does not exist or belongs to another tenant.409 Read the current state first; a retry of the same operation keeps the original Idempotency-Key and body.503 A dependency is unavailable: retry later with the original Idempotency-Key.
↑ Back to list
Revoke local plugin identity and record protective uninstall in the platform scope of the session (themes, rule data packs; exact plugin_installations.platform permissions)
- operationId
uninstallPlatformPluginInstallation- 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.
Parameters
uninstallPlatformPluginInstallation Parameters| Name | In | Type | Required | Description |
|---|
authorization_id | path | string(uuid) | Yes | — |
|---|
If-Match | header | string | Yes | — |
|---|
Idempotency-Key | header | string | Yes | — |
|---|
X-Request-ID | header | string | Yes | — |
|---|
Request body
application/json · Required:Yes
uninstallPlatformPluginInstallation Request body| Name | Type | Required | Description |
|---|
reason | string | Yes | — |
|---|
Responses
uninstallPlatformPluginInstallation Responses| Status | Description |
|---|
200 | Durable mutation snapshot; replay returns the original snapshot Fields:installation: PluginInstallation |
|---|
400 | Stable localized-client error envelope |
|---|
401 | Stable localized-client error envelope |
|---|
403 | Stable localized-client error envelope |
|---|
404 | Stable localized-client error envelope |
|---|
409 | Stable localized-client error envelope |
|---|
502 | Stable localized-client error envelope |
|---|
503 | Stable localized-client error envelope |
|---|
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.404 The resource does not exist or belongs to another tenant.409 Read the current state first; a retry of the same operation keeps the original Idempotency-Key and body.503 A dependency is unavailable: retry later with the original Idempotency-Key.
↑ Back to list
Approve a compatible plugin upgrade and any newly declared scopes in the platform scope of the session (themes, rule data packs; exact plugin_installations.platform permissions)
- operationId
upgradePlatformPluginInstallation- 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.
Parameters
upgradePlatformPluginInstallation Parameters| Name | In | Type | Required | Description |
|---|
authorization_id | path | string(uuid) | Yes | — |
|---|
If-Match | header | string | Yes | — |
|---|
Idempotency-Key | header | string | Yes | — |
|---|
X-Request-ID | header | string | Yes | — |
|---|
Request body
application/json · Required:Yes
upgradePlatformPluginInstallation Request body| Name | Type | Required | Description |
|---|
verification_id | string(uuid) | Yes | — |
|---|
approved_scopes | array<string> | Yes | — |
|---|
sensitive_permissions_confirmed | boolean | Yes | — |
|---|
new_permissions_confirmed | boolean | Yes | — |
|---|
targets | PluginInstallationTargets | No | Platform confirmation of a tenant plugin only (required there, refused elsewhere). |
|---|
Responses
upgradePlatformPluginInstallation Responses| Status | Description |
|---|
200 | Durable mutation snapshot; replay returns the original snapshot Fields:installation: PluginInstallation |
|---|
400 | Stable localized-client error envelope |
|---|
401 | Stable localized-client error envelope |
|---|
403 | Stable localized-client error envelope |
|---|
404 | Stable localized-client error envelope |
|---|
409 | Stable localized-client error envelope |
|---|
422 | Stable localized-client error envelope |
|---|
502 | Stable localized-client error envelope |
|---|
503 | Stable localized-client error envelope |
|---|
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.404 The resource does not exist or belongs to another tenant.409 Read the current state first; a retry of the same operation keeps the original Idempotency-Key and body.503 A dependency is unavailable: retry later with the original Idempotency-Key.
↑ Back to list