martinpetricko/filament-sentry-feedback

FilamentPHP package that integrates Sentry User Feedback

1.0.0 2025-04-10 14:19 UTC

This package is auto-updated.

Last update: 2025-04-10 14:55:50 UTC


README

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

Filament Sentry Feedback integrates the Sentry User Feedback widget with FilamentPHP.

Installation

You can install the package via composer:

composer require martinpetricko/filament-sentry-feedback

If you'd like to customize the translations used by the package, you can publish the language files:

php artisan vendor:publish --tag="filament-sentry-feedback-translations"

Optionally, publish the config file:

php artisan vendor:publish --tag="filament-sentry-feedback-config"

These are the contents of the published config file:

return [
    /**
    * https://docs.sentry.io/concepts/key-terms/dsn-explainer/#where-to-find-your-data-source-name-dsn
    */
    'dsn' => env('SENTRY_LARAVEL_DSN', env('SENTRY_DSN')),

    /**
    * https://docs.sentry.io/platforms/javascript/user-feedback/configuration/
    */
    'widget' => [
        'element_id' => 'sentry-feedback',
        'color_scheme' => ColorScheme::Auto,
        'show_branding' => false,
        'show_name' => true,
        'is_name_required' => false,
        'show_email' => true,
        'is_email_required' => true,
        'enable_screenshot' => true,
    ],
];

Set your Sentry DSN in the .env file:

SENTRY_LARAVEL_DSN=https://examplePublicKey@o0.ingest.sentry.io/0

Register the plugin in your Filament panel:

->plugins([
    \MartinPetricko\FilamentSentryFeedback\FilamentSentryFeedbackPlugin::make(),
])

You can preload authenticated user data for Sentry Feedback widget by defining SentryUser entity:

->plugins([
    \MartinPetricko\FilamentSentryFeedback\FilamentSentryFeedbackPlugin::make()
        ->sentryUser(function (): ?SentryUser {
            return new SentryUser(auth()->user()->name, auth()->user()->email);
        }),
])

You can override the global config per panel:

->plugins([
    \MartinPetricko\FilamentSentryFeedback\FilamentSentryFeedbackPlugin::make()
        ->dsn('https://examplePublicKey@o0.ingest.sentry.io/0')
        ->elementId('sentry-feedback')
        ->colorScheme(ColorScheme::Auto)
        ->showBranding(true)
        ->showName(true)
        ->isNameRequired(true)
        ->showEmail(true)
        ->isEmailRequired(true)
        ->enableScreenshot(true),
])

CSS Customization

To customize the appearance of the feedback widget:

  1. Create a custom theme for your panel.
  2. Override the Sentry Feedback widget's CSS variables

Testing

composer test

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.