egyptdevru/filament-project-passport

For existing EgyptDev Studio customers. Support status, docs, and related features require an active EgyptDev Studio contract.

Maintainers

Package info

github.com/EgyptDevRu/filament-project-passport

Homepage

pkg:composer/egyptdevru/filament-project-passport

Transparency log

Fund package maintenance!

rchutchev

Statistics

Installs: 152

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.0.7 2026-08-15 07:31 UTC

This package is auto-updated.

Last update: 2026-08-15 07:36:43 UTC


README

Latest Version on Packagist Total Downloads

Built for existing EgyptDev Studio customers.

Support status, documentation, and other studio-backed features only work when this install has an active EgyptDev Studio contract. You can still install the package without one, but those features stay locked.

Features

  • Auto-registers a Developer Support navigation group (Status + Documentation) on every Filament panel — no PanelProvider edits required
  • Support Status page for EgyptDev development / maintenance / support coverage
  • Recursive .docs/**/*.md viewer with sidebar navigation, Mermaid diagrams, and in-viewer Markdown links
  • Configurable navigation label/icon/sort/group and authorization rules
  • License Audit for Composer package commercial-license compatibility
  • Dependency Audit for outdated packages, security advisories, Laravel & Filament

Requirements

  • PHP 8.3+
  • Laravel 11 / 12 / 13+
  • Filament ^3.0 | ^4.0 | ^5.0

Installation

composer require egyptdevru/filament-project-passport:"*"

This installs with a * version constraint so Composer always resolves the latest release on update.

Publish the config (UI + authorization only):

php artisan vendor:publish --tag="filament-project-passport-config"

Optionally publish views:

php artisan vendor:publish --tag="filament-project-passport-views"

After install, open any Filament panel — the Developer Support group appears at the end of the navigation with Status, Documentation, License Audit, and Dependency Audit.

Artisan commands and their schedule entries are registered by the package automatically. You do not need to add them to your app’s routes/console.php / Kernel schedule. You only need Laravel’s normal scheduler cron on the server (see below).

Configuration

Per-environment overrides via .env

The most commonly environment-specific settings can be overridden with .env variables instead of editing the published config file, so a local-only tweak (e.g. previewing docs on your machine) never gets committed and rolled out to staging/production by accident:

.env variable Config key Default
FILAMENT_PROJECT_PASSPORT_RESTRICTED_TO_ADMINS authorization.restricted_to_admins true
FILAMENT_PROJECT_PASSPORT_RESTRICT_NON_PRODUCTION authorization.restrict_non_production false
FILAMENT_PROJECT_PASSPORT_DOCS_ENABLED docs.enabled true
FILAMENT_PROJECT_PASSPORT_DOCS_ALLOW_NON_PRODUCTION docs.allow_non_production false
FILAMENT_PROJECT_PASSPORT_DEPENDENCY_AUDIT_USE_QUEUE dependency_audit.use_queue true

For example, to preview documentation content locally without touching the committed config:

# .env (local only, not committed)
FILAMENT_PROJECT_PASSPORT_DOCS_ALLOW_NON_PRODUCTION=true

If you run php artisan config:cache, re-run it after changing any of these .env values.

Authorization evaluation order

  1. If gate_name is set and defined, that Gate decides access
  2. Spatie / Shield permission:
    • If permission is set, that key is checked via can() / hasPermissionTo()
    • If permission is null and Filament Shield is installed, one custom permission View:DeveloperSupport (label [Package] Developer Support) is registered and checked only after it exists in Spatie's store (typically after php artisan shield:generate). The four Developer Support pages are excluded from Shield page discovery so they do not invent unused View:StatusPage-style keys.
    • If Shield is not installed, or the permission has not been generated yet, this step is skipped
  3. If allowed_emails is non-empty, only those emails may access
  4. If restricted_to_admins is true, only admin-like users (flags / roles) may access
  5. Otherwise, any authenticated Filament user may access

Override the Shield key or UI label in the published config (authorization.permission / authorization.permission_label). After changing them, re-run php artisan shield:generate so the Role Resource stays in sync.

Local documentation

Place Markdown files in your application root:

.docs/
  getting-started.md
  deployment/
    checklist.md

They appear in a sidebar on the Documentation page. Documentation is shown only when EgyptDev support status allows it.

Scheduled audits

These commands are auto-registered with the package:

# Refresh Composer dependency audit (skips when cache is less than 7 days; Sundays always refresh)
php artisan filament-project-passport:refresh-dependency-audit

# Force dependency audit refresh
php artisan filament-project-passport:refresh-dependency-audit --force

# Refresh Composer license audit (skips when cache is younger than 14 days)
php artisan filament-project-passport:refresh-license-audit

# Force license audit refresh
php artisan filament-project-passport:refresh-license-audit --force

The package also schedules them automatically (app timezone):

Job When
filament-project-passport:refresh-dependency-audit Every day at 03:00 (Sunday always refreshes; other days only if the cache is missing or ≥ 7 days old)
filament-project-passport:refresh-license-audit Every day at 03:00 (runs a refresh only if the cache is missing or ≥ 14 days old)

Dependency Audit invokes Composer via project composer.phar (if present) or the global composer binary. Place a composer.phar in the application root when the server has no global Composer.

Ensure the host application runs Laravel’s scheduler, for example:

* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1

Testing

composer test

Changelog

Please see CHANGELOG for more information on what has changed recently.

Credits

License

The MIT License (MIT). Please see License File for more information.