Documentation Index
Fetch the complete documentation index at: https://docs.exowizz.com/llms.txt
Use this file to discover all available pages before exploring further.
After publishing the configuration file with php artisan vendor:publish --tag=exo-config, you can customize Exo’s behavior in config/exo.php.
User model
'user_model' => config('auth.providers.users.model'),
The Eloquent model class used for creating users with exo:user. Defaults to your app’s configured auth user model.
Token name
'token_name' => 'Exo API Token',
The name given to Personal Access Tokens created by the exo:user command.
Resource discovery
'resources_path' => app_path('Exo/Resources'),
'resources_namespace' => 'App\\Exo\\Resources\\',
Where Exo looks for resource classes. Any PHP class in this directory that extends Exowizz\Exo\Resource is automatically registered.
Route prefixes
'web_route_prefix' => 'exo',
'route_prefix' => 'exo-api',
'oauth_route_prefix' => 'exo/oauth',
| Setting | Default | Description |
|---|
web_route_prefix | exo | Prefix for dashboard and login routes (e.g. /exo/dashboard) |
route_prefix | exo-api | Prefix for API routes (e.g. /exo-api/resources) |
oauth_route_prefix | exo/oauth | Prefix for OAuth routes (e.g. /exo/oauth/authorize) |
Login and dashboard paths
'login_path' => 'exo/login',
'dashboard_path' => 'exo/dashboard',
The URL paths for the Exo login page and dashboard. Unauthenticated requests to OAuth routes redirect to the login path.
Middleware
'middleware' => ['auth:api'],
'web_middleware' => ['exo.web.auth'],
| Setting | Default | Description |
|---|
middleware | ['auth:api'] | Middleware applied to all API routes |
web_middleware | ['exo.web.auth'] | Middleware applied to authenticated dashboard routes |
Admin access
A callback that receives the authenticated user and returns true if they should have admin access. Admins can access all records regardless of ownership.
'is_admin' => function ($user) {
return $user->is_admin === true;
},
Set to null to disable admin access (all users are scoped by ownership rules).
Queue
'queue' => env('EXO_QUEUE', 'default'),
The queue name for webhook delivery jobs. Override per resource with Resource::webhookQueue().
Set via the EXO_QUEUE environment variable:
Webhook delivery
'webhook' => [
'max_attempts' => env('EXO_WEBHOOK_MAX_ATTEMPTS', 3),
'backoff' => [30, 120, 600],
'max_manual_retries' => env('EXO_WEBHOOK_MAX_MANUAL_RETRIES', 5),
'timeout' => env('EXO_WEBHOOK_TIMEOUT', 30),
'response_body_limit' => env('EXO_WEBHOOK_RESPONSE_BODY_LIMIT', 65536),
'retention_days' => env('EXO_WEBHOOK_RETENTION_DAYS', 30),
],
| Setting | Description |
|---|
webhook.max_attempts | Max attempts for one delivery before status becomes failed |
webhook.backoff | Retry delay schedule (seconds) between failed attempts |
webhook.max_manual_retries | Max manual retries allowed for a failed delivery chain |
webhook.timeout | HTTP timeout in seconds for outgoing webhook requests |
webhook.response_body_limit | Max stored response body size per delivery |
webhook.retention_days | How long to retain webhook events and deliveries |
Exo Cloud
'cloud_url' => env('EXO_CLOUD_URL', 'https://cloud.exowizz.com'),
'cloud_client_id' => env('EXO_CLOUD_CLIENT_ID'),
'cloud_pkce_client_id' => env('EXO_CLOUD_PKCE_CLIENT_ID'),
'cloud_callback_ports' => [55000, 55001, 55002],
| Setting | Description |
|---|
cloud_url | Base URL of the Exo Cloud server |
cloud_client_id | OAuth client ID for the device code flow |
cloud_pkce_client_id | OAuth client ID for the PKCE authorization code flow (falls back to cloud_client_id) |
cloud_callback_ports | Localhost ports the PKCE flow tries when listening for the OAuth callback |
Automation providers
'providers' => [
'zapier' => [
'deploy_key' => env('ZAPIER_DEPLOY_KEY'),
],
'make' => [],
'n8n' => [],
],
Per-platform settings. Currently, Zapier requires a deploy key set via the ZAPIER_DEPLOY_KEY environment variable.
Publishable assets
Exo provides three publishable asset groups:
| Tag | What it publishes |
|---|
exo-config | config/exo.php |
exo-migrations | Database migrations to your database/migrations directory |
exo-views | Blade views to resources/views/vendor/exo for customization |
php artisan vendor:publish --tag=exo-config
php artisan vendor:publish --tag=exo-migrations
php artisan vendor:publish --tag=exo-views