Overview
FlowDrop provides three ways to define configuration forms for nodes:| Approach | When to use |
|---|---|
Static configSchema | Fields are known ahead of time |
Dynamic configEdit.dynamicSchema | Fields depend on external data or user selections |
External configEdit.externalEditLink | Configuration is managed by a 3rd-party system |
Quick Start
DefineconfigSchema on your node metadata. FlowDrop auto-renders the form:

Field Types and Formats
Basic Types
type | Renders as |
|---|---|
string | Text input |
number | Number input |
integer | Integer input |
boolean | Toggle switch |
array | Repeatable field list |
object | Nested fieldset |
Format Overrides
Useformat to change how a field renders:
| Format | Renders as | Notes |
|---|---|---|
multiline | Textarea | Multi-line text input |
hidden | Nothing | Stored in config but not shown in UI |
range | Slider | Requires minimum and maximum |
json | CodeMirror editor | JSON syntax highlighting and validation |
code | CodeMirror editor | Alias for json |
markdown | Markdown editor | Toolbar and preview |
template | CodeMirror editor | {{ variable }} autocomplete |
autocomplete | Text input + suggestions | Fetches options from API |
Example
Select Fields
Simple Enum
Labeled Options with oneOf
Multi-Select (Checkboxes)
Autocomplete Fields
Fetch suggestions from a remote API as the user types:Template Fields
Template fields provide CodeMirror editing with{{ variable }} syntax highlighting and autocomplete from connected node outputs:
UISchema Layout
By default, fields render in property order. UseuiSchema to control layout and grouping — inspired by JSON Forms:
Element Types
| Type | Description |
|---|---|
Control | Renders a single form field. scope is a JSON Pointer to the property. |
VerticalLayout | Stacks child elements vertically. |
Group | Wraps elements in a collapsible fieldset with a label. |
Special Config Properties
Certain property names trigger automatic behaviors:| Property | Type | Behavior |
|---|---|---|
instanceTitle | string | Overrides the node’s displayed title |
instanceDescription | string | Overrides the node’s displayed description |
instanceBadge | string | Overrides the node’s badge |
nodeType | string | Switches visual rendering type |
dynamicInputs | DynamicPort[] | Creates user-defined input handles |
dynamicOutputs | DynamicPort[] | Creates user-defined output handles |
branches | Branch[] | Creates conditional output paths (gateway nodes) |
Dynamic Schema (Runtime)
UseconfigEdit.dynamicSchema to fetch config schemas from your backend at runtime:
- Direct schema:
{ type: "object", properties: {...} } - Wrapped:
{ data: {...} }or{ schema: {...} } - With UISchema:
{ configSchema: {...}, uiSchema: {...} }
External Edit Links
For configuration managed by a 3rd-party system:Standalone ConfigForm
You can render theConfigForm component independently in svelte projects: