Attention: If you skipped one or more releases, please also check the release-notes of the skipped ones.
Webinar
- Feature Webinar Recording | Passcode: y1Dw?P0X
- Feature Webinar Slides
- Dev Webinar Recording | Passcode: jq%sBK7B
- Dev Webinar Slides
- Release Newsletter Subscription
System Requirements
Suggested
Name | Version |
---|---|
Node | 18 |
NPM | 8 |
Postgres | 14 |
Elasticsearch OpenSearch |
8.x 2 |
Redis | 7 |
Livingdocs Server Docker Image | livingdocs/server-base:18 |
Livingdocs Editor Docker Image | livingdocs/editor-base:18 |
Browser Support | Edge >= 80, Firefox >= 74, Chrome >= 80, Safari >= 13.1, iOS Safari >= 13.4, Opera >= 67 |
Minimal
Name | Version |
---|---|
Node | 16 |
NPM | 8 |
Postgres | 12 |
Elasticsearch OpenSearch |
7.x 1 |
Redis | 6.2 |
Livingdocs Server Docker Image | livingdocs/server-base:16.3 |
Livingdocs Editor Docker Image | livingdocs/editor-base:16.3 |
Browser Support | Edge >= 80, Firefox >= 74, Chrome >= 80, Safari >= 13.1, iOS Safari >= 13.4, Opera >= 67 |
Highlights
Home Screen
Project home screen with multiple Table Dashboards and Document Creation Flow buttons on it.
Breaking Changes 🔥
Migrate the Postgres Database 🔥
It’s a simple/fast migration with no expected data losses.
# run `livingdocs-server migrate up` to update to the newest database scheme
# migration 184-increase-webhook-handle-length.js
# limit webhook handle to 50 characters
# migration 185-li-get-leaf-of-revision-history.js
# add psql function li_get_leaf_of_revision_history
livingdocs-server migrate up
Drop support for node v14
🔥 Drop support for node 14, use node v18 instead.
Drop support for Redis < v6.2
🔥 The minimal required Redis version is v6.2.
Upgrade to elasticsearch client v8
🔥 The response structure changed in the new client. If you have custom code that accesses elasticsearch, you’ll need to update it accordingly:
- const {body} = await elasticsearchClient.search({
+ const body = await elasticsearchClient.search({
index: 'li-documents',
q: `document.id:${this.doc.id}`
})
Please see the examples of elasticsearch how to use it: https://www.elastic.co/guide/en/elasticsearch/client/javascript-api/current/get_examples.html
🔥 The elasticsearch client configuration changed slightly. Please consult the elasticsearch client configuration documentation: https://www.elastic.co/guide/en/elasticsearch/client/javascript-api/current/basic-config.html
search: {
elasticsearchClient: {
node: 'https://127.0.0.1:9200/',
auth: {username: 'admin', password: 'admin'},
- ssl: {rejectUnauthorized: false}
+ tls: {rejectUnauthorized: false}
}
},
References: Server PR
Don’t expose error_details in 5xx response
🔥 5XX responses will no longer contain body.error_details
object, still the whole error response will be logged.
References: Server PR
Remove metadata plugin li-media-language
🔥 Remove metadata plugin li-media-language
, use li-metadata-translations
instead.
References: Server PR
Remove deprecated document.path
Since a long time we deprecated the DB property documents.path
, because there is no real feature behind that property.
🔥 contentTypes[].editor.deliveryLinks
do not support:path
placeholder
🔥 editor model draft.path
is not accessible anymore
References: Server PR
Support removal of metadata properties by assigning null
🔥 Before this change, assigning null values resulted in a metadata schema error. Now it’s accepted and it removes the metadata property. Therefore it’s not possible anymore to save the value null as metadata property value.
// before
metadata.myField = null // throws
// now
metadata.myField = null // delete metadata.myField
References: Server PR
Mandatory project_id in documentApi.find
🔥 Make project_id
mandatory in documentApi.find
References: Server PR
Fix firstPublicationDate to documents table (Post Deployment) 🔥
This script was backported to release-2022-11, so it has been added again for release-2023-01 in case anyone missed it. If you already ran the script with the previous release upgrade you do not need to run it again.
If you have unpublished a document while running release-2022-07 or release-2022-09 then you may have inaccurate values for the document.systemdata.firstPublicationDate
. Below is a comparison of the change in the four most recent versions:
First publish:
release-2022-07 and release-2022-09: Set firstPublicationDate
release-2022-05 and release-2022-11: Set firstPublicationDate
Republish while published:
release-2022-07 and release-2022-09: Keep firstPublicationDate
release-2022-05 and release-2022-11: Keep firstPublicationDate
Unpublish:
release-2022-07 and release-2022-09: Remove firstPublicationDate
release-2022-05 and release-2022-11: Keep firstPublicationDate
Republish after unpublish:
release-2022-07 and release-2022-09: Set firstPublicationDate
release-2022-05 and release-2022-11: Keep firstPublicationDate
Essentially the old behaviour and the new “fixed” behaviour is to set firstPublicationDate
once and never modify it. This property will still exist even when the document is unpublished. For release-2022-07 and release-2022-09 the difference in behaviour was that the firstPublicationDate
would be cleared on unpublish and set again at the next publish.
If you would like to correct the firstPublicationDate
property for all of your articles you can run:
node ./node_modules/@livingdocs/server/db/manual-migrations/009-fix-first-publication-date.js
This script performs the following actions:
- Check that
first_publication_id
has been set (same as the script 007-populate-first-publication-data.js) - Move
firstPublicationDate
fromdata
todata.publishControl
- Remove
data.firstPublicationDate
- If
firstPublicationDate
is not set then use the value from the first publication - If
firstPublicationDate
is set then use the value from the first publication when the first publication is older
It is highly recommended that you run this script because it is performing a data migration as well as fixing the values.
References: Server PR
Deprecations
Deprecate Dashboard Display Filters
These Dashboard Display Filters get deprecated:
coreApi.searchFilters.register
coreApi.searchFilters.registerList
coreApi.searchFilters.registerAngularComponent
Update the deprecated filter to the supported Display Filters from the core.
- Named Filters
- Metadata Filters
- ListV2 Filters
If you can’t handle your requirements with core filters it’s best to contact your Customer Solutions manager to get inputs for solutions (one option is to create your custom Vue component, but that should be prevented whenever possible)
Breaking Change: release-2023-03
References: Editor PR
Other Changes
Features
- Load drafts in includes
- Add server config ‘httpServer.showStackTraces’
- Support Dailymotion for oEmbed include
Improvements
Bugfixes
- Publish screen back button returns to custom data record dashboard after create
- Handle focal point in metadata forms
- Fix date sort order on users admin screen
Patches
Here is a list of all patches after the release has been announced.
Livingdocs Server Patches
- v208.3.20: fix(local-authentication): Make the current_password validation more strict
- v208.3.19: fix(public-api): Fix
mutating
property on route declaration of composition api - v208.3.18: fix(search): Support custom date format dd.MM.yyyy in legacy elasticsearch mappings
- v208.3.17: fix: extend test for filtering unknown components when nested default content is defined in the contentType
- v208.3.16: fix(public-api): Fix
Cannot set headers after they are sent to the client
error onPOST /api/v1/import/mediaLibrary
- v208.3.15: fix: check documentType delete permissions
- v208.3.14: fix(import): Ignore duplicate import webhook delivery report error
- v208.3.13: fix(date-filter): Do not match a date as date range
- v208.3.12: fix(date-filter): Use a more strict date, boolean and date range parsing
- v208.3.11: fix(date-filter): use correct key
- v208.3.10: fix(comyan): expose api
- v208.3.9: fix(homeScreen): add dashboardTitle config
- v208.3.8: test(image-processing): Add a timeout to the extractHeader tests and use a larger file
- v208.3.7: fix: add test for id range parameter for PublicationEvents
- v208.3.6: fix(desknet): Prevent empty userId from Desk-Net
- v208.3.5: chore: Fix DocumentEntity save tests that use the documents repo
- v208.3.4: test: Simplify the tests
- v208.3.3: fix(cli reencrypt): now uses correct stringify
Livingdocs Editor Patches
-
v87.5.41: fix: make builds feedback more visible
-
v87.5.40: fix(deps): bump ua-parser-js from 0.7.32 to 0.7.33
-
v87.5.39: fix(focalPoint): avoid creating empty object as focal point
-
v87.5.38: fix(document reference): Class typo
-
v87.5.37: fix: Replace jsonwebtoken with jose
-
v87.5.36: fix(images): do not auto-update images for includes
-
v87.5.35: fix(li-date-time-range-filter): prevent filter dropdown to be cut off
-
v87.5.34: chore(soft lock): no helper function, better lock check
-
v87.5.33: fix(basePath): Always load webpack assets with the absolute path
-
v87.5.32: fix(deps): update dependency fastify from 4.9.2 to 4.10.2 [security]
-
v87.5.31: fix(security): Applies all security patches that do not have the patch in a breaking version
-
v87.5.30: fix: show configured style of li-document-reference in creation flow dialogs and includes
-
v87.5.29: fix(security): Upgrade
socket.io
to fix critical vulnerability -
v87.5.28: fix(security): Upgrade
resolve-url-loader
to fixloader-utils
critical vulnerability -
v87.5.27: fix: detect media changes by asset.key
-
v87.5.26: fix(upload): handle unsupported images in browser
-
v87.5.25: fix(comyan): remove unsupported config from the ui
-
v87.5.24: fix(document lists): Code removed
-
v87.5.23: fix(homeScreen): use unique key to loop over home screen dashboards
-
v87.5.22: fix(metadata): Wrap document references in default list
-
v87.5.21: chore(li-link-edit): tests added
-
v87.5.20: fix(namedCrops): Delete button works correctly
-
v87.5.19: fix: add system user for empty userid
-
v87.5.18: fix(home screen): return to home screen with back button from article if opened from home screen
-
v87.5.17: fix(metadata): Always pass focalPoint when initialising image cropper
-
v87.5.16: fix(filters): deprecate list and angular component custom filters
-
v87.5.15: fix(deps): update dependency moment-timezone from 0.5.34 to 0.5.35 [security]
-
v87.5.14: fix(medialibrary): Fix error where uploading images by restricted user would fail
-
v87.5.13: fix(autosave): Add scheduled save when autosave.stopped
-
v87.5.12: fix(search): Fix load more button translation for list search
-
v87.5.11: fix(inlineListEditor): Only publishable when dirty
-
v87.5.10: fix(dateTimevalidity): Does not error without ‘to’ date
-
v87.5.9: fix(metadata): Change calculation for li-text input height
-
v87.5.8: fix(li-document-creation-flow-button): null-safe access to
documentCreationFlow
-
v87.5.7: fix: change to selected service on copy
-
v87.5.6: fix(document-lists): Update German translation for “Close”
-
v87.5.5: fix(loader): added and styled for translation card
Icon Legend
- Breaking changes: 🔥
- Feature: 🎁
- Bugfix: 🪲
- Chore: 🔧