Skip to content

Filament panel

albertoarena/filament-truss adds a Database schema page to a Filament panel: the same live ER diagram Truss draws, as a page of the panel rather than a frame around something else.

The Database schema page in a Filament panel, showing an ER diagram of a bookshop database with filter, focus and depth controls above it and a table count in the footer The Database schema page in a Filament panel, showing an ER diagram of a bookshop database with filter, focus and depth controls above it and a table count in the footer

Structure only, never row data. Tables, columns, indexes, foreign keys and column defaults. That is Truss’s promise unchanged: living inside an admin panel does not relax it, and the plugin has no write path of any kind.

What it is

A Filament page, built from the panel’s own components and styled by the panel’s own theme, so it reads as part of the admin rather than a visitor in it. The diagram takes its colours and radii from the panel’s own CSS custom properties, so a custom theme needs no configuration and light and dark follow the panel with no reload.

What it is not

Not the Truss dashboard in an iframe. That was considered and rejected: a frame around another page inherits none of the panel’s chrome, breaks its dark mode, and reads as a bolted-on tab. If a frame is all you want, Truss already ships a dashboard and you can link to it.

Not a second renderer. The page calls Truss::payload(), the facade method, and hands the array to Truss’s own frontend embedded in the page. There is no schema endpoint of its own and no reimplementation of the diagram, so nothing here can drift from what Truss draws everywhere else.

Not a way in. It exposes nothing Truss does not already expose, and it gains no write path by living inside an admin panel.

Requirements

PHP^8.2
Laravel^12.0 | ^13.0
Filament^5.0
Laravel Truss^1.13.1

Filament 4 is deliberately not supported.

Laravel Truss is where the schema, the diff and the structural findings come from, and it comes with the plugin as a regular dependency. Truss itself stays free of any Filament dependency, which is why these are two packages rather than one.

The floor is a patch above that line’s first release for a reason that belongs to this page: Truss v1.13.1 sizes the toolbar by the toolbar rather than by the window, and a panel is always narrower than the window it sits in. On v1.13.0 a panel with an expanded sidebar could leave the toolbar too little room while the responsive steps still believed they had the whole window, and the Filter field, the one control with no minimum width, absorbed the difference.

Next