Skip to main content

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',
SettingDefaultDescription
web_route_prefixexoPrefix for dashboard and login routes (e.g. /exo/dashboard)
route_prefixexo-apiPrefix for API routes (e.g. /exo-api/resources)
oauth_route_prefixexo/oauthPrefix 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'],
SettingDefaultDescription
middleware['auth:api']Middleware applied to all API routes
web_middleware['exo.web.auth']Middleware applied to authenticated dashboard routes

Admin access

'is_admin' => null,
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:
EXO_QUEUE=webhooks

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),
],
SettingDescription
webhook.max_attemptsMax attempts for one delivery before status becomes failed
webhook.backoffRetry delay schedule (seconds) between failed attempts
webhook.max_manual_retriesMax manual retries allowed for a failed delivery chain
webhook.timeoutHTTP timeout in seconds for outgoing webhook requests
webhook.response_body_limitMax stored response body size per delivery
webhook.retention_daysHow 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],
SettingDescription
cloud_urlBase URL of the Exo Cloud server
cloud_client_idOAuth client ID for the device code flow
cloud_pkce_client_idOAuth client ID for the PKCE authorization code flow (falls back to cloud_client_id)
cloud_callback_portsLocalhost 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:
TagWhat it publishes
exo-configconfig/exo.php
exo-migrationsDatabase migrations to your database/migrations directory
exo-viewsBlade 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