Passport UI plugin screenshot
Dark mode ready
Multilingual support
Supports v5.x

Passport UI by Ilya Beliaev

Community

Admin UI for managing Laravel Passport OAuth clients, tokens, and scopes.

Tags: Kit
Supported versions:
5.x 4.x
Ilya Beliaev avatar Author: Ilya Beliaev

Package health

Automated checks of this plugin's Composer package

82 / 100
Security 68
Maintenance 100
Ecosystem 100
15 checks
  • Failed: GitHub Actions pinned to SHA — View details on Plumb
  • Skipped: GitLab CI includes pinned to SHA
  • Passed: Open security advisories
  • Passed: Dependabot PR responsiveness — No open Dependabot PRs.
  • Skipped: Renovate MR responsiveness
  • Passed: Dependabot or Renovate configured
  • Failed: Dependency update cooldown configured — No cooldown configured in .github/dependabot.yml. View details on Plumb
  • Passed: Provides a security policy
  • Passed: Abandoned or archived — No consulted source marks the package abandoned (packagist, github).
  • Passed: Commit and release recency — Active: last commit 0 days ago; last release 47 days ago.
  • Passed: composer.lock not committed by library — composer.lock is absent from the released dist archive.
  • Passed: Dist archive is lean
  • Passed: Current Laravel version supported — Package dependencies resolve together with current Laravel 13.0.
  • Passed: Current PHP version supported — Constraint ^8.4|^8.5 supports current PHP 8.5.
  • Skipped: Current Symfony version supported
Third-party plugin. This is built by the community, not the Filament team. Filament does not review, endorse, or vet the security of plugins outside the filament/ namespace. Review the source and install at your own risk. Found malware or an unresolved security issue the author won't address? Report it .
Powered by Plumb Last scanned 1 week ago

Documentation

Latest Version on Packagist Security Rating ISO 27001 Audit Ready PHP 8.4/8.5 Filament 4/5 GitHub Tests Action Status Maintainability Code Coverage GitHub Code Style Action Status Total Downloads

Filament Passport UI Logo

Filament Passport UI provides a structured administrative interface for managing Laravel Passport OAuth resources using Filament.

This package focuses on administration, visibility, and governance not on implementing or enforcing OAuth flows.

Designed for applications that already rely on Filament as their primary admin panel and need to manage OAuth clients, tokens, scopes, and authorization concepts in a centralized, reviewable way without custom tooling or CLI workflows.

#Overview

Filament Passport UI adds an administration layer on top of Laravel Passport:

  • Manage OAuth clients explicitly by grant type (authorization code, client credentials, password, personal access, implicit, device)
  • View and revoke access tokens with full visibility into state and expiration
  • Model scopes as structured resource:action pairs instead of free-form strings
  • Track grants and authorization relationships centrally
  • Make all authorization decisions explicit and auditable

Important: Passport itself is not modified. This package operates entirely at the application and UI level.

#Features

#Central Management

  • Filter and manage OAuth clients by grant type
  • Enable or revoke clients via UI
  • Structure scopes (not ad-hoc strings)
  • Full visibility into authorization state
  • Explicit client-level and user-level scope assignment
  • Enforce Least Privilege: user scopes are always a strict subset of client scopes

#Filament Integration

  • Native Filament Resources and Pages
  • Consistent UX aligned with Filament conventions
  • Multi-step wizard for client creation with contextual steps based on grant type
  • No custom panels required

#Auditability & Compliance

  • All administrative actions recorded via spatie/laravel-activitylog
  • Full traceability of OAuth configuration changes
  • Supports compliance requirements (e.g. ISO/IEC 27001)
  • Audit logs remain application-owned

Note: Certification is organization-specific. This package enables auditability but does not constitute compliance by itself.

#Design Principles

  • No modifications to Passport internals
  • No assumptions about application architecture
  • Authorization logic remains the responsibility of the application
  • All administrative actions are explicit and reviewable

#What This Package Does NOT Do

  • Implement OAuth flows
  • Replace Passport
  • Enforce authorization decisions at runtime
  • Infer application-specific security rules

Authorization logic is the responsibility of the application and its developers.

#Self-Service Scope Allow-List

In self-service mode, which scopes a user may put on their own OAuth client is exactly such an application-specific rule: it depends on roles, permissions, plan or tenant. Implement N3XT0R\FilamentPassportUi\Contracts\SelfServiceScopeResolver and register it:

// config/passport-ui.php
'self_service_scope_resolver' => \App\Services\OAuth\YourScopeResolver::class,
public function allowedScopesFor(?Authenticatable $actor): ?Collection
{
    // null  = no restriction
    // empty = the actor is entitled to nothing, the scope selection is hidden
    return collect(['videos:read', 'videos:write']);
}

CreateClient and EditClient intersect every submitted scope with this list server-side, so the resolver is a real boundary and not just a UI filter. Leave the config key at null to let self-service users choose freely from the configured scope taxonomy.

#Why This Exists

Laravel Passport is standards-compliant but intentionally stays neutral on administration and governance. In real-world applications, this often results in:

  • OAuth clients created via CLI and never revisited
  • Scopes defined ad-hoc without structure
  • No central visibility of active tokens
  • Unclear ownership of integrations across teams

Filament Passport UI solves this by providing:

  • Central visibility into OAuth configuration
  • Structured scope modeling (resource:action)
  • Explicit administrative workflows
  • Single point of review and governance

Essential for systems with multiple integrations or teams managing OAuth access.

#Requirements

  • PHP ^8.4 / PHP ^8.5
  • Laravel ^12 / Laravel ^13
  • Laravel Passport ^13
  • Filament v4 / Filament v5

#Installation

composer require n3xt0r/filament-passport-ui
php artisan filament-passport-ui:install

If your application uses custom Passport models, publish the configuration file and adjust model mappings accordingly.

#Architecture

The package maintains strict separation of concerns:

  • Domain Logic: Laravel Passport Authorization Core (scope and grant modeling, authorization context resolution)
  • UI Layer: Filament Passport UI (administration interface, visibility, governance)

The API remains stable while authorization logic evolves in the core package.

#Migration to v2

Starting with v2, Filament Passport UI uses the Laravel Passport Authorization Core package.

Database schema and optional configuration are managed by the core package. The install command publishes the core migrations.

See Migration to v2 for detailed instructions.

#Development & Testing

composer install
composer test       # Run tests
composer serve      # Start local dev server

The workbench ships two panels against the same user, so both modes of the plugin can be exercised for real:

Panel URL Mode
Admin http://localhost:8000/admin full client and token management
User http://localhost:8000/user ->selfService(): own clients only, scope choice through the configured resolver

Login: [email protected] / password

#Documentation & Status

  • Docs: Full Documentation
  • Status: Actively developed. Feedback and discussion welcome on GitHub

The author

Ilya Beliaev avatar Author: Ilya Beliaev

I’m a software engineer with 15+ years of experience in backend development, system architecture, and DevOps. As a certified ISO 27001 Information Security Officer, I combine development expertise with a strong focus on security and compliance. I enjoy contributing to open-source and creating tools that make complex systems more secure and developer-friendly.

Plugins
3
Stars
14

From the same author