morrislaptop / journal
A UI for Spatie's Laravel Event Sourcing
Fund package maintenance!
morrislaptop
Installs: 34 138
Dependents: 0
Suggesters: 0
Security: 0
Stars: 17
Watchers: 2
Forks: 2
Open Issues: 0
Requires
- php: ^8.0
- blade-ui-kit/blade-heroicons: ^1.2
- blade-ui-kit/blade-icons: ^1.1
- blade-ui-kit/blade-ui-kit: ^0.3.2
- illuminate/contracts: ^8.37
- livewire/livewire: ^2.7
- rappasoft/laravel-livewire-tables: ^1.20
- spatie/laravel-event-sourcing: ^5.0|^6.0|^7.0
- spatie/laravel-package-tools: ^1.4.3
Requires (Dev)
- nunomaduro/collision: ^5.3
- nunomaduro/larastan: ^1.0
- orchestra/testbench: ^6.15
- pestphp/pest: ^1.18
- pestphp/pest-plugin-laravel: ^1.1
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- phpunit/phpunit: ^9.3
- spatie/laravel-ray: ^1.23
README
Journal makes a wonderful companion to your local Laravel Event Sourcing development environment. Journal provides insight into the events coming into your application.
Installation
You can install the package via composer:
composer require morrislaptop/journal
After installing Journal, publish its assets using the journal:install
Artisan command.
php artisan journal:install
Local Only Installation
If you plan to only use Journal to assist your local development, you may install Journal using the --dev
flag:
composer require morrislaptop/journal --dev
php artisan vendor:publish --provider="Morrislaptop\Journal\JournalServiceProvider" --tag="journal-config"
Dashboard Authorization
The Journal dashboard may be accessed at the /journal
route. By default, you will only be able to access this dashboard in the local
environment. Within your app/Providers/JournalServiceProvider.php
file, there is an authorization gate definition. This authorization gate controls access to Journal in non-local environments. You are free to modify this gate as needed to restrict access to your Journal installation:
/**
* Register the Journal gate.
*
* This gate determines who can access Journal in non-local environments.
*
* @return void
*/
protected function gate()
{
Gate::define('viewJournal', function ($user) {
return in_array($user->email, [
'cr@igmorr.is',
]);
});
}
You should ensure you change your
APP_ENV
environment variable toproduction
in your production environment. Otherwise, your Journal installation will be publicly available.
Alternative Authentication Strategies
Remember that Laravel automatically injects the authenticated user into the gate closure. If your application is providing Journal security via another method, such as IP restrictions, then your Journal users may not need to "login". Therefore, you will need to change function ($user)
closure signature above to function ($user = null)
in order to force Laravel to not require authentication.
Testing
composer test
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security Vulnerabilities
Please review our security policy on how to report security vulnerabilities.
Credits
License
The MIT License (MIT). Please see License File for more information.