Skip to content

Commit 7a65871

Browse files
committed
Merge branch 'development' into db-agents-kit-versioning
2 parents 7d89b8c + 3b19fc4 commit 7a65871

69 files changed

Lines changed: 1966 additions & 598 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: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
---
2+
title: "Maia Resources"
3+
url: /control-center/maia-resources/
4+
description: "Describes how to provision and deprovision Maia Resources using self-service."
5+
weight: 25
6+
---
7+
8+
## Introduction
9+
10+
Maia Resources is your access point to increase the capacity of Maia Units for using Maia Make in Studio Pro. It allows admins to provision, upgrade, downgrade, and deprovision Maia Units and manage the resources for Maia Make for their company. For more information on Maia Make’s capabilities, refer to [Mendix AI Assistance (Maia)](/refguide/mendix-ai-assistance/).
11+
12+
## Prerequisites
13+
14+
1. Sufficient token entitlements – The user should have an adequate number of available Mendix Cloud Tokens to allocate for Maia Unit provisioning.
15+
2. Valid subscription plan – The user's Mendix subscription must be based on the FY21 price list or newer. Older subscription plans are not eligible for provisioning.
16+
3. Single account ownership – The user must have a single account. Owning multiple accounts is not supported for Maia Unit provisioning.
17+
4. Enterprise platform subscription – The user must have a single active enterprise platform subscription.
18+
19+
## Overview of Maia Units
20+
21+
The overview page provides a centralized view of all Maia Units currently provisioned for your company.
22+
23+
* Type – The type or resources; either Free or Provisioned
24+
* Cloud Tokens – The number of Cloud Tokens used
25+
* Capacity (Maia Units) – The number of Maia Units per month your organization can use
26+
* State – Whether the resources is active, or ready to be downgraded or deprovisioned
27+
28+
{{< figure src="/attachments/control-center/maia-resources/overview.jpeg" alt="" >}}
29+
30+
## Increasing Your Maia Units Capacity {#increase-maia-units}
31+
32+
1. **Make sure you have Cloud Tokens available**
33+
Cloud Tokens are purchased through your Mendix subscription. If your organization already has Cloud Tokens allocated to other services, you can reassign them. Check your available balance in the Control Center. If you need to purchase more, contact your Mendix account manager.
34+
2. **Convert Cloud Tokens to Maia Units**
35+
In the Control Center, go to Maia Resources and select Provision Resource. Choose how many Cloud Tokens to allocate. Each Cloud Token gives you 100 Maia Units per month.
36+
3. **Use Maia in Studio Pro**
37+
Your new capacity is active immediately. Studio Pro unblocks and Maia Make becomes available again.
38+
39+
### Key Considerations
40+
41+
* Monthly cycle – Your Maia Units reset each month. Unused units do not roll over.
42+
* Upgrades – Upgrades take effect immediately. Downgrades and cancellations take effect at the end of the current month; you keep access until then.
43+
* Free allowance – Every Mendix account includes a base allocation each month before any Cloud Tokens are needed.
44+
45+
## Provisioning Maia Units {#provisioning-maia-units}
46+
47+
You can provision any Maia resources directly within the Control Center using the self-service capability. To do this, select **Provision Resource**.
48+
49+
This allows you to select how many Cloud Token to use to provision Maia Units. Every Cloud Token provisions 100 Maia Units per month.
50+
51+
{{< figure src="/attachments/control-center/maia-resources/provision.jpeg" alt="" >}}
52+
53+
Click **Provision** to select an amount of cloud tokens. An pop-up shows the Maia Units capacity that will be added. Clicking **Provision** again completes the process. You are taken back to the **Maia Resource** page where the newly provisioned Maia Units appear in the list.
54+
55+
{{< figure src="/attachments/control-center/maia-resources/resource-summary.jpeg" alt="" width="300" >}}
56+
57+
## Upgrading Maia Units {#upgrading-maia-units}
58+
59+
To upgrade your provisioned Maia Units, select a plan of type **Provisioned** from your resources overview and click **Edit Resource**. This opens the page of your current resource, showing the amount of allotted Cloud Tokens. Increase the amount of Cloud Tokens to upgrade your provisioned Maia Units, then click **Save Changes**. Upgrades will take effect immediately.
60+
61+
{{< figure src="/attachments/control-center/maia-resources/upgrade.jpeg" alt="" >}}
62+
63+
## Downgrading Maia Units {#downgrading-maia-units}
64+
65+
To downgrade your amount of provisioned Maia Units, select a plan of type **Provisioned** from your resources overview and press **Edit Resource**. This opens the page for your current resource, showing the amount of allotted Cloud Tokens. Decrease the amount of Cloud Tokens to downgrade your provisioned Maia Units, then click **Save Changes** to confirm.
66+
67+
{{% alert color="info" %}}
68+
Your subscription plan operates on a monthly bundle cycle. When you downgrade, the new plan takes effect at the start of the new month. Until that date, you can still use the resource, and the status in the overview reads **Plan Downgrade Scheduled**.
69+
{{% /alert %}}
70+
71+
## Deprovisioning Maia Units {#deprovisioning-maia-units}
72+
73+
To deprovision, select a plan of type **Provisioned** from your resources overview and click **Deprovision**. A confirmation pop-up window appears. Click **Deprovision** to confirm.
74+
75+
{{% alert color="info" %}}
76+
Your subscription plan operates on a monthly bundle cycle. When you deprovision a resource, the deprovisioning takes effect at the end of the current subscription month. Until that date, you can still use the resource and status in the overview reads **Plan Deprovision Scheduled**.
77+
{{% /alert %}}

content/en/docs/howto/extensibility/pluggable-widgets/create-a-pluggable-widget-one.md

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -95,10 +95,6 @@ As part of the widget scaffolding, the generator builds the widget for the first
9595

9696
There is also a watcher available that will rebuild your widget as you make changes to files. Start the watcher by running `npm start`.
9797

98-
{{% alert color="info" %}}
99-
NPM version 7 changed the resolution behavior of peerDependencies. Try adding `--legacy-peer-deps` to your install command if it results in peer dependency resolution errors.
100-
{{% /alert %}}
101-
10298
### Using the Widget
10399

104100
When the build script completes it will package your widget as a `.mpk` file and copy it to the `widgets/` directory in your Mendix app. Now that the generator has finished its job it is time to use the widget in Studio Pro. To use the widget, do the following:
@@ -118,9 +114,9 @@ Open the *(YourMendixApp)/myPluggableWidgets/textBox* folder in your IDE of choi
118114
1. Remove the file *src/components/HelloWorldSample.tsx*. Errors in *TextBox.editorPreview.tsx* will be dealt with in step 6 below.
119115
2. The generator creates the widget definition file `src/TextBox.xml` with preset properties. Replace the `sampleText` property following this snippet:
120116

121-
```xml
117+
```xml {hl_lines=["7-15"]}
122118
<?xml version="1.0" encoding="utf-8" ?>
123-
<widget id="mendix.textbox.TextBox" pluginWidget="true" needsEntityContext="true" supportedPlatform="Web" offlineCapable="true" xmlns="http://www.mendix.com/widget/1.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.mendix.com/widget/1.0/ ../xsd/widget.xsd">
119+
<widget id="mendix.textbox.TextBox" pluginWidget="true" needsEntityContext="true" supportedPlatform="Web" offlineCapable="true" xmlns="http://www.mendix.com/widget/1.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.mendix.com/widget/1.0/ ../node_modules/mendix/custom_widget.xsd">
124120
<name>Text Box</name>
125121
<description>Edit text input</description>
126122
<icon/>
@@ -141,7 +137,7 @@ Open the *(YourMendixApp)/myPluggableWidgets/textBox* folder in your IDE of choi
141137
Explaining the code:
142138

143139
* *TextBox.xml* is the [widget definition file](/apidocs-mxsdk/apidocs/pluggable-widgets/#widget-definition) used in Studio Pro which reads the widget's capabilities
144-
* The property `pluginWidget=true` will make the widget work with the new widget API
140+
* The property `pluginWidget=true` will make the widget work with the [Pluggable Widgets API](/apidocs-mxsdk/apidocs/pluggable-widgets/)
145141
* The property `needsEntityContext=true` is set up to allow the attribute to be taken from context
146142
* The property of the [type attribute](/apidocs-mxsdk/apidocs/pluggable-widgets-property-types/#attribute) only allows the selection of string attributes from the domain model
147143

@@ -156,7 +152,7 @@ Open the *(YourMendixApp)/myPluggableWidgets/textBox* folder in your IDE of choi
156152
Paste the following [React function component](https://react.dev/learn/your-first-component) into the newly create `TextInput.tsx` file.
157153

158154
```tsx
159-
import { createElement, ReactElement } from "react";
155+
import { ReactElement } from "react";
160156

161157
export interface TextInputProps {
162158
value: string;
@@ -172,14 +168,14 @@ Open the *(YourMendixApp)/myPluggableWidgets/textBox* folder in your IDE of choi
172168
5. The container component *src/TextBox.tsx* receives the properties in the runtime, and forwards the data to the display component. The container works like glue between the Mendix application and the display component. In *TextBox.tsx* update the component to look like this:
173169

174170
```tsx
175-
import { createElement, ReactElement } from "react";
171+
import { ReactElement } from "react";
176172
import { TextBoxContainerProps } from "../typings/TextBoxProps";
177173
import { TextInput } from "./components/TextInput";
178174

179175
import "./ui/TextBox.css";
180176

181177
export function TextBox(props: TextBoxContainerProps): ReactElement {
182-
const value = props.textAttribute.value || "";
178+
const value = props.textAttribute.value ?? "";
183179
return <TextInput value={value} />;
184180
}
185181
```
@@ -193,7 +189,7 @@ Open the *(YourMendixApp)/myPluggableWidgets/textBox* folder in your IDE of choi
193189
6. Pluggable Widgets also have a Preview component, which is used in the design mode of the Studio Pro page editor. Update *src/TextBox.editorPreview.tsx* such that the deleted `HelloWorldSample` component is replaced by our `TextInput` component. This will resolve the errors thrown by `npm start`.
194190

195191
```tsx
196-
import { ReactElement, createElement } from "react";
192+
import { ReactElement } from "react";
197193
import { TextBoxPreviewProps } from "../typings/TextBoxProps";
198194
import { TextInput } from "./components/TextInput";
199195

@@ -224,7 +220,7 @@ The input works, but the styling could be improved. In the next code snippets, y
224220

225221
```tsx
226222
export function TextBox(props: TextBoxContainerProps): ReactElement {
227-
const value = props.textAttribute.value || "";
223+
const value = props.textAttribute.value ?? "";
228224
return <TextInput
229225
value={value}
230226
style={props.style}
@@ -239,7 +235,7 @@ The input works, but the styling could be improved. In the next code snippets, y
239235
2. Until we update the type of our TextInputProps, Typescript will display errors in *TextBox.tsx*. In *src/components/TextInput.tsx*, add the missing properties to the interface and pass them to the `input` component:
240236

241237
```tsx
242-
import { createElement, CSSProperties, ReactElement } from "react";
238+
import { CSSProperties, ReactElement } from "react";
243239

244240
export interface TextInputProps {
245241
value: string;
@@ -282,8 +278,11 @@ Comparing our widget to the Mendix text input widget we are still missing a labe
282278

283279
1. Open *src/TextBox.tsx* and remove the `style` and `className` props from `TextInput`. Now that the widget is a labeled input, it should no longer have the layout styling applied to it. In fact, the `pluggable-widget-tools` removed them from the type definition in *typings/TextBoxProps.d.ts*.
284280

285-
```tsx
286-
return <TextInput value={value} tabIndex={props.tabIndex} />;
281+
```tsx {hl_lines=[3]}
282+
export function TextBox(props: TextBoxContainerProps): ReactElement {
283+
const value = props.textAttribute.value ?? "";
284+
return <TextInput value={value} tabIndex={props.tabIndex} />;
285+
}
287286
```
288287

289288
1. **Synchronize** your project and **update** all widgets. Now open the widget **Properties** and open the **Label** tab.
@@ -344,7 +343,7 @@ Our widget now looks like a Mendix widget, but does not behave like one yet. Whi
344343

345344
```tsx {hl_lines=5}
346345
export function TextBox(props: TextBoxContainerProps): ReactElement {
347-
const value = props.textAttribute.value || "";
346+
const value = props.textAttribute.value ?? "";
348347
return <TextInput
349348
value={value}
350349
onChange={props.textAttribute.setValue}

content/en/docs/howto/extensibility/pluggable-widgets/create-a-pluggable-widget-two.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ To add these restrictions, follow the instructions below:
7676
4. In *components/TextInput.tsx*, add the `disabled` property to the `TextInputProps` interface and set the HTML input attribute to `disabled`:
7777

7878
```tsx
79-
import { createElement, CSSProperties, ReactElement } from "react";
79+
import { CSSProperties, ReactElement } from "react";
8080

8181
export interface TextInputProps {
8282
value: string;
@@ -146,7 +146,7 @@ This section teaches you how to add validation to your TextBox widget. Using mic
146146
3. To render the message, create a new component *components/Alert.tsx*:
147147

148148
```tsx
149-
import { FunctionComponent, createElement, ReactNode } from "react";
149+
import { FunctionComponent, ReactNode } from "react";
150150

151151
export interface AlertProps {
152152
alertStyle?: "default" | "primary" | "success" | "info" | "warning" | "danger";
@@ -194,7 +194,7 @@ This section teaches you how to add validation to your TextBox widget. Using mic
194194
5. Add `Fragment` to the current React import (shown below), and add a new `Alert` import underneath the existing imports in *TextBox.tsx*:
195195

196196
```tsx
197-
import { createElement, ReactElement, Fragment } from "react";
197+
import { ReactElement, Fragment } from "react";
198198
import { Alert } from "./components/Alert";
199199
```
200200

@@ -314,7 +314,7 @@ Until now the components did not keep any state. Each keystroke passed through t
314314
2. In *TextBox.tsx*, check if `onChangeAction` is available and call the execute function `onLeave` when the value is changed. When doing this, replace the `onUpdate` function with your new `onLeave` function:
315315

316316
```tsx
317-
import { createElement, Fragment, ReactElement, useEffect } from "react";
317+
import { Fragment, ReactElement, useEffect } from "react";
318318
import { TextBoxContainerProps } from "../typings/TextBoxProps";
319319
import { TextInput } from "./components/TextInput";
320320

@@ -357,7 +357,7 @@ Until now the components did not keep any state. Each keystroke passed through t
357357
3. In *components/TextInput.tsx*, introduce a state for input changes and use the `onBlur` function to call the `onLeave` function by replacing the `onUpdate` function:
358358

359359
```tsx
360-
import { createElement, CSSProperties, ReactElement, useEffect, useState } from "react";
360+
import { CSSProperties, ReactElement, useEffect, useState } from "react";
361361

362362
export interface TextInputProps {
363363
value: string;
@@ -546,7 +546,7 @@ To easily view changes to your widget while in Studio Pro's **Design mode**, you
546546
To add preview mode functionality, create a new file *src/TextBox.editorPreview.tsx* and add this code to it:
547547

548548
```tsx
549-
import { createElement, ReactElement } from "react";
549+
import { ReactElement } from "react";
550550
import { TextBoxPreviewProps } from "../typings/TextBoxProps";
551551
import { TextInput } from "./components/TextInput";
552552

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
---
2+
title: "NIST 800-53 Maintenance Compliance for Private Mendix Platform"
3+
linktitle: "Maintenance"
4+
url: /private-mendix-platform/nist-controls-ma/
5+
description: "Documents the Private Mendix Platform's compliance with the Maintenance (MA) category of the NIST 800-53 security framework."
6+
weight: 10
7+
no_list: false
8+
simple_list: true
9+
---
10+
11+
## Introduction
12+
13+
Documents in this section provide more information about Private Mendix Platform's compliance with the Maintenance (MA) category of the [NIST 800-53](https://csrc.nist.gov/pubs/sp/800/53/r5/upd1/final) security framework. For each applicable control, we have listed which party (Mendix or the customer) is responsible for which component or aspect.
14+
15+
In general, Mendix is responsible for the Private Mendix Platform, Mendix Operator, Mendix Studio Pro, Mendix Runtime, and so on. Customer responsibilities are related to infra and organization processes. For more information, refer to detailed documentation below.
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
---
2+
title: "MA-01 System Maintenance Policy And Procedures"
3+
linktitle: "MA-01"
4+
url: /private-mendix-platform/nist-controls/ma-01/
5+
description: "Documents the Private Mendix Platform's compliance with the MA-01 control of the NIST 800-53 framework."
6+
weight: 20
7+
---
8+
9+
## Introduction
10+
11+
This document describes how Private Mendix Platform fulfills the MA-01 control.
12+
13+
| Control ID | MA-01 |
14+
| --- | --- |
15+
| Control category | MA - Maintenance |
16+
| Requirement baseline | FEDRAMP MODERATE |
17+
| Responsibility and ownership | Customer - Infra, Customer - Org |
18+
19+
## Control
20+
21+
The organization:
22+
23+
* Develops, documents, and disseminates to organization-defined personnel or roles:
24+
25+
* A system maintenance policy that addresses purpose, scope, roles, responsibilities, management commitment, coordination among organizational entities, and compliance
26+
* Procedures to facilitate the implementation of the system maintenance policy and associated system maintenance controls
27+
28+
* At an organization-defined frequency, reviews and updates the current:
29+
30+
* System maintenance policy at an organization-defined frequency
31+
* System maintenance procedures.
32+
33+
### Supplemental Guidance
34+
35+
This control addresses the establishment of policy and procedures for the effective implementation of selected security controls and control enhancements in the MA family. Policy and procedures reflect applicable federal laws, Executive Orders, directives, regulations, policies, standards, and guidance. Security program policies and procedures at the organization level may make the need for system-specific policies and procedures unnecessary.
36+
37+
The policy can be included as part of the general information security policy for organizations or conversely, can be represented by multiple policies reflecting the complex nature of certain organizations. The procedures can be established for the security program in general and for particular information systems, if needed. The organizational risk management strategy is a key factor in establishing policy and procedures.
38+
39+
The following controls are related to this control:
40+
41+
* PM-9.
42+
43+
For more information, refer to the NIST Special Publications 800-12, 800-100.
44+
45+
## Responsibility
46+
47+
### Customer Responsibility
48+
49+
System maintenance plans and schedules for the Private Mendix Platform, Mendix applications, and their underlying infrastructure are the responsibility of the customer and associated Infra and App Implementers and Operators.
50+
51+
## Guidance
52+
53+
### Customer Responsibility
54+
55+
This is not a Mendix responsibility. It is the responsibility of the customer to implement a system maintenance policy and procedures.
56+
57+
It is the responsibility of the Infra Implementer to ensure that the infrastructure and Private Mendix Platform is implemented in such a way that they comply with and support the customer's system maintenance policy and procedures. It is the responsibility of the App Implementer to ensure that the Mendix App is implemented in such a way that it complies with and supports the customer's system maintenance policy and procedures.
58+
59+
It is the responsibility of the Infra Operator and App Operator to perform maintenance and updates in such a way that they ensure ongoing compliance with the customer's system maintenance policy and procedures.

0 commit comments

Comments
 (0)