Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Mendix Version Compatibility

Supported Mendix Studio Pro versions, feature availability matrix, and known limitations.

Supported Versions

mxcli supports Mendix Studio Pro versions 9.x through 11.x. Development and nightly testing targets three versions:

Studio Pro VersionMPR FormatNightly TestedStatus
9.xv1NoRead-only support
10.0 – 10.17v1NoSupported
10.18 – 10.23v2NoSupported
10.24 (LTS)v2YesSupported
11.0 – 11.5v2NoSupported
11.6v2YesPrimary development target
11.9v2YesLatest tested

MPR Format Versions

v1 (Mendix < 10.18)

  • Single .mpr SQLite database file
  • All documents stored as BSON blobs in the UnitContents table
  • Self-contained – one file holds the entire project

v2 (Mendix >= 10.18)

  • .mpr SQLite file for metadata only
  • mprcontents/ folder with individual .mxunit files for each document
  • Better suited for Git version control (smaller, per-document diffs)

The library auto-detects the format. No configuration is needed.

Feature Availability Matrix

The tables below show exactly which features are available on each Mendix version. Data is sourced from sdk/versions/mendix-{9,10,11}.yaml.

Domain Model

FeatureMDL Syntax9.x10.0+10.18+11.0+
Persistent entitiesCREATE PERSISTENT ENTITYYesYesYesYes
Non-persistent entitiesCREATE NON-PERSISTENT ENTITYYesYesYesYes
Calculated attributesCALCULATED BY Module.MicroflowYesYesYesYes
Entity generalizationEXTENDS Module.ParentEntityYesYesYesYes
ALTER ENTITYALTER ENTITY ... ADD/DROP/RENAMEYesYesYes
View entitiesCREATE VIEW ENTITY ... AS SELECTYesYes

Microflows

FeatureMDL Syntax9.x10.0+10.6+11.0+
Basic microflowsCREATE MICROFLOW ... BEGIN ... ENDYesYesYesYes
Loop in branchesLOOP inside IF/ELSEYesYesYesYes
SEND REST REQUESTSEND REST REQUEST Module.Service.Op10.1+YesYes
Execute database queryEXECUTE DATABASE QUERY ...YesYes
Show page with paramsSHOW PAGE ... WITH PARAMSYes
REST query parametersSEND REST REQUEST with QUERY paramsYes
DB query runtime connectionEXECUTE DATABASE QUERY CONNECTION ...Yes

Pages

FeatureMDL Syntax9.x10.0+10.18+11.0+
Basic pagesCREATE PAGE ... { ... }YesYesYesYes
ALTER PAGEALTER PAGE ... SET/INSERT/DROPYesYesYes
Pluggable widgetsDATAGRID, GALLERY, COMBOBOX, IMAGEYesYesYes
Conditional visibilityVisible: [xpath]Yes
Conditional editabilityEditable: [xpath]Yes
Responsive column widthsTabletWidth: 6, PhoneWidth: 12Yes
Page parameters (entity)Params: { $Item: Module.Entity }Yes
Page parameters (primitive)Params: { $Qty: Integer }11.6+
Page variablesVariables: { ... }Yes
Design properties (Atlas v3)DesignProperties: [...]Yes
::: tip Widget Templates Pluggable widget templates are currently extracted from Mendix 11.6. When used on 10.x projects, the MPK augmentation system reconciles property differences. Some CE0463 (“widget definition changed”) errors may still occur.
::

Security

FeatureMDL Syntax9.x10.0+
Module rolesCREATE MODULE ROLEYesYes
User rolesCREATE USER ROLEYesYes
Entity access rulesGRANT READ/WRITE ON ...YesYes
Demo usersCREATE DEMO USERYesYes

Integration

FeatureMDL Syntax10.0+10.1+10.4+10.6+11.0+
OData clientCREATE ODATA CLIENTYesYesYesYesYes
Business eventsCREATE BUSINESS EVENT SERVICEYesYesYesYesYes
REST client (basic)CREATE REST CLIENT ... BEGIN ... ENDYesYesYesYes
REST client headersHEADER 'Name' = 'Value'YesYesYes
Database ConnectorCREATE DATABASE CONNECTIONYesYes
REST client query paramsQUERY $param: TypeYes

Workflows

FeatureMDL Syntax9.x10.0+
Basic workflowsCREATE WORKFLOWYesYes
User tasksUSER TASK ... OUTCOMES (...)YesYes
Parallel splitsPARALLEL SPLITYesYes
FeatureMDL Syntax9.x10.0+
Navigation profilesALTER NAVIGATION ...YesYes
Menu itemsMENU ITEM ...YesYes
Home pagesHOME PAGE Module.PageYesYes

OQL (View Entity queries)

FeatureMDL Syntax10.18+11.0+
Basic SELECTSELECT, FROM, WHEREYesYes
Aggregate functionsCOUNT, SUM, AVG, MIN, MAX, GROUP BYYesYes
SubqueriesInline subqueries in SELECT/WHEREYesYes
JOIN typesINNER/LEFT/RIGHT/FULL JOINYesYes

MPR Format & Infrastructure

FeatureMinimum VersionNotes
MPR v2 (mprcontents/)10.18Per-document files for Git compatibility
Association storage format11.0New BSON encoding for associations
Portable app format11.6New deployment format

BSON Differences Across Versions

The Mendix metamodel evolves across versions. The reflection data shows ~42% type growth from Mendix 9.0 to 11.6. Key structural differences:

View Entities (10.x vs 11.x)

View entities exist in both 10.18+ and 11.x, but the BSON structure differs. In Mendix 10.x, the OqlViewEntitySource object has an Oql field that stores the OQL query inline (in addition to the separate ViewEntitySourceDocument). Mendix 11.0 removed the inline Oql field. The writer detects the project version and includes the inline field for 10.x projects.

Page Parameters (10.x vs 11.x)

Mendix 11.0 changed how page parameters are stored in BSON. The Variable property in page parameter mappings uses a different structure. Writing 11.x-style page parameters to a 10.x project causes an InvalidOperationException.

Design Properties (Atlas v2 vs v3)

Atlas UI v3 (Mendix 11.0+) introduced new design properties like “Card style” and “Disable row wrap” for containers. These don’t exist in the Atlas v2 theme bundled with 10.x, causing CE6083.

Widget Type Definitions

Pluggable widget PropertyTypes change between Mendix versions. A widget template extracted from 11.6 may have more or fewer properties than the widget installed in a 10.24 project. The widget augmentation system handles this by reconciling templates against the project’s .mpk files.

Widget Template Versions

Embedded widget templates are extracted from Mendix 11.6 and cover:

WidgetTemplateWidget ID
Combo boxcombobox.jsoncom.mendix.widget.web.combobox.Combobox
Data grid 2datagrid.jsoncom.mendix.widget.web.datagrid.Datagrid
Gallerygallery.jsoncom.mendix.widget.web.gallery.Gallery
Imageimage.jsoncom.mendix.widget.web.image.Image
Text filterdatagrid-text-filter.jsoncom.mendix.widget.web.datagridtextfilter.DatagridTextFilter
Number filterdatagrid-number-filter.jsoncom.mendix.widget.web.datagridnumberfilter.DatagridNumberFilter
Date filterdatagrid-date-filter.jsoncom.mendix.widget.web.datagriddatefilter.DatagridDateFilter
Dropdown filterdatagrid-dropdown-filter.jsoncom.mendix.widget.web.datagriddropdownfilter.DatagridDropdownFilter

MPK Augmentation

When opening a project, mxcli checks the project’s widgets/ folder for .mpk packages. If a widget’s installed version differs from the embedded template, the augmentation system:

  1. Extracts the XML property definition from the .mpk
  2. Adds properties found in .mpk but missing from the template
  3. Removes properties in the template but not in the .mpk
  4. Preserves the BSON structure (IDs, nesting, cross-references)

This reduces CE0463 (“widget definition changed”) errors from widget version drift. See Widget Templates for details.

Version Gates in MDL Scripts

MDL scripts can use -- @version: directives to conditionally execute features based on the target Mendix version. This is used in the doctype integration tests to skip features incompatible with older versions:

-- Runs on all versions
CREATE ENTITY MyModule.Customer (Name: String(200));

-- @version: 11.0+
-- Only runs on Mendix 11.0 and later
CREATE VIEW ENTITY MyModule.ActiveCustomers (...) AS
  SELECT c.Name FROM MyModule.Customer AS c WHERE c.IsActive;

-- @version: 10.6..10.24
-- Only runs on Mendix 10.6 through 10.24
CREATE ENTITY MyModule.LegacyConfig (...);

-- @version: any
-- Resets to unconditional (runs on all versions)
CREATE ENTITY MyModule.Universal (...);

Directive formats:

  • -- @version: 11.0+ – minimum version (run on 11.0 and later)
  • -- @version: 10.6..10.24 – version range (inclusive)
  • -- @version: ..10.24 – maximum version only
  • -- @version: any – reset to unconditional

The directive applies to all lines until the next -- @version: directive.

MxBuild Compatibility

The mx validation tool must match the project’s Mendix version:

# Auto-download the correct MxBuild version
mxcli setup mxbuild -p app.mpr

# Check the project
~/.mxcli/mxbuild/*/modeler/mx check app.mpr

MxBuild is downloaded on demand and cached in ~/.mxcli/mxbuild/{version}/.

Platform Support

mxcli runs on:

PlatformArchitecture
Linuxamd64, arm64
macOSamd64, arm64 (Apple Silicon)
Windowsamd64, arm64

No CGO or C compiler is required – the binary is fully statically linked using pure Go dependencies.