Dev Webinar
release-2023-11
Overview
Recording of the webinar | Passcode: QbEfU+6t
Features
Document Command API
New Public API endpoint to update documents by sending commands:�PATCH api/v1/documents/:id/commands
Commands:
Preconditions:
More details in the documentation:�https://docs.livingdocs.io/reference/public-api/document-command-api/
Actors
{"operation": "setMetadataProperty", “propertyName”: “title”, …}
Enhanced search syntax
Enhanced search syntax
Add liServer.register...() methods
We have extended the liServer API to allow to register extensions and custom routes. This simplifies the server initialization and also improves IDE autocomplete support.
https://docs.livingdocs.io/operations/releases/release-2023-11/#add-liserverregister-methods-
Expose IframePlugin register function via liEditor: liEditor.registerIframePlugin({IframePlugin}).
Push Notifications within articles
Exactly one year ago, with November release 2022, we introduced the new push messages feature, but it was limited to Table Dashboard cells.
Now it’s also possible to send a push message from the toolbar in the article editor view.
The toolbar action will be visible on all content types with an li-push-messages metadata property, but the button is disabled if the document has unpublished changes.
ParamsSchema & Metadata Plugin config validation
Livingdocs plugins can be used in various contexts:
The documentation page for all the metadata plugins describes in which contexts the plugins are supported (except for Creation Flows and Push Messages)
ParamsSchema & Metadata Plugin config validation
Before release-2023-11, we didn’t validate the correct usage of the plugins very strictly. It was done as following:
ParamsSchema & Metadata Plugin config validation
With release-2023-11, we are able to validate plugin usage and configuration in all contexts. And with release-2024-01, we will enforce the correct usage.
To opt-in to the validation you can set serverConfig.useStrictSchemas: true. This will allow you to find any invalid usage of plugins and fix them before the next release.
ParamsSchema & Metadata Plugin config validation
Custom downstream plugins will by default work for document and media metadata. You have the option to explicitly enable them for include service params too:
�// In your plugin file:��supportedPluginContexts: [
'documentMetadata',
'mediaLibraryEntryMetadata',
'includeParams'
]
Allow tel: and mailto: inline links
Document text content with links can now also contain urls that are prefixed with the tel: and mailto: schema. The same is true for links in the li-tree plugin.
There is no automatic recognition of such link types, users need to explicitly type the tel: and mailto: prefix into the URL input.�
Page Management: Real-time Teasers
Teasers can be reloaded automatically on all publish and unpublish events within the current project. This can be enabled by updating the server config:
documents.realtimeUpdates.websocketsEnabled: true
If there is a teaser list in the document then all teasers will be reloaded for every event (with throttling and jitter applied). If there are only document teasers then we only refresh if the document references are published or unpublished.
Note: Setting websocketsEnabled: true will also use the websocket events to update table dashboard rows, or indicate a new result is available.
Breaking Changes: Server
If you were using ui.config.searchOnlyPublished on li-reference definitions, you should migrate to config.published.
The language labels are now supported natively in the Livingdocs Editor.
Breaking Changes: Server
If you rely on its return value to be a Promise (e.g. when accessing .then), you have to update your code. But starting this release it is recommended to use liServer.registerIncludeServices() directly.
Breaking Changes: Server
Breaking Changes: Editor
Please migrate to contentType.publishControl.publishSchedule within Publish Control.
Deprecations: Operations
Deprecations: Server
Deprecations: Server
If a downstream plugin is used in an include service params schema you have to add ‘includeParams’ to supportedPluginContexts[] in the plugin config, as specified in ParamsSchema validation.
Deprecations: Server
Please use serverConfig.documents.realtimeUpdates.pollingEnabled or serverConfig.documents.realtimeUpdates.websocketsEnabled instead.
This deprecation is part of the Teaser includes reload feature introduced this release.
Q & A
Next Dev Webinar
16.01.24
14:00 - 15:00
Thank you!
Livingdocs ∙ Tellstrasse 31 ∙ 8004 Zürich ∙ www.livingdocs.io