To get an overview about new functionality, read the [Release Notes] (TODO: add release notes when finished). To learn about the necessary actions to update Livingdocs to release-2025-05, read on.

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

Webinar

System Requirements

Suggested

NameVersion
Node22
NPM10
Postgres16
Elasticsearch
OpenSearch
8.x
v2.3.0
Redis7
Livingdocs Server Docker Imagelivingdocs/server-base:22
Livingdocs Editor Docker Imagelivingdocs/editor-base:22
Browser SupportEdge >= 92, Firefox >= 90, Chrome >= 92, Safari >= 15.4, iOS Safari >= 15.4, Opera >= 78

Minimal

NameVersion
Node20.19
NPM10
Postgres13
Elasticsearch
OpenSearch
7.x
1
Redis6.2
Livingdocs Server Docker Imagelivingdocs/server-base:20:7
Livingdocs Editor Docker Imagelivingdocs/editor-base:20:7
Browser SupportEdge >= 92, Firefox >= 90, Chrome >= 92, Safari >= 15.4, iOS Safari >= 15.4, Opera >= 78

Breaking Changes 🔥

Version Dependencies

Update Minimal Node Version v20.19 🔥

The minimal supported Node.js version is now v20.19.0. This version allows us to require esm modules within commonjs.

Removal Server

Removal of Desk-Net in favor to Kordiam 🔥

Desk-Net rebranded as Kordiam. To align Livingdocs with this change, we previously introduced corresponding Kordiam properties, features, and plugins. With this release, we are removing the superseded Desk-Net functionality:

  • Feature li-desknet and li-desknet-integration, including all server APIs
  • Server config desknet, integrations.desknet, and hugo.print.desknetMetadataFields
  • Project config settings.desknet, settings.integrations.desknet, and contentTypes.[*].desknet
  • Function parameter desknetApi of Desk-Net/Kordiam functions
  • desknet property in the return objects of projectApi.getProject() and systemApi.config()
  • Metadata plugins li-desknet-global, li-desknet-integration, and li-desknet-schedule
  • li-kordiam-schedule config property desknetExternalElementIdMetadataPath
  • TODO: @marcbachmann -> API urls changes?
Removal Server

Removal of Menu Tool 🔥

The Menu Tool has been removed.

  • Menu items {liItem: 'menus'} are no longer supported. Please remove them from the project config.
  • Public API GET /api/:apiVersion/menus/:channelHandle? has been removed.
  • Feature li-menus has been removed including all its server APIs.
Removal Server

Removal of config.contentTypes 🔥

The deprecated shorthand property config.contentTypes in the li-document-search metadata plugin was now removed. Use config.contentType instead.

Deprecations

There have been no deprecations since the last release.

Features

server/editor Exposure Boosting

Exposure Boosting 🎁

When using algorithmic teasers, the order of the documents is determined by a sort criteria. Oftentimes, this is the latest publication date. By activating the exposure boost for a document, it will appear before all non-boosted documents returned by an algorithm. This is useful, in scenarios where algorithms receive high frequency updates and important topics would get pushed down quickly. The effect will go away automatically after a certain time.

  1. Add the li-exposure-boost plugin to your content type metadata

    {
      handle: 'article',
      // ...
      metadata: [
        // ...
        {
          handle: 'exposureBoost',
          type: 'li-exposure-boost',
          config: {
            index: true
          }
        }
      ]
    }
    
    • handle: Make sure to use the same handle for all content types where the plugin is configured
    • indexing: The config option index needs to be enabled for it to work
  2. Generally allow exposure boosting for certain teasers in their service params schema

    {
      name: 'someTeaserService',
      paramsSchema: [
        // ...
        {
          handle: 'someTeaser',
          type: 'li-teaser',
          config: {
            // ...
            algorithm: {
              // ...
              allowExposureBoost: true
            }
          }
        }
      ]
    }
    
  3. Show the exposure boost UI on a Table Dashboard (optional)

    {
      handle: 'someDashboard',
      // ...
      columns: [
        // ...
        {
          label: 'Boost',
          minWidth: 100,
          growFactor: 0,
          priority: 1,
          metadataPropertyName: 'exposureBoost',
          editable: true
        }
      ]
    }
    

Visit the li-exposure-boost plugin page for more information.

Document Inbox for Data Records 🎁

Media Center Image Editing 🎁

PEIQ Integration - Article Import 🎁

Media Center - Delete language metadata set 🎁

editor Table Dashboards

Table Dashboards - Support All Metadata Cells 🎁

In earlier iterations of the Table Dashboards, metadata plugin support was limited. However, as the feature has become more widely adopted inconsistencies across plugin behaviour became confusing and problematic.

This release addresses that gap by adding support for a broader range of metadata plugins in table dashboards, improving completeness and consistency across the system. Newly supported plugins include:

  • li-datetime, li-system-datetime
  • li-date, li-system-date
  • li-enum, li-system-enum
  • li-document-references
  • li-target-length

Additional oEmbed Providers 🎁

editor Clipboard

Added Clipboard Context

This release enhances clipboard usability for nested components. Previously, when copying or cutting nested components, the clipboard displayed only the component name, with no descriptive context making it difficult to distinguish between components, especially those with identical names. The clipboard preview now includes the content of the first descendant as a description, providing better context and improving the overall editing experience.

editor Teaser Sidebar

Clickable Titles in Teaser Sidebar

Teaser titles are now clickable, allowing editors to directly open the linked article in a new window without needing to navigate to it manually. This enables more efficient workflows for all those roles that work with the teaser sidebar.

Vulnerability Patches

We are constantly patching module vulnerabilities for the Livingdocs Server and Livingdocs Editor as module fixes are available. Below is a list of all patched vulnerabilities included in the release.

Livingdocs Server

This release we have patched the following vulnerabilities in the Livingdocs Server:

No known vulnerabilities. 🎉

Livingdocs Editor

This release we have patched the following vulnerabilities in the Livingdocs Editor:

We are aware of the following vulnerabilities in the Livingdocs Editor:

  • CVE-2023-44270 vulnerability in postcss, it affects linters using PostCSS to parse external Cascading Style Sheets (CSS). It is not exploitable in the editor as we don’t load untrusted external CSS at build time.
  • CVE-2023-26116, CVE-2023-26118, CVE-2023-26117, CVE-2022-25869, CVE-2022-25844 are all AngularJS vulnerabilities that don’t have a patch available. We are working on removing all AngularJS from our code and vulnerabilities will go away when we complete the transition to Vue.js.

Patches

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

Livingdocs Server Patches

  • v276.3.6: fix(deps): update dependency @livingdocs/framework from 32.7.6 to v32.7.7

  • v276.3.5: fix: Convert gif images to webp when rendering in the editor

  • v276.3.4: fix: Support downloading images from /serve-image endpoint

  • v276.3.3: fix(queue): Execute redis streams cleanup only on worker

  • v276.3.2: fix(data-migration-run): Parse argument –filter-by-id to integers

  • v276.3.1: fix(peiq-agency): Improve handling of empty property image_ids

Livingdocs Editor Patches

  • v117.6.15: fix(deps): update dependency @livingdocs/framework from 32.7.6 to v32.7.7

  • v117.6.14: fix(image-editing): Show image editor button also if it is the only action

  • v117.6.13: fix: Disable supportsVideoConversion in rendering image service

  • v117.6.12: fix: dont disable metadata button

  • v117.6.11: fix(deps): Update Pintura to v8.92.14

  • v117.6.10: fix: Compute clipboard image URL with rendering image service

  • v117.6.9: fix: Remove non-existent linked Pintura package from downstream tests

  • v117.6.8: fix(ticker): Prevent component blur when clicking on component area

  • v117.6.7: fix: Download images from /serve-image endpoint

  • v117.6.6: fix(login): Show login errors correctly. Do not prune the hash part if it doesn’t include a token parameter

  • v117.6.5: fix(properties-panel): Always show “Has local changes” for documents

  • v117.6.4: fix(drag-drop): Clear up markers after dragend event

  • v117.6.3: fix(core): Replace app when registering project settings components

  • v117.6.2: fix(properties-panel): Hide edit local version when empty


Icon Legend

  • Breaking changes: 🔥
  • Feature: 🎁