Form editor for one shared plugin config: description plus the config
body, schema-driven when the profile's plugin type declares a form schema
(SchemaForm), raw JSON otherwise (a plain textarea owned by this panel).
Saving PUTs the whole definition; the gateway re-resolves and recompiles
every referencing policy atomically (400 surfaces in the toast on
breaking edits).
Remarks
The JSON-fallback textarea's buffer is owned here (not delegated to a
separate "Apply" step like NodeInspector's JsonConfigEditor) so that Save
always parses the exact text on screen: invalid JSON blocks the save with
an inline error instead of silently persisting a stale config.
Form editor for one shared plugin config: description plus the config body, schema-driven when the profile's plugin type declares a form schema (SchemaForm), raw JSON otherwise (a plain textarea owned by this panel). Saving PUTs the whole definition; the gateway re-resolves and recompiles every referencing policy atomically (400 surfaces in the toast on breaking edits).
Remarks
The JSON-fallback textarea's buffer is owned here (not delegated to a separate "Apply" step like NodeInspector's JsonConfigEditor) so that Save always parses the exact text on screen: invalid JSON blocks the save with an inline error instead of silently persisting a stale config.