The plugin's self-described settings JSON Schema, read from the SIGNED manifest's `settings_schema` field, which works for every plugin kind (store/secret/auth/hook), not just hooks. `hook` plugins keep the live describe-proxy behavior when describe answers (source: describe); a loaded hook whose describe answers null falls back server-side to the manifest baseline (source: manifest)

Changed on
get/api/v1/admin/plugins/{file}/schema

Request

  • The document declares no server URL.
  • Auth: one of:
    • API key in header x-admin-token
    • HTTP bearer

Path parameters

filestring required

Response

{name, schema, schema_error, trust, source}: schema null (with schema_error null) when the manifest carries none; a manifest that SET settings_schema but failed to parse instead reports schema_error (never collapsed into the same null as "no schema"). trust is trusted|unverified|rejected (the catalog vocabulary). source is describe (a loaded hook answered live) or manifest

kindstring nullable

The plugin's kind (hook | secret | …) from its manifest. Both GET /plugins/{file}/schema and POST /plugins/inspect emit it (null only when the plugin cannot be resolved to a manifest). Declared so codegen'd clients keep it.

namestring required
restart_required_defaultboolean nullable

The kind-derived restart-scoping default (busbar_plugin_sign::kind_restart_default), so busbar-ui need not hardcode the kind→default table. Emitted by both schema endpoints (null only when the plugin has no resolvable manifest/kind). Declared so codegen'd clients keep it.

schemaunknown required
schema_errorstring nullable required

Set only when the manifest's settings_schema was present but failed to parse as JSON; null for a manifest that genuinely never set the field. Never collapsed into a bare schema: null: a present-but-corrupt schema is a real authoring/packaging bug, not "this plugin simply has none."

sourcestring required

"describe" when a currently-loaded kind: hook answered its live describe wire message (the existing describe-proxy behavior, unchanged); "manifest" otherwise. Lets busbar-ui explain "why does this form look different from what I expected" without implementing the describe/manifest precedence rule itself.

truststring required

"trusted" | "unverified" | "rejected": the same vocabulary the plugin catalog already uses (never "verified").

versionstring nullable

The plugin's semantic version from its manifest. Present on POST /plugins/inspect (which previews an on-disk candidate's manifest); null/absent on GET /plugins/{file}/schema, which does not surface the version. Declared here so a codegen'd client keeps the field the inspect handler always sends, rather than silently dropping it.

Changes

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      endpoint added