2 categories = ["Releases"]
4 title = "BookStack Release v24.05"
5 date = 2024-05-10T13:36:00Z
7 image = "/images/blog-cover-images/cc-by-sa-3/seven-sisters-cliffs-david-iliff.jpg"
8 slug = "bookstack-release-v24-05"
16 * [Update instructions](/docs/admin/updates)
17 * [GitHub release page](https://github.com/BookStackApp/BookStack/releases/tag/v24.05)
22 Todo - Copy to updates page
27 <!-- {{<pt 8w3F4aWqH3MProMwyQBf2d>}} -->
30 ### Framework & PHP Requirement Update
32 The core aim of this release was to update the core framework BookStack uses from
33 [Laravel](https://laravel.com/) 9 to 10 to help us stay on modern and supported dependencies.
34 This requires a bump to the minimum version of PHP we support, from 8.0 to 8.1.
35 This is something we typically do on a yearly basis, and keeps somewhat inline with the official
36 support lifetime of PHP versions, where PHP 8.0 stopped being officially supported late last year.
38 Apart from the PHP requirement change, this should not really have any affect to normal BookStack use
39 but it ensures we're keeping things maintained and on a modern codebase.
41 ### Command-based PDF Export Option
43 By default in BookStack we use a PHP-based PDF renderer ([DomPDF](https://github.com/dompdf/dompdf))
44 and have long provided a more accurate alternative via [wkhtmltopdf](https://www.bookstackapp.com/docs/admin/pdf-rendering/#using-wkhtmltopdf).
45 Unfortunately, wkhtmltopdf has become somewhat deprecated and is therefore dropping out of system repositories.
46 Additionally, there were security considerations when using wkhtmltopdf in BookStack.
48 As an alternative to we've now added a generic command-based option for BookStack.
49 Since PDF rendering can be a complex element, with different solutions having different strengths and weaknesses,
50 we didn't want to support a specific new PDF renderer, but instead provide an interface that could be
51 used with many external options. This option allows you to define a command, which will take an input HTML
52 file argument, and an output PDF file argument, which BookStack will then call during an export.
53 Existing solutions can then be directly called via this, or wrapped to work with this command-based interface.
55 Right now we have a couple of examples in our documentation, but these are marked unsafe due to security concerns.
56 In the future we'd like to expand upon, and potentially build/maintain, some safer alternative examples.
58 TODO - Link to docs page above
60 ### Change to Default Link Styles
62 Within page content links are now underlined by default.
66 We generally try to avoid change that can affect core user content within BookStack, but this
67 has been done to improve default accessibility by providing an additional indicator of a link upon
68 just the color, which may not be easy to identify to all.
70 If you'd prefer your links to remain non-underlined you can easily override this change by adding the following
71 to your "Custom HTML Head Content" customization setting:
75 ### OIDC Userinfo Endpoint Support
77 When OIDC authentication was in use, BookStack would previously only read claims direction from the supplied
78 user ID token. While this worked fine in most cases, some auth platforms would only provide certain details
79 via the userinfo endpoint. In this release we add wider support of the OIDC spec by making use of the userinfo
80 endpoint where needed. If not all details are in the token, BookStack will call & use the userinfo endpoint data.
81 This means existing OIDC use-cases should remain speedy and unaffected, with extra calls only being made during
82 authentication when needed.
84 The userinfo endpoint will be fetched via autodiscovery if enabled, otherwise it can also be defined via env options
85 using an `OIDC_USERINFO_ENDPOINT` option. Our [OIDC documentation](/docs/admin/oidc-auth/) has been updated to include this.
87 Thanks to [@LukeShu](https://github.com/BookStackApp/BookStack/pull/4726) for starting the implementation of this one.
89 ### Simple Registration Honeypot
91 For instances with open registration, spam can be a problem. While we don't want get deep into the ever moving scope
92 of spam prevention, this release adds a simple honeypot field to the registration to hopefully help at least
93 filter some of the simplest spam bots out.
95 Thanks to [@nesges](https://github.com/BookStackApp/BookStack/pull/4970) for contributing this addition.
97 ### Audit Log API Endpoint
99 We continue to expand the capabilities of the API in this release with the addition of a
100 list API endpoint for the audit log. This endpoint provides much the same data you'd be able
101 to access when visiting the in-app Audit Log as an administrator. The endpoint requires
102 the API user to have both "Manage app settings" and "Manage users" role permission since
103 audit log data may contain sensitive information, and is unfiltered by item-level permissions.
105 This addition should be helpful to those that need external insight into BookStack activities,
106 and those that like to standardise & centralise such audit data.
108 ### LDAP Custom TLS CA Cert Option
110 When using LDAP along with TLS, to encrypt connections, it could be common that custom
111 certificates are used by the authentication platform. Such custom certificates could then throw
112 errors due to not being issues by a trusted/known authority. While custom certificates could technically be configured
113 via openldap, the methods/steps needed for this are not clear nor obvious.
114 In this release, we now support a `LDAP_TLS_CA_CERT` option that can be set so BookStack will use a
115 certain CA certificate, or a directory of many CA certificates.
117 You can find further details of this option in our [updated LDAP documentation](https://www.bookstackapp.com/docs/admin/ldap-auth/).
121 A big thanks once again to all the wonderful word weavers below that have helped translate BookStack
122 since that last feature release:
124 - Name - *LAng - x words*
126 *\* Word counts are those tracked by Crowdin, indicating original EN words translated.*
130 In BookStack the default WYSIWYG page editor (and recent description/comment editor) is powered by library
131 called TinyMCE. They've recently [changed the project](https://github.com/tinymce/tinymce/discussions/9496)
132 to a GPLv2+ license which is incompatible with our MIT license for the project as a working whole.
133 This is quite a big deal for us since it's such a core part of the project.
134 I've opened a BookStack [discussion for this here](https://github.com/BookStackApp/BookStack/issues/4908).
135 Over the next release cycle I'll be diving into this further to get a better idea of what route we'll take.
137 Last month we had the release of Ubuntu 24.04, for which we quickly published a [new install script](/docs/admin/installation/#ubuntu-2404),
138 but to accompany this I'd like to record a new video guide, perhaps going a little bit deeper this time into topics like updates
139 and other general maintenance tasks.
141 ### Full List of Changes
143 **Released in v24.05**
145 * Updated app framework from Laravel 9 to 10. ([#4903](https://github.com/BookStackApp/BookStack/pull/4903))
146 * Added new command-based PDF export option. ([#4969](https://github.com/BookStackApp/BookStack/pull/4969), [#4732](https://github.com/BookStackApp/BookStack/issues/4732))
147 * Added Audit Log API list endpoint. ([#4987](https://github.com/BookStackApp/BookStack/pull/4987), [#4316](https://github.com/BookStackApp/BookStack/issues/4316))
148 * Added LDAP option to provide a custom CA cert. Thanks to [@mmoore2012](https://github.com/BookStackApp/BookStack/pull/4913). ([#4985](https://github.com/BookStackApp/BookStack/pull/4985), [#4913](https://github.com/BookStackApp/BookStack/pull/4913))
149 * Added OIDC userinfo endpoint support. Thanks to [@LukeShu](https://github.com/BookStackApp/BookStack/pull/4726). ([#4955](https://github.com/BookStackApp/BookStack/pull/4955), [#4726](https://github.com/BookStackApp/BookStack/pull/4726), [#3873](https://github.com/BookStackApp/BookStack/issues/3873))
150 * Added simple registration form honeypot. Thanks to [@nesges](https://github.com/BookStackApp/BookStack/pull/4970). ([#4970](https://github.com/BookStackApp/BookStack/pull/4970))
151 * Added Scala to list of supported languages in code blocks. ([#4953](https://github.com/BookStackApp/BookStack/issues/4953))
152 * Updated content links to be underlined by default for accessibility. ([#4939](https://github.com/BookStackApp/BookStack/issues/4939))
153 * Updated dev Dockerfile with improvements. Thanks to [@C0rn3j](https://github.com/BookStackApp/BookStack/pull/4895). ([#4895](https://github.com/BookStackApp/BookStack/pull/4895))
154 * Updated included images with extra compression to save data. Thanks to [@C0rn3j](https://github.com/BookStackApp/BookStack/pull/4904). ([#4904](https://github.com/BookStackApp/BookStack/pull/4904))
155 * Updated JS build system to split markdown-focused packages to own file. ([#4930](https://github.com/BookStackApp/BookStack/pull/4930), [#4858](https://github.com/BookStackApp/BookStack/issues/4858))
156 * Updated LDAP user filter option to support new placeholder format. ([#4967](https://github.com/BookStackApp/BookStack/issues/4967))
157 * Updated minimum required PHP version from 8.0 to 8.1. ([#4894](https://github.com/BookStackApp/BookStack/pull/4894), [#4893](https://github.com/BookStackApp/BookStack/issues/4893))
158 * Updated translations with latest Crowdin changes. ([#4890](https://github.com/BookStackApp/BookStack/pull/4890))
159 * Fixed code direction in WYSWIYG editor lacking direction support in code editor. ([#4943](https://github.com/BookStackApp/BookStack/issues/4943))
160 * Fixed difference of line-heights for paragraphs in tables between editor and page view. ([#4960](https://github.com/BookStackApp/BookStack/issues/4960))
161 * Fixed extra space at the beginning of a translation. Thanks to [@johnroyer](https://github.com/BookStackApp/BookStack/pull/4972). ([#4972](https://github.com/BookStackApp/BookStack/pull/4972))
162 * Fixed failing drag and drop of attachments into editor on Chrome. ([#4975](https://github.com/BookStackApp/BookStack/issues/4975))
163 * Fixed incorrect tag counts when tagged items are in the recycle bin. ([#4892](https://github.com/BookStackApp/BookStack/issues/4892))
164 * Fixed WYSIWYG object embeds in the editor showing image toolbar button. ([#4974](https://github.com/BookStackApp/BookStack/issues/4974))
165 * Fixed WYSIWYG table cell format handling which could clear styles unexpectedly. ([#4964](https://github.com/BookStackApp/BookStack/issues/4964))
167 **Released in v24.02.3**
169 * Fixed non-working "Open Link In..." option for description editors. ([#4925](https://github.com/BookStackApp/BookStack/issues/4925))
170 * Fixed failed reference loading when references are from recycle bin items. ([#4918](https://github.com/BookStackApp/BookStack/issues/4918))
171 * Fixed failed code block rendering when a code language was not set. ([#4917](https://github.com/BookStackApp/BookStack/issues/4917))
172 * Updated page editor max content widths to align with page display. ([#4916](https://github.com/BookStackApp/BookStack/issues/4916))
174 **Released in v24.02.2**
176 * New version to address missed version and asset changes in v24.02.1. ([#4889](https://github.com/BookStackApp/BookStack/issues/4889))
178 **Released in v24.02.1**
180 * Updated translations with latest Crowdin changes. ([#4877](https://github.com/BookStackApp/BookStack/pull/4877))
181 * Updated breadcrumb book & shelf lists to be name-ordered. ([#4876](https://github.com/BookStackApp/BookStack/issues/4876))
182 * Updated MFA inputs to avoid auto-complete. Thanks to [@ImMattic](https://github.com/BookStackApp/BookStack/pull/4849). ([#4849](https://github.com/BookStackApp/BookStack/pull/4849))
183 * Fixed non-breaking spaces causing combined words in page navigation. ([#4836](https://github.com/BookStackApp/BookStack/issues/4836))
184 * Fixed page navigation click not jumping to headers in nested collapsible blocks. ([#4878](https://github.com/BookStackApp/BookStack/issues/4878))
188 <span style="font-size: 0.8em;opacity:0.9;">Header Image Credits: <span>Photo by <a href="https://commons.wikimedia.org/wiki/File:Seven_Sisters_Panorama,_East_Sussex,_England_-_May_2009.jpg">David Iliff (CC-BY-SA-3)</a> - Image Modified</span></span>