Download the PHP package briefley/filament-workflow-builder without Composer
On this page you can find all versions of the php package briefley/filament-workflow-builder. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download briefley/filament-workflow-builder
More information about briefley/filament-workflow-builder
Files in briefley/filament-workflow-builder
Package filament-workflow-builder
Short Description A Filament plugin for scheduled workflow orchestration with pluggable step executors.
License MIT
Homepage https://github.com/briefley/filament-workflow-builder
Informations about the package filament-workflow-builder
Filament Workflow Builder
A generic Laravel workflow orchestration package with pluggable step executors and an optional Filament admin UI.
Features
- Interval and fixed-time daily workflow scheduling.
- Queue-driven workflow execution with pluggable step executors.
- Stale run protection and overlap control.
- Filament integration with a single Workflows navigation entry:
Stepsrelation manager for workflow step configuration.Runsrelation manager for history.- Run steps visible in a modal from each run row.
Compatibility Matrix
| Package line | Filament | Laravel | PHP | Status |
|---|---|---|---|---|
^1.0 |
^5.0 |
^11.0 \| ^12.0 \| ^13.0 |
^8.2 |
Primary line |
^0.4 |
^4.0 |
^11.28 \| ^12.0 \| ^13.0 |
^8.2 |
Legacy compatibility line |
^0.3 |
^3.3 |
^10.45 \| ^11.0 \| ^12.0 |
^8.1 \| ^8.2 |
Legacy compatibility line |
Release Lines
^1.x(Filament v5) is the default and latest release line.^0.4.xis the Filament v4 maintenance line.^0.3.xis the Filament v3 maintenance line.
Latest Tags
1.0.3for Filament v5 projects.0.4.1for Filament v4 projects.0.3.1for Filament v3 projects.
Installation
-
Require the package for your Filament major.
- Publish config and migrations.
Maintenance Policy
^1.x(Filament v5) is the primary feature line.^0.4.x(Filament v4) and^0.3.x(Filament v3) are compatibility maintenance lines.- New features are developed on
^1.xfirst, then selectively backported when safe.
Configuration
Define available step types and executors in config/workflow-builder.php:
Build Your Own Workflow Jobs
1. Create a step executor
Each workflow "job" is a step type mapped to an executor class.
1.1 Pass data from previous steps (optional)
If your job needs outputs from earlier jobs in the same workflow run, implement:
Briefley\WorkflowBuilder\Contracts\ContextAwareWorkflowStepExecutor
You will receive WorkflowStepExecutionContext containing succeeded previous step outputs (meta).
Helpful context methods:
latestMetaForStepType(string $stepType): ?arraylatestValueForStepType(string $stepType, string $key, mixed $default = null): mixedmetaForSequence(int $sequence): ?arrayvalueForSequence(int $sequence, string $key, mixed $default = null): mixed
2. Return one of the supported step results
Each step executor must implement:
Briefley\WorkflowBuilder\Contracts\WorkflowStepExecutor
and return Briefley\WorkflowBuilder\DTO\StepExecutionResult from execute():
StepExecutionResult::succeeded(...)for completed steps.StepExecutionResult::failed('reason')to fail the run.StepExecutionResult::waiting(...)for async polling-style steps.
2.1 Production reliability tips
When implementing real jobs, these two patterns help avoid common production failures:
- Make retryable steps idempotent.
Persist processed item identifiers (for example email addresses, external IDs, or row hashes) in step
meta, and skip already-processed items on retry. - Avoid
dev-only runtime dependencies in executors. If your executor uses optional helpers/libraries (for example Faker), provide a fallback path so production installs with--no-devdo not crash.
3. Register your step type in config
Add your label and executor to config/workflow-builder.php:
The step_executors key is the runtime source of truth.
The workflow_jobs key is used for friendly labels in UI selectors.
4. Add the step in Filament
- Open Workflows.
- Create or edit a workflow.
- In the Steps relation manager, add a row with your step type.
- Order steps by sequence.
5. Run scheduler + queue worker
The package dispatches due workflows from the scheduler, and steps execute in queue jobs.
If you use Horizon, run Horizon instead of queue:work.
Scheduler
Dispatch due workflows every minute from your scheduler:
Filament Plugin
Register the plugin in your panel provider:
The plugin registers only the WorkflowResource and manages steps/runs via relation managers.
Testing
Run the package test suite:
All versions of filament-workflow-builder with dependencies
filament/filament Version ^5.0
illuminate/console Version ^11.0|^12.0|^13.0
illuminate/database Version ^11.0|^12.0|^13.0
illuminate/queue Version ^11.0|^12.0|^13.0
illuminate/support Version ^11.0|^12.0|^13.0