Mendix Studio pro

9.3.0
Stable
June 29, 2021
Mendix Studio Pro is our low-code IDE for professional developers. It's a powerful visual model-driven development environment to build apps on the Mendix Platform. With Studio Pro you can easily create, change, integrate, test and deploy your applications, all in one place. Moreover, you can manage branch lines and security as well as extend your app with custom code using the built-in editors. Click 'Download Studio Pro' to get the installer for free (Windows OS required*). Learn more about the installation and the Studio Pro capabilities in our documentation. Not a professional developer? Learn How Mendix supports different developer profiles .Before installing, please read the Release Notes to learn about improvements, bug fixes, backwards compatibility, breaking changes and known issues. *If you are using a Mac, check out these instructions first.
Release Notes - **Release date: June 29th, 2021** ### New Features * We implemented a toggle switch for the [MxAssist Logic Bot](https://docs.mendix.com/refguide/mx-assist-logic-bot) in the microflow editor, and we removed the **Ready/Thinking** indicator. * We added support for closing **Multiple** and **All** pages when using the [Close page](https://docs.mendix.com/refguide/close-page) nanoflow activity in web applications. * We deprecated the experimental metrics API and introduced a new non-experimental **Metrics API** (as part of the Runtime API) where you can record metrics such as counters, timers, and gauges. For details, see [metrics](https://apidocs.rnd.mendix.com/9/runtime/com/mendix/core/Core.html#metrics()) and [Interface Metrics](https://apidocs.rnd.mendix.com/9/runtime/com/mendix/metrics/Metrics.html). ### Improvements * We added support for the following [languages](https://docs.mendix.com/refguide/language-settings): Bengali, India; Bengali, Bangladesh; Kinyarwanda, Rwanda; Punjabi, India; Punjabi, Pakistan; Sinhala, Sri Lanka; Tamil, India; Tamil, Sri Lanka; Tamil, Singapore. (Ticket 121467) * We improved how the native [drop-down](https://docs.mendix.com/refguide/drop-down) widget renders menu items on larger devices. (Ticket 122196) * The **View App** menu in the top bar is now a split button. You can click it to directly execute the latest-used view action. When the down arrow on the right is clicked, a drop-down menu with all options is shown. * When the [new merge algorithm](https://docs.mendix.com/refguide/new-merge-algorithm) is enabled, you will no longer see cryptic identifiers in changes. For example, when changing an arrow in a microflow to point to a different element, you will now see a proper description instead of the under-the-hood identifier. * We improved performance in the microflow editor when you hover over microflow objects when MxAssist Logic Bot is enabled. * We improved performance when MxAssist Logic Bot is used to create a microflow object. * We reduced the hover region size of MxAssist Logic Bot from 200px to 100px for better performance and user experience. * We added an MxAssist Logic Bot menu to the existing click-drag menu in the microflow editor. * [Microflow actions related to workflows](https://docs.mendix.com/refguide/workflow-activities) now have help links to the documentation. * We heard your feedback, so we have made the workflow editor more concise. * When using the [Call workflow](https://docs.mendix.com/refguide/on-click-event#call-workflow) event, you can now discard the workflow variable. * We enabled more flexibility for creating a powerful design system module with Atlas 3 by adding [module-level theme settings](https://docs.mendix.com/howto/front-end/module-level-theme-settings), in which you can exclude content from other modules. This gives you full control over filtering content like design properties from modules such as **Atlas_Core** or navigation layouts from other Marketplace modules. * You can now provide theme content (for example, a *login.html* file) with your modules by adding them to a folder named **public** inside the corresponding **themesource** folder. These files will be copied to the **deployment/web** folder on deployment. * You can now use the [reference selector](https://docs.mendix.com/refguide/reference-selector) widget inside a [containment or repeatable containment](https://docs.mendix.com/apidocs-mxsdk/apidocs/property-types-pluggable-widgets#widgets) pluggable widget (except when you use both [Constrained By](https://docs.mendix.com/refguide/reference-selector#selectable-objects) and [Select using](https://docs.mendix.com/refguide/reference-selector#select-using) > **Drop-down**). * From now on, a reference selector widget on a native page automatically sorts the items it shows even if you have not configured the sort order explicitly. This is aligned with how the widget behaves on the web. * We made it easier to [consume OData services](https://docs.mendix.com/refguide/consumed-odata-services) that do not specify the max length of key properties in their contracts. You can now specify the max length in the domain model. * We improved the startup of the runtime by not registering handlers for REST, OData, and web services when the model does not contain any REST, OData, or web services, respectively. This has several advantages: it makes your app start up slightly faster, there are fewer log messages at startup, and it follows the security best practice of endpoint hardening. * The license server now respects the following JVM proxy options: *https.proxyHost*, *https.proxyPort*, *https.proxyUser*, *https.proxyPassword*, and *http.nonProxyHosts*. * We now log the addition of request handlers and WebSocket endpoints. * We upgraded *akka-actor*, *akka-slf4j*, and *akka-stream* from 2.5.25 to 2.6.14, *akka-stream-alpakka-xml* from 1.1.2 to 3.0.1, and *akka-http* and *akka-http-spray-json* from 10.1.8 to 10.2.4. * We improved the performance of the **Build deployment structure** step when building your app. The time needed for **Exporting pages** decreased up to 60%, and **Exporting metadata** decreased up to 90%. * We updated deprecated MIME types for fonts. * We improved the handling of streaming content to a client that disconnects. #### UI Resources Modules We have re-introduced the **UI resources** modules (which appear as green in App Explorer). It is now possible to mark modules as UI resources, making it easier to distinguish these modules. This also allows you to influence the order in which styling is applied from those modules. From [Studio Pro 9.0.5](9.0), modules can include styling using the **themesource** folder. By default, styles are added to the CSS in the following order: 1. Marketplace modules (alphabetically). 2. UI resources modules (alphabetically). 3. User modules (as ordered in Studio Pro). With this release, we added more control to the order in which these styles are applied by introducing an app level setting (under the **Theme** tab) that allows you to change the order of the UI resources modules completely to your liking. This changes the order in which the themesource styling is added to the compiled CSS, and enables fine-grained control over which styles should have more precedence in the browser. #### Pluggable Widget Capabilities With this release, we give pluggable widgets more control over the data source by adding support for sorting and filtering, which is also used in our [Data Grid 2](https://docs.mendix.com/appstore/modules/data-grid-2) module. A pluggable widget can now dynamically control the sort order of the data source by calling [setSortOrder](https://docs.mendix.com/apidocs-mxsdk/apidocs/pluggable-widgets-client-apis-list-values#listvalue-sorting) on the [ListValue](https://docs.mendix.com/apidocs-mxsdk/apidocs/pluggable-widgets-client-apis-list-values#listvalue). With the [setFilter](https://docs.mendix.com/apidocs-mxsdk/apidocs/pluggable-widgets-client-apis-list-values#listvalue-filtering) on `ListValue`, powerful filter options can be implemented with some easy to use helper functions. This can be a [simple filter](https://docs.mendix.com/apidocs-mxsdk/apidocs/pluggable-widgets-client-apis-list-values#simple-filtering) condition on a single attribute, or you can create an [advanced filter](https://docs.mendix.com/apidocs-mxsdk/apidocs/pluggable-widgets-client-apis-list-values#advanced-filtering) by combining multiple filter conditions. Note that [paging](https://docs.mendix.com/apidocs-mxsdk/apidocs/pluggable-widgets-client-apis-list-values#listvalue-pagination) is already possible using `setOffset` and `setLimit` on `ListValue`. With these features, you can create rich widgets, such as a grid that gives end-users the option for sorting, filtering, and paging. ### Fixes * We fixed an issue where the reference selector widget did not clear its value even when that value was not present in the output of its data source. The old behavior is now used when **Constrained By** is configured. (Tickets 95691, 115158) * We fixed an issue where extra newlines were added to the end of an expression when typing in the expression editor. (Tickets 101033, 103209, 105990, 107049, 107239, 114492, 115807, 115894, 116692, 116963, 118606, 119602, 122468) * We fixed the issue where the reference selector widget did not react to a change in access rules during a commit. (Ticket 102943) * We fixed an issue where temporary files and folders (like **GPUCache**) were created in the app directory, which led to unnecessary merge conflicts. (Tickets 105909, 106329, 107857) * We fixed an issue where running an offline-first app in a cluster produced warnings when trying to remove a non-existent session on another node. (Ticket 108018) * We fixed an issue in hybrid apps where adding allowed extensions caused unexpected behavior in iOS and Android. (Tickets 110248, 115364) * We fixed an error that occurred when refreshing the list of Team Server apps in the [Open App](https://docs.mendix.com/refguide/open-app-dialog) dialog box. (Ticket 112763) * We fixed an issue where certain operations (such as adding or removing an entity) were very slow in apps with large pages that used a lot of expressions. (Ticket 119503) * We fixed an issue with the taskbar icon not blinking when a breakpoint was hit while debugging an app. (Ticket 120326) * We fixed an issue where it was not possible to navigate through a multi-select search field on a data grid using the keyboard. (Ticket 122123) * We fixed an issue where the Return key on the iOS keyboard in a data grid search field was not triggering the search. (Ticket 122129) * We fixed an issue where opening a page with outdated pluggable widgets threw an exception (Ticket 122407) * We fixed an issue where Ctrl + Enter did not close a pop-up window in certain cases. (Ticket 123041) * We fixed an issue that occurred when multiple rows were selected in the **Changes** pane and copied to the Windows clipboard via Ctrl + C, but only some of the rows were copied multiple times. (Ticket 123191) * We fixed a medium-severity security issue where write access could be bypassed in certain scenarios. * We fixed an issue with the **Call workflow** event where Studio Pro tried to execute the workflow before it was fully initialized. * We fixed an issue with the Data Hub info pop-up location in a secondary screen with different resolution and scaling factor. * We fixed an issue where [Data Hub pane](https://docs.mendix.com/refguide/data-hub-pane) could not be closed with the Shift + Esc shortcut. * We fixed an issue where viewing details for a change in the [Changes](https://docs.mendix.com/refguide/changes-pane) pane led to an exception. * The [Variables](https://docs.mendix.com/refguide/view-menu#variables) pane is now again opened automatically when a breakpoint in a microflow is hit. * We increased the size of the grid lines on the [MxAssist Performance Recommendation](https://docs.mendix.com/refguide/mx-assist-performance-bot) dialog box so that they are visible on low resolution screens. * We fixed an issue where the MxAssist Performance Bot **Limit to current tab** button was interfering with open documents tabs. * We fixed an issue where MxAssist Logic Bot sent a common flow type to the server to make a suggestion instead of the exact type. * We fixed the behavior of allowed extensions when configured for the [File Manager](https://docs.mendix.com/refguide/file-manager) widget in iOS Safari on iPhone and iPad. * We fixed an issue where the [List View Controls](https://docs.mendix.com/appstore/widgets/list-view-controls) widget did not work in some cases when placed in a snippet. * We fixed an issue where a pluggable widget with an optional data source property and another property linked to that data source would trigger an error when deploying the app if the data source was left empty. * We fixed a runtime issue that occurred when filtering the metadata of a published OData service on entity access. When the user requesting the metadata does not have access to certain associations, they no longer see them in the metadata. * Setting the Jetty log node to the TRACE level will now correctly log Jetty debug information. * We fixed an issue in [consumed OData services](https://docs.mendix.com/refguide/consumed-odata-service) where only absolute URLs were supported in `nextLink` properties. Now, relative URLs are also supported. * We fixed a runtime issue in handling changes to AWS S3 storage settings in a running app where requests to only the settings about timeouts or CA certificates were not registered correctly and the old values were used. Now, the new values are used. * We fixed an issue where Studio Pro stopped responding after locking your computer or changing the Windows display settings. * We fixed a crash that occurred when conflicts after an [update, merge, or reverse merge](https://docs.mendix.com/refguide/using-version-control-in-studio-pro) were only present on the files in the app folder and not on the app itself. ### Deprecations * We dropped support for the Oracle 18 database because it is no longer supported by the vendor. ### Known Issues * When you update a [consumed OData service](https://docs.mendix.com/refguide/consumed-odata-service) with a new version from [Mendix Data Hub](https://docs.mendix.com/data-hub/) but close the document without saving, the blue arrow icon will no longer be shown to notify you about the available update for that service. * Workaround: Closing your app and opening it again fixes this issue. * In the **Properties** pane, you cannot copy, paste, or delete using keyboard shortcuts. * Workaround: Perform the same operation using your mouse and the context menu. * It is not possible to use Ctrl + Tab to switch between open tabs unless you have already selected a tab. * Workaround: Select a tab with your mouse and then use the key combination. * When you convert an app from Studio Pro 8 to 9 and merge a feature branch that has already been converted, you might see an error message when committing stating that the file inside the **theme** or **themesource** folder already exists. * Workaround: Commit the app conversion to version 9 before performing a merge. You may also need to resolve conflicts using an external tool after the merge.