Configuration
Configuration Reference
config/voodflow.php
The file is created at config/voodflow.php when you run php artisan voodflow:install (recommended) or:
php artisan vendor:publish --tag="voodflow-config"
See Installation for the full setup flow.
return [
/*
|--------------------------------------------------------------------------
| Auto-discover Laravel Events
|--------------------------------------------------------------------------
| When true, Voodflow scans the application for dispatchable event classes
| and makes them selectable in the Event Trigger node.
*/
'auto_discover_events' => env('VOODFLOW_AUTO_DISCOVER_EVENTS', false),
/*
|--------------------------------------------------------------------------
| Queue Connection
|--------------------------------------------------------------------------
| The queue connection to use for async workflow execution.
| Set to null to use the default Laravel queue connection.
*/
'queue_connection' => env('VOODFLOW_QUEUE', null),
/*
|--------------------------------------------------------------------------
| Synchronous Execution
|--------------------------------------------------------------------------
| When true, workflows execute immediately in the current process.
| Use this only for development or environments without a queue worker.
| In production, set to false and run a queue worker.
*/
'execute_sync' => env('VOODFLOW_EXECUTE_SYNC', false),
/*
|--------------------------------------------------------------------------
| Maximum Retry Attempts
|--------------------------------------------------------------------------
| How many times Voodflow will automatically retry a failed execution.
| Set to 0 to disable retries.
*/
'max_retry_attempts' => env('VOODFLOW_MAX_RETRY_ATTEMPTS', 3),
/*
|--------------------------------------------------------------------------
| Redis Context Cache
|--------------------------------------------------------------------------
| When true, active execution contexts are cached in Redis for improved
| performance on large or complex workflows.
*/
'use_redis_cache' => env('VOODFLOW_USE_REDIS_CACHE', false),
/*
|--------------------------------------------------------------------------
| Context Size Warning Threshold
|--------------------------------------------------------------------------
| Emit a log warning when an execution context exceeds this size (in KB).
| Large contexts indicate data being accumulated in memory inefficiently.
*/
'context_size_warning_threshold' => env('VOODFLOW_CONTEXT_SIZE_WARNING_KB', 500),
/*
|--------------------------------------------------------------------------
| Date Format
|--------------------------------------------------------------------------
| The PHP date() format string used when resolving {{now}} and date-related
| tags in node configurations (SendMail, SendWebhook, etc.).
*/
'date_format' => env('VOODFLOW_DATE_FORMAT', 'd/m/Y H:i'),
/*
|--------------------------------------------------------------------------
| Model Bindings
|--------------------------------------------------------------------------
| Override the default Eloquent models used by Voodflow.
| Useful when you need to extend models with custom behaviour.
*/
'models' => [
'workflow' => \Voodflow\Voodflow\Models\Workflow::class,
'node' => \Voodflow\Voodflow\Models\Node::class,
'edge' => \Voodflow\Voodflow\Models\Edge::class,
'execution' => \Voodflow\Voodflow\Models\Execution::class,
'execution_node' => \Voodflow\Voodflow\Models\ExecutionNode::class,
],
/*
|--------------------------------------------------------------------------
| Table Names
|--------------------------------------------------------------------------
| Override if you have a table prefix or need to avoid conflicts.
*/
'table_names' => [
'workflows' => 'voodflow_workflows',
'nodes' => 'voodflow_nodes',
'edges' => 'voodflow_edges',
'executions' => 'voodflow_executions',
'execution_nodes' => 'voodflow_execution_nodes',
'model_integrations' => 'voodflow_model_integrations',
],
];
Environment Variables
| Variable | Default | Description |
|---|---|---|
VOODFLOW_AUTO_DISCOVER_EVENTS |
false |
Scan app for event classes automatically |
VOODFLOW_QUEUE |
null |
Queue connection name (e.g. redis, database) |
VOODFLOW_EXECUTE_SYNC |
false |
true = inline execution, false = queued |
VOODFLOW_MAX_RETRY_ATTEMPTS |
3 |
Auto-retry failed executions |
VOODFLOW_USE_REDIS_CACHE |
false |
Cache execution context in Redis |
VOODFLOW_CONTEXT_SIZE_WARNING_KB |
500 |
Log warning above this context size |
VOODFLOW_DATE_FORMAT |
d/m/Y H:i |
PHP date format for {{now}} |
VOODFLOW_WAITS_ENABLED |
true |
Enable wait / resume (approvals, signals, dates) |
VOODFLOW_VERSIONING_ENABLED |
true |
Workflow version snapshots |
VOODFLOW_APPROVALS_MAIL |
true |
Send approval emails |
VOODFLOW_APPROVALS_SIGNED_URL_MINUTES |
10080 |
Signed link lifetime when wait has no expiry |
VOODFLOW_APPROVALS_REQUIRE_AUTH |
true |
Decide links require login |
VOODFLOW_APPROVALS_REQUIRE_RECIPIENT_MATCH |
true |
Logged-in user must match recipient |
VOODFLOW_CHAT_WEBHOOK_TEMPLATES |
true |
Register Slack/Discord/Teams/Telegram templates |
VOODFLOW_MAX_WORKFLOWS |
(empty) | Soft cap on workflow count (null = unlimited) |
VOODFLOW_SSRF_PROTECTION |
false |
Harden outbound HTTP against SSRF |
VOODFLOW_AUTHORIZATION |
auto |
auto, permissions, or panel (see below) |
VOODFLOW_VOODBUILDER_BLOCKS |
false |
Master switch for VoodBuilder companion blocks |
Authorization without Filament Shield
Resource policies check Shield-style abilities such as ViewAny:Workflow. On a stock Filament install those abilities do not exist, so the Voodflow navigation would be empty. VOODFLOW_AUTHORIZATION selects the driver:
| Driver | Behavior |
|---|---|
auto (default) |
If Filament Shield is installed, require named abilities. Otherwise any user who can access the Filament panel may use Voodflow. |
permissions |
Always require named abilities (Shield or your own Gate). |
panel |
Allow any Filament panel user and ignore named abilities. |
'authorization' => [
'driver' => env('VOODFLOW_AUTHORIZATION', 'auto'),
],
VoodBuilder companion blocks
When voodflow/voodbuilder is installed, Voodflow can register two Editor blocks: a read-only workflow demo canvas and a core-nodes marketing grid. They are off by default so customer apps do not see them in the block library.
'voodbuilder' => [
'enabled' => filter_var(env('VOODFLOW_VOODBUILDER_BLOCKS', false), FILTER_VALIDATE_BOOLEAN),
'workflow_demo_block' => filter_var(env('VOODFLOW_VOODBUILDER_WORKFLOW_DEMO_BLOCK', true), FILTER_VALIDATE_BOOLEAN),
'core_nodes_grid_block' => filter_var(env('VOODFLOW_VOODBUILDER_CORE_NODES_GRID_BLOCK', true), FILTER_VALIDATE_BOOLEAN),
],
enabled is the master switch. The per-block flags apply only when it is on. The demo canvas needs the host Vite entry from VoodbuilderWorkflowDemoAssets::viteEntry() and the npm peers react, react-dom, and @xyflow/react.
0.2 — Approvals, ops & secrets
Additional keys published with Voodflow 0.2 (see also Human approvals and Ops):
'table_names' => [
// …
'workflow_versions' => 'voodflow_workflow_versions',
'workflow_waits' => 'voodflow_workflow_waits',
'secrets' => 'voodflow_secrets',
],
'ops' => [
'waits_enabled' => env('VOODFLOW_WAITS_ENABLED', true),
'versioning_enabled' => env('VOODFLOW_VERSIONING_ENABLED', true),
],
'approvals' => [
'mail_enabled' => env('VOODFLOW_APPROVALS_MAIL', true),
'signed_url_minutes' => (int) env('VOODFLOW_APPROVALS_SIGNED_URL_MINUTES', 10080),
'signed_url_grace_days' => (int) env('VOODFLOW_APPROVALS_SIGNED_URL_GRACE_DAYS', 7),
'note_max_length' => (int) env('VOODFLOW_APPROVALS_NOTE_MAX_LENGTH', 2000),
'require_authentication' => env('VOODFLOW_APPROVALS_REQUIRE_AUTH', true),
'require_recipient_match' => env('VOODFLOW_APPROVALS_REQUIRE_RECIPIENT_MATCH', true),
'login_route' => env('VOODFLOW_APPROVALS_LOGIN_ROUTE', 'filament.admin.auth.login'),
],
'chat_webhook_templates' => env('VOODFLOW_CHAT_WEBHOOK_TEMPLATES', true),
'limits' => [
'max_workflows' => env('VOODFLOW_MAX_WORKFLOWS'),
],
Recommended Production .env
VOODFLOW_EXECUTE_SYNC=false
VOODFLOW_QUEUE=redis
VOODFLOW_MAX_RETRY_ATTEMPTS=3
VOODFLOW_USE_REDIS_CACHE=true
VOODFLOW_DATE_FORMAT="d/m/Y H:i"
VOODFLOW_WAITS_ENABLED=true
VOODFLOW_VERSIONING_ENABLED=true
VOODFLOW_APPROVALS_MAIL=true
Plugin Registration Options
The VoodflowPlugin class accepts no configuration options at registration time. All configuration is done via config/voodflow.php and the Filament Settings page.
->plugin(VoodflowPlugin::make())