v1.2.0
Security
- SSRF:
WorkflowEngine::actionSendWebhook()now validates URL scheme (http/https only) and rejects URLs that resolve to private/reserved IPs (#49) - ReDoS: regex injection blocked in
compareValues()matchesoperator viasafeRegexMatch()with pattern validation and a PCRE backtrack limit of 10,000 (#49) - Action-type injection: strict
in:validation foractions.*.typeinWorkflowControllerstore/update (#49) - Field-access whitelist:
resolveFieldValue()default case now whitelistssubject,description,ticket_type,channelinstead of open$ticket->{$field}access (#49) - Rate limiting: ticket creation 5/min, chat start 5/min, chat message 30/min (#49)
- Audit log: workflow create/update/delete and report exports now produce
AuditLogentries (#49)
Fixed
php artisan escalated:installno longer aborts withTarget class [Escalated\Laravel\Database\Seeders\PermissionSeeder] does not exist— the seeder namespace is now registered in production autoload (#56, fixes #55)- Attachment serialization now includes
url(#50) - Ticket serialization includes computed fields (#51), chat / context panel / activity fields (#52), and the previously missing workflow / workflow log computed fields (#54)
- Expensive computed fields moved off
$appendsso list endpoints stay fast; now only included in detail serialization (#53)
Internal
- CI:
minimum-stabilityset tostableandaudit.ignoreadded for two phpunit advisories that were preventing the resolver from selecting any compatible phpunit version (#57)
Full changelog: v1.1.0...v1.2.0