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


This release consists of the following new versions of the livingdocs-server and the livingdocs-editor:


Livingdocs Server

How to require the server in your package.json:

"dependencies": {
  "@livingdocs/server": "v76.26.8",

Livingdocs Server Patches

  • v76.26.8: fix(filter): handle a not_content_type filter as value or array
  • v76.26.7: fix(merge-users): prevent group membership assignment from overwriting
  • v76.26.6: fix: enable proofreading and review property for dashboards
  • v76.26.5: fix(tasks): support link from tasks to dashboard
  • v76.26.4: chore: Change config processor merging logic to respect regular key order
  • v76.26.3: fix: Add code to inspect feature config changes using the environment variable DEBUG_CONFIG_CHANGE
  • v76.26.2: fix(hugo): add filename
  • v76.26.1: update framework version to 11.7.0 for release management
  • v76.26.0: support google cloud storage

Livingdocs Editor

How to require the editor in your package.json:

"dependencies": {
  "@livingdocs/editor": "v36.9.33",

Livingdocs Editor Patches

  • v36.9.33: chore: incorporate feedback
  • v36.9.32: fix: rotate npm token
  • v36.9.31: fix(tasks): show tasks in publish panel on the sidebar
  • v36.9.30: fix(proofreading): fix proofreading filter behaviour
  • v36.9.29: fix: set bowser version to 2.5.2 to prevent building problems
  • v36.9.28: fix: trigger build to solve bowser problem
  • v36.9.27: fix(tasks): show always a username in tasks
  • v36.9.26: fix(filter): allow notContentType in dashboard filters to be a value or an array
  • v36.9.25: fix(crop-size): use image size as max value for crop
  • v36.9.24: fix(dashboard): handle errors when an item has no metadata config
  • v36.9.23: fix(dashboard): resolve filter properly when query string is set in url on a custom dashboard
  • v36.9.22: fix: retrigger the CI
  • v36.9.21: fix(diff-outdated-versions): don’t set revision inactive for outdated design
  • v36.9.20: fix(diff-outdated-versions): bump the framework version to 11.8.3
  • v36.9.19: cypress(tasks): adapt cypress task tests to the new action bar
  • v36.9.18: fix(diff-boxes): fix the layout of the diff boxes to be more independent to the design
  • v36.9.17: fix(diff-outdated-designs): fix load design before create livingdoc

fixed design_proxy when design is currently loaded to return the promise where the design is already loaded

Fixed the revision_service the design are now loaded before a revision is shown

  • v36.9.16: code: incorporate PR feedback
  • v36.9.15: fix(dashboard): make it possible to pass componentName per config
  • v36.9.14: fix(history): re-add bold styles, revisions topbar
  • v36.9.13: fix(tasks): task can be restarted without deleting the task
  • v36.9.12: fix(print): Remove unneeded bottom bar CSS

Removes a workaround that is no longer needed. This fixes a display bug where the bottom preview image was covered by the print preview bottom bar.

  • v36.9.11: fix: fix semantic-release script on droneci.yml
  • v36.9.10: fix(diff-change-article-ui): remove check on changes

When the view is changing the check on changes for the diff_overlays is unloaded now

  • v36.9.9: fix(metadata-plugins): remove unnecessary ng-if
  • v36.9.8: fix(package): update @livingdocs/framework to version 11.8.2
  • v36.9.7: fix(links): check if link attributes are allowed before setting defaults
  • v36.9.6: fix(dependencies): update Livingdocs framework
  • v36.9.5: fix(print): Use document state notification for remote lock
  • v36.9.4: fix(project-setup): fix metadata form preview
  • v36.9.3: fix(fastify): add cache-control everywhere
  • v36.9.2: several small fixes for readOnly mode
  • v36.9.1: component-sidebar: Hide filtered components using ng-show
  • v36.9.0: autosave: cover promises for multiple saveNow() calls when saving


Media Library 🎁

We introduce a new media library in Livingdocs that allows to track and search all images uploaded to Livingdocs and to manage metadata for those images. As an option we offer auto-tagging of all uploaded images using the Google Vision API (infers costs). We also introduced a new image service liImageProxy which allows to track all image requests through the server, e.g. for traffic control.

Improved Dashboard Search / Implement Your Own Dashboard Search 🎁

πŸŽ‰ The editor dashboard search has been massively improved and now you get much better search results. We did a lot of improvements to the default search algorithm. The most important change is, that recent edited articles have much more importance, which you can see in the following digram.

  • y-axis: importance boost
  • x-axis: time of editing an article
  • black line: importance boost / time


🎁 You can also implement your own Dashboard search by registering a queryBuilderPlugin.

Predefined Filter Sets 🎁

Enables predefined Filter Sets on a dashboard. Project admins can navigate to any dashboard, choose filters and then store the setting in a predefined filter set which is similar in kind to a bookmark. The filter sets can be edited over a user interface in the project setup and can be nested in groups (one-level deep) for organizing. Users (non-admins) can see and use the predefined filter sets, i.e. on a dashboard, e.g. the article dashboard, they can choose a filter set which will then apply the complete set selection of filters to the dashboard.

Custom Workflows with Tasks v2 🎁

With Tasks (v2) you are able to define custom workflows in the editor. It’s an overhauled version which replaces Tasks (v1). You can find the migration guide from Tasks v1 to v2 here.

Highlights of Tasks v2:

  • Tasks have 3 states (requested, accepted, completed)
  • Define your custom metadata field for every task
  • Every tasks is individually configurable, e.g.
    • labels for all states
    • request a deadline date
    • define when a task appears urgent
  • Customise the deadline computation via the core API in the editor
    • Register a function to make suggestion for the deadline date
    • Register a function to provide an allowed deadline date range
  • Tasks can be connected with the the Task Kanban Board (which is mentioned in the beta section)

Google Cloud Storage support for designs/files/images 🎁

For users who want to store their images, files and design assets in a Google Cloud Storage (GCS) bucket rather than on Amazon, we provide a separate storage strategy.

Required server configuration to enable storing assets on GCS.

storage: {
  strategy: 'google-cloud-storage',
  config: {
    bucket: 'livingdocs-images-dev', // The bucket name
    credentials: {} // The credentials

A more detailled description and an example configuration can be found in the documentation

Improve speed of reindexing 🎁

Depending on how many documents you have stored, the re-indexing into Elasticsearch needed some time. For production this has been a challenge for a long time, when you did an upgrade where data migrations were involved or even an Elasticsearch mapping update.

Since the January 2019 release, we have continually improved the indexing speed. The optimisation results in a 10x - 100x speed improvement and an average indexing speed of 1000 docs/s. The indexing speed depends on your Elasticsearch configuration and the size of your documents.

Beta Versions

You can use and test beta features. Your feedback is highly appreciated. As long as a feature is in beta phase, we will sometimes change it’s UX, design or config if needed.

Track Changes (Differ) πŸŽ‰

We now have the much anticipated Track Changes feature in the editor. Track Changes shows you changes between two versions of a document e.g.

  • added and removed components
  • added and removed text

Every change is labeled by the user which did the change. You are also able to configure the color palette of the changes to match your design.

Track Changes is available at the editor in the History menu.

We are actively working on Track Changes and its UI. We are happy to hear feedback and ideas how to improve the feature from you.

Customisable Dashboards/Kanbanboards πŸŽ‰

Custom Dashboards are configurable versions of the current Articles / Pages / Date-Records Screens you can use to customise the main screens your editors and writers use on a daily basis. Kanbanboards are a variation of dashboards to better support task based workflows in your teams.

You can add as many custom dashboards as you want in the Editor configuration and link them directly in the main navigation.

See the documentation for details.

Breaking Changes πŸ”₯

Migrate the database

# run grunt migrate to update to the newest database schema
# migrations
# - 112-add-event-type-content-type-view-after-document-creation-updated.js
# - 113-add-event-type-content-type-document-creation-disabled-updated.js
# - 114-alter-user-config-value.js
# - 115-add-filter-set-table.js
# - 116-add-assets-table.js
# - 117-add-channel-config-events.js
livingdocs-server migrate up

Other Changes