|
2 | 2 |
|
3 | 3 | All notable changes to `filament-webhooks` will be documented in this file. |
4 | 4 |
|
| 5 | +## 6.0.0 - 2026-03-26 |
| 6 | + |
| 7 | +### Breaking Changes |
| 8 | + |
| 9 | +* `StoreInboundWebhook::store()` now accepts only `array` payloads (was `array|string`) |
| 10 | +* `StoreInboundWebhook::store()` now returns `InboundWebhook` (was `void`) |
| 11 | +* `StoresInboundWebhook` contract added — consumers should type-hint the interface |
| 12 | +* New `status`, `processed_at`, `error_message` columns on `inbound_webhooks` table (run migrations) |
| 13 | +* New `webhook_delivery_attempts` table (run migrations) |
| 14 | + |
| 15 | +### New Features |
| 16 | + |
| 17 | +* **Status tracking**: webhooks now have a processing status (pending/processing/completed/failed) with badge column, filter, and enum |
| 18 | +* **Replay action**: re-dispatch InboundWebhookReceived event from list or view page |
| 19 | +* **Copy payload**: copy JSON payload to clipboard from table row or view page |
| 20 | +* **Mark completed / Mark failed**: manual triage actions with optional error reason |
| 21 | +* **Delivery attempts**: tracks replay history with timestamps and error messages |
| 22 | +* **Timeline chart widget**: line chart showing webhook volume over the last 30 days |
| 23 | +* **Cleanup command**: `php artisan webhooks:cleanup --days=30` with configurable `retention_days` |
| 24 | +* **Navigation badge**: shows count of webhooks received in the last 24 hours |
| 25 | +* **Source and event filters**: filter webhooks by source, event, status, or trashed |
| 26 | +* **Searchable columns**: source and event are now searchable in the table |
| 27 | +* **Database indexes**: source, event, created_at columns are now indexed |
| 28 | +* **InboundWebhookReceived event**: dispatched when a webhook is stored |
| 29 | +* **Fluent plugin API**: configure the plugin with method chaining instead of config file only |
| 30 | + |
| 31 | +### Bug Fixes |
| 32 | + |
| 33 | +* Fix payload display in view page (was broken due to double json_decode on array-cast column) |
| 34 | +* Fix payload double-encoding in StoreInboundWebhook and factory (model array cast already handles encoding) |
| 35 | +* Fix N+1 queries in stats widget (single GROUP BY query instead of 1+N) |
| 36 | +* Fix widget ignoring configurable `providers_enum` and `model` config |
| 37 | +* Fix `navigation_sort` default mismatch (code defaulted to 10, config declared 100) |
| 38 | +* Fix PHPStan error in `getWidgets()` return type |
| 39 | +* Replace hardcoded Portuguese string in widget with universal notation |
| 40 | +* Remove PII from factory data |
| 41 | +* Delete dead `ModelFactory.php` stub |
| 42 | +* Fix placeholder package description in composer.json |
| 43 | + |
| 44 | +### DX Improvements |
| 45 | + |
| 46 | +* Test coverage: 1 test to 31 tests (66 assertions) |
| 47 | +* Fixed and un-skipped Filament resource tests with proper TestCase setup |
| 48 | +* Added `StoresInboundWebhook` contract bound in service provider |
| 49 | + |
| 50 | +**Full Changelog**: https://github.com/basementdevs/filament-webhooks/compare/5.0.2...6.0.0 |
| 51 | + |
5 | 52 | ## 5.0.2 - 2026-03-13 |
6 | 53 |
|
7 | 54 | **Full Changelog**: https://github.com/basementdevs/filament-webhooks/compare/5.0.1...5.0.2 |
|
0 commit comments