DurableDashboard

LiveView-first web console for the Durable workflow engine.

The dashboard renders server-side via Phoenix LiveView, with a single ReactFlow island for the workflow-graph view. No SPA, no separate API — just one router macro.

Features

Installation

Add durable_dashboard alongside durable:

def deps do
[
{:durable, "~> 0.1.0-rc"},
{:durable_dashboard, "~> 0.1.0-rc"}
]
end

Usage

Mount the dashboard at any path in your host router:

defmodule MyAppWeb.Router do
use MyAppWeb, :router
# ...your existing pipelines and scopes...
use DurableDashboard.Router, mount: "/dashboard", durable: MyApp.Durable
end

The macro emits the dashboard's pipelines, asset routes, and live routes inline in your router. It must live at the top level — not inside a scope or pipe_through block, since it defines its own pipelines.

Options

URL surface

The macro emits these routes under your :mount prefix:

Authentication

Inject your host app's auth via :on_mount hooks — the dashboard does not ship its own auth layer:

use DurableDashboard.Router,
mount: "/dashboard",
durable: MyApp.Durable,
on_mount: [{MyAppWeb.UserAuth, :ensure_authenticated}]

Design

DESIGN.md codifies the design language: tokens, typography, spacing, motion, status semantics, component primitives, and composition patterns. New visual decisions are made there first, then applied in code.

License

MIT