mdmnv / filament-database-viewer
Reusable Filament page for browsing and editing relational database tables.
Package info
github.com/XojiakbarMadaminov/database-viewer
pkg:composer/mdmnv/filament-database-viewer
Requires
- php: ^8.1
- filament/filament: ^4.0
- livewire/livewire: ^3.0
- spatie/laravel-package-tools: ^1.92
Requires (Dev)
- orchestra/testbench: ^8.0|^9.0
- pestphp/pest: ^2.0
- pestphp/pest-plugin-laravel: ^2.0
README
A reusable Filament page that surfaces PostgreSQL tables, lets you inspect, search, sort, and optionally edit or delete rows from a configurable read/write connection. All strings, views, and actions are configurable/publishable so you can tailor the browser to any panel.
Installation
-
Require the package
composer require mdmnv/filament-database-viewer
-
Register the service provider (Laravel auto-discovers packages, but you can register it manually if discovery is disabled.)
'providers' => [ // ... Mdmnv\FilamentDatabaseViewer\DatabaseBrowserServiceProvider::class, ],
-
Publish the assets
php artisan vendor:publish --tag=database-browser-config php artisan vendor:publish --tag=database-browser-views php artisan vendor:publish --tag=database-browser-translations
-
Register the page with your Filament panel
use Mdmnv\FilamentDatabaseViewer\Filament\Pages\DatabaseBrowserPage; public function panel(Panel $panel): Panel { return $panel // ... ->pages([ DatabaseBrowserPage::class, ]); }
-
Configure authorization and limits
The published config (
config/database-browser.php) controls:- Read/write connection names
- Allowed/disallowed tables + listing limit
- Preview limit + column truncation threshold
- Toggle for write actions
- Authorization via a Gate ability or invokable policy class
- Navigation label/group/icon/sort
- Livewire namespace for multi-panel safety
Testing
Run Pest (or PHPUnit) once dependencies are installed:
./vendor/bin/pest
The suite covers table listing filters, modal preview formatting, and ensuring write mode stays disabled when configured.