PHPackages                             laravel-workflow/waterline - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. laravel-workflow/waterline

ActiveLibrary

laravel-workflow/waterline
==========================

An elegant UI for monitoring Laravel Workflows.

1.0.15(2mo ago)196178.1k—3.2%141MITPHPPHP ^8.0.2CI passing

Since Nov 19Pushed 1mo ago7 watchersCompare

[ Source](https://github.com/durable-workflow/waterline)[ Packagist](https://packagist.org/packages/laravel-workflow/waterline)[ RSS](/packages/laravel-workflow-waterline/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (10)Dependencies (14)Versions (36)Used By (1)

Waterline
=========

[](#waterline)

An elegant UI for monitoring [workflows](https://github.com/durable-workflow/workflow).

Installation
------------

[](#installation)

This UI is installable via [Composer](https://getcomposer.org).

```
composer require laravel-workflow/waterline

php artisan waterline:install
```

Authorization
-------------

[](#authorization)

Waterline exposes a dashboard at the `/waterline` URL. By default, you will only be able to access this dashboard in the local environment. However, within your `app/Providers/WaterlineServiceProvider.php` file, there is an authorization gate definition. This authorization gate controls access to Waterline in non-local environments.

```
Gate::define('viewWaterline', function ($user) {
    return in_array($user->email, [
        'admin@example.com',
    ]);
});

```

This will allow only the single admin user to access the Waterline UI.

Configuration
-------------

[](#configuration)

If your workflow IDs are strings (for example UUIDs) and do not sort in a useful order, publish the config and set `workflow_sort_column` to a timestamp column such as `created_at`:

```
'workflow_sort_column' => 'created_at',
```

Upgrading Waterline
-------------------

[](#upgrading-waterline)

After upgrading Waterline you must publish the latest assets.

```
composer require laravel-workflow/waterline

php artisan waterline:publish
```

Dashboard View
--------------

[](#dashboard-view)

[![waterline_dashboard](https://private-user-images.githubusercontent.com/1130888/545636983-5688a234-4c02-4d5e-84d4-5f40b5fa27c5.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzQ2NjY0ODQsIm5iZiI6MTc3NDY2NjE4NCwicGF0aCI6Ii8xMTMwODg4LzU0NTYzNjk4My01Njg4YTIzNC00YzAyLTRkNWUtODRkNC01ZjQwYjVmYTI3YzUucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDMyOCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjAzMjhUMDI0OTQ0WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9YjE1ZWY1YzAyNjUwOGJjYjQ3ODM3ZTJkYjg1ZGM0NmM2MzM4ODc1Y2MwOWRkNjM2MGRhMWJkMmQwYjkwOGZjYSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.lZxxxwFPWH3XTFzC2mURxTy3Sje_igxOCl_eqgglbh8)](https://private-user-images.githubusercontent.com/1130888/545636983-5688a234-4c02-4d5e-84d4-5f40b5fa27c5.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzQ2NjY0ODQsIm5iZiI6MTc3NDY2NjE4NCwicGF0aCI6Ii8xMTMwODg4LzU0NTYzNjk4My01Njg4YTIzNC00YzAyLTRkNWUtODRkNC01ZjQwYjVmYTI3YzUucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDMyOCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjAzMjhUMDI0OTQ0WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9YjE1ZWY1YzAyNjUwOGJjYjQ3ODM3ZTJkYjg1ZGM0NmM2MzM4ODc1Y2MwOWRkNjM2MGRhMWJkMmQwYjkwOGZjYSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.lZxxxwFPWH3XTFzC2mURxTy3Sje_igxOCl_eqgglbh8)

### Workflow View

[](#workflow-view)

[![workflow](https://private-user-images.githubusercontent.com/1130888/545636986-da685466-7747-4c2f-ae10-300041381d51.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzQ2NjY0ODQsIm5iZiI6MTc3NDY2NjE4NCwicGF0aCI6Ii8xMTMwODg4LzU0NTYzNjk4Ni1kYTY4NTQ2Ni03NzQ3LTRjMmYtYWUxMC0zMDAwNDEzODFkNTEucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDMyOCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjAzMjhUMDI0OTQ0WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9NWNiZjk3MjQ5NzBlOTA2ZGU5YTA4OWMyNDI4Y2QwNDE1MDg2NmM5YWY0ZGI1ZTZkYmZmMTdhODM2NzVjYmYzYSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.zsSrE4hdMA7Nl1t3m29NZUYsY21S0WTMoNew-QS6-d4)](https://private-user-images.githubusercontent.com/1130888/545636986-da685466-7747-4c2f-ae10-300041381d51.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzQ2NjY0ODQsIm5iZiI6MTc3NDY2NjE4NCwicGF0aCI6Ii8xMTMwODg4LzU0NTYzNjk4Ni1kYTY4NTQ2Ni03NzQ3LTRjMmYtYWUxMC0zMDAwNDEzODFkNTEucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDMyOCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjAzMjhUMDI0OTQ0WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9NWNiZjk3MjQ5NzBlOTA2ZGU5YTA4OWMyNDI4Y2QwNDE1MDg2NmM5YWY0ZGI1ZTZkYmZmMTdhODM2NzVjYmYzYSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.zsSrE4hdMA7Nl1t3m29NZUYsY21S0WTMoNew-QS6-d4)

Development
-----------

[](#development)

1. Install dependencies: ```
    composer install
    npm install
    ```
2. Build assets: ```
    npm run production
    ```
3. Publish assets to testbench: ```
    ./vendor/bin/testbench waterline:publish
    ```
4. Run migrations: ```
    ./vendor/bin/testbench workbench:create-sqlite-db
    ./vendor/bin/testbench migrate:fresh --database=sqlite
    ```
5. Start server: ```
    composer run serve
    ```
6. Access dashboard:
    - Local:
7. Create test workflow: ```
    ./vendor/bin/testbench workflow:create-test
    ```
8. Run queue worker: ```
    ./vendor/bin/testbench queue:work
    ```

"Laravel" is a registered trademark of Taylor Otwell. This project is not affiliated, associated, endorsed, or sponsored by Taylor Otwell, nor has it been reviewed, tested, or certified by Taylor Otwell. The use of the trademark "Laravel" is for informational and descriptive purposes only. Waterline is not officially related to the Laravel trademark or Taylor Otwell.

###  Health Score

60

—

FairBetter than 99% of packages

Maintenance87

Actively maintained with recent releases

Popularity52

Moderate usage in the ecosystem

Community25

Small or concentrated contributor base

Maturity63

Established project with proven stability

 Bus Factor1

Top contributor holds 87.8% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~43 days

Recently: every ~94 days

Total

29

Last Release

77d ago

Major Versions

0.0.13 → 1.0.02023-08-02

### Community

Maintainers

![](https://www.gravatar.com/avatar/8cc4e03d21bee1d338a3d10c5002c2b13c7602825c20d436a9481a90254cac9a?d=identicon)[rmcdaniel](/maintainers/rmcdaniel)

---

Top Contributors

[![rmcdaniel](https://avatars.githubusercontent.com/u/1130888?v=4)](https://github.com/rmcdaniel "rmcdaniel (65 commits)")[![beholdr](https://avatars.githubusercontent.com/u/741973?v=4)](https://github.com/beholdr "beholdr (2 commits)")[![Naugrimm](https://avatars.githubusercontent.com/u/5753604?v=4)](https://github.com/Naugrimm "Naugrimm (2 commits)")[![GALCF](https://avatars.githubusercontent.com/u/14803394?v=4)](https://github.com/GALCF "GALCF (1 commits)")[![laravel-shift](https://avatars.githubusercontent.com/u/15991828?v=4)](https://github.com/laravel-shift "laravel-shift (1 commits)")[![martio](https://avatars.githubusercontent.com/u/133636?v=4)](https://github.com/martio "martio (1 commits)")[![durable-workflow-ops](https://avatars.githubusercontent.com/u/267215253?v=4)](https://github.com/durable-workflow-ops "durable-workflow-ops (1 commits)")[![feuzeu](https://avatars.githubusercontent.com/u/15174329?v=4)](https://github.com/feuzeu "feuzeu (1 commits)")

---

Tags

background-jobslaravelphpqueuesworkflows

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/laravel-workflow-waterline/health.svg)

```
[![Health](https://phpackages.com/badges/laravel-workflow-waterline/health.svg)](https://phpackages.com/packages/laravel-workflow-waterline)
```

###  Alternatives

[fumeapp/modeltyper

Generate TypeScript interfaces from Laravel Models

196277.9k](/packages/fumeapp-modeltyper)[aedart/athenaeum

Athenaeum is a mono repository; a collection of various PHP packages

245.2k](/packages/aedart-athenaeum)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
