Skip to content

Commit ef12813

Browse files
committed
Merge branch 'development' into kv-mendixsso-deprecation
2 parents 60b4e09 + 9aead12 commit ef12813

327 files changed

Lines changed: 11421 additions & 251 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
---
2+
title: "Private Mendix Platform Deploy API"
3+
url: /apidocs-mxsdk/apidocs/private-platform-deploy-api/
4+
type: swagger
5+
description: "This API allows you to create and manage environments in Private Mendix Platform."
6+
restapi: true
7+
weight: 60
8+
linktitle: "Deploy API"
9+
---
10+
11+
{{% alert color="info" %}}
12+
This document is about [Private Mendix Platform](/private-mendix-platform/) API. This API is only available on instances of Private Mendix Platform. For [Mendix on Kubernetes](/developerportal/deploy/private-cloud/) API, see [Mendix on Kubernetes Build API](/apidocs-mxsdk/apidocs/private-cloud-build-api/) and [Mendix on Kubernetes Deploy API](/apidocs-mxsdk/apidocs/private-cloud-deploy-api/).
13+
{{% /alert %}}
14+
15+
## Introduction
16+
17+
The Private Mendix Platform Group API allows you to manage user groups in Private Mendix Platform. You can use the API to do the following:
18+
19+
* Create a new environment for the application
20+
* Retrieve all environments for the application
21+
* Retrieve a specified environment for the application
22+
* Update a specified environment for the application
23+
* Delete a specified environment for the application
24+
25+
## API Reference
26+
27+
{{< swaggerui src="/openapi-spec/openapi-deploy.yaml" >}}

content/en/docs/community-tools/contribute-to-mendix-docs/using-ai-tools.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -46,17 +46,17 @@ This file is gitignored and will override the shared settings.
4646
Do not modify `.claude/settings.json` or other files in the `.claude/` directory for personal configuration. These files contain shared configuration for all contributors.
4747
{{% /alert %}}
4848

49-
### Custom Skills
49+
### Custom Skills {#custom-skills}
5050

5151
This repository includes custom Claude Code skills optimized for documentation work:
5252

53-
* `/docs-proofread` - Checks spelling, grammar, punctuation, and basic Markdown formatting
54-
* `/docs-polish` - Applies the Mendix style guide and improves clarity, readability, and word choice without changing meaning
55-
* `/docs-enhance` - Performs comprehensive editing including reorganization, restructuring, and stronger phrasing
56-
* `/docs-add` - Adds new content to an existing page while preserving original structure
57-
* `/docs-review` - Analyzes a page and generates suggestions for improvements without making any edits
58-
* `/docs-pr-review` - Reviews all changes in a PR rather than just a single document
59-
* `/docs-alt-text` - Suggests W3C-compliant alt text for images on a page
53+
* `/docs-proofread` Checks spelling, grammar, punctuation, and basic Markdown formatting
54+
* `/docs-polish` Applies the Mendix style guide and improves clarity, readability, and word choice without changing meaning
55+
* `/docs-enhance` Performs comprehensive editing including reorganization, restructuring, and stronger phrasing
56+
* `/docs-add` Adds new content to an existing page while preserving original structure
57+
* `/docs-review` Analyzes a page and generates suggestions for improvements without making any edits
58+
* `/docs-pr-review` Reviews all changes in a PR rather than just a single document
59+
* `/docs-alt-text` Suggests W3C-compliant alt text for images on a page
6060

6161
These skills are available to all contributors using Claude Code with this repository.
6262

content/en/docs/deployment/docker-deploy/docker-pad.md

Lines changed: 174 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -235,3 +235,177 @@ The Mendix Runtime exposes health check endpoints that can be used to monitor th
235235
| `/health/ready` | Returns the readiness status — indicates if the app is ready to serve traffic |
236236

237237
These endpoints are especially useful when integrating with orchestration platforms such as Kubernetes, which rely on liveness and readiness probes to manage container lifecycle.
238+
239+
## Reverse Proxy
240+
241+
This section serves as a reference guide and starting point for configuring a reverse proxy on Docker. The configurations provided are intended for illustrative purposes only, as the required settings vary depending on your specific network environment and infrastructure setup.
242+
243+
{{% alert color="info" %}}
244+
This example implementation is provided as-is, and is not covered under official support. Support requests related to this specific configuration cannot be addressed.
245+
{{% /alert %}}
246+
247+
### Configuring Nginx
248+
249+
To configure Nginx, perform the following steps:
250+
251+
1. Define services for the app and Nginx reverse proxy:
252+
253+
```text
254+
services:
255+
app:
256+
build: .
257+
ports:
258+
- "127.0.0.1:8080:8080" # Bind only localhost
259+
environment:
260+
- SPRING_PROFILES_ACTIVE=docker
261+
nginx:
262+
image: nginx:alpine
263+
ports:
264+
- "80:80"
265+
volumes:
266+
- ./nginx.conf:/etc/nginx/nginx.conf:ro
267+
depends_on:
268+
- app
269+
```
270+
271+
2. Run the following command: `docker-compose up --build`.​
272+
3. Create the following `nginx.conf` file to proxy requests to the app:
273+
274+
```text
275+
events {}
276+
http {
277+
server {
278+
listen 80;
279+
location / {
280+
proxy_pass http://app:8080;
281+
proxy_set_header Host $host;
282+
proxy_set_header X-Real-IP $remote_addr;
283+
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
284+
proxy_set_header X-Forwarded-Proto $scheme;
285+
}
286+
}
287+
}
288+
```
289+
290+
This configuration exposes only port 80 publicly while acting as a proxy to your app on the internal port 8080.
291+
292+
### Configuring Traefik
293+
294+
To simplify setting up Traefik as a reverse proxy for your app running in a Docker container, use Docker Compose. This configuration exposes Traefik on ports `80/8080`, automatically discovers your app container through labels, and routes traffic to it.
295+
296+
Traefik uses two networks: *frontend* (public) and *backend* (internal).
297+
298+
1. Add Traefik labels to the app service:
299+
300+
```text
301+
services:
302+
traefik:
303+
image: traefik:v3.0
304+
ports:
305+
- "80:80"
306+
- "8080:8080" # Traefik dashboard
307+
volumes:
308+
- /var/run/docker.sock:/var/run/docker.sock:ro
309+
command:
310+
- --api.dashboard=true
311+
- --providers.docker=true
312+
- --providers.docker.exposedbydefault=false
313+
- --entrypoints.web.address=:80
314+
networks:
315+
- frontend
316+
- backend
317+
restart: unless-stopped
318+
app:
319+
build: .
320+
networks:
321+
- backend
322+
labels:
323+
- traefik.enable=true
324+
- traefik.docker.network=backend
325+
- traefik.http.routers.app.rule=Host(`localhost`) || PathPrefix(`/api`)
326+
- traefik.http.routers.app.entrypoints=web
327+
- traefik.http.services.app.loadbalancer.server.port=8080
328+
restart: unless-stopped
329+
networks:
330+
frontend:
331+
external: false
332+
backend:
333+
external: false
334+
```
335+
336+
2. Run the following command: `docker compose up -d --build`.
337+
338+
You can now access your app at `http://localhost`. Traefik proxies to `app:8080` internally.
339+
340+
#### Key Traefik Labels Explained
341+
342+
This section explains the main labels used by Traefik.
343+
344+
* `traefik.enable=true` - Enables Traefik for this container.
345+
* `traefik.http.routers.java-app.rule=Host(yourapp.example.com)` - Routes requests matching the host to this service.
346+
* `traefik.http.services.java-app.loadbalancer.server.port=8080` - Forwards to your app's internal port.
347+
348+
Traefik automatically detects changes through a Docker socket. You do not need to restart it to update the labels.
349+
350+
#### Main Differences between Traefik and Nginx
351+
352+
This section explains how Traefik proxies differ from Nginx.
353+
354+
* Traefik does not use static config files. Instead, the configuration is automatic through the use of labels.
355+
* A dashboard available at `http://localhost:8080` shows the routes.
356+
* You can easily scale by duplicating the `app service` with unique router rules (for example, `Host(app2.local)`).​
357+
358+
## Example High Availability Implementation
359+
360+
High availability (HA) requires redundancy, health checks, and restarts to handle failures. Scale for HA with Docker Compose (for local or development environments) or Kubernetes.
361+
362+
This section serves as a reference guide and starting point for configuring high availability on Docker. The configurations provided are intended for illustrative purposes only, as the settings will vary depending on your specific network environment and infrastructure setup.
363+
364+
{{% alert color="info" %}}
365+
This example implementation is provided as-is, and is not covered under official support. Support requests related to this specific configuration cannot be addressed.
366+
{{% /alert %}}
367+
368+
1. Configure the *docker-compose.yml* as in the following example:
369+
370+
```text
371+
services:
372+
myapp:
373+
image: myapp
374+
ports:
375+
- "8080:8080"
376+
deploy:
377+
replicas: 3 # Run 3 instances
378+
healthcheck:
379+
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:8080/actuator/health"]
380+
interval: 30s
381+
timeout: 10s
382+
retries: 3
383+
```
384+
385+
2. Start the process by running the following command: `docker-compose up --scale myapp=3`.
386+
3. Add a load balancer like Traefik or an NGINX reverse proxy in the front:
387+
388+
``` text
389+
services:
390+
traefik:
391+
image: traefik:v3.0
392+
command: --providers.docker --entrypoints.web.address=:80
393+
ports: ["80:80"]
394+
myapp:
395+
# No ports exposed; Traefik load balances
396+
```
397+
398+
This creates a redundancy—kill container, and traffic shifts automatically.
399+
400+
4. Build and run manually by running the following script:
401+
402+
``` text
403+
# Build image
404+
docker build -t myapp:latest .
405+
# Test single instance
406+
docker run -p 8080:8080 myapp:latest
407+
# For HA: Run 3 replicas (use docker-compose.yml for production)
408+
docker run -d -p 8081:8080 --name app1 myapp:latest
409+
docker run -d -p 8082:8080 --name app2 myapp:latest
410+
docker run -d -p 8083:8080 --name app3 myapp:latest
411+
```

content/en/docs/deployment/general/salt.md

Lines changed: 26 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title: "Siemens Advanced License Technology"
33
url: /developerportal/deploy/salt/
44
weight: 90
5-
description: "This guide explains how to use Siemens Advaned License Technology (SALT) with Mendix"
5+
description: "This guide explains how to use Siemens Advanced License Technology (SALT) with Mendix"
66
aliases:
77
- /deployment/salt/
88
#To update these screenshots, you can log in with credentials detailed in How to Update Screenshots Using Team Apps.
@@ -24,18 +24,25 @@ This section explains the limitations for using SALT-based licenses.
2424

2525
SALT Licenses can only be used with the following Mendix versions:
2626

27-
* **Mendix 10**: 10.24.4 and above
28-
* **Mendix 11**: 11.2.0 and above
27+
* **Mendix 10** 10.24.4 and above
28+
* **Mendix 11** 11.2.0 and above
2929

30-
Each SALT license is bound to a specific major version of Mendix and cannot be used in newer major versions.
30+
Each SALT license is tied to a specific major Mendix version, for example MXP11 for Mendix 11. The license permits use of that version and all earlier major versions. To use a newer major version, you must have an active maintenance contract and can request a renewed license when the new major version is released.
3131

3232
### Deployment Restrictions
3333

3434
Mendix applications using a SALT License cannot be deployed to the Mendix Public Cloud.
3535

36+
### User Limits
37+
38+
SALT licenses distinguish between internal and external users:
39+
40+
* **Internal users** – SALT licenses specify a maximum number of named internal users. This limit is enforced independently by each application and is defined at the time of purchase. Limiting concurrent users is not supported.
41+
* **External users** – Unlimited external users can optionally be purchased. When purchased, external users are no longer counted against the internal user limit. To take advantage of this, users must be explicitly flagged as external in your application using the [User Classification](/appstore/modules/user-classification/) module or by setting the `UserType` attribute directly. If external users are not flagged, they are counted as internal users.
42+
3643
## Obtaining the SALT-based License
3744

38-
Upon purchase, your SALT-based license file is sent to you by email.
45+
Upon purchase, your SALT-based license file is sent to you by email. A single license file is valid for all of your Mendix applications. Multiple license files cannot be issued.
3946

4047
## Installing the Siemens License Server
4148

@@ -50,6 +57,10 @@ For detailed instructions on how to install the Siemens License Server and confi
5057
* [Siemens License Server](https://support.sw.siemens.com/en-US/product/1586485382)
5158
* [Getting Started with Siemens Advanced Licensing Technology (SALT) and the Siemens License Server (SLS)](https://support.sw.siemens.com/en-US/product/1586485382/knowledge-base/MG612613)
5259

60+
{{% alert color="info" %}}
61+
If you are deploying on-premises, you must generate a hardware ID (CID) using Siemens tools and provide it during the license provisioning process. Refer to the Siemens documentation above for instructions on generating a CID.
62+
{{% /alert %}}
63+
5364
## Configuring your Mendix Application
5465

5566
Each Mendix application that uses a SALT license must be configured with the following [runtime setting](/refguide/custom-settings/):
@@ -58,17 +69,23 @@ Each Mendix application that uses a SALT license must be configured with the fol
5869
License.SaltLicenseLocation = port@host
5970
```
6071

61-
* `port`: The port number specified during the license server installation.
62-
* `host`: The hostname or IP address of the machine running the license server.
72+
* `port` The port number specified during the license server installation.
73+
* `host` The hostname or IP address of the machine running the license server.
6374

6475
After you configure the runtime setting and start the Mendix application, the application connects to the Siemens License Server to validate the SALT license.
6576

6677
## FAQs
6778

6879
### When Does a Mendix Application Connect to the License Server?
6980

70-
Mendix applications connect to the license server during startup to retrieve the license. After this initial connection, the applications do not maintain ongoing connections to the license serve
81+
Mendix applications connect to the license server during startup to retrieve the license. After this initial connection, the applications do not maintain ongoing connections to the license server.
7182

7283
### What Happens If the License Server Is Unavailable?
7384

74-
If the license server becomes unavailable while a Mendix application is running, the application's current operation will not be affected. However, if the license server is unavailable during startup, the Mendix application will launch in trial mode. To resolve this, restart the Mendix application once the license server is available.
85+
If the license server becomes unavailable while a Mendix application is running, the application's current operation will not be affected. However, if the license server is unavailable during startup, the Mendix application will launch in trial mode. In trial mode, usage is limited to a specific number of users and the application stops running after a few hours.
86+
87+
To resolve this, restart the Mendix application once the license server is available.
88+
89+
### Does the License Server Require Internet Access?
90+
91+
SALT-based licenses can operate fully offline. No outbound connectivity to Siemens systems is required.

content/en/docs/deployment/on-premises-design/cloud-foundry/cloud-foundry-deploy-pad.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: "Portable App Distribution for Cloud Foundry"
2+
title: "Portable App Distribution on Cloud Foundry"
33
url: /developerportal/deploy/cloud-foundry-pad/
44
weight: 20
55
description: "Describes how to deploy to a Cloud Foundry environment by using Portable App Distribution."
@@ -12,6 +12,7 @@ Cloud Foundry is a platform-as-a-service (PaaS) that automates the deployment, s
1212
This documentation provides guidance on understanding Cloud Foundry on-premise deployments and serves as a helpful reference rather than official implementation support.
1313

1414
{{% alert color="info" %}}
15+
Unlike the Cloud Foundry Buildpack deployment where Mendix provides full end-to-end tooling support, the Portable App Distribution approach only requires Java to run, with Mendix's support strictly limited to the Portable App Distribution package itself. All implementation, configuration, and deployment activities, including Cloud Foundry deployment, remain the sole responsibility of the customer.
1516
For information about the scope of support, see [Support for Different Deployment Strategies](/support/deployment-strategy-support/).
1617
{{% /alert %}}
1718

content/en/docs/deployment/on-premises-design/linux/linux-pad.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: "Portable App Distribution for Linux"
2+
title: "Portable App Distribution on Linux"
33
url: /developerportal/deploy/linux-pad/
44
description: "How to install and configure Mendix on a Linux system using Portable App Distribution."
55
weight: 20
@@ -12,12 +12,13 @@ Portable App Distribution refers to packaging applications in a self-contained f
1212
This documentation provides guidance for deploying Portable App Distribution in a Linux environment and serves as a helpful reference rather than official implementation support.
1313

1414
{{% alert color="info" %}}
15+
Unlike the M2EE-based deployment, where Mendix provides full end-to-end tooling support, the Portable App Distribution approach only requires Java to run, with Mendix's support strictly limited to the Portable App Distribution package itself. All implementation, configuration, and deployment activities, including Linux deployment, remain the customer's sole responsibility.
1516
For information about the scope of support, see [Support for Different Deployment Strategies](/support/deployment-strategy-support/).
1617
{{% /alert %}}
1718

1819
## Prerequisites
1920

20-
To deploy your app to an on-premises Cloud Foundry configuration using [Portable App Distribution](/developerportal/deploy/portable-app-distribution-deploy/), ensure that you fulfill the following prerequisites:
21+
To deploy your app to an on-premises Linux configuration using [Portable App Distribution](/developerportal/deploy/portable-app-distribution-deploy/), ensure that you fulfill the following prerequisites:
2122

2223
* A Linux environment. This can be a virtual machine, a physical server, or a cloud instance (for example, AWS EC2, Azure VM, Google Cloud VM). You will need `sudo` or `root` privileges for some commands.
2324
* Java Development Kit (JDK). Your application requires a compatible Java runtime. For installation instructions, refer to the following sections.

0 commit comments

Comments
 (0)