Publish a local plugin source version
Called by the daemon to register a new version of a locally-developed plugin. Validates the manifest, creates or updates the plugin record in the registry, and links the tarball URL if provided. Only `local-path` source-class mounts are accepted. Auth: `Bearer rsk_*` via `getCliOrSessionAuth`. The mount's `scopeOwnerId` must match the caller's `orgId`. Publish authority: human callers need the org admin or owner role; plain `api_key` callers need the `plugins:publish` scope; `oauth_agent` and registration-bound credentials are refused. Every publish appends a `plugin.published` audit event.
rsk_BearerAuthorizationBearer <rsk_live_*>Rensei API key presented as Authorization: Bearer rsk_live_. Required API-key scopes are recorded per operation in x-rensei-required-scopes.
id*stringPlugin source mount ID.
application/json- body
manifest*Plugin manifest (apiVersion rensei.dev/v1; metadata.id and metadata.version required).
tarballUrl?stringDownload URL for the plugin tarball.
uritarballSha256?stringSHA-256 hex digest of the tarball for integrity verification.
Plugin version published.
application/json- response
ok*truetruepluginId*stringversion*stringmountId*stringcurl -X POST 'https://app.rensei.ai/api/daemon/plugin-sources/string/publish' \ -H 'Content-Type: application/json' \ -d '{ "manifest": {}}'{ "ok": true, "pluginId": "string", "version": "string", "mountId": "string"}Upsert plugin verb option snapshots
Called by the daemon to push option metadata (e.g. autocomplete choices) for installed plugin verbs back to the platform so users see up-to-date option lists in the workflow editor. Accepts a batch of snapshots for one `(orgId, projectId)` scope. Each entry is upserted by `(orgId, projectId, pluginId, verbId)`. Auth: `Bearer rsk_*` via `getCliOrSessionAuth` OR runtime JWT. Cross-tenant guard on `body.orgId`. Additional project-boundary guard on `body.projectId`.
Fetch the bridge-adapter keyset, a current freshness statement, and the binary policy table.
Daemon trust bundle for declarative local-bridge adapters (ADR-2026-09-23 D7). The keyset and its freshness statement always travel together. 503 `adapter_trust_unavailable` is retryable. `consents` (D8) lists the calling host's unrevoked binary consents: {binaryName, subcommandSet, subcommandSetSha256, versionConstraint, hostParams, consentedAt}. Only a runtime-JWT worker whose host resolves gets rows, and only its own host's; every other caller gets []. Consents are authenticated, not signed: the daemon applies them as a policy change (permit what is listed, drop what is not) intersected with its host floor.