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`.
AuthorizationBearer <rsk_live_*>Rensei API key presented as Authorization: Bearer rsk_live_. Required API-key scopes are recorded per operation in x-rensei-required-scopes.
application/json- body
orgId*stringMust match the authenticated org.
projectId?stringScopes snapshots to a specific project. Defaults to org-wide scope.
snapshots*array<>1 <= itemsSnapshots upserted.
application/json- response
ok*truetrueupserted*integerskipped?array<string>verbIds that were skipped (stale snapshot, duplicate, etc.).
curl -X POST 'https://app.rensei.ai/api/daemon/options/snapshot' \ -H 'Content-Type: application/json' \ -d '{ "orgId": "string", "snapshots": [ { "pluginId": "string", "verbId": "string", "options": null } ]}'{ "ok": true, "upserted": 0, "skipped": [ "string" ]}Cancel an undelivered daemon mutation
Cancels a pending mutation before it is delivered to the daemon. Returns 409 if already delivered or terminal. Returns 404 if the mutation does not exist or does not belong to the caller's org. Once a heartbeat delivers the mutation, the only way to "undo" is to enqueue the inverse op (e.g. `project.remove` for a wrongly applied `project.add`).
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.