8.9

Last modified: September 18, 2023

8.9.0

Release date: April 30, 2020

Go to Marketplace

New Features

  • We introduced Core.http().registerHttpRequestInterceptor(...) in custom Java actions. You can use this method (typically during application startup) to add functionality for intercepting REST and web service calls and then, for example, logging them or adding a signature header.
  • We added the Sort list operation for nanoflows. This allows you to sort items the same way as you do in microflows!
  • We added a microflow activity called Sync to device, which enables selectively synchronizing a set of objects to the device when calling a microflow from a nanoflow.
  • When viewing the page editor in Design mode, there is now a toggle in the top bar to highlight conditionally visible widgets.

Pluggable Widgets Capability

In 8.7.0, we introduced repeatable containment, which allows you to link the widget property to a data source.

You can now also link an action property to the datasource property, which enables using the entity returned by the data source in your actions (for example, as an input parameter for your nanoflow).

Improvements

  • In the new Changes pane, you can sort changes by their status or document type by clicking the corresponding column with icons.
  • In the History dialog box, we updated the behavior and text of the Show 25 more button. This button is now called Show more, and it gets disabled when there are no more commits to display. (Ticket 95502)

Fixes

  • We fixed an issue in the call REST service action where a new line character was inserted before the boundary in a multipart/form-data request by upgrading the httpclient .jar from 4.5.10 to 4.5.12 and the httpcore .jar from 4.4.12 to 4.4.13. (Tickets 96483, 98364, 98639)
  • We fixed an issue in published OData services where publishing the owner and changedBy system associations when exposing associations as links did not work. (Ticket 96177)
  • We fixed an issue with ConnectionPoolTimeoutException where the connection was not closed properly for web service calls. (Tickets 97638, 96639)
  • If an app contained a widget with conditional visibility on attributes inside a pluggable widget, the app could not be deployed in the cloud. This has been fixed. (Ticket 98654)
  • We fixed an issue where a data view using a nanoflow source did not receive the correct parameter when wrapped in multiple data views using the same entity. (Ticket 96238)
  • We fixed an issue where inserting a decimal separator in an editable data grid did not work when using the number pad. (Ticket 98657)
  • We fixed a performance degradation related to the Retrieve by path action.
  • We made the timestamp time for an unversioned deployment package more consistent, so the exported file name is now always the same as the one shown on the Create Deployment Package dialog box.
  • We fixed an error where you could not change the value of the date picker in web apps.
  • We improved the reliability of the pull-down action for the native list view widget.
  • We fixed an issue where a horizontal native list view widget was still refreshing when pulled down.

Breaking Changes

Upgrade of React Native to 0.61

With this release, we roll out a more significant upgrade of the underlying technology layer by upgrading React Native to version 0.61 and all native libraries to their most recent versions. This improves the capabilities, quality, and stability of native mobile apps built with Mendix.

These upgrades come with significant consequences for existing users. As such, we did not take this decision lightly, but we feel that it is essential to keep our third-party dependencies as up-to-date as possible.

Make It Native

The Make It Native app is always compatible with the latest version of Mendix. Due to the changes in native libraries, the version of Make It Native that we have published alongside the release of Studio Pro 8.9.0 is no longer compatible with older Studio Pro versions.

Our advice is to upgrade your app to 8.9.0, but if you do not wish to or cannot do this, the following option is available:

As part of this upgrade, several third-party dependencies have been updated in order to keep them compatible with React Native version 0.61. In most cases, the APIs of these libraries remain unchanged. However, all widgets and JavaScript actions that rely on third-party dependencies should be tested against Studio Pro 8.9.0.

AsyncStorage

The storage location of AsyncStorage on iOS has been moved to the Application Support directory. If your widget or JavaScript action uses AsyncStorage (imported from react-native-community/async-storage), then this change does not affect the workings of your app, and any data found in the old location is copied to the new location.

However, some widgets and JavaScript actions still import AsyncStorage from the React Native core library. We strongly urge all maintainers of such JavaScript actions and widgets to start using react-native-community/async-storage instead, as it might not be possible to migrate your data from the old location to the new location later.

Known Issues

  • Users with non-administrative user roles with the permission to manage users are able to escalate their privileges. For more information on this vulnerability, see SSA-875726 Privilege Escalation Vulnerability in Mendix.
  • Downloading private content in the Marketplace available in Studio Pro has been temporarily disabled due to a security risk. Please see this issue described in the Marketplace release notes for more information, details about where to find your private content, and plans for future version-specific fixes.
  • The first deployment of an app with a native mobile profile takes approximately one minute longer than usual, as the first deployment needs to build up a cache. On consecutive deployments, this time is reduced.