Mendix Release 10.12 – Love for Developers

The Mendix 10.12 release is an MTS release (more info here) that comes with a lot of love to improve the life of developers. First, we make life better with new AI features, many Studio Pro performance improvements, the number one open idea on the Idea forum, and the introduction of Software Composition! Second, there are many powerful features/improvements across the platform like improvements for UI building, mobile, Snowflake integration, Private cloud, and Academy! Last, don’t forget the fresh new download page for Studio Pro.

AI

This month comes with many updates around AI, both for helping developers in building apps in a smarter way and enabling developers to build smart apps!

Meet Maia, our generative AI assistant for low-code development

With Mendix 10.12, we are releasing Mendix AI Assistance (Maia), our new generative AI-powered assistant designed to help you as a developer during your application development lifecycle. Maia can answer Mendix development questions, automate certain development tasks, and even generate parts of your app. Maia can be seen as that friendly and helpful Mendix expert that helps people along their development journey.

Maia Chat for guidance

We have integrated MendixChat into Maia. It is now called Maia Chat and is generally available (GA). Maia can easily be opened via the Maia icon in the top-right of Studio Pro. The generative AI-powered Maia Chat is designed specifically for Mendix development, enabling developers to receive immediate, detailed answers to Mendix related questions directly from various sources such as documentation, forums, and academy learning paths. Maia Chat can be used to quickly acquire Mendix knowledge and enhance your productivity without the need to leave the development IDE, Mendix Studio Pro.

With its latest update, the quality of responses has been enhanced using an improved Large Language Model (LLM), specifically customized for Mendix content. We decided to put Maia to the test on academy exams. It passed both the Rapid and Intermediate certifications!

Additionally, we have reduced response time by 40%, added copy/paste shortcuts, and enhanced readability with markdowns (bullet points, highlights, and code snippets). Maia Chat now has a memory, capable of handling short conversations to answer questions considering the existing chat thread.

Maia In-context Recommenders for assistance

We are also consolidating and rebranding MxAssist Logic Bot and MxAssist Best Practice Bot into the Maia Logic Recommender and the Best Practices Recommender, respectively. And with 10.12, we are introducing the Workflow Recommender (with a Pages Recommender coming soon). The recommenders are enabled by default but can now be disabled via Studio Pro preferences.

These recommenders give you a real-time and context-driven list of the next most relevant actions, based on the already designed application logic and other context-related information. You can also use the recommenders to quickly search and use fully configured actions. For example, you could use `Retr Or` to quickly retrieve a list of OrderLines associated to the Order input parameter, or `Sum Value` to calculate the total value of all associated OrderLines. The search box uses fuzzy search which makes it extremely useful for short-cuts like Cr Obj Employee, ‘Show Account’, ‘call CalculateOrderValue’. Quickly type the first few letters of an action plus the name of an entity, page, microflow etc. The search options are endless!

And did you know that you can choose to directly open the properties dialog of the selected action by using Shift+Click/Enter? These recommenders can be seen as an expert that points developers to the right next actions to make them more productive.

Maia Workflow Recommender

Let’s talk about building workflows faster. Want to add a user task and use a microflow for user targeting? Similar to the Logic Recommender, Workflow Recommender will suggest microflows that are applicable. Type in a few characters and the list of suggestions reduces to the one you are looking for. Want to add a Jump activity? The Workflow Recommender suggests all activities that are valid to be jumped to. Of course, there are many more ways in which the Workflow Recommender can help you in building workflows faster.

Maia for Generation

Maia introduces generative AI-powered capabilities for automating development tasks and generating parts of applications directly in Mendix Studio Pro. These capabilities aim to accelerate the development process and improve consistency and quality in application delivery. Here’s how you can use these capabilities:

Maia Translations Generator

Ever wanted to translate an app as efficiently as possible and make sure no translations were forgotten? Introducing the Translations Generator to help you with this! From the batch translate window, you can now translate all untranslated texts in one go. The Translations Generator does this in a smart way, remembering all your parameters and their locations. It will help ensure your translations are always filled in, so you don’t have to worry about missing text.

Maia in the Mendix Community

We are also expanding Maia to the platform. In Mendix 10.12, we are releasing two Maia features in Mendix Community as previews: Maia Summarize and Maia Rewrite.

The summarize functionality is a Maia-powered thread summarization feature. It condenses lengthy forum discussions into key points, making it easier for our users to quickly find solutions to their questions without having to plow through every single answer in the thread.

The rewrite functionality is an assisted writing aid integrated within the Mendix Community posting interface. This will help our users to ask properly formatted questions that are more likely to be answered.

AI components for smart apps

Mendix is a great platform for developing smart apps, which are context-aware, intelligent and proactive. They know the user and are connected with numerous data sources, from sensors to data lakes and warehouses like Snowflake, to systems of record like SAP and Salesforce.

To enable you to make these apps even smarter and create even more engaging experiences, we have previously released connectors for OpenAI and Bedrock. Use the OpenAI Connector to integrate the GPT-3.5, GPT-4 and DALL-E models which power the ChatGPT experience. The Bedrock Connector on the other hand, enables you to use numerous foundation models, like Anthropic’s Claude 3, AWS’ Titan, Meta’s Llama 3 and Cohere’s Embed. With these foundation models, you can create apps that work with lots of data, analyze and comprehend large amounts of text, process images with vision capabilities and generate content based on existing information. With these capabilities, you can automate steps in business processes that you couldn’t automate before.

As customers have adopted these technologies, we’ve helped them build conversational UI experiences, taking the concept of the smart app to the next level by making it more natural to interact with. And with Mendix 10.12, based on these learnings, we’ve taken a big step toward making development of these apps even easier.

Mendix 10.12 includes a Conversational UI module which makes it very easy to build conversational experiences with Mendix, whether it is a standalone chatbot or a conversational experience integrated into the Mendix application. And combined with a knowledge base from the hyperscalers, like for example Bedrock Knowledge Base, or with a bring-your-own knowledge base with the PgVector Knowledge Base module, the conversational experience can leverage your own data to provide grounded answers instead of hallucinations.

To power these conversational UIs, both the OpenAI Connector and the Bedrock Connector can be used interchangeably by simply dragging and dropping. We’ve made them compatible through the new GenAI Commons module, which introduces a simple architecture to make Generative AI connectors compatible with each other. The two connectors are now both supporting chat and text generation capabilities and function calling.

To kick-start development of AI-powered chatbots, we are introducing the AI Bot Starter App, which is a combination of all the new and updated components into a single template. Immediately get started with your private chat solution or customize it completely to suit your needs.

With this suite of capabilities, Mendix enables rapid experimentation with shortened time-to-market of, and fast iteration on smart, AI-Augmented apps. The composable building blocks for conversational UI, LLM connectors and modules enable delivery of typical architectural patterns for GenAI. You can leverage your own data through Retrieval-Augmented Generation or RAG and the ReAct pattern to integrate functions or tools. Finally, experiment with different Generative AI models from different providers with the available connectors.

Integrate AI technologies for conversational UIs and intelligent decision-making into existing and new enterprise-grade applications. Deliver digital experiences and business process automation that could not be realized before, in a low-code way. And bonus – if you aren’t ready for an upgrade to Mendix 10, the connectors and Conversational UI module are compatible with Mendix 9.24 LTS!

Control Center

The Developer Portal is now the Mendix Portal

We are renaming the Developer Portal to the Mendix Portal to better reflect its multifunctional and multi-user capabilities. The Mendix Portal encompasses all aspects of our platform, including the Control Center, Portfolio, Epics, Mendix Portal, and App Insights. 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. The term “Mendix Portal” has been chosen for its industry familiarity and suitability.

Introducing Software Composition

Software Composition is now available in Public Beta!

This much-requested feature is finally here to give you total transparency into your Mendix application’s building blocks. Software Composition lets you see component dependencies at a glance: standard modules, widgets, Java libraries, npm packages, and runtime versions.

Here’s what you can achieve with this powerhouse:

  1. Effortlessly gain a complete inventory of component dependencies within the Mendix Portal and Control Center. No more digging required!
  2. Identify the blast radius of vulnerabilities in a snap. Analyze component usage and notify impacted technical contacts to remediate security advisories.
  3. Say goodbye to unwanted components. Easily detect blacklisted or discouraged components used in your application landscape.
  4. Cross-cloud availability. Available for Free Cloud, Mendix Cloud, Cloud Dedicated, and Private Cloud

To start, ensure that you meet the pre-requisites – i.e. be on the supported Studio Pro versions and create new deployment packages from online platform services, in order to view the component dependencies. Get ready to streamline your development process and ensure the security of your applications. Dive into the Software Composition beta today!

Illustration 1: Component Dependencies of an application environment
Illustration 2: Component Usage across application landscape

Studio Pro

Generic

Studio Pro Performance

Studio Pro now works significantly faster allowing you to turn ideas into outcomes more efficiently. We look forward to seeing the great things you all will create with the improved performance! Modifying documents is now faster, and right-click actions are now several times more responsive, meaning you will get more instantaneous feedback on the actions you take. We’ve also updated the find usage mechanism to be more performant when working with microflows, which should give a nicer experience overall.

Studio Pro Extensions (Beta)

In 10.12 we are releasing extensibility as public beta, meaning that everyone will be able to create their own extensions for Studio Pro! Developers, partners, and ISVs can all benefit from adding tailored functionality to Studio Pro for different types of functionalities ranging from developer productivity improvements, to support for additional governance capabilities, to full blown product integrations. Many different types of extensions can enable developers to build applications more efficiently.

Examples of what can be done with the extensibility API include:

  • Add custom components and views in the interface of Studio Pro, such as a microflow hierarchy tree, or the Menditect Extension to gain more insight into how an application is built up, etc.
  • Add automatic renaming functionality so document names adhere to expected standards, without having to review this manually.
  • View internal quality tools directly in Studio Pro to maintain company standards more easily.
  • Integrate with external tools, like the Teamcenter Extension, to make the integration process easier.
  • Generate reports for an application that help with getting insights into the app landscape to meet governance guidelines/requirements.

This and so much more are now feasible.

With the extensibility API, for example, it is possible to add tools, capabilities and features to Studio Pro that empower developers with their low-code workflows so they can focus on building better software, faster.

It is also possible to create extensions leveraging C# and create DLLs that can be added to an application. These DLLs allow developers to create extensions both with and without UI, using web technology (e.g. ReactJS) for the UI. This way, one can create custom functionality for Studio Pro, enabling all developers who benefit from these extensions. For more in-depth knowledge on what is currently available, please check out the documentation. It also contains examples and tutorials to help developers get started with creating extensions. Extensions can be shipped as add on modules, so they can be published just like other marketplace content. Try creating extensions today!

Version control clone performance

In software development, every commit contributes to the size of your version control repository, with the .mpr storage format amplifying this effect. Unlike SVN, Git clones the entire repository by default, making cloning increasingly time-consuming as the repository grows.

Mendix 10.12 addresses this with a public beta feature called partial cloning. This allows developers to choose between a full clone, optimized for offline usage, and a partial clone, designed for quick startup. Preferences for cloning types can be set directly from the app launcher, affecting new clones and additional branch downloads. Because of this new option, we have further eased migration restrictions, which will be removed entirely once the feature exits beta.

Looking ahead, we’re working on changing the .mpr format to limit repository growth. Initially, this will roll out to new apps, with availability for all apps later this year. These improvements complement the partial cloning feature, providing a more streamlined and efficient version control experience.

Exclusions in managed dependencies

Since Mendix 10.3, managed Java dependencies empower Studio Pro to handle your Java dependencies seamlessly. It automatically manages all necessary dependencies, including cleanup when removing marketplace modules, and resolves conflicts by utilizing the latest library versions. However, sometimes managed dependencies install more libraries than needed. This can lead to conflicts, bloating your application’s footprint, and potential vulnerabilities.

To address this, Mendix 10.12 introduces exclusions for managed dependencies. With exclusions, you can selectively remove dependencies from your application project and optionally replace them with other versions. Developers have two levels of control:

  • At the module level, they can precisely define required dependencies, preventing future issues when combining modules.
  • At the application level, developers can inspect and exclude any unnecessary or conflicting dependencies.

Typically, you won’t need to utilize exclusions for managed dependencies. However, if the need arises, we hope they will assist you in resolving any issues you have.

Optional parameters in JavaScript actions

JavaScript actions are a powerful tool to add custom functionality that seamlessly integrates with the frontend. Whether you’re querying web APIs or interacting with our Client API, JavaScript actions provide the flexibility you need. Now, we’re taking it up a notch.

Introducing optional parameters for JavaScript actions! Enhance your existing actions without worrying about breaking compatibility. Just add a new parameter, uncheck the “Required” box, and gracefully handle missing values in your JavaScript code. It’s that simple!

Return Variable Name for microflows and nanoflows

Microflows and nanoflows are often used to return a variable. In the past, these flows used a generic “Variable” name, but now you have the power to choose a more descriptive name, making development smoother and more intuitive for your team.

UI Building

Primitive parameter support for logic called from Pages.

When building apps, it’s important that you can quickly turn ideas into outcomes and this feature improves that a lot. This feature is about the number one open request on the idea forum. It is now possible to pass primitive values from pages to microflows and nanoflows. Users can use expressions to set primitive values as arguments, like a String or Boolean, use functions, and it’s even possible to follow associations and get attribute values of associations! This can be used both calling actions as in data sources based on microflows or nanoflows.

The advantage is that microflows and nanoflows can now more easily be (re-)used when they have primitive parameters as they can be called directly from a page. Previously, multiple microflows/nanoflows had to be used or introduce a non-persistent entity in both the logic and UI. Not anymore!

For example, if there are multiple buttons to change the status of an attribute. Before this feature, this would require a microflow per button. Now, just one microflow can be used that has the status as primitive parameter and pass that from the button. Plain and simple.

In general, logic that has primitive parameters can be more easily re-used as it is not tied to the domain model thus this feature also improves overall re-usability.

Thank you Jelle, Laurens, Christiaan, and Christian for suggesting it on the idea forum!

Combo Box – Lazy loading for improved performance

We are excited to introduce lazy loading to our Combo Box widget. This update prevents the widget from slowing down the page loading by loading data on demand rather than all at once. This new capability allows the Combo Box widget to efficiently handle large amounts of data. As data is being loaded, a loading animation will be displayed, which can be a loading indicator or a skeleton loading pattern, providing a seamless user experience and indicating to the user that more data is on its way.

Lazy loading using spinner:

Lazy loading using skeleton loading:

Data grid 2 and Gallery – Control the filters

We are excited to announce the latest filtering enhancements to our data widgets. With the introduction of three nanoflow actions – “Set filter,” “Reset filter,” and “Reset all filters” – users can easily reset the filters and filter operators to their original values in a nanoflow, as well as set custom values, providing a seamless and efficient way to manage and customize data filtering. This feature is particularly useful for providing a selection of preset filters to the user that are commonly used. Update the Data widgets module to receive these goodies.

Remember Me

Mendix applications rely on sessions to manage user logins. These sessions automatically expire when users close their browser tabs or remain inactive for a few minutes. While this approach enhances security by minimizing session exposure, it can sometimes negatively impact user experience.

With this release we made it possible to remember end-users for a longer period so that they do not have to sign-in every time, improving end-user experience.

Keeping the user logged in can be achieved by using the “Sign in” action from Nanoflow Commons and provide the optional “Remember me” parameter. When set to true, the user is remembered.

Under the hood a token is generated, and users remain logged in as long as the token remains valid, which is similar to native mobile apps. The token’s validity period can be customized using the runtime setting com.mendix.webui.HybridAppLoginTimeOut. By default, tokens remain valid for one year. For detailed instructions, consult our documentation.

Enhancing application security with Strict Mode (beta)

In today’s digital landscape, online security is paramount. News of data leaks and breaches affecting millions of users reaches us daily. At Mendix, we take security seriously, continuously auditing and protecting our platform. However, security is a shared responsibility of the platform provider and its developers.

As a developer, securing your application involves setting up appropriate user roles and access rules, which can be difficult.
We’re excited to introduce a new safety measure: the strict mode. When enabled, it restricts data APIs used for direct data retrieval (like an XPath query) or modification from the front-end. Only data accessed on a page or within a Nanoflow can be retrieved by a user; all other data remains blocked, even if access rules permit it. This keeps application data safe when it is not used in your user interface, regardless of security rules that are set. So even if developers forget to configure access rules, access is prevented, making apps safer by default!

Strict mode is only available as part of React client. To enable strict mode, navigate to the Security settings of your app. Keep in mind that you must use the React client, which is currently in public beta, to take advantage of this feature.

Offline-First Performance

For mobile apps, performance is critical. This holds especially true for business applications, where the devices in use are often not the fastest, and sluggish performance can directly impact work efficiency.

At Mendix, we’ve dedicated substantial effort to enhancing the performance of offline-first apps. In our latest release, we’re thrilled to share the impressive results of our endeavors. We’ve achieved performance improvements of up to 5x when retrieving complex data from local databases or synchronizing large datasets. These enhancements stem from two key changes:

  1. Optimized Local Database: We’ve fine-tuned the local database and refined the queries that manage synchronization metadata. This has a significant impact on data insertion, updates, and overall synchronization speed.
  2. Automated Index Generation: To expedite data retrieval, we automatically generate indices for associations.

Additionally, developers can apply custom indices to the local database and optimize performance according to their needs. To enable an index for the local database, simply check “Index in offline” for that index.

We hope you enjoy these improvements and benefit from the improved performance in your applications!

Mx Connect

Parameters for request body in the REST Client

Developers can now use parameters in a request body. This can be useful if there is a request body that is not JSON, or if you need to send a large JSON request body where only a few values need to be provided in the calling microflow. Instead of having an NPE for every property of the JSON payload, developers can now call the REST API by providing one or two parameters.

Nested parameters for OData Actions and External Actions

OData actions now support nested input parameters and results. This allows developers to have microflows exposed as OData actions for saving or updated complex multi-object structures in a single transaction. External Actions that receive data from an Odata API can define in the client which objects they want to receive.

Snowflake integrations

You might have seen our recently announced partnership with Snowflake where we speak all about leveraging the value of your data assets through the speed and ease of low-code development. Since our previous Snowflake update in the 10.10 release we haven’t sat still. We have further enhanced our integration capabilities combining the strengths of both platforms.

External Database Connector

Release 10.12 marks the GA release of the External Database Connector for Snowflake. With this release, developers can use key-pair authentication when connecting to Snowflake, ensuring strong authentication

Snowflake REST SQL Connector

We have added an association between ConnectionDetails and Account entity and added OAuth as another authentication option. These new options allow for ways to leverage Snowflake’s role-based access control (RBAC) and keeping your data safe when building Mendix apps on top of Snowflake data. Information how to set-up role-based access control can be found here.

Mendix Data Loader (NEW!)

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. The Mendix Data Loader is an application that will be deployed within the customers own Snowflake environment. It’s a solution tailored for data engineers and simplifies the data migration process, ensuring efficient and secure data transfer from Mendix apps into a structured Snowflake database. In comparison to the other Snowflake connectors, The Mendix Data Loader is available from the Snowflake portion of Marketplace.

Snowflake Showcase application

Given the positive feedback we received on the OpenAI and Bedrock Showcase applications, we’ve developed a similar showcase for Snowflake. This application guides the user through all the different possibilities that the new improvements bring. Whether you are interested in building Mendix applications on top of Snowflake with the External Database Connector or REST SQL Connector, if you want to know how to leverage Snowflake’s role-based access control or want to periodically load your Mendix data into Snowflake easily: we got you covered.

Workflow

Audit trail in Workflow Commons module

One of the main reasons why workflows are used is for keeping a detailed track of every action that has been taken along the execution of a process. With the release of event handlers in 10.7 we allowed developers to begin building these capabilities. To help developers get more out of these capabilities, we’ve added a ready-to-use audit trail function to the Workflow Commons module. There are views available at app level, workflow definition, and workflow instance level. As a user you can decide how much detail (data) you want in each view. As a developer you only need to select the events that should be audited, select the audit trail event handler microflow, and you are done!

Mendix for Private Cloud

We are excited to announce the release of Mendix Operator v2.17.0, packed with new features and enhancements to improve your Mendix experience.

Azure Managed Identity Authentication

Azure Managed Identity mitigates the risk of static credentials being leaked or brute-forced. It also prevents shared credentials across multiple app environments from having more permissions than necessary. Additionally, using shared credentials can lead to unintended access to data across different app environments. Now, Mendix Operator can utilize Azure Managed Identity to access the following Azure resources:

  • Azure Key Vault
  • Azure SQL databases and Postgres databases
  • Azure Blob Storage

Kubernetes Liveness Checks

Now, apps with a health check microflow, the status is directly propagated to Kubernetes. Apps without a microflow will use the runtime_status call result.

Improved Storage Provisioner Reliability

If the operator fails to authenticate a Postgres or SQL Server database through a storage provisioner, it will no longer assume the issue is network-related and will avoid retrying incorrect credentials.

For more details, please refer to the release notes.

Academy

Optimized Expert certification process

We have moved the Expert certification process from the old Academy Portal app to the new Exam center app. With this move, we have directly optimized the expert certification process to give the examinee and examiner a better experience.

The examinee now only needs to provide a single document to support why they should be the next certified expert developer. After successfully registering, the examinee can reserve an available time slot for the interview and confirm their appointment in their calendar.

Based on the selected time slot an examiner is determined and this person will do the interview to determine if the examinee is ready to receive the Expert certificate.

Self-service exam registrations with new payment options via Digital River

Buying a Mendix exam seat is easier than ever! Mendix is now making use of an eCommerce platform to handle your exam payment in commonly preferred ways. With localized payment options like Ideal and Payco and globally known payment options like credit cards, Google Pay, and Apple Pay we have you covered to finish your transaction. Visit Mendix Academy to find the next certificate that you want to achieve and sign up!

Marketplace

New Studio Pro download page

The Marketplace team is pleased to announce significant improvements to the Studio Pro download page. The updated interface now provides a more intuitive and user-friendly experience, making it easier to find and download the latest or previous versions of Studio Pro. Each version of Studio Pro now has its own dedicated page, containing important links such as release notes, release blogs, and all relevant installers.

React-Client widgets

We are excited to announce the release of a new tag specifically for React Ready widgets in our Marketplace! This enhancement is designed to help developers and users easily identify and access a wide range of widgets that are optimized for React Client applications. You can find a React-Client tag next to a version of the product when navigating to the Release tab of a product details page.

Portfolio Management

Insights Dashboard: Driving Informed Decisions

The Insights Dashboard turns raw data into actionable information. With real-time visibility into initiatives pipeline, health and delivery, improve your decision-making and process. Quickly gain insights on capacity and effort allocation across the initiatives per departments, apps, owners, and use cases. With the Insights Dashboard, you can recognize the processes going strong as well as see where the bottlenecks are. Improve your productivity with data-backed decisions.

Explore this in Mendix Portfolio Management.

Are you ready to start your next app?