Skip to main content

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:

PartWhat 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 typeShowsPublished by
Chart (Plotly)Interactive chartThe 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)
TableRows and columnsThe 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
KPIOne big numberKPI Tile, and the PolyWeave Pi-Scale Mean and Exponent Abs Mean diagnostics
ImageA pictureRead Image + Preview and Image Show. Pictures are shrunk to at most 900 pixels on a side so exports stay small
TextA heading, notes or any textDashboard Text
GraphA network viewThe interactive graph plot node (Graph family, in the demo project's nodes)
3D sceneAn interactive 3D viewThe 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.

TypeControlLimits enforced by the backend
float, intNumber box, plus a slider when both Min and Max are setMin, Max; whole numbers for int
strText boxAt most 1000 characters
boolCheckboxMust be true or false
selectDrop-downMust 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 .weave your 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​

WhereSettingPurpose
React app .envVITE_BACKEND_URLWhere the backend is (default http://localhost:8800)
React app .envVITE_API_KEYSent 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:

VariableEffectDefault
EDGEWEAVE_API_KEYEvery request must send this value in an X-API-Key header, otherwise the answer is 401none
EDGEWEAVE_CORS_ORIGINSComma-separated list of web addresses allowed to call the backend, for example https://dash.example.com* (any)
EDGEWEAVE_RECALC_TIMEOUTSeconds one recalculation may take before the answer is 504; 0 for no limit300
EDGEWEAVE_RATE_LIMITRecalculations per client per minute before the answer is 429; 0 to turn off30

Notes:

  • The dashboard sends the key when it was built with VITE_API_KEY set. Anything starting with VITE_ 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​

SymptomLikely cause
"Couldn't reach the backend" under the toolbarThe 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 valuesThe backend rejected a value (out of range, wrong type); fix the control
A panel is missing after RecalculateA 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 backendThe module wasn't installed when you exported; install it and export again