Dashboards
Export Dashboard publishes a workflow as a web dashboard you can share. This page is the reference; for a walk-through, start with the dashboard tutorial.
An export is a folder containing:
| Part | What it is |
|---|---|
React app (src/, package.json) | The dashboard. Shows the panels and the parameter controls. |
backend/ | A standalone FastAPI server that re-runs your workflow when the viewer presses Recalculate. It uses the same engine and node code as EdgeWeave, so there's no second implementation to drift. |
projects/<name>/ | A copy of your project (data files included). |
Panels
A panel is one card on the dashboard, published by a node while the workflow runs. The Export Dashboard dialog lists every node that can publish one, and lets you choose which to include and at what size.
| Panel type | Shows | Published by |
|---|---|---|
| Chart (Plotly) | Interactive chart | The Plotly chart nodes (scatter, bar, histogram, heatmap, pie, box/violin, 3D scatter, scatter matrix), the SimWeave plot nodes, the PolyWeave occlusion plots, the map nodes in the demo project, and Load .npy (a 2-D array as a heatmap, a 1-D array as a line) |
| Table | Rows and columns | The ML evaluation nodes (Evaluate, Confusion Matrix, Cross-Validate, Feature Importance, Search Results), Load .npz (a list of its arrays), SimWeave Run Simulation (per-block summary), PolyWeave Branch Energy and Run Forward Chainer |
| KPI | One big number | KPI Tile, and the PolyWeave Pi-Scale Mean and Exponent Abs Mean diagnostics |
| Image | A picture | Read Image + Preview and Image Show. Pictures are shrunk to at most 900 pixels on a side so exports stay small |
| Text | A heading, notes or any text | Dashboard Text |
| Graph | A network view | The interactive graph plot node (Graph family, in the demo project's nodes) |
| 3D scene | An interactive 3D view | The Three.js 3D viewer nodes (in the demo project's nodes) |
Some nodes can't publish a panel, and their documentation says why. For example, LLM Chat would make a paid API call every time the viewer recalculates.
Layout
In the layout dialog each panel can be included or left out, and set to
Small (1×1), Wide (2×1), Large (2×2) or Full width. Panels are
placed in canvas order, top to bottom and then left to right. The choice is
saved in the .weave. Excluded panels' nodes still run, because they may feed
included ones; only the panel list is filtered.
Parameters
A Dashboard Parameter node declares a value the viewer can change.
| Type | Control | Limits enforced by the backend |
|---|---|---|
float, int | Number box, plus a slider when both Min and Max are set | Min, Max; whole numbers for int |
str | Text box | At most 1000 characters |
bool | Checkbox | Must be true or false |
select | Drop-down | Must be one of the comma-separated Options |
The viewer's values are checked strictly on the server: unknown names are rejected, types must match exactly, numbers must be finite and within range, and text is never evaluated. A rejected request runs nothing and tells the viewer what was wrong.
Things to know:
- Min, Max and Step only apply to numbers, and Options only to
select; the editor hides the fields that don't apply. - The export dialog warns about a parameter with no path to any panel, since changing it could never change what's on screen.
- A parameter can't change how many times a For Loop runs (that count is fixed when the graph is read).
Recalculating
- Recalculate re-runs the workflow with the current values and updates every panel. Runs are one at a time.
- Auto-recalculate (a checkbox shown when there are parameters, off by default and remembered in the browser) runs 600 ms after the last change, and only when a value really changed.
- The page opens with the last values anyone ran with, taken from the backend. If the backend isn't running it shows the export-time snapshot.
- If a value makes a node fail, the page lists the failing nodes rather than silently dropping their panels.
Running the export
cd backend
pip install -r requirements.txt
uvicorn main:app --port 8800
npm install
npm run dev # development
npm run build # static bundle in dist/
requirements.txt lists only the packages the exported code imports, with the
versions from your project's environment. Their own dependencies are installed
by pip.
Which node files travel with the export:
- The core nodes your workflow uses, and the node files those import.
- Any
.weaveyour workflow calls through Run Subsystem, and the nodes in it. - Any installed marketplace module that provides one of the nodes, so the
backend runs on a machine that doesn't have the module installed. Its own
requirements are added to
requirements.txt. - Your project's own nodes, with the project copy.
Settings
| Where | Setting | Purpose |
|---|---|---|
React app .env | VITE_BACKEND_URL | Where the backend is (default http://localhost:8800) |
React app .env | VITE_API_KEY | Sent as X-API-Key when the backend requires one |
Protecting the backend
With nothing configured the backend suits one person on their own machine: any
web page on that machine may call it, and no key is needed. Before letting
anyone else reach it, set these environment variables when starting uvicorn:
| Variable | Effect | Default |
|---|---|---|
EDGEWEAVE_API_KEY | Every request must send this value in an X-API-Key header, otherwise the answer is 401 | none |
EDGEWEAVE_CORS_ORIGINS | Comma-separated list of web addresses allowed to call the backend, for example https://dash.example.com | * (any) |
EDGEWEAVE_RECALC_TIMEOUT | Seconds one recalculation may take before the answer is 504; 0 for no limit | 300 |
EDGEWEAVE_RATE_LIMIT | Recalculations per client per minute before the answer is 429; 0 to turn off | 30 |
Notes:
- The dashboard sends the key when it was built with
VITE_API_KEYset. Anything starting withVITE_is visible to anyone who opens the built page, so this suits a private deployment. For a public dashboard, keep the key in a reverse proxy in front of the backend instead. - Put the backend behind HTTPS, or the key travels in clear text.
- A recalculation that times out is cancelled, but a node that is already executing may keep running until it finishes.
- The export contains no credentials (see below), but it does contain your project's data files. Check them before sharing.
Hosted and managed dashboards (a one-click deployment, a Dockerfile) aren't part of EdgeWeave yet.
Credentials
Password, token and API-key fields in nodes are blanked in the exported
workflow.json and in every copied .weave, and .env files aren't copied.
Supply them as environment variables when you start the backend; the export
summary lists the ones it needs. Examples: PGPASSWORD for the PostgreSQL
connection, OPENAI_API_KEY, ANTHROPIC_API_KEY, GEMINI_API_KEY and
OLLAMA_HOST for the AI nodes.
Troubleshooting
| Symptom | Likely cause |
|---|---|
| "Couldn't reach the backend" under the toolbar | The backend isn't running, or VITE_BACKEND_URL points elsewhere |
| "The backend requires an API key" | The backend has EDGEWEAVE_API_KEY set; rebuild the dashboard with VITE_API_KEY |
| A red message listing values | The backend rejected a value (out of range, wrong type); fix the control |
| A panel is missing after Recalculate | A node failed with those values; the failing nodes are listed under the controls |
| Export says a node "can't be shown on a dashboard" | The node publishes no panel type; its reason is shown in the dialog |
| A marketplace node fails in the backend | The module wasn't installed when you exported; install it and export again |