September 2022 Release

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


System Requirements


Livingdocs Server Docker Imagelivingdocs/server-base:16
Livingdocs Editor Docker Imagelivingdocs/editor-base:16
Browser SupportEdge >= 80, Firefox >= 74, Chrome >= 80, Safari >= 13.1, iOS Safari >= 13.4, Opera >= 67


Elasticsearch6.x (Deprecated)
Redis5 (Deprecated)
Livingdocs Server Docker Imagelivingdocs/server-base:14.3
Livingdocs Editor Docker Imagelivingdocs/editor-base:14.3
Browser SupportEdge >= 80, Firefox >= 74, Chrome >= 80, Safari >= 13.1, iOS Safari >= 13.4, Opera >= 67


Metadata Plugin li-text improvements

Add new config options minLength, recommendedMinLength, maxLength, recommendedMaxLength and a better visual feedback if the values are exceeded or fallen below.

Metadata Plugin li-date

The metadata plugin li-date allows to set a date without time.

Metadata Plugin li-tree

li-tree lets you set up a tree with items of the 3 possible types group, link, document.

Metadata Plugin li-issue-management

The li-issue-management metadata plugin can be used to manage issues (a data-record with references to pages).

Document Creation Flow

With a Document Creation Flow you can configure how a document gets created:

  • Define a create button (only supported for Table Dashboards)
  • Define fields on the document creation modal
  • Register a create function to parse the data which creates the document


Deliveries: Status and Build Triggers

For infinite products like an e-paper there is usually a “build” stage involved. With the new Deliveries feature we allow a customer to trigger a remote system to kick off a build and report the status of the build back to Livingdocs. This allows an editor to get a better view on the infinite product life cycle. These are the features:

  • Trigger a build of a remote build system in the Publish Control view
  • Get an overview of the build state in the Publish Control view
  • Allow a remote build system to report its status back to Livingdocs


Table Dashboards (full working version)

Table Dashboards are a flexible type of dashboards where individual columns can be configured. From the September release on this is the new standard Dashboard and old versions should be migrated to these new type of Dashboard.


Desk-Net: Schedule Extensions + Production Features

The Desk-Net integration has been extended with some new features:

  • Fixing the Desk-Net Schedule side panel to a specific date
  • Filtering the documents displayed in the Desk-Net Schedule side panel by story status, platform status, and whether they have been imported to Livingdocs
  • Linking Livingdocs documents to Desk-Net using a metadata value when li-desknet-integration is not used
  • Registering a server function to handle the placement of teasers into a document using the Desk-Net Schedule data


Breaking Changes πŸ”₯

Migrate the 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 179-fix-media-library-index.js
#   alter media library index
# migration 180-inbox-insert-item.js
#   add 3 psql function to handle inbox
# migration 181-add-document-publication-delivery-statuses.js
#   add table document_publication_delivery_status_reports
livingdocs-server migrate up

Remove Support for Postgres 11 πŸ”₯

πŸ”₯ Support for Postgres 11 has been removed. Please Update to Postgres 14 (12+ is supported).

Remove Support for Redis <5 πŸ”₯

πŸ”₯ Support for Redis <5 has been removed. Please Update to Redis 7 (5+ is supported).

Metadata Plugin li-text

  • πŸ”₯ metadata type li-text: remove property ui.component
  • πŸ”₯ metadata type li-text: remove property ui.config.rows

restore to the old behavior

To restore to the old behavior is not 100% possible because the updated version of li-text is smarter and needs less config. One important change is that the field extends its size automatically based on the amount of content added.

If you have defined LiMetaTextareaForm as UI component or set rows, you have now to set allowNewlines: true.

For other changes please consult the documentation

Backward Compatibility Mode

If you have issues with the update, you can enable the backward compatibility mode where li-text configs are not validated.

❗ Only need that mode until you solved your issues with li-text! This mode is only thought for a short time period to migrate the old metadata.

// server config
// ignore validation for metadata plugin  'li-text' and 'li-string-list', all other plugins are validated
metadataPluginsToIgnoreForConfigValidation: ['li-text', 'li-string-list'],

All HTTP APIs: Remove support for contentType: ‘multipart/form-data’"

  • πŸ”₯ Remove multer module by removing support for contentType: 'multipart/form-data' configs on route declarations (LIBREAKING011). Please come to us if the server doesn’t start anymore because of that (as stated in the error message).
  • πŸ”₯ Remove jsonp callback support as there was never a need for it and it wasn’t documented at all.

Document Publication Lifecycle Update

πŸ”₯ Move server hook preparePublish hooks after metadata plugin onPreparePublish hooks (see Diagram).

During the migration to the preparePublish hooks, the order accidentally changed. Before, the prePublish hooks were run after the metadata plugin onPublish hooks. This has the effect that required metadata are always present in the preparePublish hooks, unlike before where they still could be missing.


Dashboards Configs ❗❗❗

The following configurations are deprecated and will be removed in the future. If you need them longer than release-2022-11, please think about a plan with timing to not depend on the Legacy Dashboards anymore and let your Customer Solutions Manager know about it. We will find a solution.

Deprecated Editor Configs:

  • app.filters.inlineArticleList
  • app.filters.articleList
  • app.filters.pageList
  • app.filters.dataRecordList
  • app.filters.menuList
  • search.articleSearch.listItemComponent


Normalize documentWriteModel.systemdata and documentVersion.systemdata. Old properties are defined as getters and emit deprecation warnings (LIDEP018), new properties are enumerable on the object.

  • systemdata.project_id > systemdata.projectId
  • systemdata.channel_id > systemdata.channelId
  • systemdata.document_id > systemdata.documentId
  • systemdata.revision_id > systemdata.revisionId
  • systemdata.remote_id > systemdata.remoteId
  • systemdata.content_type > systemdata.contentType
  • systemdata.document_type > systemdata.documentType
  • systemdata.designDescriptor >
  • systemdata.publication_id > systemdata.publicationId
  • systemdata.publication_date > systemdata.lastPublicationDate
  • systemdata.first_publication_date > systemdata.firstPublicationDate

Redis 5

Redis 5 has been deprecated. Please Update to Redis 7.

Metadata Plugin li-desknet-platforms

The li-desknet-platforms metadata plugin has been replaced by li-desknet-schedule. The li-desknet-platforms plugin stored an array of objects containing platformId and categoryId values. The new li-desknet-schedule storage schema is an object with a platforms property which stores this array, along with a new date property. The new plugin also has some additional config options.

Desk-Net scheduleEnabled

Please remove projectConfig.settings.desknet.scheduleEnabled, because it has no longer has any effect. The schedule will be enabled when Desk-Net is enabled in the server config, and the content type has the li-desknet-schedule metadata plugin.

Deprecate ui.config.rows of li-text

Remove ui.config.rows config of metadata plugin li-text. If defined, replace it with config.allowNewlines: true, if you want to allow newline characters stored.

APIs 🎁

Publication Delivery

  • 🎁 Add server API publicationApi.getDeliveryStatusReport({projectId, documentId})
  • 🎁 Add server API publicationApi.triggerBuild -> fires a new Server Event
  • 🎁 Add POST /api/v1/documents/:documentId/addDeliveryStatus endpoint to Public API
  • 🎁 Add Server Event
  • 🎁 Add Webhook Event

Other Changes







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

Livingdocs Server Patches

  • v194.0.31: fix(document-lists): Support list updates with a lot of document ids
  • v194.0.30: fix(performance): Give postgres better query hints by adding a project_id to content type joins
  • v194.0.29: fix(scheduled-publishing): Coerce schedule dates to a proper iso date with time zone
  • v194.0.28: fix(local-authentication): Make the current_password validation more strict
  • v194.0.27: fix: extend test for filtering unknown components when nested default content is defined in the contentType
  • v194.0.26: fix(xmldom): Update @xmldom/xmldom to a newer release that includes fix for security vulnerability
  • v194.0.25: fix(desknet): Prevent empty userId from Desk-Net
  • v194.0.24: fix(metadata): li-publish-date failing validation
  • v194.0.23: fix(logs): Error logs were missing the stack sometimes due to missing ...serializers in serializers
  • v194.0.22: fix(print): Add params to print export
  • v194.0.21: fix(redis): Set sentinel username and password if credentials are set
  • v194.0.20: fix(includes): Fix paramsSchema config.published handling
  • v194.0.19: fix(unPublishNow): Workflow improved/implemented
  • v194.0.18: fix(desknet): Check value changed before publication status sync
  • v194.0.17: fix(includes): load drafts in preview
  • v194.0.16: fix(desknet): get all desknet entries in search
  • v194.0.15: fix(media-library): Allow to add translation assets into a MediaLibraryEntry
  • v194.0.14: fix: incorporate feedback
  • v194.0.13: test(import): mediaLibraryEntry import - fix tests after open up schema again
  • v194.0.12: fix(publicApi): Allow to import MediaLibraryEntries of type video
  • v194.0.11: fix(hugo-api): Make royaltyRecipients path configurable
  • v194.0.10: fix: add index for user_id in user_occupations
  • v194.0.9: fix(desknet): Get default content from content type, not settings
  • v194.0.8: fix(cheerio): cheerio can be passed from downstream implementation to CheerioHtml in params argument, wrapper around cheerio require
  • v194.0.7: fix: allow null values for ‘validFrom’ and ‘validTo’.
  • v194.0.6: fix(google-vision): Rework google vision feature register function and set to disable by default
  • v194.0.5: chore(httpServer): Log deprecation warnings about server configs that moved to httpServer
  • v194.0.4: fix(issue-management): enable composition api
  • v194.0.3: fix: add assets property to contentType config
  • v??.?.?: text

Livingdocs Editor Patches

  • v81.20.91: fix(scheduled-publishing): handle iso date only once

  • v81.20.90: fix(occupations): Migrate to utc time queries on the billing screen

  • v81.20.89: fix(scheduled-publishing): Send iso dates with timestamp to the server

  • v81.20.88: fix(metadata): Re-render metadata form every time panel is opened

  • v81.20.87: fix(security): Applies all security patches that do not have the patch in a breaking version

  • v81.20.86: fix(security): Upgrade to fix critical vulnerability

  • v81.20.85: fix(security): Upgrade resolve-url-loader to fix loader-utils critical vulnerability

  • v81.20.84: fix(metadata): Wrap document references in default list

  • v81.20.83: chore(li-link-edit): tests added

  • v81.20.82: fix(namedCrops): Delete button works correctly

  • v81.20.81: fix: add system user for empty userid

  • v81.20.80: fix(metadata): Prevent manual source with image config sync update

  • v81.20.79: fix(inlineListEditor): Only publishable when dirty

  • v81.20.78: fix: change to selected service on copy

  • v81.20.77: fix(translationCard): loading state correct

  • v81.20.76: fix(count): For reference list

  • v81.20.75: fix: escape error messages on login screen

  • v81.20.74: fix(table dashboard): don’t show the empty state while loading a search result but the old result until the new one is ready

  • v81.20.73: fix(dashboards): Handle published: false in legacy dashboards

  • v81.20.72: refactor: optimize code for internal vs external link handling

  • v81.20.71: fix: correctly compute minHeight with an incomplete config

  • v81.20.70: fix: update framework 24.3.4

  • v81.20.69: fix(conflictUI): Discard and Apply buttons correctly positioned

  • v81.20.68: fix: prevent refreshing table dashboard when loading more elements

  • v81.20.67: fix: prevent endless calling of finalDashboardConfig by moving it from a computed property to the creation lifecycle

  • v81.20.66: fix(li-tree): reset search results properly

  • v81.20.65: fix(metadata): ensure teaser card in li-document-references doesn’t overflow

  • v81.20.64: fix(issue-management): improve UX

  • v81.20.63: fix(resetFilterButton): Correctly styled

  • v81.20.62: fix(unpublishNow): Calls correct server endpoint

  • v81.20.61: chore(li-tree): implement code review feedback

  • v81.20.60: chore(li-tree): implement code review feedback

  • v81.20.59: fix(li-tree): do not remove link/reference when updatinglabel name

  • v81.20.58: fix(publish): Back returns to custom dashboard after create

  • v81.20.57: fix: full body iframe height and better growth detection

  • v81.20.56: fix(media-library): Restore upload center placeholders

  • v81.20.55: fix(findIdfromUrl): Updated regex finder

  • v81.20.54: fix: include target in component Link

  • v81.20.53: fix: make sure selected items fit inside the dropdown

  • v81.20.52: code(multi-language): incorporate review feedback

  • v81.20.51: fix(documentList): Icon is reactive

  • v81.20.50: fix(findIdfromUrl): Updated regex finder

  • v81.20.49: fix: ignore htmlmin from webpack on two html files

  • v81.20.48: fix(metadata): Only handle true for legacy searchOnlyPublished

  • v81.20.47: fix(metadata): Fix legacy configs with document reference dialogs

  • v81.20.46: fix(dashboards): Always use create wizard for multi-channel projects

  • v81.20.45: fix(realtime): Handle wrapped error objects from Pusher

  • v81.20.44: fix(mismatched): Password realigned

  • v81.20.43: fix(teaser): set default params

  • v81.20.41: fix(toolbar): Handle anchor links as internal

  • v81.20.40: fix(creation-flow): Prefill values after creating document

  • v81.20.39: fix(editor): fix prepare-publication endless loop

  • v81.20.38: fix(German Comments): Mix up corrected

  • v81.20.37: fix: remove unnecessary newline

  • v81.20.36: fix(metadata): fix vue type of reference label to not log error

  • v81.20.35: fix(media-library): Move validity icon to avoid duration overlap

  • v81.20.34: chore(cypress): improve the video test reliability

  • v81.20.33: fix(properties): Hide teaser format select when no transforms

  • v81.20.32: fix(li-component-link): update link if component changed

  • v81.20.31: chore(prepare-publish): implement code review feedback

  • v81.20.30: fix(ComponentLink): Now moves with componentSelection

  • v81.20.29: fix: clearing of ‘validFrom’ and ‘validTo’

  • v81.20.28: fix(copyButton): Article State persists on cancel

  • v81.20.27: fix(desknet-create): resolve includes

  • v81.20.26: fix(insert panel): Divider visibility

  • v81.20.25: fix(Session): Styling updated when expired

  • v81.20.24: fix(table dashboards): provide a documentLoader to dashboard cards

  • v81.20.23: fix(documentSoftLock): Counter alginment

  • v81.20.22: fix: close document copy popup when clicking on X or outside the popup

  • v81.20.21: chore: improve comment

  • v81.20.20: fix: update framework to latest release-2022-09 patch 24.3.3

  • v81.20.19: chore(text-formatting): Remove AngularJS component link directive

  • v81.20.18: fix(archived documents): Are removed from multilist inbox

  • v81.20.17: fix(li-metadata-form): save open/closed state of metadata cards for each contentType seperatly

  • v81.20.16: fix(metadata-mapper): always emit event when updating metadata

  • v81.20.15: fix(text only buttons): Spacing

  • v81.20.14: fix(history): Prevent app from crashing when toggling history

  • v81.20.13: fix: log framework violations after initialization

  • v81.20.12: fix(dashboards): Add back button fallback

  • v81.20.11: fix(document editing toolbar): enable flyouts opened from hidden actions on narrow screens

  • v81.20.10: fix: handle cases where no teaserComponents are configured

  • v81.20.9: fix: use require instead of import for VUE composition apis

  • v81.20.8: fix(dashboards): when a dashboard holds a configured document creation flow button(s), no default create button is shown

  • v81.20.7: fix(draft): Fix bug preventing publication of data records

  • v81.20.6: fix(listInbox): Cannot remove doc during publish

  • v81.20.5: fix(metadata): don’t error in any case when metadata properties are updated

  • v81.20.4: fix(publish state): Line Wrap

  • v81.20.3: fix: update framework version to release-2022-09

  • v??.?.?: text

    Icon Legend

    • Breaking changes: πŸ”₯
    • Feature: 🎁
    • Bugfix: πŸͺ²
    • Chore: πŸ”§