NodePort
Every node declares its inputs and outputs as an array ofNodePort objects:
Example
Built-in Data Types
FlowDrop ships with 21 built-in data types, each with a distinct color on the canvas:Basic Types
Collection Types
Complex Types
File & Media Types
Special Types
Your backend can extend this list by returning additional data types from the
/port-config API endpoint.
Port Data Type Configuration
Each data type is defined by aPortDataTypeConfig:
Compatibility Rules
By default, ports connect only when their data types match exactly (e.g.,string to string).
You can add custom compatibility rules to allow cross-type connections:
string ports to connect to json inputs:
/port-config API endpoint.
Dynamic Ports
Nodes can let users create additional ports at runtime through special config properties. WhendynamicInputs or dynamicOutputs appear in a node’s config, the editor creates port handles dynamically.
Example: Dynamic Input Ports
In the node’sconfigSchema, declare a dynamicInputs property:
dynamicOutputs.
Gateway Branches
Gateway nodes usebranches in config to create conditional output paths. Each branch becomes an output port handle.
Example
{nodeId}-output-success, {nodeId}-output-error, etc. Edges connect from these handles to downstream nodes.
Handle ID Format
All port handles — static, dynamic, and branch — follow the same naming convention:text_input.1-output-text— static output portmerger.1-input-extra_data— dynamic input portrouter.1-output-success— gateway branch output
sourceHandle and targetHandle fields.
Next Steps
- Node Structure — where ports are defined in the node JSON
- Edge Structure — how edges reference port handles
- Configuration Schema — JSON Schema for node config forms
- Node Types — visual appearance and connection behavior in the editor