Skip to content

Package Demo Audit Harness

Demo app path: /Users/ben/Sites/packages/capell/capell-package-demo-audit Browser URL: http://127.0.0.1:8000 PHP runtime: Homebrew PHP 8.5.5 via PHP’s built-in server. Core baseline packages: capell-app/core, capell-app/admin, capell-app/frontend, capell-app/installer, capell-app/marketplace

Devilbox is present at /Users/ben/devilbox, but this harness currently uses the simpler built-in PHP server because no dedicated Devilbox vhost was configured during Task 1.

Run from /Users/ben/Sites/packages/capell:

Terminal window
composer create-project laravel/laravel /Users/ben/Sites/packages/capell/capell-package-demo-audit

Then run from /Users/ben/Sites/packages/capell/capell-package-demo-audit:

Terminal window
composer require capell-app/core:4.x-dev capell-app/admin:4.x-dev capell-app/frontend:4.x-dev capell-app/installer:4.x-dev capell-app/marketplace:4.x-dev -W
php artisan filament:install --panels
php artisan capell:install --demo --package-mode=core --theme=none --url=http://127.0.0.1:8000 --name="Demo Admin" [email protected] --password=password --clear-cache --install-welcome-route --no-interaction
npm install
npm run build

The demo app composer.json is configured with local symlink path repositories:

[
{
"type": "path",
"url": "../capell-packages-4/packages/*",
"options": {
"symlink": true
}
},
{
"type": "path",
"url": "../capell-4/packages/*",
"options": {
"symlink": true
}
},
{
"type": "vcs",
"url": "https://github.com/howdu/filament-adjacency-list"
},
{
"type": "vcs",
"url": "https://github.com/fdemb/laravel-authentication-log"
}
]

The howdu/filament-adjacency-list repository is required by the local capell-app/admin dependency on saade/filament-adjacency-list:dev-feat/laravel-13-support.

The fdemb/laravel-authentication-log repository is required while testing capell-app/login-audit on Laravel 13. Use the fork as a root app alias until rappasoft/laravel-authentication-log#140 is released upstream:

Terminal window
composer require 'rappasoft/laravel-authentication-log:dev-main as 6.0.1' capell-app/login-audit:4.x-dev -W

Start the app from /Users/ben/Sites/packages/capell/capell-package-demo-audit:

Terminal window
php -S 127.0.0.1:8000 -t public public/index.php

Verified URLs:

  • Frontend: http://127.0.0.1:8000
  • Admin login: http://127.0.0.1:8000/admin/login

Use this command sequence to return the harness database to the core baseline before installing the next package:

Terminal window
cd /Users/ben/Sites/packages/capell/capell-package-demo-audit
rm -f database/database.sqlite
touch database/database.sqlite
php artisan migrate --graceful --ansi
php artisan capell:install --demo --package-mode=core --theme=none --url=http://127.0.0.1:8000 --name="Demo Admin" [email protected] --password=password --clear-cache --install-welcome-route --no-interaction
php artisan capell:frontend-install --no-interaction --ansi
npm run build

If an audited package has been added with Composer, remove it before the reset and return composer.json to only the five baseline Capell packages plus Laravel defaults.

Also remove that package’s published config, generated Laravel migrations, and generated settings migrations before creating a fresh SQLite database. Published migration files remain in database/migrations after Composer removes a package, and they will otherwise be replayed into the next package’s isolated baseline.

  • Email: [email protected]
  • Password: password
  • Role: Capell admin role granted by capell:install

Screenshots are written to:

/Users/ben/Sites/packages/capell/capell-package-demo-audit/public/docs/screenshots/packages/{package}

Batch harnesses use the same path shape under their own app directory, for example:

/Users/ben/Sites/packages/capell/capell-package-demo-audit-batch-5/public/docs/screenshots/packages/password-policy

For Filament admin screenshots, the harness must have a compiled panel theme at public/build/filament/manifest.json. If the page fails with ViteManifestNotFoundException, run php artisan make:filament-theme admin --force --pm=npm, set the Laravel Vite plugin buildDirectory to build/filament, then run npm run build.

The app boots and returns HTTP 200 for both the public frontend and admin login under the built-in PHP server.

php artisan capell:frontend-install --no-interaction --ansi has published the core frontend runtime assets, so public/vendor/capell-frontend/manifest.json is now present.

php artisan capell:doctor still reports one frontend asset health warning:

  • Missing generated Capell frontend Tailwind CSS.

Root cause: this baseline uses --theme=none, and capell:frontend-after-install resolves capell.tailwind.generator, which is registered by capell-app/foundation-theme. Keep admin-only package screenshots on the core-plus-package baseline. For frontend/theme packages, install the package’s declared frontend/theme dependency stack before running Tailwind asset generation and visual capture.

capell-app/login-audit is installed in this harness with the Laravel 13 Rappasoft fork alias documented above. The screenshot fixture also publishes the Login Audit migration and adds Rappasoft\LaravelAuthenticationLog\Traits\AuthenticationLoggable to the disposable demo app User model so the user relation surface can be captured.