featherbit UI
    Preparing search index...

    Function NodeInspector

    • 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 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

      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.