Flow Canvas
What this screen is for
The canvas is where the architecture takes shape: components become nodes, and the lines you draw between them become the wiring the application is generated from.
Before you start
| To do this | You need |
|---|---|
| Open App Builder | the App Builder access permission |
Opening it
The centre of the App Designer tab.
The Flow Canvas is the central workspace where you visually design your application architecture by placing components and connecting them.
πΈ Screenshot Placeholder: The canvas with three connected components. Mark: (1) a component node, (2) its input handle, (3) its output handle, (4) a connection line, (5) the Auto-Organize control.
Canvas Overview
- Infinite canvas with pan and zoom
- Drag-and-drop component placement
- Visual connection lines between components
Adding Components
Drag a component from the Component Palette onto the canvas. A new node appears displaying the componentβs icon, name, and default ports. Connection handles appear at the top and bottom.
Component Nodes
Each component on the canvas is represented as a node:
β β Input handle (top)
ββββββββββββββββββββββββββββ
β [Icon] [Component Name] β β Click to open config
ββββββββββββββββββββββββββββ€
β Port(s): 3000 β
ββββββββββββββββββββββββββββ
β β Output handle (bottom)
| Element | Purpose | Interaction |
|---|---|---|
| Icon | Visual category indicator | Display only |
| Component Name | Identifies the component | Click to open config |
| Port(s) | Exposed container port(s) | Editable in config |
| Input Handle | Receive connections from components | Click and drag to connect |
| Output Handle | Create connections to components | Click and drag to connect |
Connecting Components
Connections define dependencies, data flow, and communication paths between components.
Click and hold a componentβs output handle (bottom), drag to the target componentβs input handle (top), and release.
A directional arrow appears connecting the two components. The App Builder may auto-generate environment variables based on the connection pattern:
| Connection Pattern | Generated Variables Example |
|---|---|
| Frontend β Backend | REACT_APP_API_URL, API_URL |
| Backend β Database | DB_HOST, DB_PORT, DB_NAME, POSTGRES_USER, POSTGRES_PASSWORD |
| Backend β Infra | REDIS_HOST, REDIS_PORT, ELASTICSEARCH_URL |
| Backend β Message-Broker | RABBITMQ_URL, KAFKA_BOOTSTRAP_SERVERS |
| Backend β Streaming | PULSAR_SERVICE_URL |
Deleting Components
Open the config modal and click Delete, or press Backspace. All connections to/from the component are also removed. This action cannot be undone.
Deleting Connections
Click on a connection line to remove it. Auto-generated environment variables may also be removed.
Canvas Navigation
| Action | How To |
|---|---|
| Pan | Click and drag on empty canvas space |
| Zoom In/Out | Mouse wheel up/down |
| Fit All to View | Click the βFit Viewβ control button |
| Reset Zoom | Double-click on empty canvas space |
Sidecar Components
Sidecars are auxiliary containers that run alongside a main component (e.g., log collectors, service mesh proxies, monitoring agents).
To add a sidecar:
- Click the main component to open the Config Modal
- In the General tab, click βAdd Sidecarβ
The sidecar node appears automatically connected to the parent β no manual connection required. Sidecars receive suggested volume and bind-mount configurations from their parent. Deleting a sidecar removes both the node and its link to the parent.
Scenario
A backend that cannot reach its database.
- Look at the canvas before looking at any configuration. A missing connection is visible from across the room and is the most common cause.
- Check the direction. Connections run from an output handle to an input handle, and a reversed edge is not the same relationship.
- Open the backend node and check its Connected Components β see Component Configuration. If the database is not listed, the edge did not take.
- Redraw the connection and re-check. The environment variables generated between components follow the edge, so nothing downstream works until it is right.
When it doesnβt work
| Symptom | Cause | How to check | Fix |
|---|---|---|---|
| A dragged component did not appear | It was dropped outside the canvas | β | Drag onto the canvas area itself |
| An edge will not connect | Handles run output (bottom) to input (top) | The node handles | Drag from the lower handle to the upper one |
| Components are overlapping | Placement is manual | β | Use Auto-Organize |
| A connection exists but nothing was generated | The edge is drawn the wrong way | The nodeβs Connected Components list | Redraw it in the right direction |
Next
- Component Configuration β configure a node