Mendix Release 10.3 – On Top Of It!
We’re about to catapult you into a world where being on top of things is the name of the game!
We’ll be delving into the latest updates, including Managed Java Dependencies, the exciting public beta launch of our application health dashboard, and a treasure trove of insights fresh from the version control server.
And, just when you thought it couldn’t get any cooler, we’ve got some extra surprises in store, like the reverse-associations option and the convenience of microflow URLs. Eager to maintain your position at the peak of knowledge? Keep reading and join us on this exciting journey!
Managed Java dependencies
With Mendix 10.3 we are excited to introduce managed Java dependencies. These will remove friction caused by managing conflicting .jar files when using (Marketplace) modules with dependencies on Java libraries!
Now, on a per-module basis, you can effortlessly specify its Java dependencies in the module settings, and Mendix will do the rest.
Previously, .jar files were shipped inside modules, and they were all put together in the
userlib folder. If multiple modules shipped different versions of that Java library, however, the startup of your app was impossible because of compilation errors. Furthermore, resolving those conflicts was time-consuming because it wasn’t always clear which .jar files belonged to which module.
With managed dependencies, Mendix leverages the power of Gradle to resolve these dependencies from Maven Central or even a custom (private) Maven repository.
And what about those pesky conflicts? Gradle automatically selects the newest version, effectively resolving compilation errors in most cases.
The resolved libraries are put into a dedicated folder called
vendorlib. The best part? Mendix takes complete control of this folder and keeps its contents fresh and up-to-date whenever your dependency configuration changes. For example, when adding or removing a module.
Similar to the
vendorlib is also committed to your version control system, ensuring a seamless deployment experience, even in air-gapped environments.
To make this transition even smoother, we’ve revamped our supported Marketplace modules with .jar dependencies. Modules like Community Commons, MendixSSO, Database Replication, and many more have received forward-compatible updates that still work with Mendix 9 as well.
As soon as you use Studio Pro 10.3 or newer, the module will clean up the .jar files from
userlib that belonged to that module, converting them to managed dependencies.
To start using managed dependencies, the only thing you have to do is upgrade your Marketplace modules to a version compatible with managed dependencies.
Say goodbye to the days of tangled .jar files and compilation errors. Embrace the future of simplified Java dependencies and enjoy a smoother, more efficient development experience!
Version control: what happened on the server?
Do you ever find yourself in that frustrating scenario where you’re eager to upload your latest changes to the version control server, only to be greeted by a warning telling you to “first merge changes coming in from the server?” If so, we have some improvements lined up for you in this and upcoming versions.
Back in Mendix 10.2, we added periodic polling of the server and a version control status indicator to show you how your local repository compares to the server. Are there incoming commits you should be aware of? Or are you ahead of the curve with several local commits of your own? Just double-click the indicator to open the branch manager or history panel!
With this information at your fingertips, Studio Pro can now guide you more effectively when you’re about to perform certain actions, such as committing your changes. If Studio Pro detects changes on the server, it will promptly inform you that you can only proceed with a local commit.
But that’s not all. In our next iteration, we’ll offer even more options to enhance your version control experience. Imagine having the ability to seamlessly pull changes, perform direct merge commits, or initiate a rebase process—all at your disposal. Studio Pro is evolving to empower you with these choices, ensuring that version control never stands in the way of your productivity again.
Thanks to the improved page URLs that we released in Mendix 10, it is now easy to set up a custom URL, including multiple parameters for your pages.
This lets your users bookmark pages for easy repeated access and share pages with colleagues. However, it was not possible to affect which page is shown based on a parameter or some other logic built into your app. To address this need, we are introducing microflow URLs.
A microflow URL is set up and works very similar to a page URL. You simply define the path with placeholders and connect microflow parameters to the placeholders. There are two main differences: microflow URLs let you also use primitive parameters, such as numbers and strings, and they let you add custom logic to define which page is shown to the user.
With microflow URLs, you now have full control over creating as many entry points as you need into your Mendix application.
Reverse direction for associations
When designing your domain model, it’s easy to accidentally set up an association between entities in the wrong direction. In the past, you had to delete the association and try again to fix the problem. Now, you can reverse the direction of the association with a single click (in the context menu). We hope you enjoy this time-saver!
Workflow Multi-User Task microflow decision method
That may be a mouthful to say, but this will give you full control when a Multi-User Task should be considered completed.
In Mendix 10.0, we released the Multi-User Task (a task that has to be executed by multiple people) and predefined four decision methods to decide on the final completion of the Multi-User Task:
- and Threshold
We have added the possibility to add your own microflow decision method. It gives you full control over how to evaluate the outcomes of each individual task, decide when a Multi-User Task is completed, and decide on the outcome.
Configure SSO using constants
Automation is the fundamental principle of DevOps, so you’d probably like to see that applied to configuration of Single Sign-On (SSO) for your apps as well. With the latest version of the OIDC SSO module, it is possible to do exactly that!
Until now, it was necessary to first deploy your (new) app and subsequently log in to the app as a local administrator to perform the necessary configurations. These can include client credentials and the well-known endpoint of your Identity Provider (IDP), such as Azure AD (renamed to Entra ID). From version 2.3.0 onwards, you can automate this process by using app constants.
Automation is convenient if you are using different staging environments for your app. Automation avoids the need to repeat these configuration steps for each of the stages and reduces the probability of making human errors. Maybe your test and acceptance stages use the same ‘test IDP,’ whereas the production environment needs to have SSO with your ‘production IDP.’ All of this can be orchestrated by preparations in your pipeline.
Besides the basic SSO configurations mentioned before, your app may also use some optional, more advanced features of the OIDC module. The benefit of the app constants is that the developer can set default values for those constants, such as the selection of the appropriate Access Token Parsing microflow. Effectively, we’ve shifted the runtime configuration partially to deploy-time configuration and partially to design-time configuration.
Your pipeline can override the defaults set at design time if needed. This may be useful if differences between your Test IDP and your Production IDP require different Access Token Parsing microflows.
Another benefit of the deploy-time SSO configuration becomes apparent if you’re restoring a backup of your app’s data. This may break the SSO configuration since the client_id and client_secret for your app may need to be different from the ones persisted in your backup.
This may be the case due to key rotation or because you want to restore a backup from an acceptance environment to a production environment, or vice versa.
Give it a try, experience the benefits, and be on top of SSO configuration!
Let your app ask for 2FA
With Single Sign-On (SSO), your app delegates the login process to your IDP. That means that your IDP needs to decide if the app user can log in with only a username and password or needs to use a second ‘factor’ as well (2FA). In most cases, your IDP is capable of making the right choice:
- Based on user
- Based on user group
- Based on app-specific configuration
In some cases, however, it may be necessary to let your app request a particular way of authentication at your IDP. In the OpenID Connect (OIDC) protocol, a so-called acr_values request parameter is defined for that purpose.
With the latest version of the OIDC SSO module, your app’s logic can request a particular authentication method by indicating that as a value of the ACR parameter in the SSO request. If you’d like to use this feature, first check what ACR values your IDP supports (if it is supported at all).
You may wonder what does ACR mean? It stands for Authentication Context Class Reference – I guess somebody preferred the 3-letter acronym over ACCR 😉. Whatever. What is more important is that by using this ‘ACR mechanism,’ you can be on top of user login.
New AWS IoT and AI/ML connectors in the Marketplace
Are you ready to build some nice IoT and AI-enhanced solutions? Wait no more! The AWS connector team has recently released some nice new additions to the Marketplace.
Generative AI with Amazon Bedrock Connector
A new Amazon Bedrock connector is available. Amazon Bedrock is a fully managed service that makes foundation models (FMs) from Amazon and leading AI startups available through an API. This allows you to choose from various FMs to find the model that is best suited for your use case.
Typical use cases include the following:
- Building an AI agent to answer questions about proprietary data.
- Generating images based on text prompts and displaying them in the Mendix app.
Next to the connector, there is an example implementation module, including examples for the models available in Amazon Bedrock. The module contains basic functionality for retrieving available foundational models from the AWS server and some standard microflows to invoke specific models.
Note that the Amazon Bedrock connector will get platform support once the Amazon Bedrock service goes GA.
Using Amazon SageMaker with the Mendix 10 ML Kit
Next to Amazon Bedrock, we have provided a solution to use Amazon Sagamaker in combination with the Mendix ML Kit. It explains how to convert a Scikit-learn model into an ONNX model, import it to Mendix 10.1.1, and create a test app around it.
Collect and process industrial data with the help of the new AWS IoT SiteWise Connector
Another addition to our AWS connector lineup is the AWS IoT SiteWise Connector. This is a managed AWS service that aids in consolidating, structuring, and analyzing IoT data streams.
AWS IoT SiteWise has a plethora of resources which one can build apps upon. Some examples include:
- Predictive maintenance
- Quality assurance
- And (interactive and dynamic) factory floor dash-boarding
Have a look at all the new additions we made, and don’t hesitate to provide feedback on them!
Application Health Dashboard (public beta)
Are all my production apps up and running? Are there any apps running out of their allocated resources? If you are managing more than a few Mendix apps, it’s not easy to have a complete overview of the running status of your application landscape.
The Application Health Dashboard in the Control Center now gives an overview of the alert status of your public cloud production environments. You can filter by running status but also by other alert types, e.g., to see which apps are running out of database space.
You can select an app from the list to see more details, including the contact person(s) to inform, or jump to the app environment directly to fix the problems yourself if that’s your responsibility.
🇦🇪 مرحباً، دولة الإمارات العربية المتحدة!
To reinforce our commitment to supporting customers in the Middle East, we have opened a new Mendix Cloud region in the United Arab Emirates!
Mendix customers can now run their applications in the UAE to provide their end-users with a great app experience while complying with local data governance regulations.
Mendix Cloud is now operating in 14 regions across all continents!
Exchange posts in the Mendix Community
In talking to our community members, we learned that they were seeking community-created content beyond troubleshooting and product improvements.
For example, content that inspires, offers a different perspective, or simply sparks a discussion. We’re enabling that in our community with the introduction of ‘exchanges’ – a new post type geared towards longer-form content.
Here’s how you can start sharing an exchange with the community:
For an overview of all the Exchanges posted thus far, click here.
Improved content posting
We’re refining the content posting experience by launching a new text editor, offering a more refined posting experience as well as tools to add rich media to your posts.
Refined Space navigation
Now, you can more easily find specific content posted in (Private) Spaces with powerful filtering options, which are located in any of the available Spaces under the filters button.
Want to stay on top of your committed work on a story level? Now you can do that in the brand new Revisions section of the story details page in Epics.
If your project is using Git, just expand this section, select a branch, et voilà! All your commits will be right there, with the commit message, date and time, and the name of the team member who committed the changes.
By popular demand, we have added the option to export to Excel on the Planning page (previously, this was only available for the Archive).
Speaking of the Archive, if you export archived stories, you can find two new columns in the Excel file: Assigned to and Archived by.
And one small thing: it has come to our attention that you could use better ways to filter stories. On the Planning page, you can now type bug or feature in the search bar to filter on the story type so that it only shows bugs or features. This is just the first step. More ways to filter out stories are coming soon!
New Content Types and Categories
We’ve changed the naming convention slightly for two sections in our latest Marketplace update. Categories are now Content Types. We have reduced the number of content types and made them consistent across the platform. (To learn more about the different content types available, visit the Marketplace Guide.)
Additionally, Subcategories have been replaced with Categories. When submitting a new component, you can apply between one and three categories. When searching in the Marketplace, you can use categories to filter the content to find the right component for your use case.
From October 5th on, you can also use Category and Content type filters independently in the Marketplace in Studio Pro.
Use in Studio Pro
In the past, downloading a module or widget directly from the Web Marketplace could lead to compatibility errors.
We’ve now changed it so that downloading modules and widgets can only happen directly from the Marketplace in Studio Pro. This will lower the risk of introducing compatibility errors. For that reason, we no longer have a download button on the detail page in the Web Marketplace, but have replaced it with a “Use in Studio Pro” button.
This button allows you to copy the content ID of the desired product, which you can then use while searching in Studio Pro. All you need to do is:
- Open up your app in Studio Pro
- Click on the “cart” icon to open Marketplace
- Paste the copied content ID and press Enter
- You can then open the product details page and click Download.
- The correct version of the product, which is compatible with your Mendix version, will be integrated directly into your application.
Click here to learn more on how to use Marketplace content in Studio Pro.