Skip to content

Easily add Telescope, Horizon and Laravel Pulse to Filament admin panel.

License

Notifications You must be signed in to change notification settings

stephenjude/filament-debugger

Repository files navigation

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:

use Stephenjude\FilamentDebugger\DebuggerPlugin;

$panel->plugin(
    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()
        ->groupNavigation(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.

About

Easily add Telescope, Horizon and Laravel Pulse to Filament admin panel.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages