stephenjude / filament-debugger
About
Installs: 26 221
Dependents: 2
Suggesters: 0
Security: 0
Stars: 86
Watchers: 3
Forks: 10
Open Issues: 0
Requires
- php: ^8.1
- filament/filament: ^3.0
- illuminate/contracts: ^11.0
- spatie/laravel-package-tools: ^1.16.0
Requires (Dev)
- laravel/pint: ^1.17
- nunomaduro/collision: ^8.0
- orchestra/testbench: ^9.0
- pestphp/pest: ^3.0
- pestphp/pest-plugin-laravel: ^3.0
- pestphp/pest-plugin-livewire: ^3.0
- phpunit/phpunit: ^11.0
README
Filament Debugger
Easily add Telescope, Horizon and Laravel Pulse to Filament admin panel.
Installation
You can install the package via composer:
composer require stephenjude/filament-debugger
Usages
use Stephenjude\FilamentDebugger\DebuggerPlugin; public function panel(Panel $panel): Panel { return $panel ->plugin( DebuggerPlugin::make() ); }
Custom Role/Permission
You can authorize the plugin for users with a specific role/permission:
DebuggerPlugin::make() ->authorize(condition: fn() => auth()->user()->can('view.debuggers'));
Custom Navigation Group
You can customize the navigation group:
use Stephenjude\FilamentDebugger\DebuggerPlugin; $panel->plugin( DebuggerPlugin::make() ->navigationGroup(condition: true, label: 'Debugger') );
Custom Navigation Items
You can customize the navigation items:
use Stephenjude\FilamentDebugger\DebuggerPlugin; $panel->plugin( DebuggerPlugin::make() ->horizonNavigation( condition: fn () => auth()->user()->can('view.horizon'), label: 'Horizon', icon: 'heroicon-o-globe-europe-africaglobe-europe-africa', url: url('horizon'), openInNewTab: fn () => true ) ->telescopeNavigation( condition: fn()=> auth()->user()->can('view.telescope'), label: 'Telescope', icon: 'heroicon-o-sparkles', url: url('telescope'), openInNewTab: fn () => true ) ->pulseNavigation( condition: fn () => auth()->user()->can('view.pulse'), label: 'Pulse', icon: 'heroicon-o-bolt', url: url('pulse'), openInNewTab: fn () => true ) );
Gates & Authorization
When using filament debuggers (Horizon, Telescope & Pulse) in production environment, we need to make sure that they are accessible to the authorized filament admin user.
To achive this, we need to use filament default authorization guard and your application defined permissions provided by overidding the gate()
and authorization()
methods inside the HorizonServiceProvider, TelescopeServiceProvider and PulseServiceProvider respectively.
protected function gate() { Gate::define('viewHorizon', function ($user) { return $user->can('view.debuggers'); }); } protected function authorization() { Auth::setDefaultDriver(config('filament.auth.guard')); parent::authorization(); }
Screenshots:
Testing
composer test
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security Vulnerabilities
Please review our security policy on how to report security vulnerabilities.
Credits
License
The MIT License (MIT). Please see License File for more information.