Skip to content

Plugins API

Document ID: API-007
File Path: docs/09-api/plugins.md
Version: 1.0.0
Status: Draft
Owner: AI Platform Team
Last Updated: 2026-06-27


This document defines the API for managing plugins — installing, enabling, upgrading, granting permissions, and browsing the marketplace. It is the control-plane interface to the Plugin Engine.

All endpoints inherit the API conventions and require authentication.


ResourceDescription
pluginAn installed plugin (with versions + capabilities)
grantA permission grant for a plugin in a scope
listingA marketplace listing (read-only discovery)

MethodPathScope
GET/api/v1/pluginsplugins:read
GET/api/v1/plugins/{id}plugins:read
POST/api/v1/plugins:installplugins:admin
POST/api/v1/plugins/{id}:enableplugins:admin
POST/api/v1/plugins/{id}:disableplugins:admin
POST/api/v1/plugins/{id}:upgradeplugins:admin
POST/api/v1/plugins/{id}:rollbackplugins:admin
DELETE/api/v1/plugins/{id}plugins:admin
GET/api/v1/plugins/{id}/grantsplugins:read
POST/api/v1/plugins/{id}/grantsplugins:admin
DELETE/api/v1/plugins/{id}/grants/{gid}plugins:admin
GET/api/v1/marketplace/listingsplugins:read

{
"id": "plg_01H...",
"object": "plugin",
"name": "acme/github",
"installed_version": "1.4.0",
"channel": "stable",
"capabilities": [
{ "kind": "tool", "id": "github.create_issue", "status": "enabled" },
{ "kind": "workflow_activity", "id": "github.wait_for_pr", "status": "enabled" }
],
"permissions_requested": ["net:egress:api.github.com", "secret:read:github-token"],
"trust": "verified",
"status": "enabled"
}

Capability kinds and trust class follow the Plugin SDK overview.


POST /api/v1/plugins:install
{ "name": "acme/github", "version": "1.4.0", "channel": "stable" }

Returns an operation; the Plugin Engine verifies signature/provenance, resolves dependencies, and checks compatibility (see Distribution §7). Capabilities install disabled until granted and enabled.


Plugins request permissions; grants authorize them per scope:

POST /api/v1/plugins/plg_01H.../grants
{
"project": "support-bot",
"permissions": ["net:egress:api.github.com", "secret:read:github-token"]
}

The grant flow, scoping, and enforcement are specified in Plugin Permissions. A :upgrade requesting new permissions stages but does not enable the new capabilities until a fresh grant is made.


ActionEffect
:enable / :disableRoute capabilities in/out of their hosts (hot)
:upgradeInstall a new version, migrate, swap active (drains in-flight)
:rollbackRevert to the prior version
DELETEUninstall (blocked if other plugins depend on it)

Semantics match Plugin Versioning §7.


GET /api/v1/marketplace/listings?category=scm&verified=true

Returns marketplace listings filtered by the deployment’s marketplace policy (allowed publishers, required verification, permission-risk ceiling).


  • Install/upgrade verify signature, provenance, and SBOM (fail-closed).
  • Revoked versions are force-disabled (Distribution §8).
  • All lifecycle actions and grants are audited.

Emits plugin.installed, plugin.enabled, plugin.disabled, plugin.upgraded, and plugin.permission.* to the Event Bus.


Uses the standard error envelope. Notable codes: verification_failed, incompatible_version, unsatisfiable_dependencies, forbidden (grant required), conflict (dependency in use).




VersionDateDescription
1.0.02026-06-27Initial Plugins API specification