You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/en/docs/deployment/mendix-cloud-deploy/backups/restore-backup-locally.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -22,7 +22,7 @@ This how-to explains how to do the following:
22
22
Before starting this how-to, make sure you have completed the following prerequisites:
23
23
24
24
*[Download a backup](/developerportal/operate/download-backup/) that you want to restore locally.
25
-
* Install PostgreSQL version 12 or above (as you need pgAdmin version 4.12 or above) on your local machine by downloading and running the [PostgreSQL Installer](https://www.postgresql.org/download/windows/). When installing, use the program defaults and choose a password.
25
+
* Install PostgreSQL version 17 or above (you need pgAdmin version [8.14](https://www.postgresql.org/ftp/pgadmin/pgadmin4/v8.14/) or above) on your local machine by downloading and running the [PostgreSQL Installer](https://www.postgresql.org/download/windows/). When installing, use the program defaults and choose a password.
26
26
27
27
{{% alert color="info" %}}You will need this password later to allow your Mendix app to access the restored data.{{% /alert %}}
Copy file name to clipboardExpand all lines: content/en/docs/deployment/mendix-cloud-deploy/backups/restore-backup.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -162,7 +162,7 @@ This folder contains the *db.backup* file, which is a PostgreSQL dump file creat
162
162
{{% alert color="warning" %}}
163
163
If the dump does not use the custom format, then the restore will fail.
164
164
165
-
The dump must be created with `pg_dump` version 1.15 or below, which is currently bundled with PostgreSQL 13, 14, and 15. If it is created with a later version, then the upload will fail.
165
+
The dump must be created with `pg_dump` version 1.16 or below, which is currently bundled with PostgreSQL 17 and below. If it is created with a version above 1.16, the upload will fail.
166
166
167
167
You can find the exact version of PostgreSQL each environment of your application is using on the [General](/developerportal/deploy/environments-details/#general-tab) tab of each environment's **Environment Details** page.
Copy file name to clipboardExpand all lines: content/en/docs/howto/data-models/migrating-your-mendix-database.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -110,7 +110,7 @@ If you are using [pg_dump](https://www.postgresql.org/docs/current/app-pgdump.ht
110
110
For more information about pg_dump methods, see [SQL Dump](https://www.postgresql.org/docs/current/backup-dump.html).
111
111
112
112
{{% alert color="warning" %}}
113
-
As described in [Restoring a Backup](/developerportal/operate/restore-backup/#db-folder), the backup must be created using pg_dump version 1.14 or below, which is currently bundled with PostgreSQL 12, 13, 14, and 15. If it is created with a later version, then it will not be possible to upload the file to Mendix Cloud.
113
+
As described in [Restoring a Backup](/developerportal/operate/restore-backup/#db-folder), the backup must be created using pg_dump version 1.16 or below, which is currently bundled with PostgreSQL 17 and below. If it is created with a version above 1.16, it will not be possible to upload the file to Mendix Cloud.
Copy file name to clipboardExpand all lines: content/en/docs/marketplace/platform-supported-content/modules/oidc.md
+29-12Lines changed: 29 additions & 12 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -56,7 +56,7 @@ The OIDC SSO module supports the following features:
56
56
* Supports SSO and API-security.
57
57
* Can be used with OIDC/OAuth-compatible IdPs, such as AWS Cognito, Google, Salesforce, Apple, Okta, Ping, Microsoft's Entra ID (formerly known as Azure AD), and SAP Cloud Identity Services. Moreover, the module also works with the [OIDC Provider](https://marketplace.mendix.com/link/component/244687) module.
58
58
* Comes with helper microflows (DELETE, GET, PATCH, POST, and PUT) which call an API with a valid token (and automate the token refresh process).
59
-
*Easy configuration, by leveraging the so-called well-known discovery endpoint at your IdP. PKCE will be used automatically if the IdP supports it.
59
+
*PKCE is enabled by default for all the IdPs. You can disable it if required.
60
60
* Configuration can be controlled through constants set during your deployment (version 2.3.0 and above).
61
61
* Supports multiple OIDC IdPs by allowing configuration of user provisioning and access token parsing microflows per IdP.
62
62
* Supports Authentication Context Class Reference (ACR) to allow your app to suggest the desired method or level of authentication for user login to the Identity Provider (IdP) (version 2.3.0 and above).
@@ -70,7 +70,6 @@ The OIDC SSO module supports the following features:
70
70
2. Configuration Experience Features:
71
71
72
72
* Easy configuration, by leveraging the so-called well-known discovery endpoint at your IdP. The IdP's well-known endpoint also indicates which user claims the IdP may provide during single sign-on. The module reads this information, so the developer does not need to configure it. The available claims can be used in custom provisioning microflow, as described in the section [Custom User Provisioning Using a Microflow.](#custom-provisioning-mf)
73
-
* For example, PKCE will be used automatically if it is detected.
74
73
* Configuration can be controlled through constants set during your deployment (version 2.3.0 and above).
75
74
* Comes with default user provisioning microflow that works with Entra ID; there you may need to build a custom user provisioning flow.
76
75
* User provisioning microflows can be used from any other modules in your app. They do not need to be exclusively a part of the OIDC module.
@@ -86,7 +85,7 @@ For readers with more knowledge of the OAuth and OIDC protocol:
86
85
* Helps you build an OAuth client that initiates the Authorization Code grant flow to sign the end-user in via the browser.
87
86
* Uses the `nonce` parameter to defend against replay attacks.
88
87
* Validates ID-token signatures.
89
-
* Uses the Proof Key for Code Exchange (PKCE – pronounced “pixie") security enhancement as per RFC 7636. If your IdP’s well-known endpoint indicates *S256* as value for `code_challenge_methods_supported`, the OIDC Module will automatically apply the PKCE feature. PKCE can be seen as a security add-on to the original OAuth protocol. It is generally recommended to use this feature to be better protected against hackers who try to get access to your app. Customers using EntraID may need to update their well-known endpoint, as EntraID does not automatically publish the `code_challenge_methods_supported` parameter. As a result, PKCE will not be enabled automatically.
88
+
* Uses the Proof Key for Code Exchange (PKCE – pronounced “pixie") security enhancement as per RFC 7636. PKCE can be seen as a security add-on to the original OAuth protocol. It is generally recommended to use this feature for better protection against hackers who try to get access to your app. PKCE is enabled by default.
90
89
* When authenticating APIs, it validates access tokens in one of two ways:
91
90
92
91
* If the IdP supports token introspection, exposing the `/introspect` endpoint of the IdP, the OIDC module will introspect the access token to see if it is valid.
@@ -119,7 +118,6 @@ The OIDC SSO module also has the following limitations:
119
118
* If you use both the [SAML](/appstore/modules/saml/) module and the OIDC SSO module in the same app, each end-user can only authenticate using one IdP.
120
119
* If OIDC SSO is used for API security, it does not validate the value of the `aud` claim, as suggested by [RFC 9068](https://datatracker.ietf.org/doc/html/rfc9068#section-4). Customers should prevent cross-JWT confusion by using unique scope values.
121
120
* The Admin screens have separate tabs for configuring clients that use the Client Credential grant for API security and for situations where your app is used for both SSO and API security. If the first version of your app uses only OIDC SSO for API security and you want to introduce SSO in a later version, the IdP configuration needs to be re-entered on the other tab.
122
-
* Customers using EntraID may need to update their well-known endpoint, as EntraID does not automatically publish the `code_challenge_methods_supported` parameter. As a result, PKCE will not be enabled automatically.
123
121
124
122
## Dependencies
125
123
@@ -205,6 +203,7 @@ This section provides an overview of updates for the OIDC SSO module across diff
205
203
| Mendix Version | OIDC SSO Module Version | Important Migration Changes | Additional Information |
206
204
| --- | --- | --- | --- |
207
205
| 10.24.0 and above | 4.5.0 | - |`Anonymous` module role has beed removed. |
206
+
|||| Supporting multi-domain using constant. See [Configuring Multi-Domain](#multi-domain) for more information. |
208
207
| 10.24.0 and above | 4.4.0 | Move the `Encryption.Encryptionkey` value to the `OIDC.Encryptionkey` constant. | Dependencies on the Encryption and Nanoflow Commons modules have been removed. <br> **Issued Tokens** tab has been removed from the OIDC Client Configuration page. |
209
208
| 10.24.0 and above | 4.3.0 | - | Supporting multi-domain and sub-path. |
210
209
| 10.24.0 and above | 4.2.1 | In version 4.2.1, automatic migration of the UserCommons has been removed. | Since migration steps were removed in 4.2.1, you must upgrade to OIDC SSO version 4.2.0 first to prevent data loss. This applies to the UserCommons, if you are migrating from any version below 3.0.0, always upgrade to 4.2.0 first, then move to the latest v4.2.1. |
@@ -324,7 +323,9 @@ In this case, the OIDC client is the app you are making.
324
323
325
324
**Client assertion** is automatically set to *Client ID and Secret*.
326
325
327
-
4. Choose the **Client authentication method** — make sure that you select a method that is supported by your IdP. You can normally check this via the `token_endpoint_auth_methods_supported` setting on the IdP’s well-known endpoint. Also, ensure that the correct client authentication method is configured at the IdP when you register the client.
326
+
4. PKCE is enabled by default. To disable it, select **No**.
327
+
328
+
5. Choose the **Client authentication method** — make sure that you select a method that is supported by your IdP. You can normally check this via the `token_endpoint_auth_methods_supported` setting on the IdP’s well-known endpoint. Also, ensure that the correct client authentication method is configured at the IdP when you register the client.
328
329
329
330
The options are:
330
331
*`client_secret_basic`: Your app will use the HTTP Basic Authentication scheme to authenticate itself at your IdP. This is the default. The `client_secret_basic` makes use of the `client-id` and `client-secret`.
@@ -344,21 +345,21 @@ In this case, the OIDC client is the app you are making.
344
345
345
346
{{% alert color="info" %}}After a key renewal, some SSO requests may fail if your IdP does not immediately refresh its key cache. {{% /alert %}}
346
347
347
-
5. Add the **Client Secret** if you choose `client_secret_basic` or `client_secret_post` as client authentication method.
348
-
6. If you have the **Automatic Configuration URL** (also known as the *well-known endpoint*), enter it and click **Import Configuration** to automatically fill the other endpoints.
348
+
6. Add the **Client Secret** if you choose `client_secret_basic` or `client_secret_post` as client authentication method.
349
+
7. If you have the **Automatic Configuration URL** (also known as the *well-known endpoint*), enter it and click **Import Configuration** to automatically fill the other endpoints.
349
350
350
351
{{% alert color="info" %}} If the endpoint URL does not already end with `/.well-known/openid-configuration`, include it at the end. According to the specifications, the URL you need to enter typically ends with `/.well-known/openid-configuration`. {{% /alert %}}
351
352
352
353
* If you do not have an automatic configuration URL, you can fill in the other endpoints manually.
353
-
7. Click **Save**
354
+
8. Click **Save**
354
355
355
356
{{% alert color="info" %}} Your client configuration is not yet complete, but you have to save at this point to allow you to set up the rest of the information. {{% /alert %}}
356
357
357
-
8. Select your client configuration and click **Edit**.
358
-
9. Select the scopes expected by your OIDC IdP. The standard scopes are `openid`, `profile`, and `email`, but some IdPs may use different ones.
358
+
9. Select your client configuration and click **Edit**.
359
+
10. Select the scopes expected by your OIDC IdP. The standard scopes are `openid`, `profile`, and `email`, but some IdPs may use different ones.
359
360
* If you need refresh tokens for your end-users, you also need the `offline_access` scope.
360
361
* Add other scopes as needed.
361
-
10. Select your user parsing. By default, this module will use standard OpenID claims to provision end-users in your app. Also included is a flow that uses the standard UserInfo endpoint in OIDC, which is useful in the case that your IdP uses thin tokens. You can set up user provisioning by setting the following standard flows:
362
+
11. Select your user parsing. By default, this module will use standard OpenID claims to provision end-users in your app. Also included is a flow that uses the standard UserInfo endpoint in OIDC, which is useful in the case that your IdP uses thin tokens. You can set up user provisioning by setting the following standard flows:
362
363
363
364
| Default Microflow | Use |
364
365
| --- | --- |
@@ -372,7 +373,7 @@ In this case, the OIDC client is the app you are making.
372
373
373
374
{{% alert color="info" %}}Starting from UserCommons version 2.0.0, If the IdP does not specify the timezone and language for newly created users, these settings will be set according to default **App Settings** of your app. If no default is available, they remain unset. Existing users retain their previously set values.{{% /alert %}}
374
375
375
-
11. Optionally, you can select the `CustomAccessTokenParsing` microflow if you want to use additional information from the OIDC IdP. This can be used, for example, to assign end-user roles based on information from the IdP – see [Dynamic Assignment of Userroles (Access Token Parsing)](#access-token-parsing) for more information.
376
+
12. Optionally, you can select the `CustomAccessTokenParsing` microflow if you want to use additional information from the OIDC IdP. This can be used, for example, to assign end-user roles based on information from the IdP – see [Dynamic Assignment of Userroles (Access Token Parsing)](#access-token-parsing) for more information.
376
377
377
378
{{% alert color="info" %}}Starting from version 4.0.0 of the OIDC SSO, the default user roles in the UserProvisioning will be assigned alongside the roles parsed from the access token.{{% /alert %}}
378
379
@@ -503,6 +504,8 @@ when you set **ClientAuthenticationMethod** as `private_key_jwt`, you do not nee
When the `IsClientGrantOnly` constant is set to *true*, the OIDC SSO module considers the configuration as Client Credential grant configuration.
522
525
{{% /alert %}}
523
526
527
+
## Configuring Multi-Domain {#multi-domain}
528
+
529
+
The OIDC SSO module supports multi-domain, enabling flexible deployment in multi-app or shared domain environments. When you enable multi-domain support, the module resolves the application URL from request headers rather than relying solely on the ApplicationRootUrl, allowing users to access the application through their custom domains.
530
+
531
+
To enable multi-domain support, set the `EnableMultiDomainSupport` constant to *True* in the [Acceptance Environment Details](/developerportal/deploy/environments-details/#constants) for Mendix Cloud. By default, this constant is set to *False*.
532
+
533
+
After enabling multi-domain support, configure the `AllowedHosts` constant to specify which custom domains are permitted. If you enable multi-domain support but leave `AllowedHosts` empty, the module redirects all users to the ApplicationRootUrl.
534
+
535
+
The `AllowedHosts` constant accepts a comma-separated or space-separated list of hostnames in the following formats:
536
+
537
+
* Exact match – `example.com` allows only that specific domain
538
+
* Subdomain wildcard – `.example.com` allows any subdomain of `example.com`
539
+
* Full wildcard – `*` allows any domain
540
+
524
541
## User Provisioning (End-User Onboarding)
525
542
526
543
Initially, your app will not have any end-users. You can onboard end-users into your app using one of the following mechanisms:
Copy file name to clipboardExpand all lines: content/en/docs/releasenotes/deployment/mendix-cloud/2026.md
+10Lines changed: 10 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,6 +7,16 @@ weight: 1
7
7
---
8
8
## June 2026
9
9
10
+
### June 9, 2026
11
+
12
+
#### Improvements
13
+
14
+
* Mendix Cloud database backups are now created with `pg_dump` version `1.16`. This version has been included with PostgreSQL since September 2024 as part of PostgreSQL 17. As a result, backups created in Mendix Cloud can only be restored with `pg_restore` version `1.16` or above (PostgreSQL 17 or above).
15
+
16
+
If you attempt to restore a backup using an earlier version, you will receive the following error: `pg_restore: [archiver] unsupported version (1.16) in the file header`. To resolve this issue, upgrade your software to a version that includes newer versions of `pg_dump` and `pg_restore`.
17
+
18
+
Backups created in Mendix Cloud before June 9, 2026, continue to work as expected after you upgrade your local PostgreSQL binaries to newer versions.
0 commit comments