Core
Description
Core is the backend shell of a Laravel Enso application.
It aggregates the packages required for a standard Enso installation, registers the framework-level service providers and middleware stack, exposes the base authentication and SPA endpoints, builds the frontend boot state, manages user preferences, publishes shared assets and mail resources, and provides a handful of operational commands used across Enso projects.
It is the package that turns the rest of the Enso ecosystem into a coherent application runtime.
Installation
This package is intended to be installed as the main backend dependency of an Enso application:
composer require laravel-enso/core
After installation, run the standard setup steps:
php artisan migrate
php artisan db:seed
If you want to publish the package resources, the relevant tags are:
php artisan vendor:publish --tag=core-config
php artisan vendor:publish --tag=core-seeders
php artisan vendor:publish --tag=core-assets
php artisan vendor:publish --tag=core-email
The package automatically:
- loads API routes
- loads migrations
- loads mail views
- registers Enso service providers
- configures the Eloquent factory resolver for package models
Features
- Provides the base Enso API shell, including guest meta, SPA home state, auth routes, and preferences routes.
- Registers the
coremiddleware group used by authenticated Enso routes. - Configures password policy defaults from
enso.auth.password. - Builds the SPA boot state from state providers discovered across Enso packages.
- Persists per-user global and route-level preferences.
- Publishes shared email templates and image assets.
- Registers operational commands for version reporting, storage resets, preference resets, preference upgrades, and app-update notifications.
- Integrates login tracking, password reset flows, websocket support, route authorization, localisation, impersonation, and action logging through the wider Enso stack.
Usage
The package exposes the guest meta endpoint:
route('meta');
Authenticated clients bootstrap the SPA state through:
route('core.home.index');
Preferences can be updated per route or globally through:
route('core.preferences.store', ['route' => 'administration.users.index']);
route('core.preferences.reset');
Useful built-in commands:
php artisan enso:version
php artisan enso:preferences:reset
php artisan enso:preferences:update-global
php artisan enso:storage:reset
php artisan enso:announce-app-update
The frontend counterpart for the API shell and shared UI runtime lives in the Enso UI package:
Note
core.home.index does not return a Blade page. It returns the merged state payload produced by the Enso state builder, grouped by frontend store.
API
Routes
Guest / auth endpoints:
GET /api/metaPOST /api/loginPOST /api/password/emailPOST /api/password/resetPOST /api/logout
Authenticated core endpoints:
GET /api/core/homePATCH /api/core/preferences/store/{route?}POST /api/core/preferences/reset/{route?}
Middleware
Aliases:
verify-active-statexss-sanitizerensure-frontent-requests-are-stateful
core middleware group:
VerifyActiveStateActionLoggerImpersonateVerifyRouteAccessSetLanguage
State System
State is built through:
LaravelEnso\Core\Services\State\BuilderLaravelEnso\Core\Services\State\Source
It scans configured vendors from:
config('enso.state.vendors')
Built-in state providers include:
MetaPreferencesThemesWebsockets
Preferences
Model:
LaravelEnso\Core\Models\Preferences
Capabilities:
- route-level local preferences
- global preferences
- theme updates
- language updates
- reset to factory defaults
Commands
enso:versionenso:preferences:resetenso:preferences:update-globalenso:storage:resetenso:announce-app-update
Events and Notifications
Events:
LaravelEnso\Core\Events\LoginLaravelEnso\Core\Events\AppUpdate
Notifications:
PasswordExpiresSoonResetPassword
Depends On
Required Enso packages:
laravel-enso/action-logger↗laravel-enso/charts↗laravel-enso/countries↗laravel-enso/data-export↗laravel-enso/helpers↗laravel-enso/history-tracker↗laravel-enso/impersonate↗laravel-enso/localisation↗laravel-enso/logs↗laravel-enso/menus↗laravel-enso/migrator↗laravel-enso/notifications↗laravel-enso/permissions↗laravel-enso/rememberable↗laravel-enso/roles↗laravel-enso/sentry↗laravel-enso/upgrade↗laravel-enso/user-groups↗laravel-enso/users↗
Framework and external dependencies:
Contributions
are welcome. Pull requests are great, but issues are good too.
Thank you to all the people who already contributed to Enso!