Mendix Release 10.15 – Gifts for the Entire Software Development Lifecycle

This release brings various improvements to the entire software development lifecycle. Studio Pro performance has been improved including some nice page-building improvements and Data grid 2 updates. Workflow becomes even more powerful with the workflow boundary events and nice improvements for Database connector and committing. Boost your DevOps with the new Pipeline features, including checking for best practices. Also, managing apps with the new Governance enhancements is improved. Last but not least, building AI-infused apps is even better with the various improvements we’ve made, including the ability to ask questions to Maia chat in different languages with answers in your language.

Studio Pro

Performance

We made several more performance improvements for Studio pro, specifically around the autocomplete popup in the expression editor, the Properties Tool window and some other various performance improvements.

Maia Chat multi-lingual support

Not all countries and regions prefer English, and others have less experience with English making development more challenging. As of now you can ask questions in your own language and Maia will detect the language, and answer back in your language! Also, as this is a backend improvement, you don’t even need to update Studio Pro.

Maia Chat Multi-lingual support

Page Building

X-Ray mode general availability

Following the beta release, X-Ray mode has undergone refinements and improvements, including bug fixes, the addition of data source information, and a redesigned interface. X-Ray enhances design mode with structure elements such as containers, layout grids, and data widgets, directly on the canvas while keeping the rest of your styling. This makes it much easier to select and place widgets on the canvas without switching to structure mode. The inclusion of data source information further enhances the user experience by allowing you to see the available data context directly on the canvas. With the release of 10.15, we are making it generally available for Windows as well.

No data view required for expressions

You can now use expressions for conditional visibility and dynamic classes without a surrounding data container. This simplifies modeling as you no longer need to add a wrapping data container when you are only using variables which are available at top level, e.g. page parameters, selections and constants. This was also raised on the Mendix Forum by Jean Gabeler. Thank you for that!

No data view required for expressions

Generate Overview Pages Overwrite option

Generate overview pages is a quick function for generating data admin pages. Previously, if new pages were generated, it would add a new folder, and you had to manually copy pages, etc. Not anymore! As of this release, the overview pages generation dialog now allows you to overwrite previously generated folders saving you a lot of time.

Generate Overview Pages Option

Data widgets enhancements

Improved Personalization

Users can now benefit from improved personalization for Data grid 2, as filter values will be stored as part of the data grid personalization, which means it is not needed to store personalized filter configurations separately anymore. Furthermore, filter operators are now stored as well, enhancing the customization and personalization of the data grid. Thank you for raising this on the Idea forum, Adam!

Reference sets

Finally, the new option to select reference sets for Data Grid 2 columns allows users to view the associated data as a comma-separated list of values, providing a straightforward and adaptable method for data representation and management.

Workflow Boundary Events (beta)

Ever had the need to model escalations on user tasks or be able to react to external events while the workflow is running? We are introducing boundary events as a way to model exceptions and respond to different types of events in the workflow. E.g. when a user task has not been completed after a week, it should be escalated to a manager.

A boundary event is an event that can be attached to an activity, and when triggered, an alternative path is started. Those familiar with BPMN will know these concepts. There can be non-interrupting and interrupting boundary events. The non-interrupting boundary event will keep the parent activity active while starting an additional path. The interrupting boundary event will abort the parent activity and start an alternative path. Different types of events can be used to define the triggers for when this should happen.

In this first (beta) release of boundary events, we introduce non-interrupting boundary events for (multi) user tasks, sub-workflows (aka Call workflow), system tasks (aka Call Microflow), and the “Wait for notification” activity. The first event that can be used as boundary event is the Timer event. Simply drag the Timer event from the Toolbox and drop it on, for example, a user task. It’s that simple! You can add multiple boundary events to a single activity (see video below), and activities in a boundary event path can also have boundary events (see video below).

Boundary events (beta) can be enabled via the “New features” tab in Studio Pro.

Workflow Boundary Events beta

Commit information

The commit dialog now displays the number of changes for each tab, making it easier to quickly see what’s been modified. Additionally, when creating a new commit, the first tab containing changes will be pre-selected, saving you a few extra clicks.

Commit information in data widgets

Database connector queries can now share response entities

Multiple queries can now share the same response entities. You can select to reuse an entity defined in another query, and you can also update the existing entity with additional attributes. Reuse of entities should make it simpler and faster to build pages that require multiple queries for the same data. For example, a data grid showing results from different queries.

Database connector queries share response entities

Mobile: iOS 18 support

Exciting news in the tech world! This month, Apple has rolled out a major update to their mobile operating system. This new version comes packed with enhancements and improvements, and it will soon be in the hands of users globally.

Since Apple users tend to quickly update their devices, it’s crucial to keep your app aligned with this update. We’re thrilled to announce that we’ve added support for iOS 18 for native mobile apps built with Mendix 10. To enable support, update the native mobile template to the latest version and release a new version of your app.

Stay tuned, as we’re also working on bringing this support to native mobile apps built with Mendix 9 soon.

Studio Pro Extensibility – Full read access to the model

Extensibility enables developers to build new Studio Pro functionality. Many use cases are around reading the model, e.g. to do quality, analytics or generate reports. With this release, we have introduced the Untyped Model Access API, which that makes it possible to get all kinds of information from your model, making extensions much more powerful!

Example code:

public IReadOnlyList GetMicroflowActionActivities() =>
untypedModelAccessService.GetUntypedModel(currentApp)
.GetUnitsOfType("Projects$Module")
.Single(unit => unit.Name == "MyFirstModule")
.GetUnitsOfType("Microflows$Microflow")
.Single(unit => unit.Name == "MyFirstLogic")
.GetElementsOfType("Microflows$ActionActivity");

To get started, see our documentation How to Use the Untyped Model Access API.

Pluggable widget API – Specify default values for actions

Widget are often released as part of modules, and in several cases some properties always call the same microflow or should open the same page as default. It’s now possible to specify a microflow, nanoflow or open page action, making the life of widget users easier!

Example XML:

<property key="buttonAction"
   type="action"
   defaultValue="MyFirstModule.MyFirstLogic"
   defaultType="CallMicroflow">
   <caption>On click</caption>
   <description>Action to be performed when button is clicked</description>
</property>

For more information see our documentation.

DevOps

Pipelines Plus Plus – MAIA Testing & APIs

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!

Mendix Pipelines continues to evolve. With this release, we bring forth two very powerful features to you:

Testing with Mendix Best Practice Recommender

Wouldn’t it be great if you could automate testing too, like the rest of CI/CD automation? You could automatically ensure that Mendix apps being deployed are high quality and secure in nature without spending precious developer time doing so. Introducing the first testing step within Mendix Pipelines – Maia Best Practice Recommender (previously the Mx Assist Performance Bot).

  • What is the Best Practice Recommender? Maia Best Practice Recommender is an intelligent virtual co-developer bot that helps you improve the performance of your app by inspecting your app model against Mendix development best practices. It shows errors, warnings, deprecations, and recommendations to help you optimize your Mendix app. It’s akin to static code analysis in the high code world.
  • How does it work in Pipelines? A new pipeline step called Maia Best Practice Recommender has been introduced. This step will evaluate your .MPR file against the Mendix development best practices. You can configure the step to fail the pipeline based on your quality rules. For instance, stopping the pipeline if errors are detected by the Best Practice Recommender Bot, thus ensuring that projects with inadequate quality are not propagated further by being packaged as MDAs or deployed in an environment. The detailed results of the Best Practice Recommender are visible in the Run Details page by expanding the logs.

DevOps Testing with Mx Best Practice Recommender

Configuring the Best Practice Recommender Step (previously Mx Assist Performance Bot)

  • How do I add it to my Pipeline? Easy, just add the step after Checkout. An example pipeline would look as follows:

DevOps add to Pipeline

  • Ultimately, why should I use it? The benefits are multi-fold:
    • Boost developer productivity by automating testing
    • Shift left by preventing the creation of deployment packages which have errors or deprecations per the Mx Assist Bot
    • Ultimately, create high quality software with Mendix!
  • Are more kinds of testing steps coming? Of course! Stay tuned to the release blog for more!

Pipeline APIs

APIs: The secret ingredient to any software that wants to be more than just a lonely island 🙂. And they are here for Pipelines! The following two API calls are available:

  1. Start pipeline – Pipelines which can be manually triggered can be started via an API now. Tip – Copy the pipeline design id from the design page to use this API
  2. Query pipeline run status – Query the status of any running pipeline using this API call.

How can you use APIs?

  • Tailored triggers – APIs allow for customized triggering conditions, enabling pipelines to be initiated based on specific events or criteria. For instance, you can trigger a pipeline when the Jira status of a ticket is updated via Jira Automation. Typically Jira is also used to facilitate internal approvals and integrating Pipelines helps save another step in the process.
  • Integration with other systems – APIs can be integrated with various tools and services. For instance, triggering Mendix Pipelines from your 3rd party CI/CD tooling of choice.
  • Enhanced visibility and collaboration – Notifications to group channels or updates to Jira tickets upon pipeline completion can be orchestrated via pipelines as well.

Governance

Software Composition Improvements

Software Composition – in Control Center and Developer Portal – helps provide visibility into external dependencies of your app landscape and app respectively. Visibility into these building blocks helps monitor security risk effectively. The following improvements have been made with the recent release:

  • Deep links for seamless collaboration – Deep links are available for every page and sub-page in Software Composition, thus you can easily share an app’s composition or the usage of a unique component with your colleagues.
  • Performance improvements – Over-whelming positive response on the feature resulted in some performance hiccups. We have made some improvements in this release and will continue doing so in upcoming iterations as well.
  • SBOM Generation via PipelinesSoftware Bill of Material (SBOM) are also generated via Pipelines when using the Build and Publish steps. The SBOMs are visible on the Software Composition page.

Centralized Company Roles

Let’s talk about project roles on the Mendix platform — these are sets of permissions given to people who are involved in application development process (so nothing to do with end user roles in the apps you build with Mendix).

At the moment, a Scrum Master of any project can set up as many custom roles as they want and then those project roles can be assigned to the team members. Not ideal, we know, which is why we changed the way it works.

We have completely moved platform role management onto the company level. What this means in practice is that only the company admin can create and edit company roles and once they are created, they can be used by individual projects. Scrum Masters will not have the power to create custom roles in every project anymore, they will only be able to select from a set of admin-approved ones.

DevOps Centralized Company Roles

So what is changing exactly? If people in your company have not been creating any custom roles, not much, the only difference is that now admins will have the power to review and manage platform roles in Control Center more effectively. If you do have custom roles, what will happen after you switch to centralized company roles is that all the custom roles from your projects will become visible in Control Center.

Maybe, for example, different people took the same set of permissions and named them differently in different projects. Or there might be a role with a set of permissions that does not really make sense for your organization, but it was used in a project somewhere. In short, your company admin(s) will have to do a bit of cleanup. If they try to delete or modify and role that’s used somewhere, we prompt admins to choose a different role to re-assign those users to. This should not be too much work, and you can always revert to the defaults we offer and get rid of everything else (we mark all other roles as “Inherited from project”).

Centralized Roles - Roles and Permissions

You might be wondering why this matters. Apart from improved governance with regards to access management, the next step will be to add cloud permissions to the mix, so admins will be able to choose on company level which roles have the right to deploy for instance (or specifically deploy to production).

For those more complex use cases, there will still be the option to leave deploy rights to individual project members who know best who needs access to what. Finally, as soon as you switch to Centralized Company Roles, you will be able to use Projects API v2 to assign any role you want programmatically (currently, that is only possible for the Scrum Master role).

If you want to make the switch, all you need to do is go to Control Center and click on Learn More in the top banner to start the migration flow.

Default App Roles

Please keep in mind that we will require everyone to switch to Centralized Company Roles by January 1, 2025. This step is crucial in enabling you to manage cloud permissions centrally as well, but also it will enable us to provide more options for you to manage assess to the Mendix platform using our API.

AI

Monitor usage of your GenAI application with the Token Monitor

In the latest version of the Conversational UI module, we included the possibility to monitor how often your users are using Generative AI capabilities in your Mendix apps. View how many input and output tokens are used over time to track adoption, stay on top of the consumption, and control cost. Use the built-in charts to get a quick overview, or export the data to do your own analysis.

Display Rich Text with the new Markdown widget as part of your Conversational UI

We now also include the latest Markdown widget into the Conversational UI module and the AI Bot Starter App. Most models are trained to return rich text (formatting, tables, links and so on), or can easily be instructed with a prompt to do so (For example: You format the response in markdown, so that it contains bullet points, bold text and ordered lists when applicable). With the new widget this will automatically be formatted properly in your application so you can display richer text to your end users. The content will automatically be sanitized so don’t worry about any JavaScript injection whatsoever.

Display Rich Text

Support Assistant Starter App

Create your own AI augmented support assistant with our latest Support Assistant Starter App. Use advanced technologies such as function calling, knowledge bases, Retrieval Augmented Generation (RAG) and prompt engineering to help your users deal with tickets easier. Use historical and static data to help users so they don’t have to create a ticket if the answer can be automatically provided. The user will automatically be guided to create a ticket with all the information they already entered in a conversation to create a smooth transition into a more manual process.

Use this starter app to kick-start your development or use it to learn more about combining common Generative AI patterns into one seamless experience.

Easily compare models and use cases with the new Unified Showcase

We created a unified Showcase experience for both Bedrock and OpenAI to replace those respective showcases. Explore different ways to implement Generative AI in your application by going to the GenAI showcase application and test them with OpenAI, Azure OpenAI, and Amazon Bedrock. Use it to compare results and get started with different architecture patterns.

Are you ready to start your next app?