From f8e7b6a3da3f312ee6dd4fd932f8316e3b1318a6 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 1 May 2026 20:43:42 +0000 Subject: [PATCH] Run markdownlint-cli2 on docs to find (and correct) linting errors. --- .../style-guide/_index.md | 2 +- .../style-guide/grammar-formatting.md | 2 +- .../style-guide/product-naming-guide.md | 2 +- .../style-guide/terminology.md | 2 +- .../deployment/docker-deploy/docker-pad.md | 1 + .../en/docs/deployment/general/pad/_index.md | 3 +- .../deployment/general/pad/pad-reference.md | 2 +- .../mendix-cloud-deploy/behavior-of-app.md | 1 - .../cloud-foundry/cloud-foundry-deploy-pad.md | 4 +- .../on-premises-design/linux/linux-pad.md | 12 +- .../private-cloud-helm-charts.md | 10 +- .../modules/snowflake/mendix-data-loader.md | 2 +- .../snowflake/snowflake-ai-data-connector.md | 4 +- .../widgets/markdown-viewer.md | 42 ++--- .../configuration/pmp-version-control.md | 2 +- .../progressive-web-app/pwa-service-worker.md | 10 +- .../pwa-wrapper/build-pwa-wrapper-apps.md | 6 +- .../pwa-wrapper/pwa-wrapper-limitations.md | 2 +- .../runtime/custom-settings/_index.md | 15 +- .../pwa-wrapper/build-pwa-wrapper-apps.md | 6 +- .../pwa-wrapper/pwa-wrapper-limitations.md | 2 +- .../runtime/custom-settings/_index.md | 12 +- .../nt-studio-pro-10-parent/nt-14-rn.md | 2 +- .../nt-studio-pro-11-parent/nt-18-rn.md | 6 +- .../nt-studio-pro-11-parent/nt-19-rn.md | 4 +- .../docs/releasenotes/private-platform/2.6.md | 2 +- .../docs/releasenotes/studio-pro/10/10.24.md | 114 ++++++------- .../docs/releasenotes/studio-pro/11/11.10.md | 156 +++++++++--------- .../docs/releasenotes/studio-pro/11/11.6.md | 70 ++++---- .../docs/releasenotes/studio-pro/11/11.9.md | 10 +- .../studio-pro/web-extensibility-api.md | 56 +++---- .../docs/releasenotes/workstation/_index.md | 2 +- .../en/docs/workstation/wks-message-syntax.md | 1 + 33 files changed, 283 insertions(+), 284 deletions(-) diff --git a/content/en/docs/community-tools/contribute-to-mendix-docs/style-guide/_index.md b/content/en/docs/community-tools/contribute-to-mendix-docs/style-guide/_index.md index 7cd6ae72f2a..90336adbae7 100644 --- a/content/en/docs/community-tools/contribute-to-mendix-docs/style-guide/_index.md +++ b/content/en/docs/community-tools/contribute-to-mendix-docs/style-guide/_index.md @@ -11,4 +11,4 @@ The Documentation group maintains guidelines on terminology, grammar, formatting The tone of the Mendix documentation is conversational, relaxed, and always straight-forward. The tone reflects the Documentation group's values. -Our language conventions are based on American English. \ No newline at end of file +Our language conventions are based on American English. diff --git a/content/en/docs/community-tools/contribute-to-mendix-docs/style-guide/grammar-formatting.md b/content/en/docs/community-tools/contribute-to-mendix-docs/style-guide/grammar-formatting.md index 808a2d5d811..c682c5f2a24 100644 --- a/content/en/docs/community-tools/contribute-to-mendix-docs/style-guide/grammar-formatting.md +++ b/content/en/docs/community-tools/contribute-to-mendix-docs/style-guide/grammar-formatting.md @@ -539,4 +539,4 @@ Format example URLs (those not linking to Mendix or third-party sites) with Mark Use present tense. The present tense is often easier to read and understand than the past or future tense. For more information, see [Verb Tense](https://docs.microsoft.com/en-us/style-guide/grammar/verbs#verb-tense) in the *Microsoft Style Guide*. -> Save the file. Gulp rebuilds the code in the console as soon as you save the file. \ No newline at end of file +> Save the file. Gulp rebuilds the code in the console as soon as you save the file. diff --git a/content/en/docs/community-tools/contribute-to-mendix-docs/style-guide/product-naming-guide.md b/content/en/docs/community-tools/contribute-to-mendix-docs/style-guide/product-naming-guide.md index aa3891b6b1d..0769569e48f 100644 --- a/content/en/docs/community-tools/contribute-to-mendix-docs/style-guide/product-naming-guide.md +++ b/content/en/docs/community-tools/contribute-to-mendix-docs/style-guide/product-naming-guide.md @@ -497,4 +497,4 @@ You can shorten this to "visual builder", but do not capitalize "visual builder" ### Workflow Engine -Capitalize. \ No newline at end of file +Capitalize. diff --git a/content/en/docs/community-tools/contribute-to-mendix-docs/style-guide/terminology.md b/content/en/docs/community-tools/contribute-to-mendix-docs/style-guide/terminology.md index e0a19ca333e..34c35e289ad 100644 --- a/content/en/docs/community-tools/contribute-to-mendix-docs/style-guide/terminology.md +++ b/content/en/docs/community-tools/contribute-to-mendix-docs/style-guide/terminology.md @@ -550,4 +550,4 @@ Do not capitalize. ## X-axis & Y-axis -Capitalize "X" and "Y". \ No newline at end of file +Capitalize "X" and "Y". diff --git a/content/en/docs/deployment/docker-deploy/docker-pad.md b/content/en/docs/deployment/docker-deploy/docker-pad.md index a1ff49f6784..96c03654d54 100644 --- a/content/en/docs/deployment/docker-deploy/docker-pad.md +++ b/content/en/docs/deployment/docker-deploy/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"] ``` + You must create this Dockerfile yourself and place it alongside the application files generated by the Portable App Distribution. The `COPY` commands in the example above assume that the `app`, `bin`, `etc`, and `lib` directories are in the same location as your Dockerfile. 3. Build the Docker image by using the following command: `docker build -t : -f build/docker/Dockerfile`, where: diff --git a/content/en/docs/deployment/general/pad/_index.md b/content/en/docs/deployment/general/pad/_index.md index e52b82289ef..266561d3255 100644 --- a/content/en/docs/deployment/general/pad/_index.md +++ b/content/en/docs/deployment/general/pad/_index.md @@ -59,7 +59,7 @@ To run your app locally, perform the following steps: The Mendix admin port can be used to fetch metrics and other runtime data from an app. It requires a password for security reasons. {{% /alert %}} -3. Run the app by using one of the following commands: +1. Run the app by using one of the following commands: * For Windows, run the command `\bin\start.bat` * For Windows Powershell, run the command `\bin\start.ps1` @@ -69,7 +69,6 @@ The Mendix admin port can be used to fetch metrics and other runtime data from a On Linux, if the ZIP was extracted on Windows, the +x flag is not preserved. Windows does not have the executability bit. You need to run the command `chmod +x ./bin/start` first. {{% /alert %}} - ### Deploying to a Self-Hosted Environment For more information about deploying to a self-hosted environment, refer to the following topics: diff --git a/content/en/docs/deployment/general/pad/pad-reference.md b/content/en/docs/deployment/general/pad/pad-reference.md index 486ea9b8ae7..6815d59785b 100644 --- a/content/en/docs/deployment/general/pad/pad-reference.md +++ b/content/en/docs/deployment/general/pad/pad-reference.md @@ -283,4 +283,4 @@ runtime.params { # Type: String # ClientCertificates = "" } -``` \ No newline at end of file +``` diff --git a/content/en/docs/deployment/mendix-cloud-deploy/behavior-of-app.md b/content/en/docs/deployment/mendix-cloud-deploy/behavior-of-app.md index ade2e70810e..9ae0d95ed5b 100644 --- a/content/en/docs/deployment/mendix-cloud-deploy/behavior-of-app.md +++ b/content/en/docs/deployment/mendix-cloud-deploy/behavior-of-app.md @@ -61,7 +61,6 @@ Therefore, do not assume that an established WebSocket connection will remain op * Implement robust reconnection logic to gracefully handle connectivity loss and automatically reestablish dropped connections. * For WebSocket connections, a specific client always communicates with the same application instance. However, different connections, such as those from multiple browsers or after a page refresh, may be routed to different application instances. - ## Move to Kubernetes * Only [supported Mendix versions](/releasenotes/studio-pro/lts-mts/) are able to move to Kubernetes. diff --git a/content/en/docs/deployment/on-premises-design/cloud-foundry/cloud-foundry-deploy-pad.md b/content/en/docs/deployment/on-premises-design/cloud-foundry/cloud-foundry-deploy-pad.md index 3cf0bd7373e..8a720597cc9 100644 --- a/content/en/docs/deployment/on-premises-design/cloud-foundry/cloud-foundry-deploy-pad.md +++ b/content/en/docs/deployment/on-premises-design/cloud-foundry/cloud-foundry-deploy-pad.md @@ -47,5 +47,5 @@ applications: env: ``` -5. Run the `cf push` command. -6. Verify that the Mendix app has started successfully. \ No newline at end of file +1. Run the `cf push` command. +2. Verify that the Mendix app has started successfully. diff --git a/content/en/docs/deployment/on-premises-design/linux/linux-pad.md b/content/en/docs/deployment/on-premises-design/linux/linux-pad.md index 978d9c93b80..19d37f5c862 100644 --- a/content/en/docs/deployment/on-premises-design/linux/linux-pad.md +++ b/content/en/docs/deployment/on-premises-design/linux/linux-pad.md @@ -58,8 +58,8 @@ If your application requires it, you can change the Java version on vendor as ne Your Portable App Distribution only requires a Java Runtime Environment (JRE) to run, but it is often recommended to install a full JDK as it includes the JRE and development tools. {{% /alert %}} -4. Verify that Java is correctly installed by running the following command: `java -version`. -5. Upload the Portable App Distribution .zip file to a location where your Linux server can access it by using one of the following options, depending on the location and configuration of your Linux machine. +1. Verify that Java is correctly installed by running the following command: `java -version`. +2. Upload the Portable App Distribution .zip file to a location where your Linux server can access it by using one of the following options, depending on the location and configuration of your Linux machine. * For Azure Blob Storage (often done as part of a CI/CD pipeline): `az storage blob upload --account-name --container-name --name .zip --file /build/distributions/your-app.zip --auth-mode login` @@ -77,7 +77,7 @@ Your Portable App Distribution only requires a Java Runtime Environment (JRE) to * From a public URL using `wget`: `wget https://.zip` -6. Download the .zip file onto your Linux server by using one of the following options, depending on the location and configuration of your Linux machine. +3. Download the .zip file onto your Linux server by using one of the following options, depending on the location and configuration of your Linux machine. * For Azure Blob Storage: `az storage blob download --account-name --container-name --name .zip --file /home//.zip --auth-mode login` @@ -95,8 +95,8 @@ Your Portable App Distribution only requires a Java Runtime Environment (JRE) to You can also retrieve the files using `wget`. -7. Extract the .zip file by running the following command: `unzip .zip -d `. -8. Navigate into the extracted directory and execute the start script by running the following command: +4. Extract the .zip file by running the following command: `unzip .zip -d `. +5. Navigate into the extracted directory and execute the start script by running the following command: ```text cd your-desired-directory @@ -105,7 +105,7 @@ Your Portable App Distribution only requires a Java Runtime Environment (JRE) to The `bin/start` script is a common convention for Portable App Distributions using the Default configuration. If your application uses a different configuration, start script, or command, adjust accordingly. -9. Verify that the application is running by opening the following URL in your browser: `http://:8080`. +6. Verify that the application is running by opening the following URL in your browser: `http://:8080`. `8080` is the default port. If your application is configured to run on a different port, adjust accordingly. diff --git a/content/en/docs/deployment/private-cloud/private-cloud-cluster/private-cloud-helm-charts.md b/content/en/docs/deployment/private-cloud/private-cloud-cluster/private-cloud-helm-charts.md index 30c4c161eb2..6c6fa6851a6 100644 --- a/content/en/docs/deployment/private-cloud/private-cloud-cluster/private-cloud-helm-charts.md +++ b/content/en/docs/deployment/private-cloud/private-cloud-cluster/private-cloud-helm-charts.md @@ -84,7 +84,7 @@ To install the solution, perform the following steps: Keep in mind that changing the ingress type resets the value of all fields in this tab. {{% /alert %}} -12. In the **Registry** tab, specify your network ingress settings. For more information about the available options, see [Registry Configuration](/developerportal/deploy/private-cloud-registry/). +1. In the **Registry** tab, specify your network ingress settings. For more information about the available options, see [Registry Configuration](/developerportal/deploy/private-cloud-registry/). {{< figure src="/attachments/deployment/private-cloud/private-cloud-cluster/helm-chart-wizard6.png" >}} @@ -92,16 +92,16 @@ Keep in mind that changing the ingress type resets the value of all fields in th Keep in mind that changing the registry type resets the value of all fields in this tab. {{% /alert %}} -13. Optional: In the **Proxy** tab, specify a proxy server. +1. Optional: In the **Proxy** tab, specify a proxy server. {{< figure src="/attachments/deployment/private-cloud/private-cloud-cluster/helm-chart-wizard7.png" >}} -14. Optional: If your servers use a self-signed certificate, in the **Custom TLS** tab, configure custom TLS so that the self-signed certificate is accepted. +2. Optional: If your servers use a self-signed certificate, in the **Custom TLS** tab, configure custom TLS so that the self-signed certificate is accepted. {{< figure src="/attachments/deployment/private-cloud/private-cloud-cluster/helm-chart-wizard8.png" >}} -15. Click **Generate & Download** to generate the yaml file with the configurations that you provided. -16. Run the following commands: +3. Click **Generate & Download** to generate the yaml file with the configurations that you provided. +4. Run the following commands: 1. Install the required [Custom Resource Definitions](/developerportal/deploy/private-cloud-technical-appendix-01/#custom-resources) by running `kubectl apply -f mx-privatecloud-operator-crd/crds/`. 2. Install Mendix on Kubernetes by running `helm install --createnamespace -n -f mx-privatecloud-operator-installer`. 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/marketplace/platform-supported-content/modules/snowflake/snowflake-ai-data-connector.md b/content/en/docs/marketplace/platform-supported-content/modules/snowflake/snowflake-ai-data-connector.md index 90fb17d8bac..bf44d23df86 100644 --- a/content/en/docs/marketplace/platform-supported-content/modules/snowflake/snowflake-ai-data-connector.md +++ b/content/en/docs/marketplace/platform-supported-content/modules/snowflake/snowflake-ai-data-connector.md @@ -312,8 +312,8 @@ Snowflake Cortex Analyst is now generally available. For more information, refer * Make sure that you have access to Cortex Analyst. For more information, refer to the [Snowflake Cortex Analyst documentation](https://docs.snowflake.com/en/user-guide/snowflake-cortex/cortex-analyst). * Create a semantic model, semantic model view, or inline semantic model for Cortex Analyst. For more information, refer to: - * [Creating Semantic Models for Snowflake Cortex Analyst](https://developers.snowflake.com/solution/creating-semantic-models-for-snowflakes-cortex-analyst/) - * [Using Semantic Model Views](https://docs.snowflake.com/en/user-guide/snowflake-cortex/cortex-analyst#understanding-semantic-views) + * [Creating Semantic Models for Snowflake Cortex Analyst](https://developers.snowflake.com/solution/creating-semantic-models-for-snowflakes-cortex-analyst/) + * [Using Semantic Model Views](https://docs.snowflake.com/en/user-guide/snowflake-cortex/cortex-analyst#understanding-semantic-views) * Set up one of the following supported authentication methods for Cortex Analyst: * OAUTH * KEYPAIR_JWT diff --git a/content/en/docs/marketplace/platform-supported-content/widgets/markdown-viewer.md b/content/en/docs/marketplace/platform-supported-content/widgets/markdown-viewer.md index 1bb8fdeb8eb..76da97d09f3 100644 --- a/content/en/docs/marketplace/platform-supported-content/widgets/markdown-viewer.md +++ b/content/en/docs/marketplace/platform-supported-content/widgets/markdown-viewer.md @@ -11,28 +11,28 @@ The [Markdown Viewer](https://marketplace.mendix.com/link/component/230248/) wid The widget does the following: -- Displays markdown-formatted text as rendered HTML, supporting headings, bold, italic, lists, links, images, tables, code blocks, blockquotes, and horizontal rules -- Applies typographic enhancements such as smart quotes, em dashes, en dashes, and ellipses -- Automatically converts URLs in the text to clickable links -- Shows a loading indicator while the data source is being retrieved +* Displays markdown-formatted text as rendered HTML, supporting headings, bold, italic, lists, links, images, tables, code blocks, blockquotes, and horizontal rules +* Applies typographic enhancements such as smart quotes, em dashes, en dashes, and ellipses +* Automatically converts URLs in the text to clickable links +* Shows a loading indicator while the data source is being retrieved ### Typical Use Cases This widget is often used in use cases like: -- Displaying user-authored markdown content such as knowledge base articles or notes -- Rendering formatted text stored in a database attribute -- Showing `README.md`-style documentation within a Mendix application +* Displaying user-authored markdown content such as knowledge base articles or notes +* Rendering formatted text stored in a database attribute +* Showing `README.md`-style documentation within a Mendix application ### Features This widget leverages the following features: -- Standard markdown syntax rendering, including headings, emphasis, lists, links, images, tables, code blocks, blockquotes, and horizontal rules -- Typographic replacements (smart quotes, em dashes, en dashes, ellipses) -- Automatic URL-to-link conversion (linkification) -- Offline capable -- Conditional visibility support +* Standard markdown syntax rendering, including headings, emphasis, lists, links, images, tables, code blocks, blockquotes, and horizontal rules +* Typographic replacements (smart quotes, em dashes, en dashes, ellipses) +* Automatic URL-to-link conversion (linkification) +* Offline capable +* Conditional visibility support ## Configuration @@ -47,16 +47,16 @@ Use an unlimited string data type for the **Value attribute** to avoid truncatio Optionally, you can configure the widget further: -- Navigate to the **Label** section to add a label for the widget -- Navigate to the **Conditional visibility** section to control when the widget is displayed +* Navigate to the **Label** section to add a label for the widget +* Navigate to the **Conditional visibility** section to control when the widget is displayed ## Styling The widget renders its content inside a container with the `widget-markdown` CSS class. The following default styles are applied: -- **Tables** — rendered with borders, padding, and left-aligned text. Header cells have a light gray background -- **Images** — render at a maximum of 35% of the container width by default -- **Horizontal rules** — span the full width of the container +* **Tables** — rendered with borders, padding, and left-aligned text. Header cells have a light gray background +* **Images** — render at a maximum of 35% of the container width by default +* **Horizontal rules** — span the full width of the container You can override these styles by targeting the `.widget-markdown` class in your custom SCSS or theme. @@ -64,10 +64,10 @@ You can override these styles by targeting the `.widget-markdown` class in your This widget has the following limitations: -- The widget is read-only, and does not provide editing or input capabilities -- Code blocks render as plain monospace text without syntax highlighting -- Custom HTML tags within markdown content are not supported +* The widget is read-only, and does not provide editing or input capabilities +* Code blocks render as plain monospace text without syntax highlighting +* Custom HTML tags within markdown content are not supported ## Read More -- [markdown-it](https://github.com/markdown-it/markdown-it): the markdown parsing library used by this widget +* [markdown-it](https://github.com/markdown-it/markdown-it): the markdown parsing library used by this widget diff --git a/content/en/docs/private-platform/configuration/pmp-version-control.md b/content/en/docs/private-platform/configuration/pmp-version-control.md index 9d4cca835a5..fae9b1b514a 100644 --- a/content/en/docs/private-platform/configuration/pmp-version-control.md +++ b/content/en/docs/private-platform/configuration/pmp-version-control.md @@ -225,4 +225,4 @@ Users must generate their own PAT to work with Azure DevOps by doing the followi 4. On the Microsoft login screen, input you Azure user credentials to verify and authorize the app. 5. Wait for the PAT and Azure user email to be displayed on the **Service Credentials** page in Private Mendix Platform. -{{< figure src="/attachments/private-platform/pmp-vc5.png" alt="Version Control Settings for Azure DevOps" class="no-border" >}} \ No newline at end of file +{{< figure src="/attachments/private-platform/pmp-vc5.png" alt="Version Control Settings for Azure DevOps" class="no-border" >}} diff --git a/content/en/docs/refguide/mobile/introduction-to-mobile-technologies/progressive-web-app/pwa-service-worker.md b/content/en/docs/refguide/mobile/introduction-to-mobile-technologies/progressive-web-app/pwa-service-worker.md index b444da92e20..cd69c387ae4 100644 --- a/content/en/docs/refguide/mobile/introduction-to-mobile-technologies/progressive-web-app/pwa-service-worker.md +++ b/content/en/docs/refguide/mobile/introduction-to-mobile-technologies/progressive-web-app/pwa-service-worker.md @@ -23,8 +23,8 @@ To understand how updates to your Mendix PWA are handled, you need to understand 1. **Registration** — In this step the browser downloads the service worker file. If the code contains syntax errors, registration fails and the service worker is discarded. 2. **Installation** — During this phase, the service worker typically caches static assets your PWA needs to function offline. If all assets are successfully pre-cached, the installation succeeds. If installation fails, the service worker is discarded. * Once installed: - - It becomes activated immediately if no other service worker is currently controlling the page. - - If there is already an active service worker, the new one will be installed but enters a **Waiting** state. The **Waiting** state, ensures that updates to your application are delivered smoothly and without interrupting your users' current interactions. + * It becomes activated immediately if no other service worker is currently controlling the page. + * If there is already an active service worker, the new one will be installed but enters a **Waiting** state. The **Waiting** state, ensures that updates to your application are delivered smoothly and without interrupting your users' current interactions. 3. **Activation** — Once installed, the service worker enters the **Activating** state, and then becomes **Activated**. An **Activated** service worker takes control of pages within its scope (meaning it is ready to intercept requests). 4. **Redundant** — A service worker can become redundant if a new version replaces it, or if it fails to install. @@ -112,7 +112,7 @@ export async function JS_ListenForPWAUpdates() { } ``` -2. **Create a JavaScript Action to activate the new service worker** — When the user confirms the update, use the Client API `skipWaiting()` to activate the new service worker: +1. **Create a JavaScript Action to activate the new service worker** — When the user confirms the update, use the Client API `skipWaiting()` to activate the new service worker: ```javascript import { skipWaiting } from "mx-api/pwa"; @@ -134,5 +134,5 @@ export async function JS_ActivatePWAUpdate() { } ``` -3. **Notifying users** — To not interrupt users during critical operations, Mendix recommends notifying them when an update becomes available. For example, you can implement a nanoflow that prompts users to confirm the update when a new version is detected. If the user confirms, the nanoflow can call `JS_ActivatePWAUpdate` to update. This nanoflow can be passed as a parameter to `JS_ListenForPWAUpdates`, which will invoke it when an update is detected. -4. **Reload the Application** — Trigger a reload, or ask users to reload all open tabs or windows to ensure the application loads with the newly activated service worker. +1. **Notifying users** — To not interrupt users during critical operations, Mendix recommends notifying them when an update becomes available. For example, you can implement a nanoflow that prompts users to confirm the update when a new version is detected. If the user confirms, the nanoflow can call `JS_ActivatePWAUpdate` to update. This nanoflow can be passed as a parameter to `JS_ListenForPWAUpdates`, which will invoke it when an update is detected. +2. **Reload the Application** — Trigger a reload, or ask users to reload all open tabs or windows to ensure the application loads with the newly activated service worker. diff --git a/content/en/docs/refguide/mobile/pwa-wrapper/build-pwa-wrapper-apps.md b/content/en/docs/refguide/mobile/pwa-wrapper/build-pwa-wrapper-apps.md index d9aed6be747..1991e90b007 100644 --- a/content/en/docs/refguide/mobile/pwa-wrapper/build-pwa-wrapper-apps.md +++ b/content/en/docs/refguide/mobile/pwa-wrapper/build-pwa-wrapper-apps.md @@ -126,9 +126,9 @@ On Windows, PWA Wrapper can prepare the iOS bundle but not complete the final si On Windows, use the same steps 1 through 7 as in [Steps for iOS on macOS](#steps-on-mac), then continue as follows: -8. Open the output folder and locate the portable signing ZIP. -9. Copy the portable signing ZIP to a Mac. -10. Complete the final signing step on macOS as described in [Complete Signing on macOS](/refguide/mobile/pwa-wrapper/sign-pwa-wrapper-apps/#complete-signing-on-macos) in *Sign PWA Wrapper Apps*. +1. Open the output folder and locate the portable signing ZIP. +2. Copy the portable signing ZIP to a Mac. +3. Complete the final signing step on macOS as described in [Complete Signing on macOS](/refguide/mobile/pwa-wrapper/sign-pwa-wrapper-apps/#complete-signing-on-macos) in *Sign PWA Wrapper Apps*. ### iOS Notes diff --git a/content/en/docs/refguide/mobile/pwa-wrapper/pwa-wrapper-limitations.md b/content/en/docs/refguide/mobile/pwa-wrapper/pwa-wrapper-limitations.md index 82e04d15782..460e1dd3d25 100644 --- a/content/en/docs/refguide/mobile/pwa-wrapper/pwa-wrapper-limitations.md +++ b/content/en/docs/refguide/mobile/pwa-wrapper/pwa-wrapper-limitations.md @@ -52,4 +52,4 @@ Keep the following signing-related constraints in mind: * Development and distribution signing assets are not interchangeable * A `.cer` file by itself is not enough for PWA Wrapper iOS signing; you need the exported `.p12` file and its passphrase -For the full signing workflow and asset requirements, see [Sign PWA Wrapper Apps](/refguide/mobile/pwa-wrapper/sign-pwa-wrapper-apps/). \ No newline at end of file +For the full signing workflow and asset requirements, see [Sign PWA Wrapper Apps](/refguide/mobile/pwa-wrapper/sign-pwa-wrapper-apps/). diff --git a/content/en/docs/refguide/runtime/custom-settings/_index.md b/content/en/docs/refguide/runtime/custom-settings/_index.md index 0052bfc8551..4f0f6792a2a 100644 --- a/content/en/docs/refguide/runtime/custom-settings/_index.md +++ b/content/en/docs/refguide/runtime/custom-settings/_index.md @@ -296,7 +296,7 @@ The settings below influence the behavior of the Mendix web client. ## Metrics Settings{#metrics-settings} -The settings below configure metrics through [micrometer](https://micrometer.io/docs). See [Metrics](/refguide/metrics/) for more information and the specification of the settings format. +The settings below configure metrics through [micrometer](https://micrometer.io/docs). See [Metrics](/refguide/metrics/) for more information and the specification of the settings format. | Name | Description | Default Value | | --- | --- | --- | @@ -321,9 +321,9 @@ These settings can be set either as JVM properties or as custom Runtime settings | --- | --- | --- | | http.proxyHost | Defines the hostname of the HTTP proxy server. | | | http.proxyPort | Defines the port number of the HTTP proxy server. | | -| http.proxyUser | Defines the user of the HTTP proxy server. | | -| http.proxyPassword | Defines the password of the HTTP proxy server. | | -| http.nonProxyHosts | See below | | +| http.proxyUser | Defines the user of the HTTP proxy server. | | +| http.proxyPassword | Defines the password of the HTTP proxy server. | | +| http.nonProxyHosts | See below | | {{% alert color="info" %}} The `http.` part of the names of these settings does not imply anything about whether the `HTTP` or `HTTPS` protocol is used - it is just the name of the setting. @@ -341,9 +341,9 @@ These settings have to be set as JVM properties, not as custom runtime settings. | --- | --- | --- | | https.proxyHost | Defines the hostname of the HTTPS proxy server. | | | https.proxyPort | Defines the port number of the HTTPS proxy server. | | -| https.proxyUser | Defines the user of the HTTPS proxy server. | | -| https.proxyPassword | Defines the password of the HTTPS proxy server. | | -| http.nonProxyHosts | See below | | +| https.proxyUser | Defines the user of the HTTPS proxy server. | | +| https.proxyPassword | Defines the password of the HTTPS proxy server. | | +| http.nonProxyHosts | See below | | {{% alert color="info" %}} The `https.` part of the names of these settings does not imply anything about whether the `HTTP` or `HTTPS` protocol is used - it is just the name of the setting. @@ -361,4 +361,3 @@ This setting applies to both http(s) connections and the license server: * Http(s) connections – the patterns may start or end with a '*' for wildcards * License server – the runtime ignores wildcards - diff --git a/content/en/docs/refguide10/mobile/pwa-wrapper/build-pwa-wrapper-apps.md b/content/en/docs/refguide10/mobile/pwa-wrapper/build-pwa-wrapper-apps.md index 802a2ca1d19..db9a4924fec 100644 --- a/content/en/docs/refguide10/mobile/pwa-wrapper/build-pwa-wrapper-apps.md +++ b/content/en/docs/refguide10/mobile/pwa-wrapper/build-pwa-wrapper-apps.md @@ -126,9 +126,9 @@ On Windows, PWA Wrapper can prepare the iOS bundle but not complete the final si On Windows, use the same steps 1 through 7 as in [Steps for iOS on macOS](#steps-on-mac), then continue as follows: -8. Open the output folder and locate the portable signing ZIP. -9. Copy the portable signing ZIP to a Mac. -10. Complete the final signing step on macOS as described in [Complete Signing on macOS](/refguide/mobile/pwa-wrapper/sign-pwa-wrapper-apps/#complete-signing-on-macos) in *Sign PWA Wrapper Apps*. +1. Open the output folder and locate the portable signing ZIP. +2. Copy the portable signing ZIP to a Mac. +3. Complete the final signing step on macOS as described in [Complete Signing on macOS](/refguide/mobile/pwa-wrapper/sign-pwa-wrapper-apps/#complete-signing-on-macos) in *Sign PWA Wrapper Apps*. ### iOS Notes diff --git a/content/en/docs/refguide10/mobile/pwa-wrapper/pwa-wrapper-limitations.md b/content/en/docs/refguide10/mobile/pwa-wrapper/pwa-wrapper-limitations.md index 2eda75c8247..047c11ddbd2 100644 --- a/content/en/docs/refguide10/mobile/pwa-wrapper/pwa-wrapper-limitations.md +++ b/content/en/docs/refguide10/mobile/pwa-wrapper/pwa-wrapper-limitations.md @@ -52,4 +52,4 @@ Keep the following signing-related constraints in mind: * Development and distribution signing assets are not interchangeable * A `.cer` file by itself is not enough for PWA Wrapper iOS signing; you need the exported `.p12` file and its passphrase -For the full signing workflow and asset requirements, see [Sign PWA Wrapper Apps](/refguide/mobile/pwa-wrapper/sign-pwa-wrapper-apps/). \ No newline at end of file +For the full signing workflow and asset requirements, see [Sign PWA Wrapper Apps](/refguide/mobile/pwa-wrapper/sign-pwa-wrapper-apps/). diff --git a/content/en/docs/refguide10/runtime/custom-settings/_index.md b/content/en/docs/refguide10/runtime/custom-settings/_index.md index f4f74783be0..f13f3079364 100644 --- a/content/en/docs/refguide10/runtime/custom-settings/_index.md +++ b/content/en/docs/refguide10/runtime/custom-settings/_index.md @@ -289,7 +289,7 @@ The settings below influence the behavior of the Mendix web client. ## Metrics Settings{#metrics-settings} -The settings below configure metrics through [micrometer](https://micrometer.io/docs). See [Metrics](/refguide10/metrics/) for more information and the specification of the settings format. +The settings below configure metrics through [micrometer](https://micrometer.io/docs). See [Metrics](/refguide10/metrics/) for more information and the specification of the settings format. | Name | Description | Default Value | | --- | --- | --- | @@ -314,8 +314,8 @@ These settings can be set either as JVM properties or as custom Runtime settings | --- | --- | --- | | http.proxyHost | Defines the hostname of the HTTP proxy server. | | | http.proxyPort | Defines the port number of the HTTP proxy server. | | -| http.proxyUser | Defines the user of the HTTP proxy server. | | -| http.proxyPassword | Defines the password of the HTTP proxy server. | | +| http.proxyUser | Defines the user of the HTTP proxy server. | | +| http.proxyPassword | Defines the password of the HTTP proxy server. | | {{% alert color="info" %}} The `http.` part of the names of these settings does not imply anything about whether the `HTTP` or `HTTPS` protocol is used - it is just the name of the setting. @@ -333,9 +333,9 @@ These settings have to be set as JVM properties, not as custom runtime settings. | --- | --- | --- | | https.proxyHost | Defines the hostname of the HTTPS proxy server. | | | https.proxyPort | Defines the port number of the HTTPS proxy server. | | -| https.proxyUser | Defines the user of the HTTPS proxy server. | | -| https.proxyPassword | Defines the password of the HTTPS proxy server. | | -| http.nonProxyHosts | Defines a list of hosts that should be reached directly, bypassing the proxy. This is a list of host names separated by '|'. | | +| https.proxyUser | Defines the user of the HTTPS proxy server. | | +| https.proxyPassword | Defines the password of the HTTPS proxy server. | | +| http.nonProxyHosts | Defines a list of hosts that should be reached directly, bypassing the proxy. This is a list of host names separated by '|'. | | {{% alert color="info" %}} The `https.` part of the names of these settings does not imply anything about whether the `HTTP` or `HTTPS` protocol is used - it is just the name of the setting. diff --git a/content/en/docs/releasenotes/mobile/native-template/nt-studio-pro-10-parent/nt-14-rn.md b/content/en/docs/releasenotes/mobile/native-template/nt-studio-pro-10-parent/nt-14-rn.md index 97036057571..17b75bcce94 100644 --- a/content/en/docs/releasenotes/mobile/native-template/nt-studio-pro-10-parent/nt-14-rn.md +++ b/content/en/docs/releasenotes/mobile/native-template/nt-studio-pro-10-parent/nt-14-rn.md @@ -11,7 +11,7 @@ description: "Native Template 14" ### Improvements -- We updated `@mendix/native` to v9.3.1, strengthening Android cookie encryption by migrating from `AES/CBC/PKCS7Padding` to `AES/GCM/NoPadding`. +* We updated `@mendix/native` to v9.3.1, strengthening Android cookie encryption by migrating from `AES/CBC/PKCS7Padding` to `AES/GCM/NoPadding`. ## 14.1.14 {#1424} diff --git a/content/en/docs/releasenotes/mobile/native-template/nt-studio-pro-11-parent/nt-18-rn.md b/content/en/docs/releasenotes/mobile/native-template/nt-studio-pro-11-parent/nt-18-rn.md index bf964f76edb..972a6a4c449 100644 --- a/content/en/docs/releasenotes/mobile/native-template/nt-studio-pro-11-parent/nt-18-rn.md +++ b/content/en/docs/releasenotes/mobile/native-template/nt-studio-pro-11-parent/nt-18-rn.md @@ -11,9 +11,9 @@ description: "Native Template 18" ### Improvements -- We updated `.gitignore` to more precisely exclude `node_modules` directories in specific locations. -- We added a new dependency for `@shopify/flash-list` to support the migration from FlatList to FlashList. +* We updated `.gitignore` to more precisely exclude `node_modules` directories in specific locations. +* We added a new dependency for `@shopify/flash-list` to support the migration from FlatList to FlashList. ### Fixes -- We fixed iOS builds which chrased when building with Xcode 26. +* We fixed iOS builds which chrased when building with Xcode 26. diff --git a/content/en/docs/releasenotes/mobile/native-template/nt-studio-pro-11-parent/nt-19-rn.md b/content/en/docs/releasenotes/mobile/native-template/nt-studio-pro-11-parent/nt-19-rn.md index 0b69348022c..e97ff0384c8 100644 --- a/content/en/docs/releasenotes/mobile/native-template/nt-studio-pro-11-parent/nt-19-rn.md +++ b/content/en/docs/releasenotes/mobile/native-template/nt-studio-pro-11-parent/nt-19-rn.md @@ -11,7 +11,7 @@ description: "Native Template 19" ### Improvements -- We updated `mendix-native` to v0.4.1, strengthening Android cookie encryption by migrating from `AES/CBC/PKCS7Padding` to `AES/GCM/NoPadding`. +* We updated `mendix-native` to v0.4.1, strengthening Android cookie encryption by migrating from `AES/CBC/PKCS7Padding` to `AES/GCM/NoPadding`. ## 19.0.1 {#1901} @@ -19,7 +19,7 @@ description: "Native Template 19" ### Fixes -- We fixed an iOS build issue introduced by the React Native `0.83.4` upgrade by removing the incorrect `override` keyword from AppDelegate application lifecycle methods. +* We fixed an iOS build issue introduced by the React Native `0.83.4` upgrade by removing the incorrect `override` keyword from AppDelegate application lifecycle methods. ## 19.0.0 {#1900} diff --git a/content/en/docs/releasenotes/private-platform/2.6.md b/content/en/docs/releasenotes/private-platform/2.6.md index 1d6b97e8464..584670a23e2 100644 --- a/content/en/docs/releasenotes/private-platform/2.6.md +++ b/content/en/docs/releasenotes/private-platform/2.6.md @@ -88,4 +88,4 @@ Support for the functionalities will be added in future releases of Private Mend ##### Character Limit for Commit Messages -All current releases of Private Mendix Platform have a limit of 200 characters for commit messages. This issue will be fixed in a future release. \ No newline at end of file +All current releases of Private Mendix Platform have a limit of 200 characters for commit messages. This issue will be fixed in a future release. diff --git a/content/en/docs/releasenotes/studio-pro/10/10.24.md b/content/en/docs/releasenotes/studio-pro/10/10.24.md index 182a99dd799..fa1965d5cf8 100644 --- a/content/en/docs/releasenotes/studio-pro/10/10.24.md +++ b/content/en/docs/releasenotes/studio-pro/10/10.24.md @@ -24,17 +24,17 @@ Portable App Distribution revolutionizes server deployments and simplifies local ### Improvements -- We added a **Refresh schema** button to the mapping editor toolbar. This button appears when the mapping is out of sync with its underlying schema, allowing you to update the mapping elements to match the current schema directly from the editor. -- We upgraded the BouncyCastle dependency to version 1.84. (Tickets 276629, 276631) +* We added a **Refresh schema** button to the mapping editor toolbar. This button appears when the mapping is out of sync with its underlying schema, allowing you to update the mapping elements to match the current schema directly from the editor. +* We upgraded the BouncyCastle dependency to version 1.84. (Tickets 276629, 276631) ### Fixes -- We fixed an issue where saving changes in the **Select Elements** dialog of an XML import mapping incorrectly allowed saving an invalid selection where a parent element was checked but its required child element was not, without showing the expected error "Element '…' cannot be checked without a checked child element." (Ticket 273820) -- We fixed an issue in the **Select Elements** dialog of an XML export mapping where clicking OK on a checked parent element whose required child elements had not been expanded caused the error "Element '…' cannot be checked without a checked child element." Studio Pro now automatically checks required child elements of unexpanded parent nodes before saving. (Ticket 274683) -- We added an additional fix for cases where an external keyboard would not traverse properly through elements marked as accessible on mobile devices. -- We fixed a runtime exception in Published OData when publishing an association to an object that is inaccessible due to OData security constraints. -- We fixed a runtime error in OData search queries for varchar attribute with a limited column length and a search string longer than that limit. -- We fixed an issue in the JavaScript Action Editor where multiline import statements were not parsed correctly. +* We fixed an issue where saving changes in the **Select Elements** dialog of an XML import mapping incorrectly allowed saving an invalid selection where a parent element was checked but its required child element was not, without showing the expected error "Element '…' cannot be checked without a checked child element." (Ticket 273820) +* We fixed an issue in the **Select Elements** dialog of an XML export mapping where clicking OK on a checked parent element whose required child elements had not been expanded caused the error "Element '…' cannot be checked without a checked child element." Studio Pro now automatically checks required child elements of unexpanded parent nodes before saving. (Ticket 274683) +* We added an additional fix for cases where an external keyboard would not traverse properly through elements marked as accessible on mobile devices. +* We fixed a runtime exception in Published OData when publishing an association to an object that is inaccessible due to OData security constraints. +* We fixed a runtime error in OData search queries for varchar attribute with a limited column length and a search string longer than that limit. +* We fixed an issue in the JavaScript Action Editor where multiline import statements were not parsed correctly. ## 10.24.18 {#102418} @@ -44,13 +44,13 @@ Portable App Distribution revolutionizes server deployments and simplifies local ### Improvements -- We improved performance when Studio Pro exports pages and layouts for the React client during deployment. Apps with many pages, layouts, or snippet calls now deploy significantly faster. +* We improved performance when Studio Pro exports pages and layouts for the React client during deployment. Apps with many pages, layouts, or snippet calls now deploy significantly faster. ### Fixes -- We fixed an issue where offline data was lost when upgrading a native mobile app from 10.18 → 10.24+ directly, or from 10.18 → 10.19–10.23 → 10.24+. The database is now automatically migrated from legacy storage paths during upgrade. (Ticket 274811) -- We fixed an issue where an app could reject valid localized dates for custom date patterns that use month names. This affected patterns with abbreviated month names such as `dd MMM yyyy` and standalone abbreviated month names such as `dd LLL yyyy`, so values like the Dutch `16 mrt 2027 10:02` could be treated as invalid. -- We fixed an issue where MxBuild incorrectly reported that the modern web client bundler stopped unexpectedly, while the React client bundler completed normally without errors. +* We fixed an issue where offline data was lost when upgrading a native mobile app from 10.18 → 10.24+ directly, or from 10.18 → 10.19–10.23 → 10.24+. The database is now automatically migrated from legacy storage paths during upgrade. (Ticket 274811) +* We fixed an issue where an app could reject valid localized dates for custom date patterns that use month names. This affected patterns with abbreviated month names such as `dd MMM yyyy` and standalone abbreviated month names such as `dd LLL yyyy`, so values like the Dutch `16 mrt 2027 10:02` could be treated as invalid. +* We fixed an issue where MxBuild incorrectly reported that the modern web client bundler stopped unexpectedly, while the React client bundler completed normally without errors. ## 10.24.17 {#102417} @@ -60,10 +60,10 @@ Portable App Distribution revolutionizes server deployments and simplifies local ### New Features -- We added a new runtime setting `FileStorage.S3.DisableChunkedEncoding` to allow disabling chunked encoding for S3 storage. (Tickets 274327, 272789) -- We added support for strict mode in offline apps (PWA and Native Mobile). Though be aware that switching strict mode on for existing offline apps, it may cause problems for existing apps that still call the old API (`retrieve_by_xpath`) in full synchronization as `retrieve_by_xpath` is not available in strict mode. -- When Studio Pro is uninstalled, residual files created by Studio Pro are now also removed during the uninstall process. -- We added support for XPath constraints in nanoflow database retrieves to follow associations from a variable, so comparisons like `$var/Association = $var` now work. +* We added a new runtime setting `FileStorage.S3.DisableChunkedEncoding` to allow disabling chunked encoding for S3 storage. (Tickets 274327, 272789) +* We added support for strict mode in offline apps (PWA and Native Mobile). Though be aware that switching strict mode on for existing offline apps, it may cause problems for existing apps that still call the old API (`retrieve_by_xpath`) in full synchronization as `retrieve_by_xpath` is not available in strict mode. +* When Studio Pro is uninstalled, residual files created by Studio Pro are now also removed during the uninstall process. +* We added support for XPath constraints in nanoflow database retrieves to follow associations from a variable, so comparisons like `$var/Association = $var` now work. ### Improvements @@ -73,53 +73,53 @@ We changed how Studio Pro stores Marketplace identity data for widgets. This dat #### Other Improvements -- We now cleanup pending `MendixRuntime-UpdateScheduledEvent` and `MendixRuntime-DeleteScheduledEvent` system tasks before synchronizing scheduled events. (Tickets 261783, 268157, 268325, 268970, 269591, 270061, 270125, 271453, 272736, 273833, 273982) -- We improved the performance of opening the entity selector dialog box. (Ticket 270854) -- We improved the **Collect Support Information** feature: - * The **Collect Support Information** progress dialog box is now cancellable. - * We made the **Collect Support Information** feature available to macOS users. - * We added useful information to aid our support team in diagnosing issues, such as: - * The length of the current session. - * The size of the app. - * Number of modules. - * Total document count and document type breakdown. - * If the project directory has been excluded from Windows Defender Antivirus. -- We updated the .NET runtime version installed with Studio Pro to .NET 10.0.3. -- We no longer create ProcessedTask entries for the `MendixRuntime-UpdateScheduledEvent` and `MendixRuntime-DeleteScheduledEvent` system tasks. -- We changed the level of log messages on the SystemTask log node to debug. For non-development deployments this log node was set to info, which was causing too many messages. -- We changed how popups are initially rendered in the React client. They will now not be available to UI testing frameworks until they are actually ready to be used. +* We now cleanup pending `MendixRuntime-UpdateScheduledEvent` and `MendixRuntime-DeleteScheduledEvent` system tasks before synchronizing scheduled events. (Tickets 261783, 268157, 268325, 268970, 269591, 270061, 270125, 271453, 272736, 273833, 273982) +* We improved the performance of opening the entity selector dialog box. (Ticket 270854) +* We improved the **Collect Support Information** feature: + * The **Collect Support Information** progress dialog box is now cancellable. + * We made the **Collect Support Information** feature available to macOS users. + * We added useful information to aid our support team in diagnosing issues, such as: + * The length of the current session. + * The size of the app. + * Number of modules. + * Total document count and document type breakdown. + * If the project directory has been excluded from Windows Defender Antivirus. +* We updated the .NET runtime version installed with Studio Pro to .NET 10.0.3. +* We no longer create ProcessedTask entries for the `MendixRuntime-UpdateScheduledEvent` and `MendixRuntime-DeleteScheduledEvent` system tasks. +* We changed the level of log messages on the SystemTask log node to debug. For non-development deployments this log node was set to info, which was causing too many messages. +* We changed how popups are initially rendered in the React client. They will now not be available to UI testing frameworks until they are actually ready to be used. ### Fixes -- We fixed an issue where tasks scheduled from a microflow would execute before the microflow ends. Activities that are meant to be executed in a taskqueue should always be picked up and executed after the microflow has fully completed. (Ticket 222845) -- We fixed an issue where the select all for data grid 2 over multiple pages did not work correctly when configured with a view entity. (Ticket 263928) -- We fixed an issue with strict mode when using the rollback/commit action on a page while also using an entity on a layout. (Tickets 265794, 269314, 270867) -- We fixed an error in offline synchronization when objects with sync mode set to **Never** are selectively synced after a full synchronization. (Ticket 266442) -- We fixed an issue where changing the queue parallelism through a microflow constant was not working correctly for cluster-wide queues. (Ticket 267097) -- We have resolved an issue where a Mendix app would crash if hoisted inside of a directory with `node_modules` that contain conflicting versions of packages. (Ticket 268413) -- We fixed an issue where unsupported page variables could be selected for conditional visibility or editability. A consistency error is now raised when such a variable is used. (Ticket 269180) -- We fixed an issue where an incorrect runtime warning was thrown for missing parameters during database retrieval with an XPath constraint, even though those parameters were omitted from the client request because they were empty. (Ticket 269590, Ticket 269780) -- We fixed an issue where an OQL with a `UNION` of more than two `NULL` and non-`NULL` expressions could fail. For example, a `UNION` query of three `SELECT`s with two `NULL`s and a numeric value or object ID no longer fails in PostgreSQL. (Ticket 273187) -- We fixed an issue where snippet variables were not working properly in conditional settings in snippets. (Ticket 273971) -- We fixed an issue where filtering for objects using a constraint like `[not(association)]` in offline apps incorrectly returned no results. (Ticket 274157) -- We now ensure all columns in all branches of the top level `UNION` in an OQL query have a name or alias to avoid issues with databases that require them, like SQL Server. -- We fixed an issue where the automatic update of conditional settings was not triggered correctly when using invalid local variables. -- We added a consistency error for invalid conditional settings at top-level widgets. -- We fixed an issue where using the Tab key in the multiline text area would insert a `\t` character into text inputs on macOS. -- We fixed an issue with navigation, when the **Clear history** option is enabled in the **Show page** activity. -- We fixed an issue with the dropdown widget not respecting the SafeArea on Android devices OS 13+. -- We fixed an issue on iOS where specific scenarios of using custom styled widgets inside containers would not show the desired styling. -- We fixed an issue where an Oops dialog appeared when re-selecting a modified JSON Structure in an import mapping. This happened after updating the JSON Structure's content and then re-opening the **Select Elements** dialog to select the same structure again. -- We fixed an issue where a queued task that had become incompatible was not removed from the queue and would remain stuck in **Running** status. -- We fixed an issue where synchronization would cause a scheduled event to be executed multiple times. -- We fixed an issue in the React client where popups would sometimes appear at the bottom of the screen instead of being centered. -- We fixed an issue where an Oops dialog appeared when copying button widgets with parameter arguments to page templates or building blocks, and when creating page templates or building blocks from pages or widgets containing such buttons. +* We fixed an issue where tasks scheduled from a microflow would execute before the microflow ends. Activities that are meant to be executed in a taskqueue should always be picked up and executed after the microflow has fully completed. (Ticket 222845) +* We fixed an issue where the select all for data grid 2 over multiple pages did not work correctly when configured with a view entity. (Ticket 263928) +* We fixed an issue with strict mode when using the rollback/commit action on a page while also using an entity on a layout. (Tickets 265794, 269314, 270867) +* We fixed an error in offline synchronization when objects with sync mode set to **Never** are selectively synced after a full synchronization. (Ticket 266442) +* We fixed an issue where changing the queue parallelism through a microflow constant was not working correctly for cluster-wide queues. (Ticket 267097) +* We have resolved an issue where a Mendix app would crash if hoisted inside of a directory with `node_modules` that contain conflicting versions of packages. (Ticket 268413) +* We fixed an issue where unsupported page variables could be selected for conditional visibility or editability. A consistency error is now raised when such a variable is used. (Ticket 269180) +* We fixed an issue where an incorrect runtime warning was thrown for missing parameters during database retrieval with an XPath constraint, even though those parameters were omitted from the client request because they were empty. (Ticket 269590, Ticket 269780) +* We fixed an issue where an OQL with a `UNION` of more than two `NULL` and non-`NULL` expressions could fail. For example, a `UNION` query of three `SELECT`s with two `NULL`s and a numeric value or object ID no longer fails in PostgreSQL. (Ticket 273187) +* We fixed an issue where snippet variables were not working properly in conditional settings in snippets. (Ticket 273971) +* We fixed an issue where filtering for objects using a constraint like `[not(association)]` in offline apps incorrectly returned no results. (Ticket 274157) +* We now ensure all columns in all branches of the top level `UNION` in an OQL query have a name or alias to avoid issues with databases that require them, like SQL Server. +* We fixed an issue where the automatic update of conditional settings was not triggered correctly when using invalid local variables. +* We added a consistency error for invalid conditional settings at top-level widgets. +* We fixed an issue where using the Tab key in the multiline text area would insert a `\t` character into text inputs on macOS. +* We fixed an issue with navigation, when the **Clear history** option is enabled in the **Show page** activity. +* We fixed an issue with the dropdown widget not respecting the SafeArea on Android devices OS 13+. +* We fixed an issue on iOS where specific scenarios of using custom styled widgets inside containers would not show the desired styling. +* We fixed an issue where an Oops dialog appeared when re-selecting a modified JSON Structure in an import mapping. This happened after updating the JSON Structure's content and then re-opening the **Select Elements** dialog to select the same structure again. +* We fixed an issue where a queued task that had become incompatible was not removed from the queue and would remain stuck in **Running** status. +* We fixed an issue where synchronization would cause a scheduled event to be executed multiple times. +* We fixed an issue in the React client where popups would sometimes appear at the bottom of the screen instead of being centered. +* We fixed an issue where an Oops dialog appeared when copying button widgets with parameter arguments to page templates or building blocks, and when creating page templates or building blocks from pages or widgets containing such buttons. ### Deprecations -- From July 6, 2026, we will drop support for the following database versions that are no longer supported by the vendors: - - PostgreSQL 13 - - MariaDB 10.6 +* From July 6, 2026, we will drop support for the following database versions that are no longer supported by the vendors: + * PostgreSQL 13 + * MariaDB 10.6 ## 10.24.16 {#102416} diff --git a/content/en/docs/releasenotes/studio-pro/11/11.10.md b/content/en/docs/releasenotes/studio-pro/11/11.10.md index 70d94c75e56..45cb83e7859 100644 --- a/content/en/docs/releasenotes/studio-pro/11/11.10.md +++ b/content/en/docs/releasenotes/studio-pro/11/11.10.md @@ -18,99 +18,99 @@ weight: 90 #### New Maia Features -- We introduced a new Maia MCP Client Settings editor to make configuring and managing MCP Client settings easier. -- Maia's capabilities can now be exposed as an MCP server, which can be enabled in the Maia preferences. This allows external agentic coding tools like Claude Code or Copilot to make modifications to your Mendix application, with changes reflected directly in Studio Pro. -- Maia can now fetch and interpret static web content such as external documentation, JSON specifications, and other publicly available documents. Note that it does not support content requiring authentication, dynamic web pages, or non-text formats. -- Maia can organize documents (excluding pages) into folders, following your existing folder structure, or using standard Mendix best practices. -- Maia can now generate new JavaScript actions, add new parameters to existing JavaScript actions, and create or update the JavaScript file associated with a JavaScript action. -- Maia can now generate and configure [Multi-user task](/refguide/multi-user-task/) in workflows. +* We introduced a new Maia MCP Client Settings editor to make configuring and managing MCP Client settings easier. +* Maia's capabilities can now be exposed as an MCP server, which can be enabled in the Maia preferences. This allows external agentic coding tools like Claude Code or Copilot to make modifications to your Mendix application, with changes reflected directly in Studio Pro. +* Maia can now fetch and interpret static web content such as external documentation, JSON specifications, and other publicly available documents. Note that it does not support content requiring authentication, dynamic web pages, or non-text formats. +* Maia can organize documents (excluding pages) into folders, following your existing folder structure, or using standard Mendix best practices. +* Maia can now generate new JavaScript actions, add new parameters to existing JavaScript actions, and create or update the JavaScript file associated with a JavaScript action. +* Maia can now generate and configure [Multi-user task](/refguide/multi-user-task/) in workflows. #### Other New Features -- We introduced Update Assistant (Beta) as a bottom panel in Studio Pro, where you can check Java action deprecations in your app. -- We implemented a new function `DATEPARSE` in OQL. For more information, see [OQL Expression Syntax](/refguide/oql-expression-syntax/#dateparse-function). -- We added support for the interrupting behavior on the workflow notification event sub-process **Start** event. When configured as interrupting, the event sub-process interrupts 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. -- We added a Show button in the element selector. Clicking it opens the selected element. -- We added the optional `selectedElementId` in the select methods of the element selector. If passed in, it will highlight the node with the corresponding id in the tree. -- We added the `http.nonProxyHosts` runtime configuration setting to specify hosts for which the runtime should not use a proxy. -- We added the ability to revert a commit from the history pane. You can now right-click a commit and select 'Revert Commit' to reverse the changes introduced by that specific commit. -- We added a new runtime setting `FileStorage.S3.DisableChunkedEncoding` to allow disabling chunked encoding for S3 storage. (Tickets 274327, 272789) -- We added a new Java API to create spans for tracing. The API is accessible via `com.mendix.core.Core.tracing()`. -- The Mendix runtime now responds to Cross-Origin Resource Sharing (CORS) preflight (`OPTIONS`) requests for client-facing endpoints. The responses include the custom headers configured in the runtime settings, allowing you to set up CORS for your application. +* We introduced Update Assistant (Beta) as a bottom panel in Studio Pro, where you can check Java action deprecations in your app. +* We implemented a new function `DATEPARSE` in OQL. For more information, see [OQL Expression Syntax](/refguide/oql-expression-syntax/#dateparse-function). +* We added support for the interrupting behavior on the workflow notification event sub-process **Start** event. When configured as interrupting, the event sub-process interrupts 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. +* We added a Show button in the element selector. Clicking it opens the selected element. +* We added the optional `selectedElementId` in the select methods of the element selector. If passed in, it will highlight the node with the corresponding id in the tree. +* We added the `http.nonProxyHosts` runtime configuration setting to specify hosts for which the runtime should not use a proxy. +* We added the ability to revert a commit from the history pane. You can now right-click a commit and select 'Revert Commit' to reverse the changes introduced by that specific commit. +* We added a new runtime setting `FileStorage.S3.DisableChunkedEncoding` to allow disabling chunked encoding for S3 storage. (Tickets 274327, 272789) +* We added a new Java API to create spans for tracing. The API is accessible via `com.mendix.core.Core.tracing()`. +* The Mendix runtime now responds to Cross-Origin Resource Sharing (CORS) preflight (`OPTIONS`) requests for client-facing endpoints. The responses include the custom headers configured in the runtime settings, allowing you to set up CORS for your application. ### Improvements -- We introduced a stricter requirements check on the server synchronization API's for offline apps. This prevents entities from synchronizing changes when they are configured with the synchronization modes Online, Nothing, or Never. To allow older offline clients having an All Objects or By XPath synchronization mode to still synchronize while the new app version has the entity configured with an Online, Nothing, or Never synchronization mode, we added a Compatibility mode checkbox. -- Pluggable widgets can now select any file or image entity on the page when configuring a file or image property. Previously this was limited to just the immediate surrounding data view. -- We have added a text indicator to the comparison pane toolbar showing information about what is being compared. -- We have made improvements to the "Collect Support Information" feature: - * The "Collect Support Information" progress dialog is now cancellable. - * We made the "Collect Support Information" feature available to macOS users. - * We have added useful information to aid our support team in diagnosing issues, such as: - * The length of the current session. - * The size of the app. - * Number of modules. - * Total document count and document type breakdown. - * If the project directory has been excluded from Windows Defender Antivirus. -- We fixed an issue where OQL‑based view entities could use an outdated ID column alias, leading to mismatches with Domain Model association names. A new App conversion step now detects these mismatches when opening the App and updates the column alias in OQL accordingly. -- We fixed an issue where copying a ViewEntity together with its associated Entity failed to include the connecting association. This association is now correctly copied whenever both elements are selected. Additionally, copying and pasting a ViewEntity now duplicates any linked in‑module or cross‑module Associations, assigning them new names and automatically updating their OQL references. -- Maia answers now also include sources from the Mendix Support Knowledge Base. -- We improved the Maia Chat experience with several UI enhancements. -- We upgraded to React 19.2 and React Native 0.83, bringing the latest performance improvements and features from both ecosystems. These updates provide enhanced rendering performance, improved native module integration, and a more modern foundation for building your low-code applications. -- We improved how Studio Pro stores the configuration microflow and the headers microflow in consumed OData services. These used to be stored in the same field. Now they are stored in two separate fields. When you switch from using a headers microflow to using a configuration microflow, Studio Pro will ask if you want to clear the headers microflow and vice versa. -- We now delete sessions when the associated user is deleted. -- We added the `com.mendix.tracing.Span.setAttribute` methods to set attributes of spans that are already started. -- Java action tracing span names now include the Java action name. -- We clarified the error message when upgrading solutions with files that have paths that are too long. -- We replaced the custom error screen in App Explorer with a unified global error screen that provides a consistent experience and includes a refresh button and a direct link to support. -- Modernized console table now supports multi-selection via the context menu flow, allowing copying message and stack traces for multiple selected log lines. -- The `app-bundler` file in the project directory has been removed and replaced by a property in the model. The bundler selection (Rspack or Rollup) is now stored as part of the project settings instead of a file. -- We expanded the consistency checker to detect more page URL conflicts, so ambiguous navigation patterns are caught during design time rather than discovered at runtime. For example, `product/123` now correctly reports a conflict with `product/{Product/Id}`. For another example, `overview` and `over{view}` now reports a conflict. +* We introduced a stricter requirements check on the server synchronization API's for offline apps. This prevents entities from synchronizing changes when they are configured with the synchronization modes Online, Nothing, or Never. To allow older offline clients having an All Objects or By XPath synchronization mode to still synchronize while the new app version has the entity configured with an Online, Nothing, or Never synchronization mode, we added a Compatibility mode checkbox. +* Pluggable widgets can now select any file or image entity on the page when configuring a file or image property. Previously this was limited to just the immediate surrounding data view. +* We have added a text indicator to the comparison pane toolbar showing information about what is being compared. +* We have made improvements to the "Collect Support Information" feature: + * The "Collect Support Information" progress dialog is now cancellable. + * We made the "Collect Support Information" feature available to macOS users. + * We have added useful information to aid our support team in diagnosing issues, such as: + * The length of the current session. + * The size of the app. + * Number of modules. + * Total document count and document type breakdown. + * If the project directory has been excluded from Windows Defender Antivirus. +* We fixed an issue where OQL‑based view entities could use an outdated ID column alias, leading to mismatches with Domain Model association names. A new App conversion step now detects these mismatches when opening the App and updates the column alias in OQL accordingly. +* We fixed an issue where copying a ViewEntity together with its associated Entity failed to include the connecting association. This association is now correctly copied whenever both elements are selected. Additionally, copying and pasting a ViewEntity now duplicates any linked in‑module or cross‑module Associations, assigning them new names and automatically updating their OQL references. +* Maia answers now also include sources from the Mendix Support Knowledge Base. +* We improved the Maia Chat experience with several UI enhancements. +* We upgraded to React 19.2 and React Native 0.83, bringing the latest performance improvements and features from both ecosystems. These updates provide enhanced rendering performance, improved native module integration, and a more modern foundation for building your low-code applications. +* We improved how Studio Pro stores the configuration microflow and the headers microflow in consumed OData services. These used to be stored in the same field. Now they are stored in two separate fields. When you switch from using a headers microflow to using a configuration microflow, Studio Pro will ask if you want to clear the headers microflow and vice versa. +* We now delete sessions when the associated user is deleted. +* We added the `com.mendix.tracing.Span.setAttribute` methods to set attributes of spans that are already started. +* Java action tracing span names now include the Java action name. +* We clarified the error message when upgrading solutions with files that have paths that are too long. +* We replaced the custom error screen in App Explorer with a unified global error screen that provides a consistent experience and includes a refresh button and a direct link to support. +* Modernized console table now supports multi-selection via the context menu flow, allowing copying message and stack traces for multiple selected log lines. +* The `app-bundler` file in the project directory has been removed and replaced by a property in the model. The bundler selection (Rspack or Rollup) is now stored as part of the project settings instead of a file. +* We expanded the consistency checker to detect more page URL conflicts, so ambiguous navigation patterns are caught during design time rather than discovered at runtime. For example, `product/123` now correctly reports a conflict with `product/{Product/Id}`. For another example, `overview` and `over{view}` now reports a conflict. ### Fixes -- We now ensure a `SELECT *` OQL query returns the same columns independent of optimistic locking setting value. Previously the `MxObjectVersion` column would be returned when optimistic locking was enabled. -- We fixed INSERT OQL statements when optimistic locking is enabled. -- We fixed an error in offline synchronization when objects with sync mode set to "Never" are selectively synced after a full synchronization (Ticket 266442) -- We improved the error message for invalid save actions when trying to save an unexpected object type while strict mode is enabled. (Ticket 270333) -- We fixed image rendering for offline web applications during local development. Also, we enabled service worker and disabled service worker caching by default for local development. (Tickets 271956, 273435) -- We fixed an issue where saving changes in the **Select Elements** dialog of an XML import mapping incorrectly allowed saving an invalid selection where a parent element was checked but its required child element was not, without showing the expected error "Element '…' cannot be checked without a checked child element." (Ticket 273820) -- We fixed an issue where filtering for objects using a constraint like [not(association)] in offline apps incorrectly returned no results. (Ticket 274157) -- We fixed an issue in the **Select Elements** dialog of an XML export mapping where clicking OK on a checked parent element whose required child elements had not been expanded caused the error "Element '…' cannot be checked without a checked child element." Studio Pro now automatically checks required child elements of unexpanded parent nodes before saving. (Ticket 274683) -- We fixed an issue when running with Oracle where task queue queries generated invalid SQL. (Ticket 275597) -- We made Event sub-process start activity in workflow not draggable. -- We made main start activity in Workflow not draggable to prevent users from accidentally dragging it and losing their progress. This change will help improve the user experience and prevent frustration caused by accidental drags. -- We fixed an issue where renaming a view entity association in the Domain Model editor did not update the corresponding ID alias in the OQL query, ensuring the OQL definition now stays consistent with the new association name. -- We fixed an issue in the logic editors, where the LogicBot recommender dialog remained open after running the app, causing an error. The dialog is now closed when suggestions are cleared. -- We fixed an issue where documents generated and then edited by Maia were not deleted properly when **Undo** was pressed. -- We fixed an issue where using **Undo all** in Maia would trigger an unexpected error dialog. -- We fixed an issue where Maia context menu items in the App Explorer were enabled when multiple documents were selected. These items are now disabled for multi-document selections. -- We added an additional fix for cases where an external keyboard would not traverse properly through elements marked as accessible on mobile devices. -- We have fixed an issue on iOS where specific scenarios of using custom styled widgets inside Containers would not show the desired styling. -- We fixed an issue where an Oops dialog appeared when re-selecting a modified JSON Structure in an import mapping. This happened after updating the JSON Structure's content and then re-opening the Select Elements dialog to select the same structure again. -- We fixed an issue in Consumed REST service, Path-level parameters are now added to parameters table when importing OpenAPI/Swagger contract. -- We fixed an issue in published REST service using CORS. The runtime now includes CORS headers in error responses. -- We fixed an issue in published REST services in Studio Pro. Studio Pro would use the same field for (internal) documentation and public documentation (used in OpenAPI documents). Now these are two separate fields. -- We fixed an issue in modernized console panel where new logs appeared at the bottom of the table instead of the top when sorted in descending order. -- We fixed an issue where native macOS context menus could appear instead of the intended Studio Pro context menus. -- We fixed an issue in the modernized Runtime Console where the restart and stop buttons stopped working after the first restart. -- We fixed an issue where the modernized App Explorer is not rendered on startup. -- We fixed an issue in the modernized Console Panel where the logs would not clear whenever another app was created or opened. -- We fixed an issue in the modernized Console Panel where log levels were not always reset to their defaults when opening a new app. -- We fixed an issue in the JavaScript Action Editor where multiline import statements were not parsed correctly. -- We fixed an issue where an app could reject valid localized dates for custom date patterns that use month names. This affected patterns with abbreviated month names such as `dd MMM yyyy` and standalone abbreviated month names such as `dd LLL yyyy`, so values like the Dutch `16 mrt 2027 10:02` could be treated as invalid. -- We fixed an issue where the `Filter` interface in `mx-api/data` incorrectly used `amount` instead of `limit` to specify the maximum number of records to retrieve. While `amount` is supported, we recommend using `limit`. -- We fixed module roles not being sorted in alphabetical order in the entity access rules editor +* We now ensure a `SELECT *` OQL query returns the same columns independent of optimistic locking setting value. Previously the `MxObjectVersion` column would be returned when optimistic locking was enabled. +* We fixed INSERT OQL statements when optimistic locking is enabled. +* We fixed an error in offline synchronization when objects with sync mode set to "Never" are selectively synced after a full synchronization (Ticket 266442) +* We improved the error message for invalid save actions when trying to save an unexpected object type while strict mode is enabled. (Ticket 270333) +* We fixed image rendering for offline web applications during local development. Also, we enabled service worker and disabled service worker caching by default for local development. (Tickets 271956, 273435) +* We fixed an issue where saving changes in the **Select Elements** dialog of an XML import mapping incorrectly allowed saving an invalid selection where a parent element was checked but its required child element was not, without showing the expected error "Element '…' cannot be checked without a checked child element." (Ticket 273820) +* We fixed an issue where filtering for objects using a constraint like [not(association)] in offline apps incorrectly returned no results. (Ticket 274157) +* We fixed an issue in the **Select Elements** dialog of an XML export mapping where clicking OK on a checked parent element whose required child elements had not been expanded caused the error "Element '…' cannot be checked without a checked child element." Studio Pro now automatically checks required child elements of unexpanded parent nodes before saving. (Ticket 274683) +* We fixed an issue when running with Oracle where task queue queries generated invalid SQL. (Ticket 275597) +* We made Event sub-process start activity in workflow not draggable. +* We made main start activity in Workflow not draggable to prevent users from accidentally dragging it and losing their progress. This change will help improve the user experience and prevent frustration caused by accidental drags. +* We fixed an issue where renaming a view entity association in the Domain Model editor did not update the corresponding ID alias in the OQL query, ensuring the OQL definition now stays consistent with the new association name. +* We fixed an issue in the logic editors, where the LogicBot recommender dialog remained open after running the app, causing an error. The dialog is now closed when suggestions are cleared. +* We fixed an issue where documents generated and then edited by Maia were not deleted properly when **Undo** was pressed. +* We fixed an issue where using **Undo all** in Maia would trigger an unexpected error dialog. +* We fixed an issue where Maia context menu items in the App Explorer were enabled when multiple documents were selected. These items are now disabled for multi-document selections. +* We added an additional fix for cases where an external keyboard would not traverse properly through elements marked as accessible on mobile devices. +* We have fixed an issue on iOS where specific scenarios of using custom styled widgets inside Containers would not show the desired styling. +* We fixed an issue where an Oops dialog appeared when re-selecting a modified JSON Structure in an import mapping. This happened after updating the JSON Structure's content and then re-opening the Select Elements dialog to select the same structure again. +* We fixed an issue in Consumed REST service, Path-level parameters are now added to parameters table when importing OpenAPI/Swagger contract. +* We fixed an issue in published REST service using CORS. The runtime now includes CORS headers in error responses. +* We fixed an issue in published REST services in Studio Pro. Studio Pro would use the same field for (internal) documentation and public documentation (used in OpenAPI documents). Now these are two separate fields. +* We fixed an issue in modernized console panel where new logs appeared at the bottom of the table instead of the top when sorted in descending order. +* We fixed an issue where native macOS context menus could appear instead of the intended Studio Pro context menus. +* We fixed an issue in the modernized Runtime Console where the restart and stop buttons stopped working after the first restart. +* We fixed an issue where the modernized App Explorer is not rendered on startup. +* We fixed an issue in the modernized Console Panel where the logs would not clear whenever another app was created or opened. +* We fixed an issue in the modernized Console Panel where log levels were not always reset to their defaults when opening a new app. +* We fixed an issue in the JavaScript Action Editor where multiline import statements were not parsed correctly. +* We fixed an issue where an app could reject valid localized dates for custom date patterns that use month names. This affected patterns with abbreviated month names such as `dd MMM yyyy` and standalone abbreviated month names such as `dd LLL yyyy`, so values like the Dutch `16 mrt 2027 10:02` could be treated as invalid. +* We fixed an issue where the `Filter` interface in `mx-api/data` incorrectly used `amount` instead of `limit` to specify the maximum number of records to retrieve. While `amount` is supported, we recommend using `limit`. +* We fixed module roles not being sorted in alphabetical order in the entity access rules editor ### Deprecations -- Starting with Mendix version 11.12, we will drop support for the following database versions that are no longer supported by the vendors: - - PostgreSQL 13 - - MariaDB 10.6 +* Starting with Mendix version 11.12, we will drop support for the following database versions that are no longer supported by the vendors: + * PostgreSQL 13 + * MariaDB 10.6 ### Breaking Changes -- We removed the `scope` parameter from the `subscribe` method in `mx-api/data`. This parameter was never intended to be part of this API. If you rely on it to bind a context object to your callback, use other standard JavaScript context-binding techniques instead. +* We removed the `scope` parameter from the `subscribe` method in `mx-api/data`. This parameter was never intended to be part of this API. If you rely on it to bind a context object to your callback, use other standard JavaScript context-binding techniques instead. ### Known Issues 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 e27e123dbbc..728a4bbdb24 100644 --- a/content/en/docs/releasenotes/studio-pro/11/11.6.md +++ b/content/en/docs/releasenotes/studio-pro/11/11.6.md @@ -14,23 +14,23 @@ mts: true ### New Features -- We added a new runtime setting `FileStorage.S3.DisableChunkedEncoding` to allow disabling chunked encoding for S3 storage. (Tickets 274327, 272789) -- When Studio Pro is uninstalled, residual files created by Studio Pro are now also removed during the uninstall process. For this feature to work on macOS, we recommend using Mendix Version Selector (version 58 or higher) to uninstall Studio Pro. On Windows, regular uninstallation either through the OS itself or via Version Selector is sufficient. +* We added a new runtime setting `FileStorage.S3.DisableChunkedEncoding` to allow disabling chunked encoding for S3 storage. (Tickets 274327, 272789) +* When Studio Pro is uninstalled, residual files created by Studio Pro are now also removed during the uninstall process. For this feature to work on macOS, we recommend using Mendix Version Selector (version 58 or higher) to uninstall Studio Pro. On Windows, regular uninstallation either through the OS itself or via Version Selector is sufficient. ### Improvements -- We improved performance of opening the Entity selector dialog. (Ticket 270854) -- We upgraded the BouncyCastle dependency to version 1.84. (Tickets 276629, 276631) -- We have made improvements to the **Collect Support Information** feature: - * The **Collect Support Information** progress dialog is now cancellable. - * We made the **Collect Support Information** feature available to macOS users. - * We have added useful information to aid our support team in diagnosing issues, such as: - * The length of the current session. - * The size of the app. - * Number of modules. - * Total document count and document type breakdown. - * If the project directory has been excluded from Windows Defender Antivirus. -- We improved performance when Studio Pro exports pages and layouts for the React client during deployment. Apps with many pages, layouts, or snippet calls can now deploy significantly faster. +* We improved performance of opening the Entity selector dialog. (Ticket 270854) +* We upgraded the BouncyCastle dependency to version 1.84. (Tickets 276629, 276631) +* We have made improvements to the **Collect Support Information** feature: + * The **Collect Support Information** progress dialog is now cancellable. + * We made the **Collect Support Information** feature available to macOS users. + * We have added useful information to aid our support team in diagnosing issues, such as: + * The length of the current session. + * The size of the app. + * Number of modules. + * Total document count and document type breakdown. + * If the project directory has been excluded from Windows Defender Antivirus. +* We improved performance when Studio Pro exports pages and layouts for the React client during deployment. Apps with many pages, layouts, or snippet calls can now deploy significantly faster. #### Widget and Module Marketplace Metadata {#widget-module-metadata} @@ -40,30 +40,30 @@ Additionally, some Marketplace modules could have an incorrect version string in ### Fixes -- We fixed an error in offline synchronization when objects with sync mode set to **Never** are selectively synced after a full synchronization (Ticket 266442) -- We fixed an issue where saving changes in the **Select Elements** dialog of an XML import mapping incorrectly allowed saving an invalid selection where a parent element was checked but its required child element was not, without showing the expected error **"Element '…' cannot be checked without a checked child element."** (Ticket 273820) -- We fixed an issue where filtering for objects using a constraint like [not(association)] in offline apps incorrectly returned no results. (Ticket 274157) -- We fixed an issue when running with Oracle where task queue queries generated invalid SQL. (Ticket 275597) -- We fixed an issue in the **Select Elements** dialog of an XML export mapping where clicking OK on a checked parent element whose required child elements had not been expanded caused the error **"Element '…' cannot be checked without a checked child element."** Studio Pro now automatically checks required child elements of unexpanded parent nodes before saving. (Ticket 274683) -- We fixed an issue that prevented the Security Overview export from opening. -- We made the main start activity in **Workflow** not draggable, to prevent users from accidentally dragging it and losing their progress. -- We fixed an issue where using the Tab key in the multiline text area would insert a `\t` character into text inputs on macOS. -- We added an additional fix for cases where an external keyboard would not traverse properly through elements marked as accessible on mobile devices. -- We have fixed an issue on iOS where specific scenarios of using custom styled widgets inside container widgets would not show the desired styling. -- We fixed an issue where an Oops dialog appeared when re-selecting a modified JSON Structure in an import mapping. This happened after updating the JSON Structure's content and then re-opening the **Select Elements** dialog to select the same structure again. -- We fixed a runtime exception in **Published OData** when publishing an association to an object that is inaccessible due to OData security constraints. -- We fixed a runtime error in OData search queries for a `varchar` attribute with a limited column length and a search string longer than that limit. -- We fixed an issue in the **JavaScript Action Editor** where multiline import statements were not parsed correctly. -- We fixed an issue where an app could reject valid localized dates for custom date patterns that use month names. This affected patterns with abbreviated month names such as `dd MMM yyyy` and standalone abbreviated month names such as `dd LLL yyyy`, so values like the Dutch `16 mrt 2027 10:02` could be treated as invalid. -- In the entity access rules editor, we fixed module roles not being sorted in alphabetical order. -- We fixed an issue where MxBuild incorrectly reported that the modern web client bundler stopped unexpectedly, while the React client bundler completed normally without errors. -- We fixed `TabContainer` not updating the active tab attribute or firing the **onChange** nanoflow on tab switch when the TabContainer entity is passed as a nanoflow argument. +* We fixed an error in offline synchronization when objects with sync mode set to **Never** are selectively synced after a full synchronization (Ticket 266442) +* We fixed an issue where saving changes in the **Select Elements** dialog of an XML import mapping incorrectly allowed saving an invalid selection where a parent element was checked but its required child element was not, without showing the expected error **"Element '…' cannot be checked without a checked child element."** (Ticket 273820) +* We fixed an issue where filtering for objects using a constraint like [not(association)] in offline apps incorrectly returned no results. (Ticket 274157) +* We fixed an issue when running with Oracle where task queue queries generated invalid SQL. (Ticket 275597) +* We fixed an issue in the **Select Elements** dialog of an XML export mapping where clicking OK on a checked parent element whose required child elements had not been expanded caused the error **"Element '…' cannot be checked without a checked child element."** Studio Pro now automatically checks required child elements of unexpanded parent nodes before saving. (Ticket 274683) +* We fixed an issue that prevented the Security Overview export from opening. +* We made the main start activity in **Workflow** not draggable, to prevent users from accidentally dragging it and losing their progress. +* We fixed an issue where using the Tab key in the multiline text area would insert a `\t` character into text inputs on macOS. +* We added an additional fix for cases where an external keyboard would not traverse properly through elements marked as accessible on mobile devices. +* We have fixed an issue on iOS where specific scenarios of using custom styled widgets inside container widgets would not show the desired styling. +* We fixed an issue where an Oops dialog appeared when re-selecting a modified JSON Structure in an import mapping. This happened after updating the JSON Structure's content and then re-opening the **Select Elements** dialog to select the same structure again. +* We fixed a runtime exception in **Published OData** when publishing an association to an object that is inaccessible due to OData security constraints. +* We fixed a runtime error in OData search queries for a `varchar` attribute with a limited column length and a search string longer than that limit. +* We fixed an issue in the **JavaScript Action Editor** where multiline import statements were not parsed correctly. +* We fixed an issue where an app could reject valid localized dates for custom date patterns that use month names. This affected patterns with abbreviated month names such as `dd MMM yyyy` and standalone abbreviated month names such as `dd LLL yyyy`, so values like the Dutch `16 mrt 2027 10:02` could be treated as invalid. +* In the entity access rules editor, we fixed module roles not being sorted in alphabetical order. +* We fixed an issue where MxBuild incorrectly reported that the modern web client bundler stopped unexpectedly, while the React client bundler completed normally without errors. +* We fixed `TabContainer` not updating the active tab attribute or firing the **onChange** nanoflow on tab switch when the TabContainer entity is passed as a nanoflow argument. ### Deprecations -- From July 6, 2026, we will drop support for the following database versions that are no longer supported by the vendors: - - PostgreSQL 13 - - MariaDB 10.6 +* From July 6, 2026, we will drop support for the following database versions that are no longer supported by the vendors: + * PostgreSQL 13 + * MariaDB 10.6 ## 11.6.5 {#1165} diff --git a/content/en/docs/releasenotes/studio-pro/11/11.9.md b/content/en/docs/releasenotes/studio-pro/11/11.9.md index eeadc0ef829..cfcd18b704d 100644 --- a/content/en/docs/releasenotes/studio-pro/11/11.9.md +++ b/content/en/docs/releasenotes/studio-pro/11/11.9.md @@ -14,11 +14,11 @@ weight: 91 ### Fixes -- We fixed a [known issue](/releasenotes/studio-pro/11.9/#known-issues) where subsequent imports of widget-containing modules silently failed. -- We significantly improved the load times for microflows in the Extensibility API. -- We fixed a bug where wrong type name was returned for **Custom Blob** documents during the rename event payload in the Extensibility API. -- We made Event sub-process start activity in workflow not draggable. -- We made main start activity in Workflow not draggable to prevent users from accidentally dragging it and losing their progress. This change will help improve the user experience and prevent frustration caused by accidental drags. +* We fixed a [known issue](/releasenotes/studio-pro/11.9/#known-issues) where subsequent imports of widget-containing modules silently failed. +* We significantly improved the load times for microflows in the Extensibility API. +* We fixed a bug where wrong type name was returned for **Custom Blob** documents during the rename event payload in the Extensibility API. +* We made Event sub-process start activity in workflow not draggable. +* We made main start activity in Workflow not draggable to prevent users from accidentally dragging it and losing their progress. This change will help improve the user experience and prevent frustration caused by accidental drags. ## 11.9.0 {#1190} diff --git a/content/en/docs/releasenotes/studio-pro/web-extensibility-api.md b/content/en/docs/releasenotes/studio-pro/web-extensibility-api.md index 7a380396305..d5c877afb7b 100644 --- a/content/en/docs/releasenotes/studio-pro/web-extensibility-api.md +++ b/content/en/docs/releasenotes/studio-pro/web-extensibility-api.md @@ -10,73 +10,73 @@ These release notes cover changes to the [Extensibility API for Web Developers]( ## Version 11.10.0 -- We added a **Show** button to the [Element Selector API](/apidocs-mxsdk/apidocs/web-extensibility-api-11/element-selector-api/), which allows users to navigate to the selected element in the editor. -- We added visual highlighting to the Element Selector API. You can now pass a `selectedElementId` to highlight a previously-selected element in the selector dialog, making it easier for users to identify their last selection when reopening it. -- We introduced a change for the Model API that makes it easier to create Import Mappings and Export Mappings based on JSON structure documents. You can now use `addJsonStructure` to create a JSON structure from JSON content, and `getElements` to see the elements inside a JSON structure document. To build mappings, the API now includes `addImportMapping` and `addExportMapping`, which create mapping documents based on a JSON structure. You can then refine or adjust those mappings using `setElementMapping` and `clearElementMapping`. +* We added a **Show** button to the [Element Selector API](/apidocs-mxsdk/apidocs/web-extensibility-api-11/element-selector-api/), which allows users to navigate to the selected element in the editor. +* We added visual highlighting to the Element Selector API. You can now pass a `selectedElementId` to highlight a previously-selected element in the selector dialog, making it easier for users to identify their last selection when reopening it. +* We introduced a change for the Model API that makes it easier to create Import Mappings and Export Mappings based on JSON structure documents. You can now use `addJsonStructure` to create a JSON structure from JSON content, and `getElements` to see the elements inside a JSON structure document. To build mappings, the API now includes `addImportMapping` and `addExportMapping`, which create mapping documents based on a JSON structure. You can then refine or adjust those mappings using `setElementMapping` and `clearElementMapping`. ## Version 11.9.0 -- We introduced a new Runtime Configuration API under `studioPro.runtime.configuration`, which allows you to retrieve runtime constants from the active configuration. For more information, see [Access Runtime Constants Using Web API](/apidocs-mxsdk/apidocs/web-extensibility-api-11/runtime-configuration-api/). -- We introduced a new Runtime Controller API under `studioPro.runtime.controller`, which allows you to listen for runtime connection state changes to detect when your app starts or stops running. For more information, see [Listen for Connection Changes](/apidocs-mxsdk/apidocs/web-extensibility-api-11/runtime-controller-api/). -- We introduced a permission system for web extensions. Extensions can now request access to sensitive APIs and users can grant or revoke permissions through the Extensions Overview pane. For more information, see [Extension Permissions](/apidocs-mxsdk/apidocs/web-extensibility-api-11/extension-permissions/). +* We introduced a new Runtime Configuration API under `studioPro.runtime.configuration`, which allows you to retrieve runtime constants from the active configuration. For more information, see [Access Runtime Constants Using Web API](/apidocs-mxsdk/apidocs/web-extensibility-api-11/runtime-configuration-api/). +* We introduced a new Runtime Controller API under `studioPro.runtime.controller`, which allows you to listen for runtime connection state changes to detect when your app starts or stops running. For more information, see [Listen for Connection Changes](/apidocs-mxsdk/apidocs/web-extensibility-api-11/runtime-controller-api/). +* We introduced a permission system for web extensions. Extensions can now request access to sensitive APIs and users can grant or revoke permissions through the Extensions Overview pane. For more information, see [Extension Permissions](/apidocs-mxsdk/apidocs/web-extensibility-api-11/extension-permissions/). ## Version 11.8.0 -- We introduced a change in the [Progress Dialog API](/apidocs-mxsdk/apidocs/web-extensibility-api-11/dialog-api/), so when the progress dialog only has one step, only the progress bar is shown. +* We introduced a change in the [Progress Dialog API](/apidocs-mxsdk/apidocs/web-extensibility-api-11/dialog-api/), so when the progress dialog only has one step, only the progress bar is shown. ## Version 11.7.0 -- We added functionality to select a **Custom Blob** document by using its registered name in our [Element Selector](/apidocs-mxsdk/apidocs/web-extensibility-api-11/element-selector-api/) API. -- We fixed an issue where using the **New** button in the selector dialog shown when using the Element Selector API would throw an error. The button has now been removed. +* We added functionality to select a **Custom Blob** document by using its registered name in our [Element Selector](/apidocs-mxsdk/apidocs/web-extensibility-api-11/element-selector-api/) API. +* We fixed an issue where using the **New** button in the selector dialog shown when using the Element Selector API would throw an error. The button has now been removed. ## Version 11.6.0 -- We introduced a breaking change in the Web Extensibility API. Menus will no longer support commands and will instead allow users to define their own actions. This change will affect extension developers upgrading from Studio Pro 11.5 to 11.6. Review the [Migration Guide](/apidocs-mxsdk/apidocs/web-extensibility-api-11/migration-guide/) to learn how to safely convert your code for the latest version. -- We have added the possibility for registered Custom Blob documents to be passed as parameters to Java Actions. For more information, see [Register New Document Types With a Corresponding Editor](/apidocs-mxsdk/apidocs/web-extensibility-api-11/custom-blob-document-api/). +* We introduced a breaking change in the Web Extensibility API. Menus will no longer support commands and will instead allow users to define their own actions. This change will affect extension developers upgrading from Studio Pro 11.5 to 11.6. Review the [Migration Guide](/apidocs-mxsdk/apidocs/web-extensibility-api-11/migration-guide/) to learn how to safely convert your code for the latest version. +* We have added the possibility for registered Custom Blob documents to be passed as parameters to Java Actions. For more information, see [Register New Document Types With a Corresponding Editor](/apidocs-mxsdk/apidocs/web-extensibility-api-11/custom-blob-document-api/). ## Version 11.5.0 -- You can now see all the extensions of your application by clicking **View** > **Extensions**. -- We introduced a new Document Selector API under `studioPro.ui.elementSelectors` that allows the user to choose a document or an entity from the project's structure. For more information, see [Using the Element Selector API](/apidocs-mxsdk/apidocs/web-extensibility-api-11/element-selector-api/). +* You can now see all the extensions of your application by clicking **View** > **Extensions**. +* We introduced a new Document Selector API under `studioPro.ui.elementSelectors` that allows the user to choose a document or an entity from the project's structure. For more information, see [Using the Element Selector API](/apidocs-mxsdk/apidocs/web-extensibility-api-11/element-selector-api/). ## Version 11.4.0 -- We introduced a new Progress Dialog API under `studioPro.ui.dialogs.showProgressDialog(, <steps>)`, which opens a modal containing a series of steps that perform actions in sequence. For more information, see the [Showing a Progress Dialog](/apidocs-mxsdk/apidocs/web-extensibility-api-11/dialog-api/#process-dialog) section of _Open a Modal Dialog Using Web API_. -- We introduced a new Custom Document Model API under `studioPro.app.model.customBlobDocuments`. This allows extensions to register new document types in Studio Pro, which can store arbitrary data and appear in the App Explorer, New Document dialog, and other UI elements. For more information, see [Register New Document Types With a Corresponding Editor](/apidocs-mxsdk/apidocs/web-extensibility-api-11/custom-blob-document-api/). +* We introduced a new Progress Dialog API under `studioPro.ui.dialogs.showProgressDialog(<title>, <steps>)`, which opens a modal containing a series of steps that perform actions in sequence. For more information, see the [Showing a Progress Dialog](/apidocs-mxsdk/apidocs/web-extensibility-api-11/dialog-api/#process-dialog) section of *Open a Modal Dialog Using Web API*. +* We introduced a new Custom Document Model API under `studioPro.app.model.customBlobDocuments`. This allows extensions to register new document types in Studio Pro, which can store arbitrary data and appear in the App Explorer, New Document dialog, and other UI elements. For more information, see [Register New Document Types With a Corresponding Editor](/apidocs-mxsdk/apidocs/web-extensibility-api-11/custom-blob-document-api/). ## Version 11.3.0 -- We introduced a new Version Control API under `studioPro.ui.versionControl`, which allows you to display version control information about the current version control system, branch, and last commit in Studio Pro. For more information, see [Show Version Control Information Using Web API](/apidocs-mxsdk/apidocs/web-extensibility-api-11/version-control-api/). -- We introduced an option in the [Preferences](/refguide/preferences-dialog/#extension-development) menu to enable extension development without using the --enable-extension-development feature flag. It requires a restart of Studio Pro. -- We introduced a new Message Passing API under `studioPro.ui.messagePassing`, to pass information between different active contexts within an extension. This API supports two communication patterns: request-reply and message broadcasting. For more information, see [Exchange Information Between Active Views Using Web API](/apidocs-mxsdk/apidocs/web-extensibility-api-11/message-passing-api/). +* We introduced a new Version Control API under `studioPro.ui.versionControl`, which allows you to display version control information about the current version control system, branch, and last commit in Studio Pro. For more information, see [Show Version Control Information Using Web API](/apidocs-mxsdk/apidocs/web-extensibility-api-11/version-control-api/). +* We introduced an option in the [Preferences](/refguide/preferences-dialog/#extension-development) menu to enable extension development without using the --enable-extension-development feature flag. It requires a restart of Studio Pro. +* We introduced a new Message Passing API under `studioPro.ui.messagePassing`, to pass information between different active contexts within an extension. This API supports two communication patterns: request-reply and message broadcasting. For more information, see [Exchange Information Between Active Views Using Web API](/apidocs-mxsdk/apidocs/web-extensibility-api-11/message-passing-api/). ## Version 11.2.0 -- We included a new method for initializing the studio Pro API. (this is a breaking change) For more information, see [Getting Started with the Web Extensibility API](/apidocs-mxsdk/apidocs/web-extensibility-api-11/getting-started/). -- We introduced a new command registration API. +* We included a new method for initializing the studio Pro API. (this is a breaking change) For more information, see [Getting Started with the Web Extensibility API](/apidocs-mxsdk/apidocs/web-extensibility-api-11/getting-started/). +* We introduced a new command registration API. ## Version 11.1.0 -- We introduced a new Editors API under `studioPro.ui.editors`, which allows you to get the active document and open the default editor for a document. For more information, see [Editor API](/apidocs-mxsdk/apidocs/web-extensibility-api-11/editor-api/). +* We introduced a new Editors API under `studioPro.ui.editors`, which allows you to get the active document and open the default editor for a document. For more information, see [Editor API](/apidocs-mxsdk/apidocs/web-extensibility-api-11/editor-api/). ## Version 11.0.0 -- We introduced a new API for showing modal dialogs from web extensions. It is available under `studioPro.ui.dialogs` in the web extensibility API. For more details and practical examples, see [Open a Modal Dialog](/apidocs-mxsdk/apidocs/web-extensibility-api-11/dialog-api/). -- We introduced a new API for accessing user preferences from web extensions, which retrieves the user’s selected theme preference (light or dark) and language settings (for exampl, `en-US`). It is available under `studioPro.ui.preferences` in the web extensibility API. For more details and practical examples, see [Show User's Preferences](/apidocs-mxsdk/apidocs/web-extensibility-api-11/preference-api/). -- We introduced a new API for showing notification popups from web extensions. It is available under `studioPro.ui.notifications` in the web extensibility API. For more details and practical examples, see [Show a Pop-up Notification](/apidocs-mxsdk/apidocs/web-extensibility-api-11/notification-api/). +* We introduced a new API for showing modal dialogs from web extensions. It is available under `studioPro.ui.dialogs` in the web extensibility API. For more details and practical examples, see [Open a Modal Dialog](/apidocs-mxsdk/apidocs/web-extensibility-api-11/dialog-api/). +* We introduced a new API for accessing user preferences from web extensions, which retrieves the user’s selected theme preference (light or dark) and language settings (for exampl, `en-US`). It is available under `studioPro.ui.preferences` in the web extensibility API. For more details and practical examples, see [Show User's Preferences](/apidocs-mxsdk/apidocs/web-extensibility-api-11/preference-api/). +* We introduced a new API for showing notification popups from web extensions. It is available under `studioPro.ui.notifications` in the web extensibility API. For more details and practical examples, see [Show a Pop-up Notification](/apidocs-mxsdk/apidocs/web-extensibility-api-11/notification-api/). ## Version 10.24.0 -- No user facing changes. However, the extension package version must be the same as your Studio Pro version. +* No user facing changes. However, the extension package version must be the same as your Studio Pro version. ## Version 10.23.0 -- No user facing changes. However, the extension package version must be the same as your Studio Pro version. +* No user facing changes. However, the extension package version must be the same as your Studio Pro version. ## Version 10.22.0 -- No user facing changes. However, the extension package version must be the same as your Studio Pro version. +* No user facing changes. However, the extension package version must be the same as your Studio Pro version. ## Version 10.21.0 -- The first [beta](/releasenotes/release-status/) release of the Web Extensibility API. +* The first [beta](/releasenotes/release-status/) release of the Web Extensibility API. diff --git a/content/en/docs/releasenotes/workstation/_index.md b/content/en/docs/releasenotes/workstation/_index.md index d5fc2b330db..bf909f9b7c8 100644 --- a/content/en/docs/releasenotes/workstation/_index.md +++ b/content/en/docs/releasenotes/workstation/_index.md @@ -57,7 +57,7 @@ If more than one station is found for a given computer name during bulk registra * We have added a number of other new nanoflows, JavaScript actions, and widgets to simplify the creation of custom, reusable peripheral modules for your organization: - * Manage peripheral object creation and initialize peripheral objects using the new `GetCreateDevice` action. You can configure callbacks on connection, on message, and on disconnection. + * Manage peripheral object creation and initialize peripheral objects using the new `GetCreateDevice` action. You can configure callbacks on connection, on message, and on disconnection. * Trigger application level logic on device events with new widgets. Handling peripheral events no longer requires changing peripheral modules. * Manage events in a nanoflow with the new `SubscribeToObjectChanges` and `WaitForObjectChanges` nanoflow actions. * Benefit from easier configuration of common use cases with the new `ConnectDevice`, `SendDeviceMessage` and `WaitForDeviceMessage` nanoflow actions. diff --git a/content/en/docs/workstation/wks-message-syntax.md b/content/en/docs/workstation/wks-message-syntax.md index 8cfe5f42e00..e562a594f07 100644 --- a/content/en/docs/workstation/wks-message-syntax.md +++ b/content/en/docs/workstation/wks-message-syntax.md @@ -37,6 +37,7 @@ Before sending messages to the File Device, review the following points: * Delimiter - The `#` character is used as a delimiter within messages. Paths and data may not contain the `#` character. * Case sensitivity - File and directory paths may be case-sensitive depending on the underlying operating system. For example, Linux paths are typically case-sensitive, while Windows paths are not.   + ### Message * `0#Path` - Initiate watching for changes in the specified `Path`. If `Path` is a directory, the device will watch for changes within that directory (creation, deletion, renaming, or modification of files/subdirectories). If `Path` is a file, the device will watch for changes to that specific file (modification, deletion, or renaming).