defmodule AttachedDashboard do @moduledoc """ Phoenix LiveView dashboard for the `attached` file-attachment library. Provides a mounted dashboard for inspecting originals, variants, and orphans in a running application. ## Setup Add the router macro to your application's router: # router.ex import AttachedDashboard.Web.Router scope "/" do pipe_through :browser attached_dashboard "/admin/files" end ## Authentication The dashboard does not handle authentication itself. Mount it inside a `live_session` with your own `on_mount` hook, or pass `:on_mount` directly: attached_dashboard "/admin/files", on_mount: MyApp.RequireAdmin Your `on_mount` hook can halt and redirect unauthenticated users as usual: def on_mount(:default, _params, session, socket) do if session["current_user_admin?"] do {:cont, socket} else {:halt, Phoenix.LiveView.redirect(socket, to: "/login")} end end ## Options * `:on_mount` — `on_mount` hooks added to the dashboard's `live_session`. * `:as` — override the route name; defaults to `:attached_dashboard`. * `:csp_nonce_assign_key` — CSP nonce key (atom or map) pulled from conn assigns. """ end