Skip to content

Commit 8854fea

Browse files
Merge branch 'development' of https://github.com/mendix/docs into development
2 parents 2974809 + 02fa04f commit 8854fea

62 files changed

Lines changed: 1154 additions & 98 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.

content/en/docs/apidocs-mxsdk/apidocs/frontend/client-api.md

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,15 @@ weight: 30
99

1010
Enrich the user interface of your applications by building on top of our web client APIs. Use standard web technology in combination with our powerful APIs to build any widget you want.
1111

12-
## Client APIs
12+
## Client API
13+
14+
The client API is compatible with both the React and the Dojo client.
15+
16+
* [Mendix 10 Client API](https://apidocs.rnd.mendix.com/10/client-mx-api/index.html)
17+
18+
## Legacy Client APIs
1319

1420
* [Mendix 10 React Client API](https://apidocs.rnd.mendix.com/10/client-react/index.html)
15-
* [Mendix 10 Client API](https://apidocs.rnd.mendix.com/10/client/index.html)
16-
* [Mendix 9 Client API](https://apidocs.rnd.mendix.com/9/client/index.html)
17-
* [Mendix 8 Client API](https://apidocs.rnd.mendix.com/8/client/index.html)
21+
* [Mendix 10 Dojo Client API](https://apidocs.rnd.mendix.com/10/client/index.html)
22+
* [Mendix 9 Dojo Client API](https://apidocs.rnd.mendix.com/9/client/index.html)
23+
* [Mendix 8 Dojo Client API](https://apidocs.rnd.mendix.com/8/client/index.html)

content/en/docs/appstore/use-content/platform-supported-content/modules/database-connector-mx10.md

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,9 +55,9 @@ This connector supports the following statements:
5555

5656
### Limitations
5757

58-
* `SELECT` queries and `Stored Procedure` can be saved only if they are successfully executed and a response structure is created
58+
* `SELECT` queries and `Stored Procedure` can be saved only if they are successfully executed and a response structure is created (this is no longer a limitation as of Studio Pro 10.20)
5959
* The connector supports columns and stored procedure parameters with primitive data types only
60-
* If column names contain special characters, use an alias for the column name
60+
* If column names contain special characters, use an alias for the column name (this is no longer a limitation as of Studio Pro 10.20)
6161
* Parameters are only supported for filter values (prepared statements)
6262
* Certificate-based authentication for PostgreSQL is not supported on macOS
6363

@@ -123,6 +123,18 @@ Then, use the parameter in the query:
123123

124124
`select * from customers where contactFirstName like {paramFirstName}`
125125

126+
{{% alert color="info" %}}
127+
If you need to pass a list of values to a parameter, you can use the following approach:
128+
129+
`WITH empids AS (
130+
SELECT empid FROM json_table( {EmpIdList}, '$[*]' columns ( empid number path '$' ))
131+
)
132+
SELECT *
133+
FROM emp WHERE empno IN (SELECT empid FROM empids);`
134+
135+
where parameter `EmpIdList` is of type String with the value `[1,7946,3,4,7942,7943,7945]`.
136+
{{% /alert %}}
137+
126138
### Using Query Response {#use-query-response}
127139

128140
After [querying the database](#query-database), you can view the response in the **Response** screen.
@@ -166,6 +178,14 @@ You can now use the microflow in your app. Below is an example of a configured m
166178
See the [Integration Activities](/refguide/integration-activities/) section of the *Studio Pro Guide* for further explanation of the properties in this activity.
167179
See the [Call Stored Procedure](/howto/integration/use-the-external-database-connector/) section of *Use the External Database Connector* for more information on how to call a stored procedure.
168180

181+
### Saving Intermediate Queries
182+
183+
As of Studio Pro 10.20, it is possible to save queries at intermediate stages.
184+
185+
Studio Pro's standard save behavior is implemented, including the dot indicator in the tab to signify unsaved changes.
186+
187+
Press <kbd>Ctrl</kbd> + <kbd>S</kbd> to store changes when switching to a different query or performing another action. Make sure to not to use queries that are saved intermediately in the [Query External Database](/refguide/query-external-database/) activity of a microflow, as it might lead to runtime exception.
188+
169189
## Use Certificate-Based Authentication for PostgreSQL Connections {#postgres-ssl}
170190

171191
### Prerequisites

content/en/docs/appstore/use-content/platform-supported-content/modules/snowflake/mendix-data-loader.md

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,55 @@ For example, for a data source with the ID *40FJYP9D*, the resulting statement w
139139
CALL MENDIX_DATA_LOADER.MX_FUNCTIONS.RUN_INGESTION_JOB('40FJYP9D','');
140140
```
141141

142+
## Setting Up Mail Notifications on Failed Task Execution
143+
144+
Snowflake provides a built-in functionality for alerts and notifications. This `ALERT` object lets you specify a conditional expression to check if tasks have failed and send notifications if required.
145+
146+
To use this functionality, perform the following steps:
147+
148+
1. Create a [notifcation integration email](https://docs.snowflake.com/en/sql-reference/sql/create-notification-integration-email).
149+
2. Create an [ALERT](https://docs.snowflake.com/en/sql-reference/commands-alert) using the notification integration and the ["SYSTEM$SEND_EMAIL"](https://docs.snowflake.com/en/sql-reference/stored-procedures/system_send_email) system function.
150+
151+
For more information about using external integrations for sending all types of notifications, see [Introduction to Snowflake's data pipeline alerts & notifications](https://medium.com/snowflake/introduction-to-snowflakes-data-pipeline-alerts-notifications-9beac8d127cc).
152+
153+
### Sample SQL to Set up a Mail Notification
154+
155+
The following is a sample SQL template which you can customize with your data and execute in a worksheet:
156+
157+
```sql
158+
CREATE DATABASE IF NOT EXISTS <db name>;
159+
160+
CREATE SCHEMA IF NOT <schema name>;
161+
162+
USE SCHEMA <schema name>;
163+
164+
CREATE OR REPLACE NOTIFICATION INTEGRATION <NOTIFICATION INTEGRATION name>
165+
TYPE = EMAIL
166+
ENABLED = TRUE
167+
ALLOWED_RECIPIENTS = ('<mail1@company.com>', '<mail2@company.com>', ...);
168+
169+
CREATE OR REPLACE ALERT <ALERT name>
170+
WAREHOUSE = <warehouse name>
171+
SCHEDULE = '<integer> MINUTE' -- Or use CRON e.g. 15 * * * * UTC
172+
IF (
173+
EXISTS (
174+
SELECT 1
175+
FROM SNOWFLAKE.ACCOUNT_USAGE.TASK_HISTORY
176+
WHERE (STATE = 'FAILED' OR STATE = 'FAILED_AND_AUTO_SUSPENDED') AND NAME = '<task name>'
177+
AND SCHEDULED_TIME >= CONVERT_TIMEZONE('UTC',DATEADD(MINUTE, -<integer>, CURRENT_TIMESTAMP()))
178+
)
179+
)
180+
THEN CALL SYSTEM$SEND_EMAIL(
181+
'<NOTIFICATION INTEGRATION name>',
182+
('<mail1@company.com>', '<mail5@company.com>', ...) --Subset of ALLOWED_RECIPIENTS in NOTIFICATION INTEGRATION.
183+
'<Mail subject>',
184+
'<Mail Body>.'
185+
);
186+
187+
ALTER ALERT <ALERT name> RESUME; -- The ALERT has STATE Suspended when created and is started by this statement
188+
189+
SHOW ALERTS;
190+
```
142191
## Verifying the Access Token
143192

144193
When using OAuth authentication with the Mendix Data Loader, it is crucial to verify the access token received by your Mendix application. This verification process ensures the token's authenticity and integrity, protecting your application from unauthorized access attempts.

content/en/docs/appstore/use-content/platform-supported-content/services/oidc-provider.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,7 @@ Every end-user that is known in Admin module also needs to be known in the OIDC
184184
| Accounts | Open page 'OpenIDConnectProvider.AccountDetail_Overview' | Administrator |
185185
| Active Sessions | Open page 'Administration.ActiveSessions' | Administrator |
186186
| Scheduled Events | Open page 'Administration.ScheduledEvents' | Administrator |
187-
| Runtime Instances | Open page 'Administration.RunteimInstances' | Administrator |
187+
| Runtime Instances | Open page 'Administration.RuntimeInstances' | Administrator |
188188
| My Account | Call microflow 'Administration.ManageMyAccount' | User |
189189
| OpenID Connect | Open page 'OpenIDConnectProvider.OpenIDConnect_Dashboard' | Administrator |
190190
| Mx Objects | Open page 'MxModelReflection.MxObjects_Overview' | Administrator |

content/en/docs/deployment/mendix-cloud-deploy/pipelines.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ Click **Copy ID** ({{% icon name="copy" %}}) on a pipeline design to copy the de
9292

9393
Click **More Options** ({{% icon name="three-dots-menu-horizontal-filled" %}}) > **Edit** on a pipeline design to go to its **Details** page. From there, you can view and edit the pipeline details, as described in the [Editing a Pipeline](#edit-pipeline) section below.
9494

95-
Click **More Options** ({{% icon name="three-dots-menu-horizontal-filled" %}}) > **Delete** to delete a pipeline design.
95+
Click **More Options** ({{% icon name="three-dots-menu-horizontal-filled" %}}) > **Delete** to delete a pipeline design. You cannot delete a pipeline design if it is used in any currently running pipelines. Instead, you must wait for the run to finish before you delete the design.
9696

9797
{{% alert color="warning" %}}
9898
If you delete a pipeline design in the **Designs** tab, any run history associated with that pipeline design is deleted from the **Runs** tab.
@@ -121,6 +121,8 @@ From your pipeline design's **Details** page, you can add, remove, and configure
121121
{{< figure src="/attachments/deployment/mendix-cloud-deploy/pipelines/pipeline-design.png" alt="" >}}
122122

123123
{{% alert color="info" %}}
124+
For pipelines that are currently running, the page shows the current state of the steps (finished, running, or not started).
125+
124126
Active pipelines cannot be edited; if you want to edit an existing pipeline, make sure it is deactivated.
125127
{{% /alert %}}
126128

@@ -140,6 +142,8 @@ This is a mandatory step for each pipeline; you cannot delete this step. This st
140142

141143
{{% alert color="info" %}}
142144
The Teamserver push (Git) command requires a Git repository. Customers using an SVN repository for their Mendix app cannot use this trigger.
145+
146+
Ensure that you only create one pipeline per app with the Teamserver push (Git) trigger and the same [branch expression](#branch-expression). If you create multiple pipelines with the Teamserver push (Git) trigger and the same expression, only the pipeline that you created first is executed.
143147
{{% /alert %}}
144148

145149
##### Checkout
Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
---
2+
title: "Mendix on Azure"
3+
url: /developerportal/deploy/mendix-on-azure/
4+
description: "Presents documentation on deploying your Mendix app on Microsoft Azure."
5+
weight: 42
6+
no_list: false
7+
description_list: true
8+
---
9+
10+
{{% alert color="info" %}} This feature is currently available to participating customers. For more information, contact your Customer Success Manager. {{% /alert %}}
11+
12+
## Introduction
13+
14+
Mendix on Azure provides a simplified, integrated way to deploy Mendix applications to a Microsoft Azure environment. With this solution, users are empowered to deploy their Mendix applications in Azure environments without the need for intricate infrastructure setup in cloud services. They can also seamlessly manage infrastructure services through an intuitive user interface. No matter their IT skills, users can realize their project value quickly and securely with Azure.
15+
16+
## Benefits of Mendix on Azure
17+
18+
By eliminating manual setup and maintenance, Mendix on Azure allows your teams to:
19+
20+
* Focus on developing business value instead of configuring infrastructure.
21+
* Avoid delays caused by cross-team dependencies or architectural discussions.
22+
* Accelerate time-to-market for critical applications.
23+
* Address deployment and operational bottlenecks by automating the setup and management of Mendix applications on Azure.
24+
* Eliminate the need for specialized cloud engineers and reduce setup time to under 30 minutes.
25+
* Focus on innovation and deliver value faster, reduces labor costs, and ensure consistency, security, and compliance.
26+
27+
## Mendix on Azure and Mendix for Private Cloud
28+
29+
Mendix on Azure is a new deployment option that makes use of some of the features of Mendix for Private Cloud, but does so in an opinionated way.
30+
31+
Mendix for Private Cloud offers its users flexibility coupled with the ability to keep their deployment within their enterprise firewall, but requires more effort to configure and more time to value than deployments on Mendix Cloud.
32+
33+
Mendix on Azure builds on that by providing an automated, preconfigured solution with access to private customer networks, which can be deployed in 30 minutes by a user without IT skills at no extra operational costs. The architecture, its maintenance, updates, and security hardening are all fully managed by Mendix. This helps prevent issues with setting up the infrastructure, which can sometimes be very technical and complicated for citizen developers.
34+
35+
## Architecture
36+
37+
Mendix on Azure provides a managed service to host Mendix apps in an Azure subscription you own. The Mendix on Azure service is composed of several underlying Azure services combined with the following Mendix-specific components:
38+
39+
* [Mendix Runtime](/refguide/runtime/)
40+
* [Mendix Operator](/developerportal/deploy/private-cloud-cluster/)
41+
* [Mendix Agent](/developerportal/deploy/private-cloud-cluster/)
42+
43+
Mendix operates all services and components within the scope of the Mendix on Azure service for you. The service leverages several underlying Azure services that are preconfigured to optimally host your Mendix apps.
44+
45+
### Components
46+
47+
Mendix deploys, operates and is responsible for overall service functionality of the following components as part of Mendix on Azure:
48+
49+
* Azure Kubernetes Service with Managed NGINX Ingress Controller (app routing add-on)
50+
* Azure PostgreSQL Flexible Server
51+
* Azure Container Registry
52+
* Azure Blob Storage
53+
* Azure Managed Grafana
54+
* Azure Managed Prometheus
55+
* Azure Virtual Network with private endpoints and private DNS zones
56+
* Mendix Runtime
57+
* Mendix Operator
58+
* Mendix Agent
59+
60+
You cannot alter these managed components yourself beyond what is offered in the Mendix on Azure and Mendix Private Cloud self-service portals. Mendix limits customization to ensure a consistent, predictable, and scalable customer experience.
61+
62+
### Diagram
63+
64+
The diagram in this section presents the high-level architecture of the Mendix for Azure solution.
65+
66+
{{< figure src="/attachments/deployment/mx-azure/architecture.png" class="no-border" >}}
67+
68+
The architecture is assessed against the [Azure well-architected framework](https://learn.microsoft.com/en-us/azure/well-architected/) to ensure its reliability, accessibility, and performance.
69+
70+
## Security
71+
72+
Mendix accesses customer environments in a secure, auditable way:
73+
74+
* We use [cross-tenant access](https://learn.microsoft.com/en-us/entra/external-id/cross-tenant-access-overview), which is native to Azure and complies with Microsoft best practices.
75+
* Most access is performed programmatically, that is, by the system rather than manually by normal users. There is usually no human intervention into the customer environments.
76+
* In rare cases where human intervention is required, for example, because of a support request that requires access to the customer environment to resolve, the access is automated, auditable, and governed by Mendix support processes. The Mendix employee working on the support request receives temporary access which is then revoked.
77+
* The network connectivity is done using a private Azure link service, not through the public internet.
78+
79+
### SOC 2 Type 2 Compliance Exceptions
80+
81+
The Azure Policy add-on is not enabled inside Mendix Azure clusters, because Mendix can control which workloads can access the cluster. Because of that, the following exceptions to the SOC 2 Type 2 policy are considered acceptable:
82+
83+
* Azure Container Registry:
84+
* [Container registries should be encrypted with a customer-managed key](https://www.azadvertizer.net/azpolicyadvertizer/5b9159ae-1701-4a6f-9a7a-aa9c8ddd0580.html) - The standard Microsoft key is used instead.
85+
* AKS - cluster resource:
86+
* [Azure Policy Add-on for Kubernetes service (AKS) should be installed and enabled on your clusters](https://www.azadvertizer.net/azpolicyadvertizer/0a15ec92-a229-4763-bb14-0ea34a568f8d.html) - The cluster is deployed and managed by Mendix, so the policy is not needed.
87+
* [Azure Kubernetes Service clusters should have Defender profile enabled](https://www.azadvertizer.net/azpolicyadvertizer/a1840de2-8088-4ea8-b153-b4c723e9cb01.html) - This is not automated for cost-saving reasons.
88+
* AKS - cluster VNET:
89+
* [All Internet traffic should be routed via your deployed Azure Firewall](https://www.azadvertizer.net/azpolicyadvertizer/fc5e4038-4584-4632-8c85-c0448d374b2c.html) - This is not automated, but the customer can deploy their own Firewall if required.
90+
* Storage Account:
91+
* [Storage accounts should use customer-managed key for encryption](https://www.azadvertizer.net/azpolicyadvertizer/6fac406b-40ca-413b-bf8e-0bf964659c25.html) - The cluster is deployed and managed by Mendix, so this is not needed.
92+
93+
## Read More
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
---
2+
title: "Getting Started with Mendix on Azure"
3+
url: /developerportal/deploy/mendix-on-azure/quickstart/
4+
description: "Documents the pre-implementation tasks for Mendix on Azure."
5+
weight: 10
6+
---
7+
8+
{{% alert color="info" %}} This feature is currently available to participating customers. For more information, contact your Customer Success Manager. {{% /alert %}}
9+
10+
## Introduction
11+
12+
Before you can deploy your Mendix app on Azure, you must plan and complete a number of pre-implementation tasks.
13+
14+
## Prerequisites
15+
16+
To adopt Mendix on Azure, you need to have the following:
17+
18+
* A Mendix account; Mendix Studio Pro 10.10 or newer is required
19+
* As an optional best practice, add multiple cluster manager to your clusters
20+
* An Azure account with the following permissions:
21+
* Permission to grant admin consent on the Mendix on Azure portal app registration
22+
* Owner or Contributor role assigned on the target subscription level
23+
24+
{{% alert color="info" %}} To comply with the principle of least privilege, you can also create a custom role for the Mendix Operator instead of assigning the Owner or Contributor role. For the required permissions, see below:
25+
26+
```text
27+
{
28+
"properties": {
29+
"roleName": "Mendix on Azure Operator",
30+
"description": "",
31+
"assignableScopes": [
32+
"/subscriptions/<yoursubscriptionid>"
33+
],
34+
"permissions": [
35+
{
36+
"actions": [
37+
"*/register/action",
38+
"Microsoft.Solutions/applications/*",
39+
"Microsoft.Solutions/locations/operationstatuses/*",
40+
"Microsoft.Resources/subscriptions/resourceGroups/*",
41+
"Microsoft.Resources/deployments/*",
42+
"Microsoft.Monitor/accounts/*",
43+
"Microsoft.Authorization/roleAssignments/write",
44+
"Microsoft.Authorization/roleAssignments/read"
45+
],
46+
"notActions": [],
47+
"dataActions": [],
48+
"notDataActions": []
49+
}
50+
]
51+
}
52+
}
53+
```
54+
{{% /alert %}}
55+
56+
## Licensing
57+
58+
Mendix on Azure is available for purchase from the the [Azure Marketplace](https://azuremarketplace.microsoft.com/). Connecting to Azure services may also include additional cost. For more information, refer to Azure documentation.
59+
60+
For production environments, you also need a runtime license for your Mendix app. For more information, refer to [Licensing Apps](/developerportal/deploy/licensing-apps-outside-mxcloud/). The Operator license is applied automatically when using Mendix on Azure.

0 commit comments

Comments
 (0)