Skip to main content

publish_plugin

Publish a package to the workspace's private catalog and enable it for this project. The slug is derived from the name (lowercased, de-duplicated with -2/-3 suffixes against the workspace's catalog).

warning

The source code is stored as inert display data for the plugin's detail view — it is never executed and never ships into runs or generation bundles.

Request

POST /api/v1/ops/projects/{project}/plugins
ParameterInTypeRequiredDescription
projectpathstringyesThe project's public id.
namebodystringyesThe plugin's display name. The slug is derived from it.
descriptionbodystringnoShort description shown in the catalog.
categorybodystringnoCatalog category. Default Data & Utilities.
versionbodystringnoVersion string. Default 1.0.0.
toolsbodystring[]noTool names the plugin advertises.
sourcebodystringnoSource code, shown on the plugin's detail view.
filenamebodystringnoDisplay filename for the source. Default index.js.
visibilitybodystringnoprivate (default) or public.
curl -X POST -H "Authorization: Bearer $TESTVIBE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name": "My Plugin", "description": "Test-data helpers.", "tools": ["make_customer"]}' \
"$TESTVIBE_SERVER/api/v1/ops/projects/$PROJECT/plugins"

Response

201 Created — the created plugin document (same shape as a list_plugins entry), including the derived slug:

{
"slug": "my-plugin",
"name": "My Plugin",
"publisher": "Acme Inc",
"category": "Data & Utilities",
"version": "1.0.0",
"official": false,
"builtin": false,
"installed": true,
"tools": ["make_customer"]
}

Errors

HTTPWhen
400 invalid_requestMissing name, or malformed JSON.
404 not_foundNo such project in this workspace.