Skip to content

Releases: getkirby/kirby

3.7.5.2

27 Jul 09:54
90d8aff
Compare
Choose a tag to compare

🚨 Security release

This release fixes several vulnerabilities that were all responsibly reported to us in June 2023:

Thanks to Shankar Acharya (@5hank4r), Alexandre Zanni (@noraj) at ACCEIS and Patrick Falb (@dapatrese) at FORMER 03 for responsibly reporting the identified issues.

Updated default .htaccess

We have updated the .htaccess that ships with our kits to the new version 2023-07-22, which adds protection against browser MIME type detection from malicious file uploads for files that have already been copied to the media folder. We recommend to update your sites’ .htaccess or server configuration with the new changes if you might have potential attackers in your group of authenticated Panel users or if your sites allow file uploads by visitors and the file extensions of uploaded files are not limited to a fixed safe list.

You can find the changes to the .htaccess in this commit and read more about the added rules in the security guide.

Thanks to Shankar Acharya (@5hank4r) for making us aware of this potential attack vector.

Frame-blocking in the Panel

The Panel now sends the Content-Security-Policy: frame-ancestors 'none' header to increase the protection against clickjacking attacks. The session cookie was already set to SameSite before, so this is an additional layer of protection.

Thanks to Shankar Acharya (@5hank4r) for suggesting this security enhancement.

Security-related breaking changes

  • All users are logged out from their sessions after updating to this patch release.
  • The Xml data handler (e.g. Data::decode($string, 'xml')) and the Xml::parse() method no longer process XML external entities.
  • The Panel can no longer be embedded in HTML frames.

3.6.6.3

27 Jul 09:53
5f1311f
Compare
Choose a tag to compare

🚨 Security release

This release fixes several vulnerabilities that were all responsibly reported to us in June 2023:

Thanks to Shankar Acharya (@5hank4r), Alexandre Zanni (@noraj) at ACCEIS and Patrick Falb (@dapatrese) at FORMER 03 for responsibly reporting the identified issues.

Updated default .htaccess

We have updated the .htaccess that ships with our kits to the new version 2023-07-22, which adds protection against browser MIME type detection from malicious file uploads for files that have already been copied to the media folder. We recommend to update your sites’ .htaccess or server configuration with the new changes if you might have potential attackers in your group of authenticated Panel users or if your sites allow file uploads by visitors and the file extensions of uploaded files are not limited to a fixed safe list.

You can find the changes to the .htaccess in this commit and read more about the added rules in the security guide.

Thanks to Shankar Acharya (@5hank4r) for making us aware of this potential attack vector.

Frame-blocking in the Panel

The Panel now sends the Content-Security-Policy: frame-ancestors 'none' header to increase the protection against clickjacking attacks. The session cookie was already set to SameSite before, so this is an additional layer of protection.

Thanks to Shankar Acharya (@5hank4r) for suggesting this security enhancement.

Security-related breaking changes

  • All users are logged out from their sessions after updating to this patch release.
  • The Xml data handler (e.g. Data::decode($string, 'xml')) and the Xml::parse() method no longer process XML external entities.
  • The Panel can no longer be embedded in HTML frames.

3.5.8.3

27 Jul 09:53
b9ac70d
Compare
Choose a tag to compare

🚨 Security release

This release fixes several vulnerabilities that were all responsibly reported to us in June 2023:

Thanks to Shankar Acharya (@5hank4r), Alexandre Zanni (@noraj) at ACCEIS and Patrick Falb (@dapatrese) at FORMER 03 for responsibly reporting the identified issues.

Updated default .htaccess

We have updated the .htaccess that ships with our kits to the new version 2023-07-22, which adds protection against browser MIME type detection from malicious file uploads for files that have already been copied to the media folder. We recommend to update your sites’ .htaccess or server configuration with the new changes if you might have potential attackers in your group of authenticated Panel users or if your sites allow file uploads by visitors and the file extensions of uploaded files are not limited to a fixed safe list.

You can find the changes to the .htaccess in this commit and read more about the added rules in the security guide.

Thanks to Shankar Acharya (@5hank4r) for making us aware of this potential attack vector.

Frame-blocking in the Panel

The Panel now sends the Content-Security-Policy: frame-ancestors 'none' header to increase the protection against clickjacking attacks. The session cookie was already set to SameSite before, so this is an additional layer of protection.

Thanks to Shankar Acharya (@5hank4r) for suggesting this security enhancement.

Security-related breaking changes

  • All users are logged out from their sessions after updating to this patch release.
  • The Xml data handler (e.g. Data::decode($string, 'xml')) and the Xml::parse() method no longer process XML external entities.
  • The Panel can no longer be embedded in HTML frames.

4.0.0-alpha.5

19 Jul 10:12
Compare
Choose a tag to compare
4.0.0-alpha.5 Pre-release
Pre-release

🚀 Kirby 4 roadmap

This is a pre-release for Kirby 4, which will be released later this year. Find out more about features and our roadmap on our Kirby 4 release page: https://getkirby.com/releases/4.0

🎉 Features

New Panel Design

Highlights

  • New collapsible sidebar menu
  • Full width layout
  • New color scheme
  • New save button position
  • New button styles
  • New system for CSS properties
  • Completely overhauled keyboard accessibility
  • Improved scroll behaviour
  • Lots of improvements to responsiveness (due to container queries)
  • Many new opportunities to style components via custom CSS properties

article
blog
dialogs
drawer
file
open-menu
shop
system

Core

  • New access and list permissions for files #5219

✨ Enhancements

  • Disabled buttons can receive focus (tab) which allows them to be read out by screenreaders
  • Structure fields don’t disregard content changes anymore when clicking outside the form (now drawer)

🐛 Bug fixes

  • App::multilang and App::defaultLanguage are correctly updated #5342
  • Prevent unnecessary runs in Language::update when updating the default language
  • Don’t display superfluous node divider on writer field #5352
  • Fixed centering of picker dialogs #5321
  • Fixed a lot of overflow layout issues related to too narrow columns
  • Default languages an multilang is now correctly handled when changed during a request #5343
  • Block title: certain HTML characters are now properly unescaped in the label #5346
  • Fix ->toUrl() method for invalid uuids #5367

4.0.0-alpha.4

03 Jul 08:55
1206ff5
Compare
Choose a tag to compare
4.0.0-alpha.4 Pre-release
Pre-release

🎉 Features

  • Custom methods for structure and structure object
  • New templatesIgnore for pages section - https://kirby.nolt.io/130 #5322
  • Link field
    • New anchor type for the link field
      screenshot of the anchor type
    • New custom type for the link field
      screenshot of the custom type
    • Allows selecting which types (url, email, tel...) to include #5278
  • New anchor icon

✨ Enhancements

  • Add field preview for color field #5282
  • Uploader: allow to add more files via drop #5304
  • Users field: set default: true to always use the currently logged in user as default
  • New focus option for file blueprints to enable/disable setting focus point in the Panel (defaults to true for all viewable images, false for all other files) #5316
  • New App::models() method that returns a generator for each model (site, files, pages and users) of the site [#5337]#5337

🐛 Bug fixes

  • PageCreateDialog: make title label translatable #5286
  • Disable changing layout if only one layout available #5288
  • Writer: preserve whitespace #5295
  • Fixed block keydown propagation #5272
  • Users field does not anymore use a default if none set #5284
  • An outside click will now collapse the link field #5204
  • Removes conflicting block keyboard shortcuts with Cmd key (instead use variants with Ctrl key) #5268
  • Fixed block collapsing inside layouts #5289
  • Fixed styling of color field options
  • Fixed link field selecting files type

♻️ Refactored

  • Made k-bubble more flexible #5305
  • Kirby\Cms\Structure extends Kirby\Cms\Items and Kirby\Cms\StructureObject extends Kirby\Cms\Item
  • Use Page::isAccessible instead of Page::isReadable #5220
  • Adds query endpoint for Kql plugin to core
  • New Content namespace
    • Moved the Content, ContentTranslation and Field classes (compatibility aliases are provided for now) #5283
    • New internal ContentStorage class that currently holds more of the storage related business logic
    • New internal ContentStorageHandler interface and internal PlainTextContentStorageHandler class to bundle all low-level content logic in one place #5283
    • Improve code quality and tests in the Content namespace #5283

☠️ Deprecated

  • query should not be used anymore for custom API endpoints, it will be used for the Kql plugin/core implementation
  • Internal $model->contentFile(), $model->contentFiles(), $model->contentFileDirectory(), $model->contentFileExtension() and $model->contentFileName() methods have been deprecated and will be removed in Kirby 5.

🚨 Breaking changes

  • Registering a default block model now needs to be done with the key default, not Kirby\Cms\Block. #5299
  • new Structure()/new StructureObject() don't work anymore as before. Use Structure::factory()/StructureObject::factory() instead
  • Structure object IDs aren't simply their collection index numbers anymore but receive a Str::uuid() as blocks do
  • Items::factory() and all inheriting classes throw an exception now if malformed data is passed
  • Users field doesn't automatically uses the current user as default, add default: true to keep this functionality
  • Remove keyboard shortcut to move block focus up/down
  • Extending the internal $model->contentFile(), $model->contentFiles(), $model->contentFileDirectory(), $model->contentFileExtension(), $model->contentFileName(), $model->readContent() and $model->writeContent() methods in a page model will no longer have an effect as these methods are no longer called by the core. Please extend the new Kirby\\Content\\PlainTextContentStorage class instead and return an instance of your custom class from $model->storage(). However please note that the interface of PlainTextContentStorage is internal and may change in the future.
  • The $translations->start() and $translations->stop() methods were no longer in use and have been removed. Content files are automatically converted by the Language class.
  • $languages->codes() now returns ['default'] for single language installations #5339

4.0.0-alpha.3

13 Jun 08:15
Compare
Choose a tag to compare
4.0.0-alpha.3 Pre-release
Pre-release

✨ Enhancements

  • Page tree now uses the icon defined in each page's blueprint #5239
    Untitled
  • Add custom field types to the list of allowed fields for the page create dialog via \Kirby\Panel\PageCreateDialog::$fieldTypes[] = 'yourFieldType'
  • Add pagination to search results #5191

🐛 Bug fixes

  • Files upload: use upload.parent for mime check #5245
  • Excluding textarea and writer for now in the Page Create Dialog until we have a better idea how to handle dialogs in layers #5243
  • Page create dialog throws proper exceptions if a field type is not supported
  • Color field: fix flex spacing and better color swatch preview #5260
  • Fixed tags field with query in page create dialog #5231
  • ->toUrl() to return null on empty fields #5259
  • No redirect to logout when already logged out #5263
  • Fix writer input padding #5271
  • Fix line height in writer lists

♻️ Refactored

  • Use panel.dialog for remove dialogs #5242
  • Unit tests for PageCreateDialog #5235
  • Fix method order of Toolkit\A ****#5227
  • Better type hinting for Form classes #5209

🚨 Breaking changes

  • Removed this.$config.search from Panel #5191
  • Area search plugins receive two additional arguments for their query callback: $limit and $page to be used to paginate the results. They should then return an array with entries results and pagination. #5191

3.9.5

07 Jun 12:10
6b5dda6
Compare
Choose a tag to compare

✨ Enhancements

  • Vue is now separately accessible at window.Vue #5158
  • New edit button for structure field to improve keyboard accessibility #5172
  • Updated translations (cs, is_IS, ru)

🐛 Bug fixes

  • Keep the language selector in sync when pressing the back button #5007
  • HasFiles::file() now also uses $in parameter when looking up UUIDs #5159
  • Database::lastError() doesn't crash anymore when no error occurred #5165
  • Correctly process query params and body fields with numeric keys #5171
  • $collection->indexOf() returns false instead of the index 0 when the passed element was not found in the collection #5175
  • The collection next() and prev() methods are now type-hinted to return static for improved IDE support #5039
  • Fix link style for structure field #5157
  • Remove return type for collection() helper #5169

♻️ Refactored

  • Clean up Toolkit package #5078
  • Update SimpleImage dependecy #5248
  • Bump vite from 4.3.0 to 4.3.9 in /panel #5250

4.0.0-alpha.2

01 Jun 09:34
Compare
Choose a tag to compare
4.0.0-alpha.2 Pre-release
Pre-release

🚀 Kirby 4 roadmap

This is a pre-release for Kirby 4, which will be released later this year. Find out more about features and our roadmap on our Kirby 4 release page: https://getkirby.com/releases/4.0

✨ Enhancements

  • Added polyfill for :has() CSS selector #5203
  • Panel.js API improvements
    • New panel.error() method that handles logging error in debug mode and opening notification if needed #5213
    • Silent loading ****#5206
    • Renamed panel Module to State #5212
    • Renamed panel Island to Modal #5212

🐛 Bug fixes

  • Fix typo I18n::translate method name to fix the language view #5193
  • Fixed missing return type #5186
  • Fix extending Vue components #5183 #5182 #5201
  • API requests now send always the current language along
  • Content store gets reloaded on view change again
  • Fixed language and content (re-)loading #5200
  • Page move: consider section parent in rules #5221
  • Fix page move dialog + tree recursion #5211
  • Fix field API #5216

4.0.0-alpha.1

25 May 08:57
Compare
Choose a tag to compare
4.0.0-alpha.1 Pre-release
Pre-release

This is the first public alpha releae for Kirby 4 🌱

We've prepared a release page with information about the alpha, all new features and docs: https://getkirby.com/releases/4.0

3.9.4

21 Apr 09:24
282b1e2
Compare
Choose a tag to compare

✨ Enhancements

  • F::move() now detects if the source and target are on different filesystems; it then copies the file and deletes the source on success instead of atomically moving the file #5124
  • Removed noopener  where it's already implied by noreferrer #5138
  • Inherit when for field groups (thanks @youngcut) #5143
fields:
  showit:
    type: toggle
  myGroup:
    type: group
    when:
      showit: true
    fields:
      myField1:
        type: text
      myField2:
        type: text
  • Introduced new YAML handler that can be activated by setting the config option yaml.handler to 'symfony'. We plan to switch over to the Symfony handler in the next major releases. For now, 'spyc' remains the default.
<?php 

// File: /site/config/config.php
return [
  'yaml.handler' => 'symfony'
];

🐛 Bug fixes

  • Custom blocks and layouts methods no longer bleed into collection methods (thanks @lukaskleinschmidt) #5120
  • HTML gets now stripped from Block labels #5127
  • $file->update(['template' => null]) allows unsetting template again #5131
  • alt text from image source does not get adopted (thanks @holmey) #5132
  • Date field with display property changes value while editing #5118
  • Uploading files no longer fails with the error "Operation not permitted" when the temporary directory is on another filesystem #5024
  • Fix detecting language with locale #5135
  • Fix filling default values while creating new page on secondary language #5140

♻️ Refactored

  • Removed abandoned phpcpd tool from CI #5139
  • Upgrade to vite 4.3 #5154