Version 5.2.0
October 9, 2026
Added
- Console equivalents for every bulk and maintenance action in the control panel, each going through the same service method as the CP:
donky/documents/print(the order index's bulk print, Pro),void,restore,reissue,deleteandexport(the ledger CSV, Pro). Anything that spends a number or removes a row takes--dry-run, and every command exits non-zero when it fails. donky/documents/set-next-number, the console door to a type's counter. It moves a counter forward; moving one backwards needs--force.
Changed
- Reissuing now issues the fresh document before voiding the old one, so a reissue that fails leaves the order with the document it had instead of none.
Fixed
- The ledger's CSV export was available on Lite, though it is a Pro feature. The Export CSV button now only shows on Pro, and the export refuses on Lite.
Version 5.1.0
September 30, 2026
Security
- A document type's filename format could read any secret on the site. It was unrestricted Twig with the order and Craft in reach, so anyone who could manage document types could put
{{ craft.app.config.db.password }}in it and read it back in every download's filename. Filename formats now run in Craft's sandbox and see plain values —number,date,document.formattedNumber,type.handle,order.number,order.shortNumber,order.referenceand the like. The default format and ordinary formats keep working; filenames are capped at 150 characters. Requires Craft 5.9. - A design's custom CSS could run script in an admin's session. It was inlined into previews served from the control panel, so
</style><script>in it executed there. Custom CSS containing<is now refused, any already stored is neutralised when rendering, and previews are served with a Content-Security-Policy that allows no script.
Fixes
donky/documents/renderprinted an empty document number in its "not found" message.
Changed
- Requires Craft CMS 5.9 or later.
- PHPStan and ECS configuration.