stephenjude/filament-debugger

3.1.2 2024-09-25 10:49 UTC

This package is auto-updated.

Last update: 2024-10-26 18:38:55 UTC


README

Filament Debugger

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

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.