Exolynk v0.7.2

Posted 2024-01-16 12:00:00 ‐ 3 min read

This article shows the details of the release v0.7.2

The Exolynk release v0.7.2 implements some new features and bug fixes in relation to the big changes introduced with the prior version.

Push Notifications

Exolynk can now send push notifications to your browser / device. This works realiable on Firefox and Chrome, just accept the question if the app is allowed to send notifications. For mac & ios you need to add the exolynk app as app to your home screen / command bar. After that you will also receive push notifications. The push notifications can be sent by any service over the exo::db::push_notification(); function. This can be really helpfull to notify users about important changes.

Language JSON format

The value of an language variable was serialized & deserialized with the following format until now: {"typ":"language","langs":[["en","Car"],["de","Auto"]]}. This is problemeatic, because the language keys and the corresponding translations are stored within 2 different arrays. This structure can't be understood by our make connector, because it's a bad practice. With this release the JSON structure is changing to this format: {"typ":"language","langs":{"en":"Car","de":"Auto"}}. This new structure will be applied for all internal storage formats and also all external API endpoints. If you work with the old format, your integration will fail with this update and need to be adopted. Furthermore this change disables binary messages for the internal websocket communication and uses json based communication. This will unfortunatelly lead to bigger messages which get transferred. With the next version, the platform will return back to binary messages. This version also resets all login keys at every start to make the upgrade as semless as possible. This bevaior will also be removed with the next version.

Server Configurations

To higher the security of the application following changes have been introduced:

  • The private encryption key of the session variables needs to be defined by the configuration session_private_key and requires a private key with at least 100 characters
  • The private encryption key for the webpush messages need to be defined with vapid_private_key in a base64 encoded format. You can generate keys on this website.

Following a list of all changes which are included with the v0.7.2 release.

Breaking Changes:

  • The server needs a session_private_key variable with a encryption
  • Web Push notifications support needs a vapid_private_key server configuration #255
  • Change of language value json format #389

New Features:

  • With the detail setting menu_workflows it's possible to name comma seperated workflow ident's which will be shown in the main menu #374
  • Added new exo::ui::UrlQuery struct to receive url query parameters. This allows to use custom query values #374
  • New exo::dom::Dom functions get_node_by_id and set_node_by_id to better manipulate the dom before rendering #374
  • New script function new_row_top for Table variables added

Bug Fixes:

  • Code which is deactivated will not be executed anymore #386
  • Search filter selection is not breaking anymore #387
  • A click on a button inside the main menu, will always close the menu
  • Printing the page is done with the correct layout again #385