Installation
composer require jeffgreco13/filament-breezy
Publish the package assets and config:
php artisan vendor:publish --provider="JeffGreco13\FilamentBreezy\FilamentBreezyServiceProvider" --tag="filament-breezy-config"
php artisan vendor:publish --provider="JeffGreco13\FilamentBreezy\FilamentBreezyServiceProvider" --tag="filament-breezy-assets"
Service Provider Registration
Add the service provider to config/app.php under providers:
JeffGreco13\FilamentBreezy\FilamentBreezyServiceProvider::class,
First Use Case
Register the FilamentBreezyPlugin in your Filament panel provider:
public function panel(Panel $panel): Panel
{
return $panel
->plugin(FilamentBreezyPlugin::make());
}
Run Migrations
php artisan migrate
config/filament-breezy.php (customize validation, branding, and features like 2FA enforcement).app/Providers/Filament/AdminPanelProvider.php (ensure the plugin is added).JeffGreco13\FilamentBreezy\Models\User or configure the package to use your existing model via the config.MyProfile page. Customize the disk and path in the config:
'avatar' => [
'disk' => 'public',
'path' => 'avatars',
],
php artisan vendor:publish --provider="JeffGreco13\FilamentBreezy\FilamentBreezyServiceProvider" --tag="filament-breezy-views"
Then add fields to resources/views/vendor/filament-breezy/profile/form.blade.php.UpdatePassword page with customizable validation. Override rules in the config:
'password' => [
'min_length' => 12,
'require_uppercase' => true,
'require_lowercase' => true,
'require_numbers' => true,
'require_symbols' => true,
],
ConfirmPasswordAction:
use JeffGreco13\FilamentBreezy\Actions\ConfirmPasswordAction;
public static function table(Table $table): Table
{
return $table
->actions([
ConfirmPasswordAction::make('delete')
->action(function (Table $table) {
// Your delete logic
}),
]);
}
'two_factor' => [
'enforce' => true,
],
TwoFactorAuth page. Customize the number of codes in the config:
'two_factor' => [
'recovery_codes' => [
'count' => 10,
],
],
'passkey' => [
'enabled' => true,
],
SanctumTokens page allows users to create, revoke, and list personal access tokens. Customize token permissions in the config:
'sanctum' => [
'abilities' => [
'create',
'read',
'update',
'delete',
],
],
php artisan vendor:publish --provider="JeffGreco13\FilamentBreezy\FilamentBreezyServiceProvider" --tag="filament-breezy-views"
Login controller or using Filament’s built-in socialite support.Custom User Model:
If you’re not using Laravel’s default User model, configure the package to use your model in config/filament-breezy.php:
'models' => [
'user' => App\Models\User::class,
],
Ensure your model uses the MustVerifyEmail, MustVerifyTwoFactor, and HasApiTokens traits if applicable.
Localization: Translate the package’s strings by publishing the language files:
php artisan vendor:publish --provider="JeffGreco13\FilamentBreezy\FilamentBreezyServiceProvider" --tag="filament-breezy-lang"
Then add translations to resources/lang/{locale}/filament-breezy.php.
Theming: Customize the package’s CSS by publishing the assets and overriding the styles:
php artisan vendor:publish --provider="JeffGreco13\FilamentBreezy\FilamentBreezyServiceProvider" --tag="filament-breezy-assets"
Add your CSS to public/vendor/filament-breezy/css/filament-breezy.css.
API Integration:
Use Sanctum tokens for API authentication. The SanctumTokens page generates tokens that can be used in API requests:
Authorization: Bearer {sanctum_token}
Teams Support:
If you’re using Laravel’s HasTeams trait, ensure your user model includes it and configure the package to support teams in the config:
'teams' => [
'enabled' => true,
],
Migration Conflicts:
users table, the package’s migrations might conflict. Review the migrations in database/migrations/ and adjust them to match your schema before running php artisan migrate.2FA Enforcement:
'enforce' => true) will block all users who haven’t enabled it. Test this in a staging environment first, as it can lock out users unexpectedly.Passkey Browser Support:
Sanctum Token Permissions:
Avatar Storage:
'disk' => 'public') exists and is writable:
php artisan storage:link
Login Issues:
php artisan cache:clear
php artisan session:clear
sessions and failed_jobs tables for errors.2FA Errors:
'two_factor' => [
'debug' => true,
],
JeffGreco13\FilamentBreezy entries.CSRF Token Mismatch:
web:
->middleware([
'web',
'auth',
]),
Passkey Debugging:
Custom Validation: Extend the package’s validation rules by creating a custom form or using Filament’s form modifiers. For example, to add a custom rule to the password update form:
use JeffGreco13\FilamentBreezy\Forms\Components\PasswordField;
PasswordField::make('password')
->rules([
'required',
'confirmed',
'custom_rule|arg1,arg2',
]),
Conditional Features: Disable features based on user roles or environments. For example, disable 2FA in development:
How can I help you explore Laravel packages today?