⚠️ Breaking Changes
-
Queue.adminAccessis now required to access the admin backend at/admin/queue/.... The host application MUST set it to aClosurethat returns literaltrueto grant access — anything else (unset, non-Closure, returnsfalse, returns a truthy non-bool, throws) yields a403. The admin UI can trigger jobs (viaAddFromBackendInterfacetasks), reset / remove queued jobs, and terminate workers; accidental exposure is harmful, so the default policy is now deny.Migration — add to
config/bootstrap.php:use Cake\Core\Configure; use Cake\Http\ServerRequest; Configure::write('Queue.adminAccess', function (ServerRequest $request): bool { $identity = $request->getAttribute('identity'); return $identity !== null && in_array('admin', (array)$identity->roles, true); });
See
docs/sections/admin_dashboard.mdfor the Authorization subsection.adminAccessis independent ofQueue.standalone— the gate runs in both modes.
Improvements
- Sweep stale
queue_processesrows on worker startup (#480) — workers now clear orphan rows on launch instead of leaving them around for the timeout sweep.
Full Changelog: 8.11.0...8.12.0