@galdor/dashboard
v0.3.1
Published
Embedded observability dashboard for galdor-bun (Bun.serve).
Readme
@galdor/dashboard
The embedded observability dashboard for
galdor. Serves a web UI and JSON/SSE
API over a galdor span store (traces.db): a run list with live tail, per-run
timeline + span tree + rendered execution graph, span detail, and standalone
graph rendering.
Runs on Bun.serve or as a plain fetch handler you can mount in any runtime.
Includes a Host-header allowlist (anti DNS-rebinding), body/node caps on graph
rendering, and light/dark themes.
Install
bun add @galdor/dashboard # or: npm install @galdor/dashboardUsage
import { startDashboard } from "@galdor/dashboard";
import { Store } from "@galdor/core/store";
const store = Store.openExisting("traces.db"); // written by @galdor/core observability
const server = startDashboard({ store, port: 7777 });
await server.ready;
console.log(`dashboard on http://127.0.0.1:${server.port}`);
// server.stop(true) to shut downMount the request handler in your own server instead:
import { createHandler } from "@galdor/dashboard";
const handler = createHandler(store, { allowedHosts: ["dash.internal"] });
const res = await handler(new Request("http://127.0.0.1/api/runs"));Routes
/— run list (live-tail via SSE);?limit=N/runs/:id— run detail (timeline, span tree, graph);/runs/:id/steps/graph— standalone graph explorer;?run=<id>server-renders a run's topology/api/runs,/api/runs/:id/spans,/api/runs/:id/graph[/model|/svg],/api/orphansPOST /api/graph/svg— render an arbitrary spec (1 MiB / 2000-node caps)/events— SSE live tail (?interval=, heartbeats);/healthz
Populate the store with setupTracing from
@galdor/core, or via the
galdor CLI (galdor ui).
License
Apache-2.0
