Version 4 supported
This version of Silverstripe CMS is still supported though will not receive any additional features. Go to documentation for the most recent stable version.


Notable changes

Fix #7971 introduces a subtle change of behaviour to how Config settings are prioritised. In Silverstripe 4 there was a change where Extension objects took the highest importance when determining Config values; this was deemed to be unexpected and unintuitive as well as making it cumbersome and difficult for developers to override module defaults defined in Extensions. This change reverts behaviour to that of Silverstripe 3 where Extension instances are of lowest importance and are used only to set a default value. If you rely on your Extension or module providing an overriding config value, please move this to YAML.

Change log


  • 2018-11-06 6cb1bf5 Add CSRF protection (Aaron Carlino) - See ss-2018-007
  • 2018-08-21 af000be Add confirmation token to dev/build (Loz Calver) - See ss-2018-019
  • 2018-07-29 5425195 Ignore arguments in mysqli::real_connect backtrace calls (Robbie Averill) - See ss-2018-018

Features and enhancements

  • 2018-04-18 fef734b Provide default IIS rewriting rules with recipe (Damian Mooyman)


  • 2018-10-24 e72fc9e DataObject singleton creation (#8516) (Sam Minnée)
  • 2018-09-18 bbe7c66 Add AssetAdmin::getMinimalistObjectFromData() to build file metadata for UploadField (#829) (Maxime Rainville)
  • 2018-09-13 5c102de Improve performance of CMSMain::getArchiveWarningMessage (#2231) (Maxime Rainville)
  • 2018-09-03 1c4311d description for (wernerkrauss)
  • 2018-09-03 b922c0d Check scheme is truthy before setting it to the request (Robbie Averill)
  • 2018-08-28 d651d0f Use base class (not remapping target class) when looking up whether object is versioned (Robbie Averill)
  • 2018-08-27 4da5569 ensure createFromVariables takes correct params on CLIRequestBuilder (Scott Hutchinson)
  • 2018-08-15 0c713b5 Fix routing for files with dots in filename (Damian Mooyman)
  • 2018-08-14 27ac001 email rendering should not include requirements (Thomas Portelange)
  • 2018-08-14 8ec551e Broken "show as list" (#2232) (Maxime Rainville)
  • 2018-07-26 fea9ef7 #579 BUG Ambiguous column RecordID when doing batch actions (Ed Linklater)
  • 2018-07-14 a0e0bed Use Injector to create PasswordValidators (Daniel Hensby)
  • 2018-07-14 8703839 updateValidatePassword calls need to be masked from backtraces (Daniel Hensby)
  • 2018-07-12 e80c7e7 Restore button now has warning colour and correct icon (Robbie Averill)
  • 2018-07-12 d122995 Duplicate config values for cascade_duplicates no longer duplicate their duplicates (Robbie Averill)
  • 2018-06-19 725212a Allow dispatcher in Embed to be configured with injector (#8192) (Robbie Averill)
  • 2018-06-13 932eb2b Fix CMS components failing to register on other CMS sections (#2182) (Damian Mooyman)
  • 2018-05-21 bf5b578 Adding a min-width to flexbox-area-grow that allows flex blocks to shrink below their content width (Guy)
  • 2018-05-18 9531535 Polymorphic relationship class columns have obsolete class names remapped (Robbie Averill)
  • 2018-05-08 97a8f56 Add missing focus styles for preview options (fixes silverstripe/silverstripe-framework #2101) (Loz Calver)
  • 2018-03-29 4acec33 Fixed bug in config merging priorities so that config values set by extensions are now least important instead of most important (Daniel Hensby)