Caveat 🔥

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

  • ℹ️ 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

To get an overview about new functionality, read the Release Notes. To learn about the necessary actions to update Livingdocs to release-2024-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
Node20
NPM10
Postgres16
Elasticsearch
OpenSearch
8.x
v2.3.0
Redis7
Livingdocs Server Docker Imagelivingdocs/server-base:20
Livingdocs Editor Docker Imagelivingdocs/editor-base:20
Browser SupportEdge >= 92, Firefox >= 90, Chrome >= 92, Safari >= 15.4, iOS Safari >= 15.4, Opera >= 78

Minimal

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

Breaking Changes 🔥

server Operations

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 schema
# migration 198-assistants.js
#   creates assistant table and support function
# migration 199-remove-tag-suggestions.js
#   removes tag_suggestions table from the database
# migration 200-assistants-unique=constraint.js
#   adds unique constraint to the assistant table
livingdocs-server migrate up
server/editor Integrations

Remove iMatrics tag suggestion support 🔥

The tag suggestion feature has been removed from the Livingdocs Editor and Server. Customers can find the functionality over at iMatrics website where they have introduced their own interface for managing tag suggestions.

Required Actions

Database Migration

Customers should apply the new database migration by running li-server migrate up. This drops the tag_suggestions table.

⚠️ Warning: All data within this table will be irreversibly deleted. Customers must ensure that any open suggestions are migrated to iMatrics’ new suggestion management system. To determine that there are no pending suggestions, they should open the Livingdocs editor at /<project>/tags/imatrics and verify that there are no pending suggestions visible. Alternatively, they can also execute the following database query and confirm that it returns no results.

SELECT * FROM tag_suggestions WHERE status LIKE 'open';

In case there are pending suggestions, customers should either accept or reject them within our interface, provided they are using an older release. Alternatively, they can refer to the iMatrics API documentation on how to programmatically insert them into the new suggestion system.

Customers should remove menu items {liItem: 'tags'} from their project configurations.

iMatrics Webportal

Customers should verify that Concept Management and Concept Suggestions is enabled in their iMatrics account. If this is not the case, they should reach out to iMatrics to have it enabled.

server liServer

Remove internal arrays liServer.onShutdownHandlers and liServer.initializedHooks 🔥

The internal arrays liServer.onShutdownHandlers and liServer.initializedHooks have been removed. Other existing hooks can be used to achieve the same functionality.

Deprecations

server Server Configuration

appConfig.textcount configuration ⚠️

appConfig.textcount configuration has been moved to projectConfig.editorSettings.textCount. The appConfig.textcount configuration will be removed in release-2024-11.

Please migrate text count config from appConfig.textcount to projectConfig.editorSettings.textCount.

editorSettings: {
  ...
  textCount: {
    isEnabled: true,
    timeout: 200,
    showEditableCount: true,
    lineCountFraction: 39.5 // Added in release-2024-05
  }
}
server Desk-net API

Desk-net API function parameters ⚠️

  • Instead of createFromDesknet(projectId, element) please use createFromDesknet({projectId, userId, element}). userId is a new required property.
  • Instead of updateFromDesknet(projectId, documentId, element, opts) please use updateFromDesknet({projectId, documentId, userId, element, linkPublication}). userId is a new required property.
  • Instead of unlinkFromDesknet(projectId, documentId) please use unlinkFromDesknet({projectId, documentId, userId}). userId is a new required property.
server Dashboards

Dashboards of type dashboard ⚠️

server Dashboards

Angular custom dashboard cards ⚠️

Features

server Assistants

Livingdocs Assistants

Register an assistant

  liServer.registerAssistant({
    projectHandles: ['example'], // skip to register it for all projects
    handle: 'generateTitle',
    label: 'Generate Title',
    description: 'Generate an article title',
    iconUrl: 'https://livingdocsio.github.io/livingdocs-design-assets/docs/icons/component-icons/header_simple.svg',
    async assist ({context}) {
      const {document, projectConfig} = context
      const projectHandle = projectConfig.key.projectHandle
      const contentType = document.contentType

      // Apply context validations before executing the command
      if (projectHandle !== 'service' && contentType !== 'article') {
        throw validationError(
          'Cool Title assistant is only available on articles in example project'
        )
      }
      if (!document) {
        throw validationError('Generate Title assistant requires a document')
      }

      const oldTitle = document.metadata.title
      const newTitle = await aiService.generateTitle(document.content)

      // Use Command API compatible commands to modify a document.
      // Return undefined if not applicable.
      return {
        commands: [
          {
            operation: 'setMetadataProperty',
            propertyName: 'title',
            value: newTitle,
            oldValue: oldTitle
          }
        ]
      }
    }
  })
})

Possible properties on context:

  • projectConfig
  • documentId (optional)
  • document (optional)
  • focusedComponentId (optional)

Commands are executed with an assistant actor (one per project/assistant combination). Actors are created on demand.

editor Teasers

Dynamic Teaser Lists

editor Integrations

Display filter for li-imatrics-nlp-tags

Add an indexed metadata property of type li-imatrics-nlp-tags to a content type:

{
  handle: 'imatrics',
  type: 'li-imatrics-nlp-tags',
  config: {index: true}
}

Reference the metadata property in the display filter:

dashboards: [
  {
    displayFilters: [
      {metadataPropertyName: 'imatrics'}
    ]
  }
]
editor Documents State

Document statistics

editor Search

Document search improvements

editor Document State

Manual document status

server Integrations

Desk-net Global Integration

server Integrations

Migration to iMatrics tag management

server Media Library

File import via Public API

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

Livingdocs Editor Patches


Icon Legend

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