Skip to content

Conversation

N3XT0R
Copy link

@N3XT0R N3XT0R commented Sep 14, 2025

Repository: n3xt0r/filament-lockbox
Packagist: composer require n3xt0r/filament-lockbox

A Filament v4 plugin for secure, per-user field encryption.
It uses a split-key approach (server key + user-provided secret like passkey, TOTP, or crypto password) to ensure that even administrators cannot decrypt sensitive data without the user’s input.

✨ Features

  • 🔑 User-bound encryption keys – split key: server + user secret
  • 🧩 Drop-in components:
    • EncryptedTextInput → encrypts values before save
    • DecryptedTextDisplay → decrypts values for display
    • UnlockLockboxAction → prompts for crypto password, TOTP, or passkey
  • 🔒 Zero-knowledge for admins – data is unreadable without the user
  • 🌐 Fully translatable & configurable (custom key providers supported)
  • 📦 Separate lockbox table with polymorphic relation:
    • Works with any model
    • No changes to existing table schemas
    • Perfect for GDPR compliance & auditing

🚀 Installation

composer require n3xt0r/filament-lockbox

# Publish Spatie Passkeys migrations first:
php artisan vendor:publish --provider="Spatie\\LaravelPasskeys\\LaravelPasskeysServiceProvider" --tag="laravel-passkeys-migrations"
php artisan migrate

# Then install Lockbox
php artisan filament-lockbox:install

🔌 Usage

Register the plugin in your Filament panel provider:

// app/Providers/Filament/AdminPanelProvider.php

use Filament\Panel;
use Filament\PanelProvider;
use N3XT0R\FilamentLockbox\FilamentLockboxPlugin;

class AdminPanelProvider extends PanelProvider
{
    public function panel(Panel $panel): Panel
    {
        return $panel
            ->plugins([
                FilamentLockboxPlugin::make(),
            ]);
    }
}

Use the encrypted input in any Filament form:

use N3XT0R\FilamentLockbox\Forms\Actions\UnlockLockboxAction;
use N3XT0R\FilamentLockbox\Forms\Components\EncryptedTextInput;

$form
    ->schema([
        EncryptedTextInput::make('secret_notes')
            ->label('Secret Notes'),
    ])
    ->extraActions([
        UnlockLockboxAction::make(),
    ]);

- Add author profile `n3xt0r.md` with bio and links
- Add plugin file `n3xt0r-filament-lockbox.md` with metadata
- Add plugin preview image `n3xt0r-filament-lockbox.png` (16:9, transparent background)
- Add author picture `n3xt0r.jpg`
@N3XT0R N3XT0R requested a review from saade as a code owner September 14, 2025 23:29
@N3XT0R N3XT0R closed this Sep 15, 2025
@N3XT0R N3XT0R reopened this Sep 15, 2025
@N3XT0R N3XT0R changed the title Plugin Submission: Filament Lockbox Plugin Submission: Lockbox Sep 15, 2025
@saade saade added new plugin new author pending discord channel We’re working on cleaning up old channels to make room for new ones. labels Sep 27, 2025
Copy link
Member

@saade saade left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey! Your plugin does not currently have an image. Please add one as outlined in our Contributing Guide. The image must follow the 16:9 aspect ratio, be at least 2560x1440 pixels, and preferably be a JPEG.

You can use Beyond Code's banner generator to create a banner for your plugin. Let us know once this is added!

Also, if you could, please shorten your bio.

Thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
changes requested new author new plugin pending discord channel We’re working on cleaning up old channels to make room for new ones.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants