diff --git a/content/en/docs/deployment/pad/docker-pad.md b/content/en/docs/deployment/pad/docker-pad.md index e4e8181d8d4..4856bb72f28 100644 --- a/content/en/docs/deployment/pad/docker-pad.md +++ b/content/en/docs/deployment/pad/docker-pad.md @@ -93,6 +93,7 @@ To build a Docker image from the Portable Package, perform the following steps: # Set the start script to the Mendix Runtime execute command CMD ["./bin/start", "etc/Default"] ``` + {{% alert color="info" %}} The Docker image example shows how to use OpenJDK binaries built by Eclipse Temurin. However, you may select any Java image that suits your needs, including [Hardened Images](https://docs.redhat.com/en/documentation/red_hat_hardened_images/1-latest), which provide a minimal, secure foundation for containerized workloads. {{% /alert %}} @@ -101,8 +102,8 @@ The Docker image example shows how to use OpenJDK binaries built by Eclipse Temu 3. Build the Docker image by using the following command: `docker build -t : -f build/docker/Dockerfile`, where: - * `` and `` - Indicate your required image name and version tag (for example, `my-mendix-app:1.0.0`). - * `-f build/docker/Dockerfile` - Specifies the path to your Dockerfile. +* `` and `` - Indicate your required image name and version tag (for example, `my-mendix-app:1.0.0`). +* `-f build/docker/Dockerfile` - Specifies the path to your Dockerfile. ### Optional: Pushing the Docker Image diff --git a/content/en/docs/deployment/private-cloud/private-cloud-api-mcp.md b/content/en/docs/deployment/private-cloud/private-cloud-api-mcp.md index 94957fc54b8..e644d88b84c 100644 --- a/content/en/docs/deployment/private-cloud/private-cloud-api-mcp.md +++ b/content/en/docs/deployment/private-cloud/private-cloud-api-mcp.md @@ -91,7 +91,7 @@ To add the Mendix on Kubernetes MCP server in VS Code, perform the following ste } ``` -2. Replace the placeholder values with your credentials as described in the [Claude Code](#claude-code) section above. +1. Replace the placeholder values with your credentials as described in the [Claude Code](#claude-code) section above. ## Available Capabilities {#capabilities} @@ -120,7 +120,6 @@ Once connected, your AI assistant has access to the following capabilities. | Get app manifest | `mx:deployment:write` and `mx:app:metadata:read` | | Get job | `mx:deployment:read` and `mx:deployment:write` | - ### Deployments and Packages | Action | Example Prompt | diff --git a/content/en/docs/marketplace/industry/xcelerator/platform-supported/teamcenter-connector/2606-configuration/getting-started.md b/content/en/docs/marketplace/industry/xcelerator/platform-supported/teamcenter-connector/2606-configuration/getting-started.md index 6aec97b7dc5..cbbdb18e517 100644 --- a/content/en/docs/marketplace/industry/xcelerator/platform-supported/teamcenter-connector/2606-configuration/getting-started.md +++ b/content/en/docs/marketplace/industry/xcelerator/platform-supported/teamcenter-connector/2606-configuration/getting-started.md @@ -105,7 +105,7 @@ The following steps walk you through creating and building a Teamcenter service * **Read** — Should this property be retrieved from Teamcenter? * **Write** — Should this property be sent to Teamcenter when creating or updating? Write checkboxes are only available in integrations where you can write data to Teamcenter. - 3. From the **Property Mapping** window, select the properties you need for your integration. + 1. From the **Property Mapping** window, select the properties you need for your integration. {{< figure src="/attachments/appstore/industry-components/teamcenter/teamcenter2606/property-mapping.png" alt="Property Mapping window" max-width=80% >}} diff --git a/content/en/docs/marketplace/platform-supported-content/modules/external-database-connector.md b/content/en/docs/marketplace/platform-supported-content/modules/external-database-connector.md index ed66c7a6766..0ce1132b291 100644 --- a/content/en/docs/marketplace/platform-supported-content/modules/external-database-connector.md +++ b/content/en/docs/marketplace/platform-supported-content/modules/external-database-connector.md @@ -291,7 +291,6 @@ If you are using Studio Pro 11.12 or earlier, follow the steps below: * `getFunctionMetaDataQuery` 4. Use the provided example, `MxDb2SchemaInfoProvider` for IBM Db2, for a better understanding of how to customize the schema information. - ### Running Queries and Handling Query Responses Execute queries as you would with supported databases, and retrieve responses in the associated entity. Refer to the documentation of your specific JDBC library for detailed syntax and execution options. diff --git a/content/en/docs/marketplace/platform-supported-content/modules/snowflake/_index.md b/content/en/docs/marketplace/platform-supported-content/modules/snowflake/_index.md index d88ee4a5307..1d523f97211 100644 --- a/content/en/docs/marketplace/platform-supported-content/modules/snowflake/_index.md +++ b/content/en/docs/marketplace/platform-supported-content/modules/snowflake/_index.md @@ -78,5 +78,3 @@ The [Mendix Data Loader](https://app.snowflake.com/marketplace/listing/GZTDZHHIE For information about using Snowflake's role-based access control in a Mendix application, see [Role-based Access Control](/appstore/modules/snowflake/snowflake-rbac/). ## Documents in This Category - - diff --git a/content/en/docs/marketplace/platform-supported-content/modules/snowflake/mendix-data-loader.md b/content/en/docs/marketplace/platform-supported-content/modules/snowflake/mendix-data-loader.md index 11449485fb1..791877e3521 100755 --- a/content/en/docs/marketplace/platform-supported-content/modules/snowflake/mendix-data-loader.md +++ b/content/en/docs/marketplace/platform-supported-content/modules/snowflake/mendix-data-loader.md @@ -76,7 +76,7 @@ If you want to use specific resources, you should instead expose a new endpoint 9. Click **Back** to return to the **Details** page. 10. Click the **Ingestion Configuration** tab to set up your ingestion destination table. 11. Click **Create** to start setting up the Ingestion Configuration. - * **Target Database** – Name of the database for data ingestion + ***Target Database** – Name of the database for data ingestion * **Target Schema** – Target schema where all data will be ingested 12. Click **Save**. 13. Click the **Data Ingestion** tab, where you can start your data ingestion or set up a schedule. diff --git a/content/en/docs/refguide/mobile/distributing-mobile-apps/pwa-wrapper/pwa-wrapper-deep-linking.md b/content/en/docs/refguide/mobile/distributing-mobile-apps/pwa-wrapper/pwa-wrapper-deep-linking.md index 1b144ca7bbf..18dfe941752 100644 --- a/content/en/docs/refguide/mobile/distributing-mobile-apps/pwa-wrapper/pwa-wrapper-deep-linking.md +++ b/content/en/docs/refguide/mobile/distributing-mobile-apps/pwa-wrapper/pwa-wrapper-deep-linking.md @@ -45,8 +45,8 @@ Each deep link entry requires the following: * **scheme** (required) – For example `myapp`, `pwa`, or `https`/`http` for universal/app links * **host** (required) – Domain or authority to match, for example `example.com` * **path** fields (optional, pick one at most): - * **path** – Exact path to match (for example `/profile`) - * **pathStartWith** – Path prefix to match (for example `/jump` catches `/jump/profile`) + * **path** – Exact path to match (for example `/profile`) + * **pathStartWith** – Path prefix to match (for example `/jump` catches `/jump/profile`) * **linkFeature** – Free-text label (metadata only, affects HarmonyOS builds) * **platform** – `Android`, `iOS`, `HarmonyOS`, `all`, or unset (unset or `all` applies to every platform) diff --git a/content/en/docs/refguide/mobile/using-mobile-capabilities/push-notifications/notif-pwa-wrapper.md b/content/en/docs/refguide/mobile/using-mobile-capabilities/push-notifications/notif-pwa-wrapper.md index 69f44a5df2d..ae8492cc658 100644 --- a/content/en/docs/refguide/mobile/using-mobile-capabilities/push-notifications/notif-pwa-wrapper.md +++ b/content/en/docs/refguide/mobile/using-mobile-capabilities/push-notifications/notif-pwa-wrapper.md @@ -47,6 +47,7 @@ This configures the native layer to receive push notifications from Firebase Clo {{% alert color="warning" %}} Push notifications only work on physical devices. Emulators and simulators do not have the necessary Firebase Cloud Messaging infrastructure to receive push notifications. Always test push notifications on real Android and iOS devices. {{% /alert %}} + ## Installing Push Notifications Connector Add the Push Notifications Connector module to your app: @@ -95,6 +96,7 @@ Add three **Call JavaScript Action** activities to retrieve device details: 1. Add a **Create Object** activity to create a new `PushNotifications.DeviceRegistration` object. 2. Assign the following attributes: * **DeviceType**: Use a decision based on the operating system: + ``` if $OperatingSystem = getKey(PushNotifications.DeviceSystemType.Android) then PushNotifications.DeviceType.Android @@ -105,6 +107,7 @@ Add three **Call JavaScript Action** activities to retrieve device details: else empty ``` + * **RegistrationID**: `$PushToken` * **DeviceId**: `$DeviceInfo/UniqueId` @@ -140,7 +143,7 @@ Download and install the [Events](https://marketplace.mendix.com/link/component/ Create a new JavaScript action named `ListenToAppLifecycle` in your app with the following configuration: * Add one parameter of type **Nanoflow**: - * `onResume` + * `onResume` Use the following as the action's implementation: diff --git a/content/en/docs/refguide/modeling/application-logic/microflows-and-nanoflows/activities/email-activities/_index.md b/content/en/docs/refguide/modeling/application-logic/microflows-and-nanoflows/activities/email-activities/_index.md index 78edc0c5e6e..8af418080f1 100644 --- a/content/en/docs/refguide/modeling/application-logic/microflows-and-nanoflows/activities/email-activities/_index.md +++ b/content/en/docs/refguide/modeling/application-logic/microflows-and-nanoflows/activities/email-activities/_index.md @@ -14,4 +14,4 @@ The activities described in this section are the **Email Activities** section of The following are the Email activities you can use in your microflow: -- [Send Email](/refguide/send-email-action/) +* [Send Email](/refguide/send-email-action/) diff --git a/content/en/docs/refguide/modeling/application-logic/microflows-and-nanoflows/activities/email-activities/send-email-action.md b/content/en/docs/refguide/modeling/application-logic/microflows-and-nanoflows/activities/email-activities/send-email-action.md index 648023bac7a..3465d907219 100644 --- a/content/en/docs/refguide/modeling/application-logic/microflows-and-nanoflows/activities/email-activities/send-email-action.md +++ b/content/en/docs/refguide/modeling/application-logic/microflows-and-nanoflows/activities/email-activities/send-email-action.md @@ -52,6 +52,7 @@ The **Security method** section determines how the connection authenticates to t {{% alert color="warning" %}} Basic authentication (username and password) is deprecated or disabled by default on several major email providers, including Google Workspace and Microsoft 365, unless the tenant administrator has explicitly re-enabled it. To send emails through these providers, you can: + * Re-enable SMTP basic authentication for the account (where your administrator's policy allows it), or * Use a provider that supports basic SMTP authentication. {{% /alert %}} @@ -167,10 +168,11 @@ Body: "Hi {1}, your order ships on {2}." {{% alert color="info" %}} Consider the following about templates: + * The subject, the plain-text body, and the HTML body each have their own template. For a given field, use either the plain value or its template consistently. -* Keep placeholder numbering contiguous (`{1}`, `{2}`, …), and make sure every placeholder has a corresponding parameter expression. +* Keep placeholder numbering contiguous (`{1}`, `{2}`, …), and make sure every placeholder has a corresponding parameter expression. * Only reference variables that exist in the microflow's scope at the activity's position. If the data is not yet available, retrieve it earlier in the flow. -* The HTML and plain-text bodies are independent. Populate only the one (or ones) you need. +* The HTML and plain-text bodies are independent. Populate only the one (or ones) you need. {{% /alert %}} #### Subject @@ -252,16 +254,16 @@ Review the following before you deploy to a production app. ### Authentication and Credentials -- This version of the activity supports [basic authentication](#security-method) (username and password) only. Confirm your email provider permits SMTP basic authentication (**Google Workspace** and **Microsoft 365** disable it by default) or use a provider that does. -- Do not hard-code credentials in the microflow model. Supply them through per-environment constants so secrets (the password in particular) are not stored in the app model or version control. +* This version of the activity supports [basic authentication](#security-method) (username and password) only. Confirm your email provider permits SMTP basic authentication (**Google Workspace** and **Microsoft 365** disable it by default) or use a provider that does. +* Do not hard-code credentials in the microflow model. Supply them through per-environment constants so secrets (the password in particular) are not stored in the app model or version control. ### Email Deliverability (SPF, DKIM, and DMARC) The sending domain must be configured correctly at the DNS level for your emails to be accepted and not marked as spam. -- **SPF** – authorizes which servers may send emails for your domain -- **DKIM** – cryptographically signs your messages so recipients can verify they were not altered -- **DMARC** – tells receiving servers how to handle messages that fail SPF or DKIM checks +* **SPF** – authorizes which servers may send emails for your domain +* **DKIM** – cryptographically signs your messages so recipients can verify they were not altered +* **DMARC** – tells receiving servers how to handle messages that fail SPF or DKIM checks If these records are missing or misconfigured, receiving servers may reject your messages or route them to spam, even when the activity reports that the email was sent successfully. Set these up with your email provider and domain administrator before going live. @@ -271,7 +273,7 @@ When deploying to Mendix Cloud, refer to [Sending Email](/developerportal/deploy ## Read More -- [Sending Email](/developerportal/deploy/sending-email/) – external email providers and SMTP configuration for Mendix Cloud -- [Error Handling in Microflows](/refguide/error-handling-in-microflows/) -- [Constants](/refguide/constants/) -- [Microflow Expressions](/refguide/expressions/) +* [Sending Email](/developerportal/deploy/sending-email/) – external email providers and SMTP configuration for Mendix Cloud +* [Error Handling in Microflows](/refguide/error-handling-in-microflows/) +* [Constants](/refguide/constants/) +* [Microflow Expressions](/refguide/expressions/) diff --git a/content/en/docs/refguide/modeling/application-logic/workflows/bpmn-in-mendix/bpmn-coverage.md b/content/en/docs/refguide/modeling/application-logic/workflows/bpmn-in-mendix/bpmn-coverage.md index 6c7bca251df..eebbd7dc3b6 100644 --- a/content/en/docs/refguide/modeling/application-logic/workflows/bpmn-in-mendix/bpmn-coverage.md +++ b/content/en/docs/refguide/modeling/application-logic/workflows/bpmn-in-mendix/bpmn-coverage.md @@ -113,7 +113,6 @@ Mendix supports a broad range of BPMN event types. Some are available directly a | Intermediate Boundary (Interrupting) | {{< icon name="controls-stop-filled" color="green" >}} Platform Native | Use an [Interrupting Notification Event](/refguide/notification/) to catch the event, and use a microflow to handle the error logic and send a notification using a [Notify Workflow](/refguide/notify-workflow/) activity when an error occurs. | | End | {{< icon name="controls-stop-filled" color="green" >}} Platform Native | Use a [Call Microflow](/refguide/call-microflow/) activity as the throw event. Within the microflow, include a [Notify Workflow](/refguide/notify-workflow/) activity to throw the error before the process completes. | - ### Signal Events {#signal-events} | Variant | Support Level | How | @@ -138,7 +137,6 @@ Mendix supports a broad range of BPMN event types. Some are available directly a | Intermediate Boundary (Interrupting) | {{< icon name="controls-stop-filled" color="green" >}} Platform Native | Use an [Interrupting Notification Event](/refguide/notification/) to catch the event, and use a microflow to evaluate or create the condition and send a notification using a [Notify Workflow](/refguide/notify-workflow/) activity when the condition is met. | | Intermediate Boundary (Non-Interrupting) | {{< icon name="controls-stop-filled" color="green" >}} Platform Native | Use a [Non-Interrupting Notification Event](/refguide/notification/) to catch the event, and use a microflow to evaluate or create the condition and send a notification using a [Notify Workflow](/refguide/notify-workflow/) activity when the condition is met. | - ### Escalation Events {#escalation-events} | Variant | Support Level | How | @@ -150,7 +148,6 @@ Mendix supports a broad range of BPMN event types. Some are available directly a | Intermediate Throw | {{< icon name="controls-stop-filled" color="green" >}} Platform Native | Use a [Call Microflow](/refguide/call-microflow/) activity as the throw event. Within the microflow, include a [Notify Workflow](/refguide/notify-workflow/) activity to throw the escalation and continue the flow. | | End | {{< icon name="controls-stop-filled" color="green" >}} Platform Native | Use a [Call Microflow](/refguide/call-microflow/) activity as the throw event. Within the microflow, include a [Notify Workflow](/refguide/notify-workflow/) activity to throw the escalation before the process completes. | - ### Compensation Events {#compensation-events} | Variant | Support Level | How | @@ -160,7 +157,6 @@ Mendix supports a broad range of BPMN event types. Some are available directly a | Intermediate Throw | {{< icon name="controls-stop-filled" color="green" >}} Platform Native | Use a [Call Microflow](/refguide/call-microflow/) activity as the throw event. Within the microflow, include a [Notify Workflow](/refguide/notify-workflow/) activity to throw the compensation and redirect the flow to the compensating activity. | | End | {{< icon name="controls-stop-filled" color="green" >}} Platform Native | Use a [Call Microflow](/refguide/call-microflow/) activity as the throw event. Within the microflow, include a [Notify Workflow](/refguide/notify-workflow/) activity to throw the compensation before the process completes. | - ### Cancel Events {#cancel-events} | Variant | Support Level | How | diff --git a/content/en/docs/refguide/modeling/application-logic/workflows/event-sub-processes.md b/content/en/docs/refguide/modeling/application-logic/workflows/event-sub-processes.md index 3bc43afb834..47afc262bfd 100644 --- a/content/en/docs/refguide/modeling/application-logic/workflows/event-sub-processes.md +++ b/content/en/docs/refguide/modeling/application-logic/workflows/event-sub-processes.md @@ -88,6 +88,7 @@ To add an **Event sub-process** to a workflow, follow these steps: {{< figure src="/attachments/refguide/modeling/application-logic/workflows/event-sub-processes/select-event-dialog.png" alt="Select Event Dialog" width="500" >}} 4. The sub-process flow is contained within a dashed rectangle. The border around the sub-process start event indicates its interrupting behavior: a dashed border indicates a non-interrupting sub-process, and a solid border indicates an interrupting sub-process. + * The flow can contain the same types of activities as the main process flow (for example, **User Task**, **Call Microflow**, **Decision**). * It must start with a **Start** event (triggered by a notification or a timer) and end with at least one **End** event. diff --git a/content/en/docs/refguide/modeling/integration/_index.md b/content/en/docs/refguide/modeling/integration/_index.md index 6cd240cbb57..8f33aea0570 100644 --- a/content/en/docs/refguide/modeling/integration/_index.md +++ b/content/en/docs/refguide/modeling/integration/_index.md @@ -35,7 +35,6 @@ The following services require you to download an external module from the Mendi * [External Database Connector](https://marketplace.mendix.com/link/component/219862) * [Business Event services](https://marketplace.mendix.com/link/component/202649) - ## Integrating RapidMiner Graph Studio In addition to the integration capabilities available in the Studio Pro, Mendix also supports integration with external systems through RapidMiner Graph Studio. The RapidMiner Graph Studio provides a scalable environment for connecting, managing, and analyzing graph-based data. For more information, see [Integrating Mendix with RapidMiner Graph Studio](/refguide/graph-studio/). diff --git a/content/en/docs/refguide/modeling/integration/change-data-capture/published-cdc-services.md b/content/en/docs/refguide/modeling/integration/change-data-capture/published-cdc-services.md index 31d10f23ceb..629ca63c05f 100644 --- a/content/en/docs/refguide/modeling/integration/change-data-capture/published-cdc-services.md +++ b/content/en/docs/refguide/modeling/integration/change-data-capture/published-cdc-services.md @@ -37,7 +37,6 @@ Use the toolbar to manage tracked entities: * {{% icon name="subtract-circle" %}} **Remove** – stop tracking a selected entity * {{% icon name="refresh" %}} **Accept changes** – lock in the current [Revision](#revisions) numbers after reviewing modifications - {{< figure src="/attachments/refguide/modeling/integration/change-data-capture/published-cdc-service.png" alt="Published CDC Service document showing the Entities to track table with columns for Exposed name, Modification, Revision, and Topic" >}} ### Entities @@ -60,7 +59,6 @@ The **Revision** column is the schema revision of the entity's event payload. Se The **Topic** column is the Kafka topic name for this entity, in the format `cdc....{space}`, where `{space}` is replaced at runtime by the Event Broker space name. See the [Bring Your Own Kafka (BYOK)](/refguide/change-data-capture/#byok-configuration) section of *Change Data Capture* for more information. - ## Attribute and Association Selection {#attributes} Expand an entity row to see each attribute and association with a checkbox. Uncheck an item to exclude it from the event payload. The **Exposed name** column allows you to rename individual attributes in the payload independently of their domain model names. diff --git a/content/en/docs/refguide/modeling/integration/odata-services/consumed-odata-services/consumed-odata-service.md b/content/en/docs/refguide/modeling/integration/odata-services/consumed-odata-services/consumed-odata-service.md index 5efbc08c17c..5b7ee2d2bbc 100644 --- a/content/en/docs/refguide/modeling/integration/odata-services/consumed-odata-services/consumed-odata-service.md +++ b/content/en/docs/refguide/modeling/integration/odata-services/consumed-odata-services/consumed-odata-service.md @@ -19,12 +19,12 @@ The **Consumed OData Service** document contains the following information: {{< figure src="/attachments/refguide/modeling/integration/odata-services/consumed-odata-service/consumed-odata-service-screen.png" alt="Connection Tab" width="650" class="no-border" >}} -- Service name and icon for the source application of the originating app -- Version number of the consumed service -- **View in Catalog** link to the **Service Details** where you can see the full details that are registered -- **Update/Switch** – You can update the consumed service contract to another version that has been detected in the [Catalog](/catalog/) for the same app and service. The button will show the following, depending on what has been returned for the consumed contract: - - **Update** – This button is displayed so you can update the contract that is currently consumed and shown in the **Consumed OData Service** document. You will be presented with the contract that is currently at the service endpoint. It is good practice that only minor, non-breaking changes are deployed to the same endpoint. - - **Switch** – This button is shown if other registered instances of the same service with the same name, from the same app are available in the Catalog, but are deployed to different endpoints (for example, to another environment or because of changes that would break existing apps consuming the previous version) +* Service name and icon for the source application of the originating app +* Version number of the consumed service +* **View in Catalog** link to the **Service Details** where you can see the full details that are registered +* **Update/Switch** – You can update the consumed service contract to another version that has been detected in the [Catalog](/catalog/) for the same app and service. The button will show the following, depending on what has been returned for the consumed contract: + * **Update** – This button is displayed so you can update the contract that is currently consumed and shown in the **Consumed OData Service** document. You will be presented with the contract that is currently at the service endpoint. It is good practice that only minor, non-breaking changes are deployed to the same endpoint. + * **Switch** – This button is shown if other registered instances of the same service with the same name, from the same app are available in the Catalog, but are deployed to different endpoints (for example, to another environment or because of changes that would break existing apps consuming the previous version) {{% alert color="info" %}} Studio Pro will always show the **Update** option for the **Consumed OData Service** where you can check if an update is available. In the Catalog search and **App** pane, when a different contract is detected at the service endpoint, it will be indicated with an update arrow for the service. For more information on updating and switching services, see the [Updating or Switching a Consumed OData service](#updating) section of this document. {{% /alert %}} @@ -34,22 +34,22 @@ The **Consumed OData Service** document contains the following information: You can use either constants or a microflow to set the service URL and proxy settings. -- Use constants when the service URL and proxy settings are always the same. -- Use a connection microflow when you need more control. For more information, see the [Connection and Headers Microflow](#connection-and-headers-microflow) section below. +* Use constants when the service URL and proxy settings are always the same. +* Use a connection microflow when you need more control. For more information, see the [Connection and Headers Microflow](#connection-and-headers-microflow) section below. #### Service URL {#service-url} The **Service URL** displays a constant that specifies the URL of the service endpoint. -- In the **Service URL** field, click **Select** to choose another [constant](/refguide/constants/). -- Choose a constant or click **New** to create a new one. Then, click **Show** to open the **Constant** dialog box and view the service URL or endpoint. +* In the **Service URL** field, click **Select** to choose another [constant](/refguide/constants/). +* Choose a constant or click **New** to create a new one. Then, click **Show** to open the **Constant** dialog box and view the service URL or endpoint. #### Connection microflow The **Connection microflow** displays the microflow that the app uses to retrieve the service URL, proxy settings and headers. See the [Connection and Headers Microflow](#connection-and-headers-microflow) section below for details about how to create such a microflow. -- Click **Select** to choose another microflow. -- Click **Show** to open the microflow. +* Click **Select** to choose another microflow. +* Click **Show** to open the microflow. ### Configuration for Studio Pro 11.12 and below @@ -65,9 +65,9 @@ For more information, see the [Connection and Headers Microflow](#connection-and **Proxy configuration** allows you to configure a proxy for the request. There are three options for configuration: -- **Follow app settings** – Use settings which are defined at the app level (default) -- **Override app settings** – Override the app-level settings for this action by specifying constants for the host, port, user name, and password for the proxy -- **No proxy** – Do not use a proxy for this service, even if there is a proxy configured at the app level +* **Follow app settings** – Use settings which are defined at the app level (default) +* **Override app settings** – Override the app-level settings for this action by specifying constants for the host, port, user name, and password for the proxy +* **No proxy** – Do not use a proxy for this service, even if there is a proxy configured at the app level {{< figure src="/attachments/refguide/modeling/integration/odata-services/consumed-odata-service/proxy.png" alt="Connection Tab" width="650" class="no-border" >}} @@ -81,8 +81,8 @@ In most cases, this setting can be ignored and the default **Follow app settings Select **Basic authentication** to use basic authentication. If selected, specify the following details: -- **User name** – an expression for the user name used for authentication -- **Password** – an expression for the password used for authentication +* **User name** – an expression for the user name used for authentication +* **Password** – an expression for the password used for authentication You can also use custom authentication. For more information, see the [HTTP Headers](#http-headers) section below. @@ -100,13 +100,13 @@ If the service uses a combination of a connection microflow, a headers microflow Choose a microflow that returns one of the following options: -- A **System.ConsumedODataConfiguration** object with associated **System.HttpHeader** objects (for **Configuration microflow**) -- A list of **System.HttpHeader** objects (for **Headers microflow**) +* A **System.ConsumedODataConfiguration** object with associated **System.HttpHeader** objects (for **Configuration microflow**) +* A list of **System.HttpHeader** objects (for **Headers microflow**) This microflow can take a parameter of type **System.HttpResponse**. It is called every time a request is made. Initially, the HTTP response parameter is empty. If the service responds with `401 Unauthorized`, the microflow is called with that HTTP response and another request is made with the new HTTP headers. {{% alert color="info" %}} -Custom authentication can be done with the microflow where the authentication value is retrieved (such as SSO). For more information on access and authentication, see [Using Custom HTTP Header Validation for Published Entities](/refguide/security-shared-datasets/#http-header-validation) in _Security and Shared Datasets_. +Custom authentication can be done with the microflow where the authentication value is retrieved (such as SSO). For more information on access and authentication, see [Using Custom HTTP Header Validation for Published Entities](/refguide/security-shared-datasets/#http-header-validation) in *Security and Shared Datasets*. {{% /alert %}} ### Advanced @@ -135,13 +135,13 @@ Note for developers of Java actions: the message returned by the error handling The Mendix SSO module is deprecated as of May 1, 2026. For new implementations, it is recommended to configure custom authentication using [OIDC SSO](/appstore/modules/oidc/), [SAML](/appstore/modules/saml/), or [LDAP](/appstore/modules/ldap/) modules. {{% /alert %}} -Publishers can set up [custom authentication](/refguide/published-odata-services/#authentication-microflow) using [Mendix SSO](/appstore/modules/mendix-sso/) module. For more information, see the [Mendix SSO](/refguide/published-odata-services/#authentication-mendix-sso) section of _Published OData Services_. +Publishers can set up [custom authentication](/refguide/published-odata-services/#authentication-microflow) using [Mendix SSO](/appstore/modules/mendix-sso/) module. For more information, see the [Mendix SSO](/refguide/published-odata-services/#authentication-mendix-sso) section of *Published OData Services*. Consumers of an OData service that is set up with Mendix SSO authentication can use the **CreateAccessTokenAuthorizationHeaderList**. -To learn more about how to publish an OData service with authentication (Mendix SSO, or other methods), see the [Authentication Methods](/refguide/published-odata-services/#authentication-methods) section of _Published OData Services_. +To learn more about how to publish an OData service with authentication (Mendix SSO, or other methods), see the [Authentication Methods](/refguide/published-odata-services/#authentication-methods) section of *Published OData Services*. -To learn more about using external entities with security enabled (in production environments), see the [Authentication](/refguide/external-entities/#authentication) section of _External Entities_. +To learn more about using external entities with security enabled (in production environments), see the [Authentication](/refguide/external-entities/#authentication) section of *External Entities*. ### Metadata @@ -153,9 +153,9 @@ To open the **Metadata Editor**, click **Update**. In the editor, you can specif The following settings are available: -- **Import from** – select **URL** or **File** for the location of the metadata - - **URL** – specify the URL for the metadata - - **File** – click **Browse** to select a metadata file +* **Import from** – select **URL** or **File** for the location of the metadata + * **URL** – specify the URL for the metadata + * **File** – click **Browse** to select a metadata file You can use the URL of a file that contains the metadata, such as `https://services.odata.org/V4/Northwind/Northwind.svc/$metadata`. You can also click [Share Data Source](/catalog/manage/search/#service-details) in the details of a data source in the [Catalog](https://catalog.mendix.com/) and paste that value. @@ -173,14 +173,14 @@ Click the **Properties** tab for the consumed OData service which displays the p {{< figure src="/attachments/refguide/modeling/integration/odata-services/consumed-odata-service/properties-tab.png" width="300" class="no-border" >}} -- **Entities** – the URL of the metadata defining the entities and associated datasets -- **Documentation** – an additional description about this service for the current app -- **Service name** – the name of the published OData service that is consumed -- **Service version** – the version of the service that is consumed -- **Service ID** – the unique identifier of the service in the Catalog -- **Application ID** – the unique identifier of the application that the service was published from in the Catalog -- **Metadata** – the contents of the metadata file defining the service -- **OData version** – the OData version (can be v3 or v4) +* **Entities** – the URL of the metadata defining the entities and associated datasets +* **Documentation** – an additional description about this service for the current app +* **Service name** – the name of the published OData service that is consumed +* **Service version** – the version of the service that is consumed +* **Service ID** – the unique identifier of the service in the Catalog +* **Application ID** – the unique identifier of the application that the service was published from in the Catalog +* **Metadata** – the contents of the metadata file defining the service +* **OData version** – the OData version (can be v3 or v4) #### Using QuerySegment @@ -238,7 +238,7 @@ When a change in the contract at a consumed endpoint is detected (possibly due t The **Update** option is available when Studio Pro detects that the contract at the Catalog endpoint is different than the one currently consumed in the app. If **Update** is selected, the new contract will be loaded in the app. -See the [Limitations](/refguide/consumed-odata-services/#consumed-odata-service-limitations) section of _Consumed OData Services_ to read about known update limitations. +See the [Limitations](/refguide/consumed-odata-services/#consumed-odata-service-limitations) section of *Consumed OData Services* to read about known update limitations. ##### Integration Pane @@ -246,9 +246,9 @@ In the [Integration pane](/refguide/integration-pane/), search results, and in t {{< figure src="/attachments/refguide/modeling/menus/view-menu/integration-pane/update-available.png" alt="Integration pane update" class="no-border" width="300" >}} -- The service version that is currently consumed is shown (in this example **1.2.0**). -- Blue **Update** - click to open the **Update Service** box and update the contract. Studio Pro will retrieve the new contract at the Catalog endpoint, which will be loaded in the app. -- When the Integration pane is showing search results, the displayed elements represent the assets available in the new version of the service that is found in the Catalog. When it is not showing search results, it shows the elements available for the currently consumed version of the service. +* The service version that is currently consumed is shown (in this example **1.2.0**). +* Blue **Update** - click to open the **Update Service** box and update the contract. Studio Pro will retrieve the new contract at the Catalog endpoint, which will be loaded in the app. +* When the Integration pane is showing search results, the displayed elements represent the assets available in the new version of the service that is found in the Catalog. When it is not showing search results, it shows the elements available for the currently consumed version of the service. ##### Update Service Dialog Box @@ -288,5 +288,5 @@ To consume the service deployed to the **Acceptance environment**, follow these ## Read More -- [Integration Pane](/refguide/integration-pane/) -- [Consumed OData Services](/refguide/consumed-odata-services/) +* [Integration Pane](/refguide/integration-pane/) +* [Consumed OData Services](/refguide/consumed-odata-services/) diff --git a/content/en/docs/refguide10/mobile/distributing-mobile-apps/pwa-wrapper/pwa-wrapper-deep-linking.md b/content/en/docs/refguide10/mobile/distributing-mobile-apps/pwa-wrapper/pwa-wrapper-deep-linking.md index 5338f2fd5e6..f0014195291 100644 --- a/content/en/docs/refguide10/mobile/distributing-mobile-apps/pwa-wrapper/pwa-wrapper-deep-linking.md +++ b/content/en/docs/refguide10/mobile/distributing-mobile-apps/pwa-wrapper/pwa-wrapper-deep-linking.md @@ -45,8 +45,8 @@ Each deep link entry requires the following: * **scheme** (required) – For example `myapp`, `pwa`, or `https`/`http` for universal/app links * **host** (required) – Domain or authority to match, for example `example.com` * **path** fields (optional, pick one at most): - * **path** – Exact path to match (for example `/profile`) - * **pathStartWith** – Path prefix to match (for example `/jump` catches `/jump/profile`) + * **path** – Exact path to match (for example `/profile`) + * **pathStartWith** – Path prefix to match (for example `/jump` catches `/jump/profile`) * **linkFeature** – Free-text label (metadata only, affects HarmonyOS builds) * **platform** – `Android`, `iOS`, `HarmonyOS`, `all`, or unset (unset or `all` applies to every platform) diff --git a/content/en/docs/refguide10/mobile/using-mobile-capabilities/push-notifications/notif-pwa-wrapper.md b/content/en/docs/refguide10/mobile/using-mobile-capabilities/push-notifications/notif-pwa-wrapper.md index 2d9235a956e..b1165e357f7 100644 --- a/content/en/docs/refguide10/mobile/using-mobile-capabilities/push-notifications/notif-pwa-wrapper.md +++ b/content/en/docs/refguide10/mobile/using-mobile-capabilities/push-notifications/notif-pwa-wrapper.md @@ -47,6 +47,7 @@ This configures the native layer to receive push notifications from Firebase Clo {{% alert color="warning" %}} Push notifications only work on physical devices. Emulators and simulators do not have the necessary Firebase Cloud Messaging infrastructure to receive push notifications. Always test push notifications on real Android and iOS devices. {{% /alert %}} + ## Installing Push Notifications Connector Add the Push Notifications Connector module to your app: @@ -95,6 +96,7 @@ Add three **Call JavaScript Action** activities to retrieve device details: 1. Add a **Create Object** activity to create a new `PushNotifications.DeviceRegistration` object. 2. Assign the following attributes: * **DeviceType**: Use a decision based on the operating system: + ``` if $OperatingSystem = getKey(PushNotifications.DeviceSystemType.Android) then PushNotifications.DeviceType.Android @@ -105,6 +107,7 @@ Add three **Call JavaScript Action** activities to retrieve device details: else empty ``` + * **RegistrationID**: `$PushToken` * **DeviceId**: `$DeviceInfo/UniqueId` @@ -140,7 +143,7 @@ Download and install the [Events](https://marketplace.mendix.com/link/component/ Create a new JavaScript action named `ListenToAppLifecycle` in your app with the following configuration: * Add one parameter of type **Nanoflow**: - * `onResume` + * `onResume` Use the following as the action's implementation: diff --git a/content/en/docs/releasenotes/studio-pro/11/11.12.md b/content/en/docs/releasenotes/studio-pro/11/11.12.md index 93f967c1352..837c9efe942 100644 --- a/content/en/docs/releasenotes/studio-pro/11/11.12.md +++ b/content/en/docs/releasenotes/studio-pro/11/11.12.md @@ -19,52 +19,52 @@ weight: 88 ### New Features -- We added a **Location** setting to the **General** tab of the **Module Settings** dialog. It lets you choose whether a module is listed in the regular module list, or under the **Marketplace modules** node in the App Explorer. -- We added a **Copy Path** button to the notification that shows when the *App* folder fails to be excluded by an antivirus. -- We added a new setting to enable or disable OQL generation with Maia. OQL generation always uses the Mendix Platform regardless of the provider. +* We added a **Location** setting to the **General** tab of the **Module Settings** dialog. It lets you choose whether a module is listed in the regular module list, or under the **Marketplace modules** node in the App Explorer. +* We added a **Copy Path** button to the notification that shows when the *App* folder fails to be excluded by an antivirus. +* We added a new setting to enable or disable OQL generation with Maia. OQL generation always uses the Mendix Platform regardless of the provider. * This setting takes effect immediately, with one exception: if you are using the Studio Pro MCP Server a restart of Studio Pro is required for the changes to take effect. OQL generation with Studio Pro MCP Server is only possible with both the Enable Maia and Enable oql tool settings enabled. ### Improvements #### Performance -- We improved build performance and reduced memory usage of the React client when bundling with Rspack. (Ticket 282716, 282165, 282605) -- We improved the performance logging infrastructure by integrating OpenTelemetry tracing, enabling correlated trace data for better diagnostics and profiling of Studio Pro operations. -- We made local deployment faster by improving the performance of microflows model export. +* We improved build performance and reduced memory usage of the React client when bundling with Rspack. (Ticket 282716, 282165, 282605) +* We improved the performance logging infrastructure by integrating OpenTelemetry tracing, enabling correlated trace data for better diagnostics and profiling of Studio Pro operations. +* We made local deployment faster by improving the performance of microflows model export. #### Other Improvements -- We improved the security of the module import process by validating the file paths declared in an MPK package before extraction. Packages containing paths that traverse outside the app directory or target protected directories (such as `.git`, `deployment`, or `releases`) are now rejected with an error. -- We fixed a bypass in the extraction-time path filter where non-canonical ZIP entry names (for example paths containing `..` segments) could evade the protected-subtree check. Entry names are now canonicalized before filtering. -- We now close the app selector before the **Open App** progress dialog when the Studio Pro main window is shown. -- We now delete the log files generated by Studio Pro that are older than 7 days. -- We now support the environment variables `MENDIX_TRACING_FILTER`, `MENDIX_TRACING_MAX_LOOP_ITERATION`, `MENDIX_TRACING_MAX_MICROFLOW_DEPTH` in addition to system properties for the Mendix OpenTelemetry Java agent extension. +* We improved the security of the module import process by validating the file paths declared in an MPK package before extraction. Packages containing paths that traverse outside the app directory or target protected directories (such as `.git`, `deployment`, or `releases`) are now rejected with an error. +* We fixed a bypass in the extraction-time path filter where non-canonical ZIP entry names (for example paths containing `..` segments) could evade the protected-subtree check. Entry names are now canonicalized before filtering. +* We now close the app selector before the **Open App** progress dialog when the Studio Pro main window is shown. +* We now delete the log files generated by Studio Pro that are older than 7 days. +* We now support the environment variables `MENDIX_TRACING_FILTER`, `MENDIX_TRACING_MAX_LOOP_ITERATION`, `MENDIX_TRACING_MAX_MICROFLOW_DEPTH` in addition to system properties for the Mendix OpenTelemetry Java agent extension. ### Fixes -- We resolved the issue that mxbuild would fail when compiling a project on macOS. (Ticket 278610) -- We fixed an issue that could cause an app to fail to bundle with Rspack enabled when a pluggable widget used certain Mendix modules, such as `mendix/parser` and `mendix/session`. (Ticket 282224) -- We fixed an issue in the microflow editor where clearing the selection did not update the **Properties** pane, so it kept showing the previously selected element instead of the microflow's own properties. (Tickets 282855, 283242) -- We fixed an issue where the content of the microflow editor and domain model editor (beta) canvas could appear blurry after scrolling or zooming. (Ticket 283927) -- We fixed an issue where the **History** pane would lose commit details (model changes and file changes) for unsynced local commits after a background Git refresh. -- We fixed an issue where using **Undo All** on multiple files created by Maia could show an unexpected error dialog in apps with online services enabled. -- We fixed an issue where using **Undo all** after deleting a file that was modified or created by Maia would cause an error. -- We fixed an issue where Change Data Capture AsyncAPI schemas were missing the `id` field in generated entity definitions. -- We fixed the Title widget to update its displayed text when navigating between pages in a native app. -- We fixed an issue where renaming a document would not update its name in the Maia changes list. -- We fixed an issue where the Change Data Capture service was allowing the addition of inherited attributes and associations when this is not supported. -- We fixed an issue where Studio Pro appeared to freeze briefly when opening an app. The progress dialog now covers the full loading process. -- We fixed an orientation issue in the native Date Picker widget for iOS. -- We changed the consistency check for offline Create and Change actions involving entities with AutoNumber or Calculated attributes from a hard error to a warning. The warning reminds you that AutoNumber values will default to `0` until the next synchronization, and Calculated attribute values will not be evaluated offline. -- We fixed an issue where local file storage did not use optimal directory structure. -- We fixed an issue where downloading a Marketplace module with Maia resulted in the name of the module being displayed in the version field. This is now resolved. -- We fixed an issue where the Mendix Marketplace MCP server connection would repeatedly disconnect and reconnect every few seconds. -- We fixed an issue where MCP connections could briefly disconnect and reconnect right after Studio Pro started up. -- We fixed an issue where requests sent to MCP servers identified themselves with a generic browser user agent instead of Studio Pro. -- We fixed an issue where Studio Pro could show a `No user is signed in` error while using an MCP server that requires Mendix Platform sign-in, while signed out. -- We fixed a bug where the Extensions Overview page would not open if the user was not signed in. -- We fixed a bug where reloading a Dev extension would cause a crash if extension tabs were still open. -- We fixed an issue where progress dialogs did not behave like their C# counterpart. Canceling a step now waits for it to finish and return its result. To exit the step and return its result immediately on cancel, pass `resolveImmediatelyOnCancel` to `IDialogApi.showProgressDialog`. +* We resolved the issue that mxbuild would fail when compiling a project on macOS. (Ticket 278610) +* We fixed an issue that could cause an app to fail to bundle with Rspack enabled when a pluggable widget used certain Mendix modules, such as `mendix/parser` and `mendix/session`. (Ticket 282224) +* We fixed an issue in the microflow editor where clearing the selection did not update the **Properties** pane, so it kept showing the previously selected element instead of the microflow's own properties. (Tickets 282855, 283242) +* We fixed an issue where the content of the microflow editor and domain model editor (beta) canvas could appear blurry after scrolling or zooming. (Ticket 283927) +* We fixed an issue where the **History** pane would lose commit details (model changes and file changes) for unsynced local commits after a background Git refresh. +* We fixed an issue where using **Undo All** on multiple files created by Maia could show an unexpected error dialog in apps with online services enabled. +* We fixed an issue where using **Undo all** after deleting a file that was modified or created by Maia would cause an error. +* We fixed an issue where Change Data Capture AsyncAPI schemas were missing the `id` field in generated entity definitions. +* We fixed the Title widget to update its displayed text when navigating between pages in a native app. +* We fixed an issue where renaming a document would not update its name in the Maia changes list. +* We fixed an issue where the Change Data Capture service was allowing the addition of inherited attributes and associations when this is not supported. +* We fixed an issue where Studio Pro appeared to freeze briefly when opening an app. The progress dialog now covers the full loading process. +* We fixed an orientation issue in the native Date Picker widget for iOS. +* We changed the consistency check for offline Create and Change actions involving entities with AutoNumber or Calculated attributes from a hard error to a warning. The warning reminds you that AutoNumber values will default to `0` until the next synchronization, and Calculated attribute values will not be evaluated offline. +* We fixed an issue where local file storage did not use optimal directory structure. +* We fixed an issue where downloading a Marketplace module with Maia resulted in the name of the module being displayed in the version field. This is now resolved. +* We fixed an issue where the Mendix Marketplace MCP server connection would repeatedly disconnect and reconnect every few seconds. +* We fixed an issue where MCP connections could briefly disconnect and reconnect right after Studio Pro started up. +* We fixed an issue where requests sent to MCP servers identified themselves with a generic browser user agent instead of Studio Pro. +* We fixed an issue where Studio Pro could show a `No user is signed in` error while using an MCP server that requires Mendix Platform sign-in, while signed out. +* We fixed a bug where the Extensions Overview page would not open if the user was not signed in. +* We fixed a bug where reloading a Dev extension would cause a crash if extension tabs were still open. +* We fixed an issue where progress dialogs did not behave like their C# counterpart. Canceling a step now waits for it to finish and return its result. To exit the step and return its result immediately on cancel, pass `resolveImmediatelyOnCancel` to `IDialogApi.showProgressDialog`. ### Known Issues diff --git a/content/en/docs/releasenotes/studio-pro/11/11.13.md b/content/en/docs/releasenotes/studio-pro/11/11.13.md index 98e66117839..321a58b7db4 100644 --- a/content/en/docs/releasenotes/studio-pro/11/11.13.md +++ b/content/en/docs/releasenotes/studio-pro/11/11.13.md @@ -26,107 +26,107 @@ With the Send Email activity, you can configure the email server connection, aut #### Other New Features -- We added a **Location** setting to the **General** tab of the Module Settings dialog. It lets you choose whether a module is listed in the regular module list or under the **Marketplace modules** node in the App Explorer. -- You can now update a module from a file, by right clicking on the module in the App Explorer. You must to provide the *.mpk* files for the original version, and the version you are updating to. Updating will trigger the merge algorithm and possibly conflict resolution, allowing you to retain customizations you made to the module. This update mechanism only works for module packages created after 11.12.0. A future update will add compatibility for modules created before that. -- We added support for constants in OQL queries. Constants defined in the model can be referred in OQL queries as `$.`. Currently, this feature is available only in Java API. -- We added support for enumerations in OQL queries. Enumeration values can be used in OQL queries as `.#`. Currently, this feature is available only in Java API. -- German is now available as a beta language in Studio Pro. You can switch the Studio Pro interface to German in the **Preferences** dialog. -- We added a **Copy Path** button to the notification that shows when the app folder fails to be excluded by the antivirus. -- The Java API `OqlStatement` now supports `INSERT INTO VALUES` statements to insert value rows directly. For mor information, see the [SELECT Statement](/refguide/oql-statements/#oql-insert) section of *OQL Statements*. -- Maia now supports working with JSON Structure documents. -- We added observability for offline synchronization operations. Each synchronization now records success and failure counters for apps using a metrics dashboard. For apps without a metrics dashboard, the same data is also persisted in a new `System.SynchronizationHistory` entity (including duration, number of synchronized objects, error count, and the user who initiated the synchronization), which can be used to build an admin dashboard. History records are automatically cleaned up after the configurable custom setting `com.mendix.offline.SynchronizationHistoryRetentionDuration` (default: 365 days). -- We added the ability to display added documents and elements details in the **Comparison** pane. -- We added the ability to display deleted documents and elements details in the **Comparison** pane. -- We added a new setting to enable or disable OQL generation with Maia. OQL generation always uses the Mendix Platform regardless of the provider. -- We added **Maia Explain** and **Solve problem with Maia Chat** context menu options to the **Error** List to help you understand and resolve consistency errors directly with Maia. +* We added a **Location** setting to the **General** tab of the Module Settings dialog. It lets you choose whether a module is listed in the regular module list or under the **Marketplace modules** node in the App Explorer. +* You can now update a module from a file, by right clicking on the module in the App Explorer. You must to provide the *.mpk* files for the original version, and the version you are updating to. Updating will trigger the merge algorithm and possibly conflict resolution, allowing you to retain customizations you made to the module. This update mechanism only works for module packages created after 11.12.0. A future update will add compatibility for modules created before that. +* We added support for constants in OQL queries. Constants defined in the model can be referred in OQL queries as `$.`. Currently, this feature is available only in Java API. +* We added support for enumerations in OQL queries. Enumeration values can be used in OQL queries as `.#`. Currently, this feature is available only in Java API. +* German is now available as a beta language in Studio Pro. You can switch the Studio Pro interface to German in the **Preferences** dialog. +* We added a **Copy Path** button to the notification that shows when the app folder fails to be excluded by the antivirus. +* The Java API `OqlStatement` now supports `INSERT INTO VALUES` statements to insert value rows directly. For mor information, see the [SELECT Statement](/refguide/oql-statements/#oql-insert) section of *OQL Statements*. +* Maia now supports working with JSON Structure documents. +* We added observability for offline synchronization operations. Each synchronization now records success and failure counters for apps using a metrics dashboard. For apps without a metrics dashboard, the same data is also persisted in a new `System.SynchronizationHistory` entity (including duration, number of synchronized objects, error count, and the user who initiated the synchronization), which can be used to build an admin dashboard. History records are automatically cleaned up after the configurable custom setting `com.mendix.offline.SynchronizationHistoryRetentionDuration` (default: 365 days). +* We added the ability to display added documents and elements details in the **Comparison** pane. +* We added the ability to display deleted documents and elements details in the **Comparison** pane. +* We added a new setting to enable or disable OQL generation with Maia. OQL generation always uses the Mendix Platform regardless of the provider. +* We added **Maia Explain** and **Solve problem with Maia Chat** context menu options to the **Error** List to help you understand and resolve consistency errors directly with Maia. This setting takes effect immediately, with one exception: if you are using the Studio Pro MCP Server a restart of Studio Pro is required for the changes to take effect. OQL generation with Studio Pro MCP Server is only possible with both the **Enable Maia** and **Enable OQL** tool settings enabled. -- Studio Pro now automatically selects a free port for the MCP server when the default port is already in use, so multiple instances can run side by side without manual configuration. -- A notification is shown when the MCP server starts, and the active port is visible in the status bar. -- We added support for interrupting and non-interrupting behavior on the workflow Timer Event Sub-Process Start Event. When configured as interrupting, the Event Sub-Process will interrupt the parent workflow, terminating all active execution paths within the global scope—including activities in the main process and any nested sub-processes—before initiating the Event Sub-Process flow. When configured as non-interrupting, the Event Sub-Process runs in parallel with the parent workflow without affecting its execution. -- The External Database Connector is now built into Studio Pro. You no longer need to download the module from the Marketplace. -- Web extensions now must include `@mendix/model-access-registry` in the external build configuration. +* Studio Pro now automatically selects a free port for the MCP server when the default port is already in use, so multiple instances can run side by side without manual configuration. +* A notification is shown when the MCP server starts, and the active port is visible in the status bar. +* We added support for interrupting and non-interrupting behavior on the workflow Timer Event Sub-Process Start Event. When configured as interrupting, the Event Sub-Process will interrupt the parent workflow, terminating all active execution paths within the global scope—including activities in the main process and any nested sub-processes—before initiating the Event Sub-Process flow. When configured as non-interrupting, the Event Sub-Process runs in parallel with the parent workflow without affecting its execution. +* The External Database Connector is now built into Studio Pro. You no longer need to download the module from the Marketplace. +* Web extensions now must include `@mendix/model-access-registry` in the external build configuration. ### Improvements #### Performance -- We improved the performance logging infrastructure by integrating OpenTelemetry tracing, enabling correlated trace data for better diagnostics and profiling of Studio Pro operations. -- We improved Studio Pro initilization time by 20-30% on macOS and 10-20% on Windows. -- We made local deployment faster by improving the performance of microflows model export. +* We improved the performance logging infrastructure by integrating OpenTelemetry tracing, enabling correlated trace data for better diagnostics and profiling of Studio Pro operations. +* We improved Studio Pro initilization time by 20-30% on macOS and 10-20% on Windows. +* We made local deployment faster by improving the performance of microflows model export. #### Other Improvements -- We improved the security of the module import process by validating the file paths declared in an MPK package before extraction. Packages containing paths that traverse outside the app directory or target protected directories (such as `.git`, `deployment`, or `releases`) are now rejected with an error. -- We fixed a bypass in the extraction-time path filter where non-canonical ZIP entry names (for example paths containing `..` segments) could evade the protected-subtree check. Entry names are now canonicalized before filtering. -- We added multi-selection support for the **Modernized Find Results** table. -- We now close the app selector before the **Open App** progress dialog when the Studio Pro main window is shown. -- We updated the icons used in the **Microflow Editor** to vector icons, resulting in a crisper look on high-resolution screens. -- Maia now receives detailed information about errors inside microflow expressions it generates, so it can correct them more accurately. -- We improved the editor for consumed OData services in Studio Pro. It now uses toggles instead of checkboxes and has a separate group for headers. There is a toggle to revert to the old behavior under [new features](/refguide/preferences-dialog/#new-features). -- We now support the environment variables `MENDIX_TRACING_FILTER`, `MENDIX_TRACING_MAX_LOOP_ITERATION`, `MENDIX_TRACING_MAX_MICROFLOW_DEPTH` in addition to system properties for the Mendix OpenTelemetry Java agent extension. -- We improved the cursor tracking performance of the modernized app explorer's drag preview. -- Embedded applications now support optional parameters for the home page and home microflow. +* We improved the security of the module import process by validating the file paths declared in an MPK package before extraction. Packages containing paths that traverse outside the app directory or target protected directories (such as `.git`, `deployment`, or `releases`) are now rejected with an error. +* We fixed a bypass in the extraction-time path filter where non-canonical ZIP entry names (for example paths containing `..` segments) could evade the protected-subtree check. Entry names are now canonicalized before filtering. +* We added multi-selection support for the **Modernized Find Results** table. +* We now close the app selector before the **Open App** progress dialog when the Studio Pro main window is shown. +* We updated the icons used in the **Microflow Editor** to vector icons, resulting in a crisper look on high-resolution screens. +* Maia now receives detailed information about errors inside microflow expressions it generates, so it can correct them more accurately. +* We improved the editor for consumed OData services in Studio Pro. It now uses toggles instead of checkboxes and has a separate group for headers. There is a toggle to revert to the old behavior under [new features](/refguide/preferences-dialog/#new-features). +* We now support the environment variables `MENDIX_TRACING_FILTER`, `MENDIX_TRACING_MAX_LOOP_ITERATION`, `MENDIX_TRACING_MAX_MICROFLOW_DEPTH` in addition to system properties for the Mendix OpenTelemetry Java agent extension. +* We improved the cursor tracking performance of the modernized app explorer's drag preview. +* Embedded applications now support optional parameters for the home page and home microflow. ### Fixes -- We fixed an issue in offline apps where passing a Non-Persistent Entity (NPE) as a parameter to a server action would fail with `Object hash is invalid!` after a transparent session restore (for example, when a session expired and was automatically renewed in the background). The read-only hash key used to sign and verify NPE object hashes is now preserved across session restores via the auth token, and is only replaced on explicit logout. (Ticket 276642) -- We fixed an issue in React client mode where widgets in a snippet became unresponsive after navigating between pages using the same snippet. (Ticket 276710) -- We resolved the issue that mxbuild would fail when compiling a project on macOS. (Ticket 278610) -- On SQL Server, when a unique constraint or foreign key constraint is dropped, we now use `IF EXISTS`. This avoids an automatic rollback of the synchronization transaction in case the constraint does not exist. (Ticket 279545) -- We fixed an issue where runtime fails to finish executing a queued task started by a user if the user is deleted during task execution. (Ticket 279891) -- We fixed an issue where files with `%` in the filename could not be downloaded which caused incorrect `file could not be found` errors (Ticket 281292). -- We fixed an issue where extracting a submicroflow from activities that referenced a predefined variable (such as `$currentUser`) would create a parameter with the same reserved name on the new submicroflow, resulting in a "Variable name is reserved" error. Predefined variables are now skipped when generating the parameters of the extracted submicroflow, since they are already globally in scope. (Ticket 281319) -- We fixed an issue where building an application would give the following error: `System.FormatException: The input string '' was not in a correct format`. (Tickets 282176, 282223) -- We fixed an issue that could cause an app to fail to bundle with Rspack enabled when a pluggable widget used certain Mendix modules, such as `mendix/parser` and `mendix/session` (Ticket 282224). -- We resolved the issue in Studio Pro that Java files do not get generated when deploying for Eclipse. (Ticket 282363) -- We fixed an issue with PWAs using Rspack where the service worker would sometimes not be created correctly. (Ticket 282616, 282601) -- We fixed an issue in the **Microflow Editor** where clearing the selection did not update the Properties pane, so it kept showing the previously selected element instead of the microflow's own properties. (Tickets 282855, 283242) -- In the microflow editor, we fixed a spurious type error shown on the return value of an end event when the microflow's return type is set to **Nothing**. (Ticket 283008) -- We fixed an issue where the **History** pane would lose commit details (model changes and file changes) for unsynced local commits after a background Git refresh. -- We removed GuidMapping documents from the **Changes** pane. -- We fixed an issue in the beta version of import mappings and export mappings where using the arrow keys to move between entities did not keep the selected entity in view. The up and down arrow keys now keep the selected entity centered. -- We consolidated three separate workflow versioning conflict types (`CurrentParallelBranchRemoved`, `CurrentNonInterruptingBoundaryEventPathRemoved`, and `CurrentEventSubProcessRemoved`) into a single `ConcurrentPathRemoved` conflict. This provides a clearer and more consistent conflict message when concurrent execution paths—such as parallel split paths, boundary event paths, or event sub-processes—are removed from the workflow definition. -- We resolved an issue that when importing modules from the Marketplace with Studio Pro on macOS, sometimes Java actions would not be included correctly. -- We changed the consistency check for offline Create and Change actions involving entities with AutoNumber or Calculated attributes from a hard error to a warning. The warning reminds you that AutoNumber values will default to `0` until the next synchronization, and Calculated attribute values will not be evaluated offline. -- We resolved an issue where Studio Pro would hang on the **Updating original app** step when opening a project. -- We fixed an issue where the Change Data Capture service was allowing the addition of inherited attributes and associations when this is not supported. -- We fixed an issue where Change Data Capture AsyncAPI schemas were missing the `id` field in generated entity definitions. -- We removed unusable parts of Studio Pro due to previous deprecations. The following parts of the model and its accompanied UI have been removed: Reporting widgets (deprecated since Mx 10, resulted in a non-startable app), DataSetAccess (UI was not working and the rules were not respected by the runtime), DataSet Object parameter constraint (also not respected by the runtime). We plan to get rid of more unusable features around datasets without breaking existing usages of it. -- We resolved double-toggle issues which occurred when pressing left or right arrow keys followed by an Enter key press in the **Debugger Variables Pane** -- We fixed an issue where using **Undo all** after deleting a file that was modified or created by Maia would cause an error. -- We fixed an issue where renaming a document would not update its name in the Maia changes list. -- We fixed an issue where using **Undo All** on multiple files created by Maia could show an unexpected error dialog in apps with online services enabled. -- we fixed the orientation issue in datepicker widget for iOS, supporting landscape orientation. -- We fixed an issue in the beta version of the export mapping editor where collapsing an entity did not show the **…** indicator, so you could not tell that the entity had hidden child elements. -- We resolved an issue in Studio Pro on macOS that sometimes **Document** tabs would not be visible after opening an app. -- We resolved an issue in Studio Pro on macOS that dialogs would sometimes not appear centered on top of the existing window or dialog. -- We fixed Title widget to update its displayed text when navigating between pages in a native app. -- We fixed an issue where local file storage does not use optimal directory structure. -- We fixed an issue where the **Extensions** setting was visible for all module types instead of only for add-ons. -- We fixed an issue where Studio Pro appeared to freeze briefly when opening an app. The progress dialog now covers the full loading process. -- We fixed an issue where deleting or reverting a file on disk while it was open in an editor in Studio Pro would recreate it as an empty file after a file system synchronization. The editor tab now closes when the backing file no longer exists, and saving a recreated file properly refreshes the project explorer. -- We fixed an issue where downloading a marketplace module with Maia resulted in the name of the module being displayed in the version field. This is now resolved. -- We fixed an issue where the Mendix Marketplace MCP server connection would repeatedly disconnect and reconnect every few seconds. -- We fixed an issue where MCP connections could briefly disconnect and reconnect right after Studio Pro started up. -- We fixed an issue where requests sent to MCP servers identified themselves with a generic browser user agent instead of Studio Pro. -- We fixed an issue where Studio Pro could show a `No user is signed in` error while using an MCP server that requires Mendix Platform sign-in, while signed out. -- We fixed a bug where the modernized app explorer drag preview did not consistently show a disabled indicator for an invalid drop point. -- We fixed the auto-scroll on macOS for the modernized app explorer. -- We fixed the folder expand-on-hover during drag in the modernized app explorer. -- We fixed an issue in the modernized app explorer where dragging a document to a different module would clear the selection. The moved document now stays selected and the app explorer regains focus after the move. -- **Find results** tags now show the matching document type icon and a cleaner label, making it easier to distinguish result sets at a glance. For example, a microflow result tag now shows the microflow icon next to the result name instead of repeating the type name in text. -- We fixed an issue in the modernized app explorer where too many nodes could be selected at once. -- We fixed the position of find results in the **View** top menu so it now appears in the correct alphabetical order. -- We fixed an issue when calling `mx.ui.openForm` in the Dojo client. -- A missing *progress message* on a blocking progress bar no longer causes a crash during deployment. -- We fixed an issue in the call web service activity and in consumed OData services that consume services using OData version 3. The XML parser now rejects DTD declarations and external entities, because a compromised server might exploit those features. -- We fixed the `t is not a function` crash in Microflow and Workflow editors, introduced by the recent Microsoft update for WebView. +* We fixed an issue in offline apps where passing a Non-Persistent Entity (NPE) as a parameter to a server action would fail with `Object hash is invalid!` after a transparent session restore (for example, when a session expired and was automatically renewed in the background). The read-only hash key used to sign and verify NPE object hashes is now preserved across session restores via the auth token, and is only replaced on explicit logout. (Ticket 276642) +* We fixed an issue in React client mode where widgets in a snippet became unresponsive after navigating between pages using the same snippet. (Ticket 276710) +* We resolved the issue that mxbuild would fail when compiling a project on macOS. (Ticket 278610) +* On SQL Server, when a unique constraint or foreign key constraint is dropped, we now use `IF EXISTS`. This avoids an automatic rollback of the synchronization transaction in case the constraint does not exist. (Ticket 279545) +* We fixed an issue where runtime fails to finish executing a queued task started by a user if the user is deleted during task execution. (Ticket 279891) +* We fixed an issue where files with `%` in the filename could not be downloaded which caused incorrect `file could not be found` errors (Ticket 281292). +* We fixed an issue where extracting a submicroflow from activities that referenced a predefined variable (such as `$currentUser`) would create a parameter with the same reserved name on the new submicroflow, resulting in a "Variable name is reserved" error. Predefined variables are now skipped when generating the parameters of the extracted submicroflow, since they are already globally in scope. (Ticket 281319) +* We fixed an issue where building an application would give the following error: `System.FormatException: The input string '' was not in a correct format`. (Tickets 282176, 282223) +* We fixed an issue that could cause an app to fail to bundle with Rspack enabled when a pluggable widget used certain Mendix modules, such as `mendix/parser` and `mendix/session` (Ticket 282224). +* We resolved the issue in Studio Pro that Java files do not get generated when deploying for Eclipse. (Ticket 282363) +* We fixed an issue with PWAs using Rspack where the service worker would sometimes not be created correctly. (Ticket 282616, 282601) +* We fixed an issue in the **Microflow Editor** where clearing the selection did not update the Properties pane, so it kept showing the previously selected element instead of the microflow's own properties. (Tickets 282855, 283242) +* In the microflow editor, we fixed a spurious type error shown on the return value of an end event when the microflow's return type is set to **Nothing**. (Ticket 283008) +* We fixed an issue where the **History** pane would lose commit details (model changes and file changes) for unsynced local commits after a background Git refresh. +* We removed GuidMapping documents from the **Changes** pane. +* We fixed an issue in the beta version of import mappings and export mappings where using the arrow keys to move between entities did not keep the selected entity in view. The up and down arrow keys now keep the selected entity centered. +* We consolidated three separate workflow versioning conflict types (`CurrentParallelBranchRemoved`, `CurrentNonInterruptingBoundaryEventPathRemoved`, and `CurrentEventSubProcessRemoved`) into a single `ConcurrentPathRemoved` conflict. This provides a clearer and more consistent conflict message when concurrent execution paths—such as parallel split paths, boundary event paths, or event sub-processes—are removed from the workflow definition. +* We resolved an issue that when importing modules from the Marketplace with Studio Pro on macOS, sometimes Java actions would not be included correctly. +* We changed the consistency check for offline Create and Change actions involving entities with AutoNumber or Calculated attributes from a hard error to a warning. The warning reminds you that AutoNumber values will default to `0` until the next synchronization, and Calculated attribute values will not be evaluated offline. +* We resolved an issue where Studio Pro would hang on the **Updating original app** step when opening a project. +* We fixed an issue where the Change Data Capture service was allowing the addition of inherited attributes and associations when this is not supported. +* We fixed an issue where Change Data Capture AsyncAPI schemas were missing the `id` field in generated entity definitions. +* We removed unusable parts of Studio Pro due to previous deprecations. The following parts of the model and its accompanied UI have been removed: Reporting widgets (deprecated since Mx 10, resulted in a non-startable app), DataSetAccess (UI was not working and the rules were not respected by the runtime), DataSet Object parameter constraint (also not respected by the runtime). We plan to get rid of more unusable features around datasets without breaking existing usages of it. +* We resolved double-toggle issues which occurred when pressing left or right arrow keys followed by an Enter key press in the **Debugger Variables Pane** +* We fixed an issue where using **Undo all** after deleting a file that was modified or created by Maia would cause an error. +* We fixed an issue where renaming a document would not update its name in the Maia changes list. +* We fixed an issue where using **Undo All** on multiple files created by Maia could show an unexpected error dialog in apps with online services enabled. +* we fixed the orientation issue in datepicker widget for iOS, supporting landscape orientation. +* We fixed an issue in the beta version of the export mapping editor where collapsing an entity did not show the **…** indicator, so you could not tell that the entity had hidden child elements. +* We resolved an issue in Studio Pro on macOS that sometimes **Document** tabs would not be visible after opening an app. +* We resolved an issue in Studio Pro on macOS that dialogs would sometimes not appear centered on top of the existing window or dialog. +* We fixed Title widget to update its displayed text when navigating between pages in a native app. +* We fixed an issue where local file storage does not use optimal directory structure. +* We fixed an issue where the **Extensions** setting was visible for all module types instead of only for add-ons. +* We fixed an issue where Studio Pro appeared to freeze briefly when opening an app. The progress dialog now covers the full loading process. +* We fixed an issue where deleting or reverting a file on disk while it was open in an editor in Studio Pro would recreate it as an empty file after a file system synchronization. The editor tab now closes when the backing file no longer exists, and saving a recreated file properly refreshes the project explorer. +* We fixed an issue where downloading a marketplace module with Maia resulted in the name of the module being displayed in the version field. This is now resolved. +* We fixed an issue where the Mendix Marketplace MCP server connection would repeatedly disconnect and reconnect every few seconds. +* We fixed an issue where MCP connections could briefly disconnect and reconnect right after Studio Pro started up. +* We fixed an issue where requests sent to MCP servers identified themselves with a generic browser user agent instead of Studio Pro. +* We fixed an issue where Studio Pro could show a `No user is signed in` error while using an MCP server that requires Mendix Platform sign-in, while signed out. +* We fixed a bug where the modernized app explorer drag preview did not consistently show a disabled indicator for an invalid drop point. +* We fixed the auto-scroll on macOS for the modernized app explorer. +* We fixed the folder expand-on-hover during drag in the modernized app explorer. +* We fixed an issue in the modernized app explorer where dragging a document to a different module would clear the selection. The moved document now stays selected and the app explorer regains focus after the move. +* **Find results** tags now show the matching document type icon and a cleaner label, making it easier to distinguish result sets at a glance. For example, a microflow result tag now shows the microflow icon next to the result name instead of repeating the type name in text. +* We fixed an issue in the modernized app explorer where too many nodes could be selected at once. +* We fixed the position of find results in the **View** top menu so it now appears in the correct alphabetical order. +* We fixed an issue when calling `mx.ui.openForm` in the Dojo client. +* A missing *progress message* on a blocking progress bar no longer causes a crash during deployment. +* We fixed an issue in the call web service activity and in consumed OData services that consume services using OData version 3. The XML parser now rejects DTD declarations and external entities, because a compromised server might exploit those features. +* We fixed the `t is not a function` crash in Microflow and Workflow editors, introduced by the recent Microsoft update for WebView. ### Deprecations -- We dropped support for the following database versions that are no longer supported by the vendors: - - PostgreSQL 13 - - MariaDB 10.6 +* We dropped support for the following database versions that are no longer supported by the vendors: + * PostgreSQL 13 + * MariaDB 10.6 ### Known Issues @@ -135,4 +135,4 @@ This setting takes effect immediately, with one exception: if you are using the * When using BYO LLM, switching back to the Mendix Platform provider and saving your configuration causes reasoning and caching to stop functioning. * Workaround: Click **New Chat** to restore reasoning and caching. Note that **New Chat** is only available when the chat is not empty. * The **Skills** button in Maia Chat is not visible after adding skills via Maia. It becomes visible only after restarting the app, closing the project, or starting a new chat. - * Workaround: Click **New Chat** to make the Skills button appear without requiring a full restart. Note that **New Chat** is only available when the chat is not empty. \ No newline at end of file + * Workaround: Click **New Chat** to make the Skills button appear without requiring a full restart. Note that **New Chat** is only available when the chat is not empty. diff --git a/content/en/docs/releasenotes/studio-pro/11/11.6.md b/content/en/docs/releasenotes/studio-pro/11/11.6.md index db690be4837..f0fd43f0ea0 100644 --- a/content/en/docs/releasenotes/studio-pro/11/11.6.md +++ b/content/en/docs/releasenotes/studio-pro/11/11.6.md @@ -16,30 +16,30 @@ mts: true ### Improvements -- We fixed an issue in OData Exists queries where an XPath constraint with nested-associations would result in an incorrect OData filter. (Ticket 261698) +* We fixed an issue in OData Exists queries where an XPath constraint with nested-associations would result in an incorrect OData filter. (Ticket 261698) ### Fixes -- We fixed an issue with the Mendix Client where passing an empty string as a parameter to an on change microflow triggered an error. (Ticket 276118, 278248) -- We fixed an issue in the React client mode where navigating between pages with the same layout left widgets unresponsive. (Ticket 276710) -- We fixed an issue where Studio Pro crashed when pasting content from the clipboard while another application was also accessing the clipboard. (Ticket 278333) -- On SQL Server, when a unique constraint or foreign key constraint is dropped, we now use `IF EXISTS`. This avoids an automatic rollback of the synchronization transaction in case the constraint does not exist. (Ticket 279545) -- We fixed an issue where the Mendix Runtime failed to finish executing a queued task started by a user if the user is deleted during task execution. (Ticket 279891) -- We fixed an issue where the native `Switch` widget did not render correctly on iOS. (Ticket 280839) -- We fixed the `t is not a function` crash in microflow, workflow, and page editors introduced by the recent Microsoft update for WebView. If you installed an older version of the Microsoft Edge WebView as a workaround and you have no other affected Studio Pro installations, we recommend uninstalling it to prevent future compatibility issues. (Ticket 282591, 282696) -- We fixed an issue with PWAs using Rspack where the service worker would sometimes not be created correctly. (Ticket 282616, 282601) -- We fixed an issue in the call web service activity and in consumed OData services that consume services using OData version 3. The XML parser now rejects DTD declarations and external entities, because a compromised server might exploit those features. -- We fixed an issue that occurred when calling `mx.ui.openForm` in the Dojo client. +* We fixed an issue with the Mendix Client where passing an empty string as a parameter to an on change microflow triggered an error. (Ticket 276118, 278248) +* We fixed an issue in the React client mode where navigating between pages with the same layout left widgets unresponsive. (Ticket 276710) +* We fixed an issue where Studio Pro crashed when pasting content from the clipboard while another application was also accessing the clipboard. (Ticket 278333) +* On SQL Server, when a unique constraint or foreign key constraint is dropped, we now use `IF EXISTS`. This avoids an automatic rollback of the synchronization transaction in case the constraint does not exist. (Ticket 279545) +* We fixed an issue where the Mendix Runtime failed to finish executing a queued task started by a user if the user is deleted during task execution. (Ticket 279891) +* We fixed an issue where the native `Switch` widget did not render correctly on iOS. (Ticket 280839) +* We fixed the `t is not a function` crash in microflow, workflow, and page editors introduced by the recent Microsoft update for WebView. If you installed an older version of the Microsoft Edge WebView as a workaround and you have no other affected Studio Pro installations, we recommend uninstalling it to prevent future compatibility issues. (Ticket 282591, 282696) +* We fixed an issue with PWAs using Rspack where the service worker would sometimes not be created correctly. (Ticket 282616, 282601) +* We fixed an issue in the call web service activity and in consumed OData services that consume services using OData version 3. The XML parser now rejects DTD declarations and external entities, because a compromised server might exploit those features. +* We fixed an issue that occurred when calling `mx.ui.openForm` in the Dojo client. ### Deprecations -- We dropped support for the following database versions that are no longer supported by the vendors: - - PostgreSQL 13 - - MariaDB 10.6 +* We dropped support for the following database versions that are no longer supported by the vendors: + * PostgreSQL 13 + * MariaDB 10.6 ### Breaking Changes -- Studio Pro on macOS now runs natively on Apple Silicon (arm64). Studio Pro, Version Selector, and command line tools are all built as native Apple Silicon binaries, so they no longer require Rosetta 2 translation layer, resulting in significantly improved performance. Intel-based Macs are no longer supported. +* Studio Pro on macOS now runs natively on Apple Silicon (arm64). Studio Pro, Version Selector, and command line tools are all built as native Apple Silicon binaries, so they no longer require Rosetta 2 translation layer, resulting in significantly improved performance. Intel-based Macs are no longer supported. ## 11.6.7 {#1167} diff --git a/content/en/docs/workstation/wks-quickstart.md b/content/en/docs/workstation/wks-quickstart.md index 7440f295031..72ba1389333 100644 --- a/content/en/docs/workstation/wks-quickstart.md +++ b/content/en/docs/workstation/wks-quickstart.md @@ -165,4 +165,4 @@ Different device types have different requirements for the message syntax. For m ## Best Practices for Working with Mendix Workstation -As you begin your work with Mendix Workstation, keep in mind the [best practices](/mendix-workstation/advanced/) to help you. \ No newline at end of file +As you begin your work with Mendix Workstation, keep in mind the [best practices](/mendix-workstation/advanced/) to help you.