Admin

Register plugin

Register a plugin version the operator runs at an address. The request carries the exact quivr-plugin.yaml the plugin was built from, its endpoint and the settings it is installed with, with the shape and rules of a pin in the startup configuration (configuration, routes, kinds, spaces); plugin id and version come from the manifest. Quivr then checks it in the background with the Contract Runner against the endpoint, whose discovery must report the manifest's digest, using the normative fixtures and the fixtures the request carries. The registration is registered while its check runs, then validated or rejected with the report. The same idempotency key returns the same registration; a key already used for another registration or other fixtures is 409 idempotency_conflict; a new key for a rejected registration checks it again. 422 invalid_plugin lists what the engine refuses in the manifest, settings or fixture paths. The body is at most 8 MiB (413 request_too_large). Requires plugins:admin.

post/v0/admin/plugins

Request

  • Base URL
    https://docs.quivr.thevibecompany.co (the document declares no server; this is the origin it was published from)
  • Auth
    HTTP bearer

Request body

idempotency_keystring required
endpointstring required

Base URL where the operator runs the plugin, such as http://127.0.0.1:9900. A connector plugin needs https unless it is on loopback.

manifeststring required

The exact text of the quivr-plugin.yaml the plugin was built from; its sha256 must be the manifest digest the plugin's discovery reports.

configurationobject

Plugin configuration, validated against the manifest's configuration schema.

kindsstring[]

Alert kinds offered, a subset of those the manifest declares; absent offers them all.

spacesobject

Vector spaces of an ingestion plugin by space id, served or evaluation; absent serves the only declared space.

fixturesobject

The plugin's own test files, by path inside its fixtures folder (such as events.json or inputs/events.csv), each base64-encoded; at most 4 MiB decoded in total. The check runs them as quivr plugin test runs that folder, so a connector, or a normalizer for a media type without a normative fixture, can be certified. They are stored with the registration; a new idempotency key for a rejected registration checks it again with that request's fixtures.

Response

Successful response

registration_idstring required
plugin_idstring required
versionstring required
endpointstring required

Base URL where the operator runs this plugin version.

manifest_digeststring required
artifact_digeststring

Artifact digest the plugin reports, recorded as information. Absent when it reports none.

contributionsstring[] required
rolesstring[] required

Roles the manifest declares it can serve, such as normalizer:application/pdf, subscription:<plugin id> or connector:<kind>. The active plan says which it serves.

state'registered' | 'validated' | 'active' | 'draining' | 'inactive' | 'rejected' required

registered while the Contract Runner checks it, then validated or rejected; active while the active plan names it. Once a later plan leaves it out it is draining while pinned_work or subscriptions is above zero, then inactive.

pinned_workinteger required

Unfinished work pinned to a Pipeline Plan that names this registration, such as the processing of a receipt, a connector run or a rebuild. Work finishes on the plan it started on, so a registration a plan change left out keeps being called until this reaches zero. For an alert-rule plugin it also counts the pending evaluations of Subscription Versions that pin its version.

subscriptionsinteger required

For an alert-rule plugin, the Subscriptions of every Organization that are not deleted, enabled or disabled, whose current Version pins this plugin version. They keep it until migrateSubscriptionEvaluators moves them; 0 for other plugins.

created_atstring date-time required
updated_atstring date-time required

Changes

No recorded changes to this operation across all 1 revision of this API.