Mendix Release 10.13 – “Maia, generate a domain model for me”

After the great 10.12 MTS release last month, this month’s 10.13 release is designed to empower developers and improve the overall user experience across various aspects of the Mendix platform. From improved performance in Studio Pro to the addition of new features such as Maia Domain Model generation, UI Building improvements, Mobile enhancements, AI capabilities, Governance updates, OIDC Provider enhancements, and Cloud improvements, this release is packed with valuable additions. In this blog, we’ll explore the key highlights of Mendix 10.13, including the new features, improvements, and updates that will elevate your development experience and enable you to build even better applications.

Let’s dive in and discover what’s new in Mendix 10.13!

Studio Pro

Performance

We’ve improved performance across Studio Pro once again. The text editor is now a lot more responsive and will give you immediate feedback, and copy paste actions will be a lot faster as well. These improvements will enable developers to create apps even faster!

Maia: Domain Model Generation

In this release, we’re extending Mendix Maia with support for the generation of domain models. After you enable this experimental feature in your Studio Pro preferences, you’ll see a button Generate Domain Model on an empty domain model. When you select it, you can describe to Maia what data you want your domain model to capture. This can be very detailed, e.g., “Create an entity ‘A’, with attribute ‘B’ and ‘C’ “, or it can be very generic, like “I need a domain model for an hour registration application.” With this first release, you can use Maia to generate the skeleton for a new domain model, which you can then refine and complete. This should save you considerable time when modeling a new domain model, but it will also help you consider the correct entities for your application.

UI Building improvements

Combo box – Set label automatically and expose selection

The Combo box widget is updated with two improvements. Firstly, the widget now automatically sets the label based on the selected attribute, simplifying the configuration process for developers. Additionally, we’ve added the capability to expose the selection. This means that the selected object can now be directly used for data views, microflows, or nanoflows anywhere on the page, without having to use non-persistent entities and associations. This offers enhanced flexibility and control for developers.

Data grid 2 – Export custom content columns

Excel export functionality of the Data grid 2 widget is enhanced. Previously, users encountered challenges when exporting data grid columns with custom content, as it would default to exporting the value “n/a”. In response to user feedback and an idea forum post with a high number of upvotes, we’ve introduced the capability to set an export value specifically for custom content columns. This allows users to define a dynamic text value that accurately represents the data when exported, addressing the previous limitations and ensuring a more seamless export process. Moreover, users now have the option to leave the export value empty, preventing the export of unnecessary data and maintaining the integrity of the Excel sheet.

Mobile Enhancements

Push Notifications for Progressive Web Apps (PWA)

Push notifications are a highly sought-after feature in mobile applications, offering a direct line of communication with your audience. Thanks to Mendix’s Push Notifications Connector, integrating push notifications into native mobile applications has been a breeze. However, push notifications were previously unavailable for progressive web apps (PWAs).
Good news: push notifications are now available for PWAs as well! The setup process mirrors that of native mobile apps, ensuring a smooth and familiar experience for those already versed in the system. Visit our documentation for a comprehensive guide.

Push notifications

The new web-based push notifications work in PWAs on both iOS and Android devices and the module is compatible with Mendix 9.24 and upwards.

React Native upgrade

Mendix is committed to delivering cutting-edge technology that ensures your applications are reliable and secure. For native mobile, this means that we frequently update our core dependencies, including React Native and its associated modules, to enhance your native mobile applications.

In our latest release, React Native has been upgraded to version 0.73.8. This significant update enhances compatibility with the latest Android and iOS operating systems and boosts JavaScript performance, thanks to the integration of an updated Hermes engine.
Please note that a new version of Make it Native is required to fully take advantage of these improvements. Our documentation has detailed information on compatible versions of Make It Native for each Mendix release.

Improved data retrieval in offline-first apps

Filtering objects across multiple associations is a common practice. Imagine an inventory app that tracks products within various warehouses and sections. While displaying a comprehensive list of all products within a specific warehouse, including all its sections, is a breeze in online Mendix applications, it posed a challenge in an offline-first application.

With this release, we are introducing the ability to traverse one or more associations in data sources and Nanoflows of offline-first applications. This enhancement simplifies retrieving the right objects, especially within intricate offline domain models.

Improved data retrieval in offline first apps

Fallback page for page/microflow URLs

Mendix offers enhanced flexibility in URL management, allowing you to tailor custom URLs to trigger specific pages or microflows. In the past, encountering an unrecognized URL would lead to a standard error page.

But that’s a thing of the past! You’re now empowered to designate a specific page or microflow to respond to these unknown page requests. It’s as simple as setting a fallback page within your navigation profile. For those seeking a more tailored approach based on the accessed path, assign a microflow equipped with a ‘Path’ parameter instead. This update is designed to streamline your application modeling process, giving you the tools to build the applications you envision with greater ease and precision.

Fallback page for page microflow URLS

Mendix Connect

Snowflake: OAuth for the Mendix Data Loader

With the latest update of the Mendix Data Loader developers can use OAuth as the authentication type. The Mendix Data Loader uses Snowflake’s native app framework and is designed to streamline the extraction of operational data from Mendix applications directly into the Snowflake environment. Unlike our other Snowflake connectors, The Mendix Data Loader is available from the Snowflake Marketplace.

Snowflake Oauth for the Mendix data loader

Endpoint configuration for OData REST APIs

Some REST best practices and guidelines require API endpoints to use a specific naming convention. For example, all endpoints should use Kebab case. To ensure your OData REST APIs conform to these guidelines, we now enable you in 10.13 to provide an alternative location for your endpoints.

Endpoint configuration for OData REST APIs

AI

ChatCompletions with Converse API within the Bedrock Connector

The ChatCompletions operations have been updated to use the Converse API, which makes it even easier to get started with your favorite conversational model. The Invoke model operations inside the ChatCompletions operations are replaced with a call to this new API as it is specifically designed to create conversational applications that send and receive messages to and from any conversational Amazon Bedrock model.

Using the new Converse API is recommended as it provides a consistent experience, is easy to use, and makes it easier to “evaluate” the different models within the context of the application. Depending on the model family itself, the following features are supported as an integrated experience: System prompts, Vision, and Tool use (Function calling).
When new conversational models or families become available, they are automatically supported as part of this new Converse operation.

Image generation with Bedrock and OpenAI

Last month we introduced a unified way of using text generation and chat completions with OpenAI’s GPT and Bedrock’s Anthropic Claude and Amazon Titan models. We introduced the same for image generation. You can now switch between DALL·E 2 and 3 in the OpenAI connector and Amazon Titan Image generation in the Bedrock Connector, to easily compare the different generated images. See the OpenAI Showcase application for an example implementation.

Simplified embeddings and PgVector knowledge base

In the latest release of the Bedrock Connector and OpenAI connector we make it easier to create your own Retrieval Augmented Generation Setup. Typically, you can leverage our out-of-the-box integration with hyperscaler services like Amazon’s Bedrock Knowledge Bases for use cases where you want to bring your own data to the large language model. Sometimes that’s not a good option, however, and you need a do-it-yourself solution. The PgVector Knowledge Base module does this for you.”

With a simple series of toolbox items, you can now define knowledge related to Mendix Objects, generate embeddings for it and store it in your PgVector based knowledge base. For this you can use both the Amazon Titan and Cohere Embeddings models via the Bedrock connector, or the text-embeddings models from the OpenAI connector. In the latest version of the OpenAI Showcase application you can see how you can ground your LLM in your private data with a Retrieval Augmented Generation setup, and how you can use this for making suggestions to the user based on historical data.

Simplified embeddings and PgVector knowledge base

Enter to send in the Conversational UI

We implemented one of the most requested features in our Conversational UI module: press Enter to Send, or Shift+Enter for a new line. We made it possible to align with the experience that your users expect while interacting with any large language model in your conversational UI. This is also included in the AI Bot Starter App so that you get it out of the box when creating your own private enterprise-grade ChatGPT-like solution.

Developer Portal renamed to Mendix Portal

We are no longer using the name “Developer Portal” and have instead renamed it as the Mendix Portal. We feel this better reflects the multifunctional and multi-user capabilities of the Mendix Portal going forward.
The Mendix Portal encompasses all aspects of our platform, including development activities such as

  • Apps
  • Deployment
  • Epics
  • App Insights
  • Portfolio Management

…as well entities such as Marketplace, Governance in Control Center, Academy, and Community.

This change aligns with our broader vision to support digital transformation, not just faster app development. We’ve deferred this update until now to ensure a comprehensive approach and we’ve updated all documentation accordingly.

Simplified “Create New App” flow

We are excited to announce the redesigned flow for creating new apps in the Mendix Portal, making the process faster and more intuitive than ever. All you need to do create an app is pick a name, choose an image (or go with the autogenerated one), and select a Starter App. Adding a description is optional, but we highly recommend doing it for any apps other people from your organization might be interested in accessing.

Simplified Create New App flow

You can now enjoy a streamlined selection of Starter Apps that will help you begin your next app in Studio Pro. If your company has an official Starter App, it will be at the top of the list. And if you’d like more inspiration, there is also a wealth of Community Starter Apps to discover in Marketplace!

In the new flow, you’ll always create an app in the latest Mendix version. If you need to create an app in a different version, you can easily do that from Studio Pro or Marketplace.

Governance

Mendix Pipelines improvements

Mendix Pipelines powers platform-native low-code CI/CD, helping you automate software packaging and deployment without DevOps know-how. With a set of configurable steps, you can design a pipeline in Mendix Portal so that it triggers automatically based on specified conditions, such as upon a commit to TeamServer Git. That’s it. Sit back and relax while automation with Mendix Pipelines saves you hours of effort. It’s currently available for unlimited use in public beta. Check it out!

Want to learn more? Check out this comprehensive learning path demonstrating all methods for software delivery in Mendix.
Mendix Pipelines continues to evolve. Here are the key capabilities we bring with this release:

Manual trigger

Deployments to higher environments, such as Acceptance and Production, often start with an explicit click after the release checklist has been completed. To enable such use cases, we have launched a new trigger type – ‘Manual’.

Promote deployment package step

Once a deployment package has gone through testing in the Test environment, it can simply be ‘promoted’ to higher environments such as acceptance or production using the newly introduced ‘Promote package’ step.

Deep links for seamless collaboration

Have you ever wanted to share a particular pipeline run with a colleague to collaborate or debug? That’s now even more seamless with deep links for runs, run details, designs, and settings tab. Formats for these links would be as follows:

  • link/project/{projectid}/runs
  • link/project/{projectid}/run/{runid}
  • link/project/{projectid}/designs
  • link/project/{projectid}/settings

Here is an example of a deep link for a pipeline run details page.

Feedback loop

Try out the new capabilities and let us know your thoughts via the Feedback widget on the right-hand side of your screen on the Pipelines page. Your feedback helps us to continually improve our platform in the ways that matter to you.

Example use case

Let’s take a use case to illustrate how to use these capabilities. A Mendix maker wants to set up the following pipelines. See the video below to see how you can put this in motion in a few minutes’ time!

Mendix Pipelines example use case

Stay tuned for more updates!

OIDC Provider: Client Credential grant

The Mendix marketplace offers Single Sign-On (SSO) modules that make your Mendix application delegate end-user login to your Identity Provider (IdP) such as Entra Id, Okta, etc., But in some organizations setting up SSO for each and every Mendix application brings overhead that is too costly or slows down innovation. In such cases, an SSO broker between your IdP and your ever-growing portfolio of Mendix applications can be useful. You can build a Mendix app that acts as an SSO broker by using the OIDC Provider module which is already available to you in the Mendix marketplace.

Also, if you’re an Independent Software Vendor (ISV) you may want to build a multi-app solution that behaves as a single app. Again, the OIDC Provider module helps you do that. By including it in a central Mendix app, that central app can act as an IdP for the other apps. End-users of your solution can log in to your central app using local credentials and get an SSO experience across all the apps in your multi-app solution without using an ‘external’ IdP.

So what’s new in the OIDC Provider module?

We’ve now enhanced the OIDC Provider module for an additional use case: API consumption. API security can be arranged for using API keys but that’s not a best security practice. If you prefer to use OAuth tokens (a.k.a. bearer tokens or access tokens) you have two options.

  • Use human identities. An end-user of your (client) application logs in using SSO, and the client application can consume the API on behalf of the end-user using the OAuth Access Token it received as a result of the SSO process.
  • Use a machine identity. Machine identities are also known as service accounts or application accounts. In this case, access tokens are used by the client application to consume the API on behalf of itself. The end-user is not relevant in this scenario.

The OIDC Provider now supports the so-called Client Credential grant. This means that a client application can obtain a ‘client access token’ by authenticating at the OIDC Provider and present that access token to the API it is consuming. The API can validate the token using token introspection at the IdP or by validating the signature.

What’s next?

Stay tuned for the next version of the OIDC SSO module for an out-of-the-box microflow that allows your API to validate the client access token.

Cloud

No more irrelevant alert notifications

For all applications running on Mendix Cloud, we record metrics. This includes resource metrics, like CPU and memory usage, but also application metrics, like concurrent users and incoming requests.

Based on these metrics, Mendix Cloud triggers alerts. If metric values cross a specific threshold, the alert status will change. Users who subscribe to the alerts will receive a notification via email, and alert notifications are also sent out via webhooks.

The alert thresholds for Mendix Cloud were the same for all applications, regardless of the cloud resource plan an application is running on. This meant that some alerts, specifically resource-related alerts, were triggered more often on smaller cloud resource plans, as these smaller plans have fewer resources and will therefore use a larger percentage of the available resources more quickly.

We analyzed the alerts that are sent out from Mendix Cloud and found several alert types where we could set a different threshold for specific cloud resource plans. With these new alert thresholds, the number of irrelevant alerts for these plans is reduced significantly. Alerts are now only sent out when action is required. We will keep analyzing the alerts to see if we can make more improvements in the future.

Are you ready to start your next app?