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, "~> 1.0"},
    {:durable_dashboard, "~> 1.0"}
  ]
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