morrislaptop/journal

A UI for Spatie's Laravel Event Sourcing

Fund package maintenance!
morrislaptop

v0.2.0 2022-01-27 12:31 UTC

This package is auto-updated.

Last update: 2024-12-09 13:33:58 UTC


README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

Journal makes a wonderful companion to your local Laravel Event Sourcing development environment. Journal provides insight into the events coming into your application.

index view detail view

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 to production 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.