Shows the plugin type and read-only node id. For regular (non-fixed,
non-supernode) nodes, first renders a "Shared config" picker sourced from
pluginConfigs (filtered to the node's plugin type) that calls
onUpdateConfigRef, plus a "Save as shared config" button (shown whenever
the node's effective config is non-empty) that extracts the effective
config into a new shared config via onExtractPluginConfig and re-links
the node to it. Then picks the config editor: listener and client are
fixed pipeline endpoints — no configuration and no Delete Node button;
types with a schema from getPluginConfigSchema get a SchemaForm
that calls onUpdateConfig on every field change and, when a shared
config is selected, shows its values inline as the inherited layer with
override/added flags (see SchemaForm's inherited prop); all other types
fall back to JsonConfigEditor, which updates only on explicit apply and
keeps the read-only inherited-config blob above it. Updates replace the
node's entire local config object (the overrides layered on top of the
inherited config, if any), which is what gets serialized into the policy
YAML on save.
Parameters
__namedParameters: NodeInspectorProps
Returns Element|null
Remarks
The edited config is the same config block the Rust plugins deserialize
when instantiated via create_plugin in src/plugins/mod.rs. A local key
(including an explicit null) always wins over the same key inherited
from config_ref — merging happens at compile time on the gateway side.
Inspector panel for the selected policy node.
Shows the plugin type and read-only node id. For regular (non-fixed, non-supernode) nodes, first renders a "Shared config" picker sourced from
pluginConfigs(filtered to the node's plugin type) that callsonUpdateConfigRef, plus a "Save as shared config" button (shown whenever the node's effective config is non-empty) that extracts the effective config into a new shared config viaonExtractPluginConfigand re-links the node to it. Then picks the config editor:listenerandclientare fixed pipeline endpoints — no configuration and no Delete Node button; types with a schema from getPluginConfigSchema get a SchemaForm that callsonUpdateConfigon every field change and, when a shared config is selected, shows its values inline as the inherited layer with override/added flags (see SchemaForm'sinheritedprop); all other types fall back toJsonConfigEditor, which updates only on explicit apply and keeps the read-only inherited-config blob above it. Updates replace the node's entire localconfigobject (the overrides layered on top of the inherited config, if any), which is what gets serialized into the policy YAML on save.