secondaryColor brand setting for the border color on selected items in the Treeview control (pages list)cms.databaseTemplates to the winter:env commandallowEmpty: trueWinter\Rain\Database\Attach\File model's getPath() now defines an optional $fileName parameter, any custom classes that extend this method must have their method signatures updated to match this change.Winter\Rain\Database\Attach\File model's getThumbFilename() method has been changed from protected to public, any custom classes that extend this method must have their method signatures updated to match this change.getDisk() method has been added to the Winter\Rain\Database\Attach\File model which enables running all storage related commands on the File's actual storage disk instead of the default storage disk.Backend\Traits\PreferenceMaker trait modelled after the SessionMaker trait that stores minor user preference changes (such as backend list configurations) in the user's preferences.cms.enableBackendServiceWorkers (defaulting to false) to allow the use of Service Workers in the backend. They have been disabled by default for security purposes to prevent any frontend Service Workers from leaking into the backend.$require property are now case insensitive.type: relation column configuration, previously this would warn that is was invalid in the system log and convert to type: text automatically. Recommended replacement is to use whatever type the data actually is and then use the relation: property to specify the relationship you want to get the value from.is_countable() polyfill to the library for PHP < 7.3framework.js ones. Previously both would fire leading to conflicts between what parameters jQuery sends vs what the AJAX framework. If access to the jQuery AJAX events is required, pass ajaxGlobal: true to the options for $.request(handler, options) or add data-request-ajax-global for the Data Attributes AJAX API.$options added to Zip::make() that passes the options onto Zip->add(). In addition, the includeHidden option has been added which specifies that all hidden files (dot files) from the source should be included in the final Zip destination.maxFilesize option to the FileUpload FormWidget, defaults to the upload_max_filesize from the serveraddDynamicProperty testfalse didn't properly disable them fully from displayingjsonable properties in models under conditions where they might be double de/encoded for one reason or anotherdatabaseTemplates functionalitydirName setRelationController behaviorfiles: true as an AJAX framework option in newer browsersReportWidgets using the objectList property type for their properties.Auth::id(), there was a typo in the method that rendered it unusable previously.any_template (Template) column in the CMS Theme Log. To sort by template, change the list setup to show the "Old Template" and "New Template" columns and sort by those instead.DataFeed support for Postgresdump() Twig functioncms.enableBackendServiceWorkersFiles that are marked as protected, the Backend\Controllers\Files controller's getDownloadUrl() and getThumbUrl() methods now return temporary URLs to the actual asset instead of a URL that proxies the entire asset through the framework to the browser. The amount of time the temporary URL is valid for is configurable by setting cms.storage.uploads.temporaryUrlTTL to a value in seconds (default 3600, an hour). This should dramatically improve performance of protected files that are located in storage drives that support the getTemporaryUrl() method - and it is recommended that if you heavily utilize that feature that you utilize a storage drive that supports that method.{% framework %} tagstheme:sync command and for the --relative option for the winter:mirror command:focus-visible CSS selector to the backend (https://github.com/WICG/focus-visible)event.key in JS events to the backend (https://github.com/cvan/keyboardevent-key-polyfill)Sign up to our newsletter and receive updates on Winter releases, new features in the works, plugin and theme promotions and much more!