January 2023 Release

Caveat 🔥

These are the release notes of the upcoming release (pull requests merged to master).

  • ℹ️ this document is updated automatically by a bot (pr’s to categorize section)
  • ℹ️ this document will be roughly updated manually once a week (put PRs + description to the right section)
  • 🔥 We don’t guarantee stable APIs. They can still change until the official release
  • 🔥 Integration against the upcoming release (currently master branch) is at your own risk

PRs to Categorize

Attention: If you skipped one or more releases, please also check the release-notes of the skipped ones.


System Requirements


Name Version
Node 18
Postgres 14
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


Name Version
Node 16
Postgres 12
Redis 5 (Deprecated)
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


i18n - Editor available in German

TODO: description

Synced Table Dashboards

TODO: description

Breaking Changes 🔥

Migrate the Postgres Database 🔥

TODO: add db migrations

# run `livingdocs-server migrate up` to update to the newest database scheme
livingdocs-server migrate up

Drop support for node 14

🔥 Drop support for node 14, use node v18 instead.

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: '',
      auth: {username: 'admin', password: 'admin'},
-     ssl: {rejectUnauthorized: false}
+     tls: {rejectUnauthorized: false}

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:

  1. Check that first_publication_id has been set (same as the script 007-populate-first-publication-data.js)
  2. Move firstPublicationDate from data to data.publishControl
  3. Remove data.firstPublicationDate
  4. If firstPublicationDate is not set then use the value from the first publication
  5. 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


APIs 🎁

Other Changes





Here is a list of all patches after the release has been announced.

Livingdocs Server Patches

Livingdocs Editor Patches

  • v??.?.?: text

    Icon Legend

    • Breaking changes: 🔥
    • Feature: 🎁
    • Bugfix: 🪲
    • Chore: 🔧