DMX 5.3 has been released at May 27, 2023. The highlight features are related to the DMX Webclient, so every DMX user should benefit from upgrading. Additional features regard the DMX development framework, beneficial for plugin developers. These framework extensions became necessary while the development of the DMX based Zukunftswerk application. Zukunftswerk provides shared workspaces for bilingual collaboration in a dedicated frontend. It’s highlight feature is the automatic content translation by the means of the DeepL service. See also the upcoming Open Source Linqa product.

For the complete list of changes of DMX 5.3 see its milestone tickets.

DMX 5.3 Highlight Features

  • Ordered Multi-Values. The DMX Core stores all multi-values as ordered sequence in the DB. The Webclient’s form generator allows the user to reorder things by the means of drag handles. For the developer "Order" is fully transparent. Neither there is new config nor any API changes. (See #486)

  • Topicmap background images. The user can choose an image file to be shown as topicmap background. (See #492)

  • UI animations. The Webclient UI is more smooth by animating these 2 operations: a) show/hide in-map details, b) show/hide detail panel.

Improvements

  • Deleting workspaces: all users with write access can delete a workspace (not only the workspace owner).
  • Multi-values support duplicates. Now you can have e.g. the same song appearing several times in a playlist (see dmx-music application). Note: the song is still stored once in the DB but referenced multiple times. (See #509)
  • User names are treated as case-insensitive. LDAP compatibility is improved.
  • Detail Panel: don’t show "Composition Definitions" for simple types.

Bug fixes

  • Fixed a type cache related bug that prevents some plugins to launch in a headless environment.
  • Fixed a bug where nested entities lost their child values while update request (thanks to @gevlish).
  • Fixed a bug where deleting a workspace accidentally deleted constituting associations of other workspace topics.

Administration

  • Crucial information about "timezone" and "locale" configuration is logged on DMX platform start.

Plugin development (frontend)

  • The client-side dmx-api library is extended in order to support a wider variety of frontend applications. Additionally, depending on application type, the launch time is reduced as less data is transferred from server. This required some breaking changes. See the corresponding README for details.

Plugin development (backend)

  • Improved resource handling. More control about which resources are processed by Webpack and which resources to be published to web. (See #504)
  • Improved client-sync support: the addTopicToTopicmap message includes the topic’s child topics as well.
  • FilesService: storeFile() return value’s File topic includes child topics.
  • TimestampsService: add enrichWithTimestamps().
  • AccessControlService: add enrichWithUserInfo(), enrichWithOwnerInfo()
  • Application support for frontends that manages user accounts:
    • AccessControlService: add getMemberships(), getMembership(), bulkUpdateMemberships()
    • WorkspacesSerice: add deleteWorkspace()
    • PrivilegedAccess API: add deleteWorkspaceTopic()
  • CoreService:
    • updateTopic() returns Topic (formerly void).
    • Value Integrator: child topics of ref’d topics are included in the response.
  • Assoc API: getDMXObjectByType() is generic.
  • PlayerModel API: add setId()
  • DMXUtils: add findByAssoc(), indexOfAssoc()
  • New plugin available: dmx-deepl allows your DMX plugin/application to access the DeepL API for machine translation of more than 30 languages.

Getting DMX 5.3

You can update any DMX installation not older than DMX 5.0-beta-4. For update instructions see the DMX Admin Documentation. For developers (who update via git pull) see also this forum posting.

Download DMX 5.3 (7.5 MB):
https://download.dmx.systems/dmx-5.3.zip

All major plugins (“DMX Geomaps”, “DMX Tableview”, “DMX LDAP”, …) are adapted to DMX 5.3 already. Please check on the Plugins page: https://dmx.berlin/plugins/

For developers: source code is available at: https://github.com/dmx-systems/dmx-platform

The DMX platform 5.3 artifacts are available at Maven Central:
https://repo1.maven.org/maven2/systems/dmx/