Extensions API
The extensions API covers the full lifecycle of extension management within a workspace.
Extension Admin
Base path: /api/admin/workspaces/{workspaceId}/extensions
Install Extension
Installs an extension from the marketplace into a workspace. This triggers the full install pipeline: policy check → signature verification → compatibility check → DB provisioning → registry writes → runtime deploy → health check.
POST /api/admin/workspaces/{workspaceId}/extensions/install
Content-Type: application/jsonRequest Body
| Field | Type | Required | Description |
|---|---|---|---|
extensionKey | string | ✅ | Unique extension identifier (e.g. crm-extension) |
version | string | ✅ | Semantic version to install (e.g. 1.0.0) |
Example
curl -X POST http://localhost:8080/api/admin/workspaces/ws-uuid/extensions/install \
-H "Content-Type: application/json" \
-b cookies.txt \
-d '{"extensionKey": "crm-extension", "version": "1.0.0"}'Response 201 Created
{
"code": "SUCCESS",
"data": {
"id": "inst-uuid-...",
"extensionKey": "crm-extension",
"version": "1.0.0",
"status": "INSTALLED",
"enabled": true,
"error": null
}
}Extension Status Values
| Status | Description |
|---|---|
INSTALLING | Install pipeline in progress |
INSTALLED | Successfully installed and running |
FAILED | Installation failed (see error field) |
DISABLED | Installed but disabled |
UPDATING | Update in progress |
Uninstall Extension
POST /api/admin/workspaces/{workspaceId}/extensions/{extensionKey}/uninstallResponse 204 No Content
Update Extension
Updates an installed extension to a new version.
POST /api/admin/workspaces/{workspaceId}/extensions/{extensionKey}/update
Content-Type: application/jsonRequest Body
| Field | Type | Required | Description |
|---|---|---|---|
version | string | ✅ | Target version to update to |
Enable Extension
Re-enables a disabled extension.
POST /api/admin/workspaces/{workspaceId}/extensions/{extensionKey}/enableDisable Extension
Disables a running extension without uninstalling it.
POST /api/admin/workspaces/{workspaceId}/extensions/{extensionKey}/disableExtension Catalog
Base path: /api/catalog/workspaces/{workspaceId}/extensions
Read-only views of installed extensions and their capabilities.
List Installed Extensions
GET /api/catalog/workspaces/{workspaceId}/extensionsResponse
{
"code": "SUCCESS",
"data": [
{
"extensionKey": "crm-extension",
"version": "1.0.0",
"status": "INSTALLED",
"enabled": true
}
]
}Get Extension Details
GET /api/catalog/workspaces/{workspaceId}/extensions/{extensionKey}Get Extension Capabilities
Lists all capabilities registered by a specific extension.
GET /api/catalog/workspaces/{workspaceId}/extensions/{extensionKey}/capabilitiesResponse
{
"code": "SUCCESS",
"data": [
{
"capabilityKey": "crm.product.search",
"scope": "workspace",
"runtimeType": "IN_PROCESS"
}
]
}Extension Configuration
Base path: /api/workspaces/{workspaceId}/extensions/{extensionKey}/config
Extensions can declare configurable settings in their manifest. Use these endpoints to read and update per-workspace configuration.
GET /api/workspaces/{workspaceId}/extensions/{extensionKey}/config
POST /api/workspaces/{workspaceId}/extensions/{extensionKey}/config