MethodPathSummaryAuth
GET/v1/platform/plugin-installationsList tenant plugin installation authorization state in the platform scope of the session (themes, rule data packs; exact plugin_installations.platform permissions)Session
GET/v1/platform/plugin-installations/{authorization_id}Read one tenant plugin installation authorization in the platform scope of the session (themes, rule data packs; exact plugin_installations.platform permissions)Session
POST/v1/platform/plugin-installations/{authorization_id}/confirmConfirm 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.Session
POST/v1/platform/plugin-installations/{authorization_id}/disableProtectively disable an installed plugin without consulting License in the platform scope of the session (themes, rule data packs; exact plugin_installations.platform permissions)Session
POST/v1/platform/plugin-installations/{authorization_id}/resumeResume a plugin this controller paused (disable) itself in the platform scope of the session (themes, rule data packs; exact plugin_installations.platform permissions)Session
PUT/v1/platform/plugin-installations/{authorization_id}/targetsReplace 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.Session
POST/v1/platform/plugin-installations/{authorization_id}/uninstallRevoke local plugin identity and record protective uninstall in the platform scope of the session (themes, rule data packs; exact plugin_installations.platform permissions)Session
POST/v1/platform/plugin-installations/{authorization_id}/upgradeApprove 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)Session

Contract file:api/control-plugin-installations.openapi.yaml

Operation details

GET /v1/platform/plugin-installations

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
NameInTypeRequiredDescription
X-Request-IDheaderstringYes—
limitqueryintegerNo—
cursorquerystringNo—
statusquerystring: pending_confirmation / authorized / installing / enabled / disabled / upgrade_failed_lkg_preserved / uninstalledNo—
plugin_idquerystringNo—

Responses

listPlatformPluginInstallations Responses
StatusDescription
200Stable keyset page

Fields: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

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

GET /v1/platform/plugin-installations/{authorization_id}

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
NameInTypeRequiredDescription
authorization_idpathstring(uuid)Yes—
X-Request-IDheaderstringYes—

Responses

getPlatformPluginInstallation Responses
StatusDescription
200Plugin 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

401Stable localized-client error envelope
403Stable localized-client error envelope
404Stable localized-client error envelope
502Stable 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

POST /v1/platform/plugin-installations/{authorization_id}/confirm

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
NameInTypeRequiredDescription
authorization_idpathstring(uuid)Yes—
If-MatchheaderstringYes—
Idempotency-KeyheaderstringYes—
X-Request-IDheaderstringYes—

Request body

application/json · Required:Yes

confirmPlatformPluginInstallation Request body
NameTypeRequiredDescription
verification_idstring(uuid)Yes—
approved_scopesarray<string>Yes—
sensitive_permissions_confirmedbooleanYes—
new_permissions_confirmedbooleanYes—
targetsPluginInstallationTargetsNoPlatform confirmation of a tenant plugin only (required there, refused elsewhere).

Responses

confirmPlatformPluginInstallation Responses
StatusDescription
200Durable mutation snapshot; replay returns the original snapshot

Fields: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

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

POST /v1/platform/plugin-installations/{authorization_id}/disable

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
NameInTypeRequiredDescription
authorization_idpathstring(uuid)Yes—
If-MatchheaderstringYes—
Idempotency-KeyheaderstringYes—
X-Request-IDheaderstringYes—

Request body

application/json · Required:Yes

Responses

disablePlatformPluginInstallation Responses
StatusDescription
200Durable mutation snapshot; replay returns the original snapshot

Fields: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

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

POST /v1/platform/plugin-installations/{authorization_id}/resume

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
NameInTypeRequiredDescription
authorization_idpathstring(uuid)Yes—
If-MatchheaderstringYes—
Idempotency-KeyheaderstringYes—
X-Request-IDheaderstringYes—

Request body

application/json · Required:Yes

Responses

resumePlatformPluginInstallation Responses
StatusDescription
200Durable mutation snapshot; replay returns the original snapshot

Fields: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

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

PUT /v1/platform/plugin-installations/{authorization_id}/targets

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
NameInTypeRequiredDescription
authorization_idpathstring(uuid)Yes—
If-MatchheaderstringYes—
Idempotency-KeyheaderstringYes—
X-Request-IDheaderstringYes—

Request body

application/json · Required:Yes

updatePlatformPluginInstallationTargets Request body
NameTypeRequiredDescription
all_tenantsbooleanYes—
tenant_scope_idsarray<string(uuid)>Yes—

Responses

updatePlatformPluginInstallationTargets Responses
StatusDescription
200Durable mutation snapshot; replay returns the original snapshot

Fields: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

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

POST /v1/platform/plugin-installations/{authorization_id}/uninstall

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
NameInTypeRequiredDescription
authorization_idpathstring(uuid)Yes—
If-MatchheaderstringYes—
Idempotency-KeyheaderstringYes—
X-Request-IDheaderstringYes—

Request body

application/json · Required:Yes

uninstallPlatformPluginInstallation Request body
NameTypeRequiredDescription
reasonstringYes—

Responses

uninstallPlatformPluginInstallation Responses
StatusDescription
200Durable mutation snapshot; replay returns the original snapshot

Fields: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

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

POST /v1/platform/plugin-installations/{authorization_id}/upgrade

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
NameInTypeRequiredDescription
authorization_idpathstring(uuid)Yes—
If-MatchheaderstringYes—
Idempotency-KeyheaderstringYes—
X-Request-IDheaderstringYes—

Request body

application/json · Required:Yes

upgradePlatformPluginInstallation Request body
NameTypeRequiredDescription
verification_idstring(uuid)Yes—
approved_scopesarray<string>Yes—
sensitive_permissions_confirmedbooleanYes—
new_permissions_confirmedbooleanYes—
targetsPluginInstallationTargetsNoPlatform confirmation of a tenant plugin only (required there, refused elsewhere).

Responses

upgradePlatformPluginInstallation Responses
StatusDescription
200Durable mutation snapshot; replay returns the original snapshot

Fields: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

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