From 6af38ce4945f1bf2a2e82f87a5f63ad5bcf59464 Mon Sep 17 00:00:00 2001 From: Karuna-Mendix Date: Wed, 30 Jul 2025 15:11:57 +0530 Subject: [PATCH 01/18] from the User Classification module draft --- .../modules/unit-classification.md | 80 +++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 content/en/docs/marketplace/platform-supported-content/modules/unit-classification.md diff --git a/content/en/docs/marketplace/platform-supported-content/modules/unit-classification.md b/content/en/docs/marketplace/platform-supported-content/modules/unit-classification.md new file mode 100644 index 00000000000..70a0a215ea6 --- /dev/null +++ b/content/en/docs/marketplace/platform-supported-content/modules/unit-classification.md @@ -0,0 +1,80 @@ +--- +title: "User Classification" +url: /appstore/modules/unit-classification +description: "Describes the configuration and usage of the User Classification module, which is available in the Mendix Marketplace." +--- + +## Introduction + +The [User Classification]() module enables efficient categorization of users based on pre-defined roles or custom classification logic. This document guides you in implementing the classification logic and configuring the required elements within your Mendix application. Using this module, organizations can ensure reliable user classification and maintain accurate metering within their Mendix environment. + +{{% alert color="info" %}} +If external users are not classified, Mendix user metering will consider them as internal users. +{{% /alert %}} + +### Typical Use Cases + +The User Classification module supports the following use cases: + +* Role-based classification automatically classifies users as internal or external based on predefined roles. +* Custom classification logic automatically classifies users as internal or external using a custom-configured microflow. +* Classification of previously provisioned users allows users from non-SSO modules, who were provisioned earlier but do not yet have a defined user type, to be classified. + +### Prerequisites + +To use the User Classification module, your app must be running on one of the following Mendix versions: + +* Mx9 LTS +* Mx10 LTS +* Mx11 and above + +## Installation + +Download the [User Classification]() module from the Marketplace. Follow the instructions in [How to Use Marketplace Content](/appstore/use-content/) to import the module into your app. + +## Configuration + +### Configuring User Classification for New and Existing Users + +The User Classification module supports both new users through an After Commit Event (ACO_EVT) for automated classification and existing users, who can be classified with a one-time update microflow. + +#### After Commit Event (ACO_EVT) + +For new users created after the User Classification module is implemented, configure the After Commit Event (ACO_EVT) on the user entity used for provisioning, using the event `ACO_EVT_StartUserClassification`. + +* If you are using the Administration module, implement the event on the `Administration.Account` entity. Reapply this configuration after every upgrade to the Administration module. +* If you are not using the Administration module, configure the microflow on your custom user entity instead. + +#### Classifying Existing Users + +For users provisioned before the User Classification module is implemented, trigger a one-time classification. You can do this by adding a button on an admin screen that triggers a `UserClassification.UpdateUsersClassificationType` microflow. The execution of this microflow may take some time, depending on the number of users to be classified. + +### Configuring Classification Logic + +Based on your use case, choose the classification logic that best suits your needs: + +1. Role-based classification (default) +2. Custom classification logic + +#### Role-based Classification + +The Role-based classification method classifies users as either internal or external based on predefined roles. By assigning roles such as the `ExternalRole` (or other custom roles) to the User Classification module, your application ensures accurate classification. + +To classify users based on their roles, follow the steps below: + +1. Ensure that you have assigned the relevant user roles to the User Classification module. +2. Use any microflow that returns a list of external roles. For example, set the `UserClassification.Custom_GetExternalUserRoles` microflow name in the constant to enable role-based classification in the User Classification module. For more information on the constants, see the [Configuring Microflow Constants](#microflow-constants) section below. + +#### Custom Classification + +If your classification logic differs from the role-based approach, create a custom microflow to implement your logic. You can use the sample microflow ` UserClassification.Custom_GetClassificationType ` given in the module as a reference. + +Set your custom microflow in the constant to enable custom classification in the User Classification module. For more information on constants, see the [Configuring Microflow Constants](#microflow-constants) section below. + +### Configuring Microflow Constants {#microflow-constants} + +To enable your classification logic, configure the following constants in your application: + +1. `EXTERNAL_ROLES_MICROFLOW_NAME` (for role-based classification): specify the name of the microflow that returns a list of roles to be treated as external. + +2. `CUSTOM_MICROFLOW_NAME` (for custom classification logic): specify the name of the microflow that implements your custom logic to determine the user type. From f780144dd458b4046f138110c23dc12214d78c5d Mon Sep 17 00:00:00 2001 From: Karuna-Mendix Date: Wed, 30 Jul 2025 15:19:23 +0530 Subject: [PATCH 02/18] Added doc in the Read More section --- .../platform-supported-content/modules/unit-classification.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/content/en/docs/marketplace/platform-supported-content/modules/unit-classification.md b/content/en/docs/marketplace/platform-supported-content/modules/unit-classification.md index 70a0a215ea6..30f16e49e71 100644 --- a/content/en/docs/marketplace/platform-supported-content/modules/unit-classification.md +++ b/content/en/docs/marketplace/platform-supported-content/modules/unit-classification.md @@ -78,3 +78,7 @@ To enable your classification logic, configure the following constants in your a 1. `EXTERNAL_ROLES_MICROFLOW_NAME` (for role-based classification): specify the name of the microflow that returns a list of roles to be treated as external. 2. `CUSTOM_MICROFLOW_NAME` (for custom classification logic): specify the name of the microflow that implements your custom logic to determine the user type. + +## Read More + +* [Populate User Types](/developerportal/deploy/populate-user-type/) \ No newline at end of file From 23c17a29a565eb4dd4b7750b98b125ab07748e80 Mon Sep 17 00:00:00 2001 From: Karuna-Mendix Date: Wed, 30 Jul 2025 15:34:24 +0530 Subject: [PATCH 03/18] Inputs from Jaap + Cross references --- content/en/docs/deployment/general/populate-user-type.md | 4 ++++ .../deployment/mendix-cloud-deploy/environments-details.md | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/content/en/docs/deployment/general/populate-user-type.md b/content/en/docs/deployment/general/populate-user-type.md index 0da00603ef6..61e43b962d8 100644 --- a/content/en/docs/deployment/general/populate-user-type.md +++ b/content/en/docs/deployment/general/populate-user-type.md @@ -97,3 +97,7 @@ Therefore, the approach we take is to create a new non-persistable entity, `User {{< figure src="/attachments/deployment/general/populate-user-type/user-type-report.png" class="no-border" >}} 7. The report can be exported into an Excel file. + +## Read More + +* [User Classification Module](/appstore/modules/unit-classification) diff --git a/content/en/docs/deployment/mendix-cloud-deploy/environments-details.md b/content/en/docs/deployment/mendix-cloud-deploy/environments-details.md index 0c94591b70b..28b338dfffd 100644 --- a/content/en/docs/deployment/mendix-cloud-deploy/environments-details.md +++ b/content/en/docs/deployment/mendix-cloud-deploy/environments-details.md @@ -488,7 +488,7 @@ Click **Add** and select **Supported** to choose from the following variables: * **JVM_GARBAGE_COLLECTOR** – This overrides the automatic configuration of the Java garbage collector. Accepted values are `Serial` or `G1`. * **METRICS_AGENT_CONFIG** – This passes a configuration JSON to control the metrics passed to Datadog. * **SAMESITE_COOKIE_PRE_MX812** – This sets `SameSite=None;Secure` for all cookies coming from the Mendix runtime, as described in the [Running Your App in an Iframe](#iframe) section. -* **USAGE_METRICS_EMAIL_FIELDS** – If your app uses specializations of the `System.User` entity to store users, use this variable to point to them. This enables Mendix to identify [internal and external users](/developerportal/deploy/populate-user-type/) of your app. +* **USAGE_METRICS_EMAIL_FIELDS** (deprecated) – To ensure accurate user metering, it is important to distinguish external users from internal users. The recommended approach is to implement logic in your app to classify users (see [Populate User Types](/developerportal/deploy/populate-user-type/) and the [User Classification](/appstore/modules/unit-classification) module). A previous method relied on using email domains via the `USAGE_METRICS_EMAIL_FIELDS` constant. However, this method has now been deprecated. If your app uses specializations of the `System.User` entity to store users, use this variable to point to them. This enables Mendix to identify [internal and external users](/developerportal/deploy/populate-user-type/) of your app. * The value of this variable is in the format `Module.Entity.Attribute`, where `Module` is the module of your app that contains the `Entity` that is a specialization of `System.User` and `Attribute` is the attribute that contains the email address of the user. * If you have multiple specializations of `System.User`, you can specify the values in comma-separated format (that is, `Module1.Entity1.Attribute1,Module2.Entity2.Attribute2,…,ModuleN.EntityN.AttributeN`). In the following example, there are two specializations identified: `Administration.Account.Email,MendixSSO.MendixSSOUser.EmailAddress`. From 8cc03f60969e4f33e37f58a3d914f364d43bf87c Mon Sep 17 00:00:00 2001 From: Karuna-Mendix Date: Wed, 30 Jul 2025 16:20:43 +0530 Subject: [PATCH 04/18] Additional info --- .../modules/unit-classification.md | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/content/en/docs/marketplace/platform-supported-content/modules/unit-classification.md b/content/en/docs/marketplace/platform-supported-content/modules/unit-classification.md index 30f16e49e71..1a3bdca38ab 100644 --- a/content/en/docs/marketplace/platform-supported-content/modules/unit-classification.md +++ b/content/en/docs/marketplace/platform-supported-content/modules/unit-classification.md @@ -53,17 +53,18 @@ For users provisioned before the User Classification module is implemented, trig Based on your use case, choose the classification logic that best suits your needs: -1. Role-based classification (default) +1. Role-based classification 2. Custom classification logic #### Role-based Classification -The Role-based classification method classifies users as either internal or external based on predefined roles. By assigning roles such as the `ExternalRole` (or other custom roles) to the User Classification module, your application ensures accurate classification. +The Role-based classification method classifies users as internal or external based on predefined roles. By assigning roles, for example, `ExternalRole` or other custom roles to the User Classification module, your application ensures accurate classification. -To classify users based on their roles, follow the steps below: +Use any microflow that returns a list of external roles. For example, set the `UserClassification.Custom_GetExternalUserRoles` microflow name in the constant to enable role-based classification in the User Classification module. For more information on the constants, see the [Configuring Microflow Constants](#microflow-constants) section below. -1. Ensure that you have assigned the relevant user roles to the User Classification module. -2. Use any microflow that returns a list of external roles. For example, set the `UserClassification.Custom_GetExternalUserRoles` microflow name in the constant to enable role-based classification in the User Classification module. For more information on the constants, see the [Configuring Microflow Constants](#microflow-constants) section below. +{{% alert color="info" %}} +Any roles defined in the role-based classification setup (for example, `ExternalRole` or other custom roles specified in the microflow) are treated as external, while all remaining roles are considered internal by default. +{{% /alert %}} #### Custom Classification @@ -79,6 +80,8 @@ To enable your classification logic, configure the following constants in your a 2. `CUSTOM_MICROFLOW_NAME` (for custom classification logic): specify the name of the microflow that implements your custom logic to determine the user type. +Based on your classification logic, use one of the above constants. If both constants are used, the role-based classification (`EXTERNAL_ROLES_MICROFLOW_NAME`) will take precedence and be executed. + ## Read More * [Populate User Types](/developerportal/deploy/populate-user-type/) \ No newline at end of file From 064a58f68bf281fe80a3cfd11c9f569281d962c9 Mon Sep 17 00:00:00 2001 From: Karuna-Mendix Date: Wed, 30 Jul 2025 17:00:02 +0530 Subject: [PATCH 05/18] cross-reference --- .../platform-supported-content/modules/unit-classification.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/en/docs/marketplace/platform-supported-content/modules/unit-classification.md b/content/en/docs/marketplace/platform-supported-content/modules/unit-classification.md index 1a3bdca38ab..70ac8257555 100644 --- a/content/en/docs/marketplace/platform-supported-content/modules/unit-classification.md +++ b/content/en/docs/marketplace/platform-supported-content/modules/unit-classification.md @@ -42,8 +42,8 @@ The User Classification module supports both new users through an After Commit E For new users created after the User Classification module is implemented, configure the After Commit Event (ACO_EVT) on the user entity used for provisioning, using the event `ACO_EVT_StartUserClassification`. -* If you are using the Administration module, implement the event on the `Administration.Account` entity. Reapply this configuration after every upgrade to the Administration module. -* If you are not using the Administration module, configure the microflow on your custom user entity instead. +* If you are using the [Administration](/appstore/modules/administration/) module, implement the event on the `Administration.Account` entity. Reapply this configuration after every upgrade to the Administration module. +* If you are not using the [Administration](/appstore/modules/administration/) module, configure the microflow on your custom user entity instead. #### Classifying Existing Users From e0dd4dd708603b82db6e8428b9bd4697b26f713d Mon Sep 17 00:00:00 2001 From: Karuna-Mendix Date: Wed, 30 Jul 2025 17:14:59 +0530 Subject: [PATCH 06/18] Fixed the broken links --- content/en/docs/deployment/general/populate-user-type.md | 2 +- .../docs/deployment/mendix-cloud-deploy/environments-details.md | 2 +- .../platform-supported-content/modules/unit-classification.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/content/en/docs/deployment/general/populate-user-type.md b/content/en/docs/deployment/general/populate-user-type.md index 61e43b962d8..619214cbbd2 100644 --- a/content/en/docs/deployment/general/populate-user-type.md +++ b/content/en/docs/deployment/general/populate-user-type.md @@ -100,4 +100,4 @@ Therefore, the approach we take is to create a new non-persistable entity, `User ## Read More -* [User Classification Module](/appstore/modules/unit-classification) +* [User Classification Module](/appstore/modules/unit-classification/) diff --git a/content/en/docs/deployment/mendix-cloud-deploy/environments-details.md b/content/en/docs/deployment/mendix-cloud-deploy/environments-details.md index 28b338dfffd..2ca76b64c1c 100644 --- a/content/en/docs/deployment/mendix-cloud-deploy/environments-details.md +++ b/content/en/docs/deployment/mendix-cloud-deploy/environments-details.md @@ -488,7 +488,7 @@ Click **Add** and select **Supported** to choose from the following variables: * **JVM_GARBAGE_COLLECTOR** – This overrides the automatic configuration of the Java garbage collector. Accepted values are `Serial` or `G1`. * **METRICS_AGENT_CONFIG** – This passes a configuration JSON to control the metrics passed to Datadog. * **SAMESITE_COOKIE_PRE_MX812** – This sets `SameSite=None;Secure` for all cookies coming from the Mendix runtime, as described in the [Running Your App in an Iframe](#iframe) section. -* **USAGE_METRICS_EMAIL_FIELDS** (deprecated) – To ensure accurate user metering, it is important to distinguish external users from internal users. The recommended approach is to implement logic in your app to classify users (see [Populate User Types](/developerportal/deploy/populate-user-type/) and the [User Classification](/appstore/modules/unit-classification) module). A previous method relied on using email domains via the `USAGE_METRICS_EMAIL_FIELDS` constant. However, this method has now been deprecated. If your app uses specializations of the `System.User` entity to store users, use this variable to point to them. This enables Mendix to identify [internal and external users](/developerportal/deploy/populate-user-type/) of your app. +* **USAGE_METRICS_EMAIL_FIELDS** (deprecated) – To ensure accurate user metering, it is important to distinguish external users from internal users. The recommended approach is to implement logic in your app to classify users (see [Populate User Types](/developerportal/deploy/populate-user-type/) and the [User Classification](/appstore/modules/unit-classification/) module). A previous method relied on using email domains via the `USAGE_METRICS_EMAIL_FIELDS` constant. However, this method has now been deprecated. If your app uses specializations of the `System.User` entity to store users, use this variable to point to them. This enables Mendix to identify [internal and external users](/developerportal/deploy/populate-user-type/) of your app. * The value of this variable is in the format `Module.Entity.Attribute`, where `Module` is the module of your app that contains the `Entity` that is a specialization of `System.User` and `Attribute` is the attribute that contains the email address of the user. * If you have multiple specializations of `System.User`, you can specify the values in comma-separated format (that is, `Module1.Entity1.Attribute1,Module2.Entity2.Attribute2,…,ModuleN.EntityN.AttributeN`). In the following example, there are two specializations identified: `Administration.Account.Email,MendixSSO.MendixSSOUser.EmailAddress`. diff --git a/content/en/docs/marketplace/platform-supported-content/modules/unit-classification.md b/content/en/docs/marketplace/platform-supported-content/modules/unit-classification.md index 70ac8257555..a1da1308285 100644 --- a/content/en/docs/marketplace/platform-supported-content/modules/unit-classification.md +++ b/content/en/docs/marketplace/platform-supported-content/modules/unit-classification.md @@ -1,6 +1,6 @@ --- title: "User Classification" -url: /appstore/modules/unit-classification +url: /appstore/modules/unit-classification/ description: "Describes the configuration and usage of the User Classification module, which is available in the Mendix Marketplace." --- From 6a965db4073c4ae2946a6c609c2ee0c5b68fc75d Mon Sep 17 00:00:00 2001 From: Karuna-Mendix Date: Thu, 31 Jul 2025 13:41:51 +0530 Subject: [PATCH 07/18] Feedback on Introduction section --- .../modules/unit-classification.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/content/en/docs/marketplace/platform-supported-content/modules/unit-classification.md b/content/en/docs/marketplace/platform-supported-content/modules/unit-classification.md index a1da1308285..54564739794 100644 --- a/content/en/docs/marketplace/platform-supported-content/modules/unit-classification.md +++ b/content/en/docs/marketplace/platform-supported-content/modules/unit-classification.md @@ -6,7 +6,7 @@ description: "Describes the configuration and usage of the User Classification m ## Introduction -The [User Classification]() module enables efficient categorization of users based on pre-defined roles or custom classification logic. This document guides you in implementing the classification logic and configuring the required elements within your Mendix application. Using this module, organizations can ensure reliable user classification and maintain accurate metering within their Mendix environment. +The [User Classification]() module enables efficient categorization of users based on customer-defined [user roles](/refguide/user-roles/) or custom classification logic. This document guides you in implementing the classification logic and configuring the required elements within your Mendix application. For details on the available classification logic options, see the [Configuring Classification Logic](#configure-classification-logic) section below. the Using this module, organizations can ensure reliable user classification and maintain accurate metering within their Mendix environment. {{% alert color="info" %}} If external users are not classified, Mendix user metering will consider them as internal users. @@ -16,7 +16,7 @@ If external users are not classified, Mendix user metering will consider them as The User Classification module supports the following use cases: -* Role-based classification automatically classifies users as internal or external based on predefined roles. +* Role-based classification automatically classifies users as internal or external based on customer-defined roles. * Custom classification logic automatically classifies users as internal or external using a custom-configured microflow. * Classification of previously provisioned users allows users from non-SSO modules, who were provisioned earlier but do not yet have a defined user type, to be classified. @@ -43,13 +43,13 @@ The User Classification module supports both new users through an After Commit E For new users created after the User Classification module is implemented, configure the After Commit Event (ACO_EVT) on the user entity used for provisioning, using the event `ACO_EVT_StartUserClassification`. * If you are using the [Administration](/appstore/modules/administration/) module, implement the event on the `Administration.Account` entity. Reapply this configuration after every upgrade to the Administration module. -* If you are not using the [Administration](/appstore/modules/administration/) module, configure the microflow on your custom user entity instead. +* If you are not using the [Administration](/appstore/modules/administration/) module, configure the microflow on your custom user entity instead. If you are not using any specialization of `system.user`, you need to introduce such an entity. #### Classifying Existing Users For users provisioned before the User Classification module is implemented, trigger a one-time classification. You can do this by adding a button on an admin screen that triggers a `UserClassification.UpdateUsersClassificationType` microflow. The execution of this microflow may take some time, depending on the number of users to be classified. -### Configuring Classification Logic +### Configuring Classification Logic {#configure-classification-logic} Based on your use case, choose the classification logic that best suits your needs: @@ -58,7 +58,7 @@ Based on your use case, choose the classification logic that best suits your nee #### Role-based Classification -The Role-based classification method classifies users as internal or external based on predefined roles. By assigning roles, for example, `ExternalRole` or other custom roles to the User Classification module, your application ensures accurate classification. +The Role-based classification method classifies users as internal or external based on customer-defined roles. By assigning roles, for example, `ExternalRole` or other custom roles to the User Classification module, your application ensures accurate classification. Use any microflow that returns a list of external roles. For example, set the `UserClassification.Custom_GetExternalUserRoles` microflow name in the constant to enable role-based classification in the User Classification module. For more information on the constants, see the [Configuring Microflow Constants](#microflow-constants) section below. From 182a9a71397e79e881e3a2a7a95245a17ff24fce Mon Sep 17 00:00:00 2001 From: Karuna-Mendix Date: Thu, 31 Jul 2025 13:58:53 +0530 Subject: [PATCH 08/18] Implemented feedback for Typical use cases. --- .../platform-supported-content/modules/unit-classification.md | 1 + 1 file changed, 1 insertion(+) diff --git a/content/en/docs/marketplace/platform-supported-content/modules/unit-classification.md b/content/en/docs/marketplace/platform-supported-content/modules/unit-classification.md index 54564739794..57eab7accb5 100644 --- a/content/en/docs/marketplace/platform-supported-content/modules/unit-classification.md +++ b/content/en/docs/marketplace/platform-supported-content/modules/unit-classification.md @@ -18,6 +18,7 @@ The User Classification module supports the following use cases: * Role-based classification automatically classifies users as internal or external based on customer-defined roles. * Custom classification logic automatically classifies users as internal or external using a custom-configured microflow. +* Classification of new users created after the User Classification module is implemented. This is handled through the After Commit Event (ACO_EVT) on the user entity used for provisioning. * Classification of previously provisioned users allows users from non-SSO modules, who were provisioned earlier but do not yet have a defined user type, to be classified. ### Prerequisites From 509290bf2799e3b0d000fac14c9140b94bb86718 Mon Sep 17 00:00:00 2001 From: Karuna-Mendix Date: Thu, 31 Jul 2025 14:30:30 +0530 Subject: [PATCH 09/18] improved use cases --- .../modules/unit-classification.md | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/content/en/docs/marketplace/platform-supported-content/modules/unit-classification.md b/content/en/docs/marketplace/platform-supported-content/modules/unit-classification.md index 57eab7accb5..8044739f89c 100644 --- a/content/en/docs/marketplace/platform-supported-content/modules/unit-classification.md +++ b/content/en/docs/marketplace/platform-supported-content/modules/unit-classification.md @@ -16,10 +16,13 @@ If external users are not classified, Mendix user metering will consider them as The User Classification module supports the following use cases: -* Role-based classification automatically classifies users as internal or external based on customer-defined roles. -* Custom classification logic automatically classifies users as internal or external using a custom-configured microflow. -* Classification of new users created after the User Classification module is implemented. This is handled through the After Commit Event (ACO_EVT) on the user entity used for provisioning. -* Classification of previously provisioned users allows users from non-SSO modules, who were provisioned earlier but do not yet have a defined user type, to be classified. +* Role-based classification: automatically classifies users as internal or external based on customer-defined roles. + +* Custom classification logic: automatically classifies users as internal or external using a custom-configured microflow. + +* Classification of new users: Classifies users created after the User Classification module is implemented. This is triggered by the After Commit Event (ACO_EVT) on the user entity used for provisioning. + +* Classification of previously provisioned users: allows classification of users from non-SSO modules who were provisioned earlier but do not yet have a defined user type. These users require a one-time admin action for classification. ### Prerequisites From 02c5a5dac0f7b5a96b8aac110a26bb402908502c Mon Sep 17 00:00:00 2001 From: Karuna-Mendix Date: Thu, 31 Jul 2025 14:57:05 +0530 Subject: [PATCH 10/18] Feedback on After Commit Event (ACO_EVT) --- .../platform-supported-content/modules/unit-classification.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/docs/marketplace/platform-supported-content/modules/unit-classification.md b/content/en/docs/marketplace/platform-supported-content/modules/unit-classification.md index 8044739f89c..8c1d29f8709 100644 --- a/content/en/docs/marketplace/platform-supported-content/modules/unit-classification.md +++ b/content/en/docs/marketplace/platform-supported-content/modules/unit-classification.md @@ -47,7 +47,7 @@ The User Classification module supports both new users through an After Commit E For new users created after the User Classification module is implemented, configure the After Commit Event (ACO_EVT) on the user entity used for provisioning, using the event `ACO_EVT_StartUserClassification`. * If you are using the [Administration](/appstore/modules/administration/) module, implement the event on the `Administration.Account` entity. Reapply this configuration after every upgrade to the Administration module. -* If you are not using the [Administration](/appstore/modules/administration/) module, configure the microflow on your custom user entity instead. If you are not using any specialization of `system.user`, you need to introduce such an entity. +* If you are not using the [Administration](/appstore/modules/administration/) module, configure the microflow on your custom user entity instead. If you are not using any specialization of `system.user`, you need to create such an entity first. #### Classifying Existing Users From a8ac3aab47ad42b3c694770d7349cd2f27d54139 Mon Sep 17 00:00:00 2001 From: Karuna-Mendix Date: Thu, 31 Jul 2025 15:45:12 +0530 Subject: [PATCH 11/18] feedback on environment details page --- .../deployment/mendix-cloud-deploy/environments-details.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/content/en/docs/deployment/mendix-cloud-deploy/environments-details.md b/content/en/docs/deployment/mendix-cloud-deploy/environments-details.md index 2ca76b64c1c..e0ed1f25df0 100644 --- a/content/en/docs/deployment/mendix-cloud-deploy/environments-details.md +++ b/content/en/docs/deployment/mendix-cloud-deploy/environments-details.md @@ -488,10 +488,13 @@ Click **Add** and select **Supported** to choose from the following variables: * **JVM_GARBAGE_COLLECTOR** – This overrides the automatic configuration of the Java garbage collector. Accepted values are `Serial` or `G1`. * **METRICS_AGENT_CONFIG** – This passes a configuration JSON to control the metrics passed to Datadog. * **SAMESITE_COOKIE_PRE_MX812** – This sets `SameSite=None;Secure` for all cookies coming from the Mendix runtime, as described in the [Running Your App in an Iframe](#iframe) section. -* **USAGE_METRICS_EMAIL_FIELDS** (deprecated) – To ensure accurate user metering, it is important to distinguish external users from internal users. The recommended approach is to implement logic in your app to classify users (see [Populate User Types](/developerportal/deploy/populate-user-type/) and the [User Classification](/appstore/modules/unit-classification/) module). A previous method relied on using email domains via the `USAGE_METRICS_EMAIL_FIELDS` constant. However, this method has now been deprecated. If your app uses specializations of the `System.User` entity to store users, use this variable to point to them. This enables Mendix to identify [internal and external users](/developerportal/deploy/populate-user-type/) of your app. +* **USAGE_METRICS_EMAIL_FIELDS** (deprecated) – If your app uses specializations of the `System.User` entity to store users, use this variable to point to them. This enables Mendix to identify [internal and external users](/developerportal/deploy/populate-user-type/) of your app. + * The value of this variable is in the format `Module.Entity.Attribute`, where `Module` is the module of your app that contains the `Entity` that is a specialization of `System.User` and `Attribute` is the attribute that contains the email address of the user. * If you have multiple specializations of `System.User`, you can specify the values in comma-separated format (that is, `Module1.Entity1.Attribute1,Module2.Entity2.Attribute2,…,ModuleN.EntityN.AttributeN`). In the following example, there are two specializations identified: `Administration.Account.Email,MendixSSO.MendixSSOUser.EmailAddress`. + To ensure accurate user metering, it is important to distinguish external users from internal users. The recommended approach is to implement logic in your app to classify users (see [Populate User Types](/developerportal/deploy/populate-user-type/) and the [User Classification](/appstore/modules/unit-classification/) module). A previous method relied on using email domains via the `USAGE_METRICS_EMAIL_FIELDS` constant, as described above. However, this method has now been deprecated. + To support features that are in beta, click **Add** and select **Unsupported**. Then, you can add an unsupported environment variable. Unsupported environment variables can only be used for controlling Mendix beta features. If you are involved in using a beta feature, you will be informed what **Name** and **Value** to enter. ## The Maintenance Tab {#maintenance-tab} From ccae9d6f2447948402fa74075f6e782f247343bb Mon Sep 17 00:00:00 2001 From: Karuna-Mendix Date: Thu, 31 Jul 2025 15:56:58 +0530 Subject: [PATCH 12/18] Proofreading --- .../platform-supported-content/modules/unit-classification.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/en/docs/marketplace/platform-supported-content/modules/unit-classification.md b/content/en/docs/marketplace/platform-supported-content/modules/unit-classification.md index 8c1d29f8709..803013ca8eb 100644 --- a/content/en/docs/marketplace/platform-supported-content/modules/unit-classification.md +++ b/content/en/docs/marketplace/platform-supported-content/modules/unit-classification.md @@ -6,7 +6,7 @@ description: "Describes the configuration and usage of the User Classification m ## Introduction -The [User Classification]() module enables efficient categorization of users based on customer-defined [user roles](/refguide/user-roles/) or custom classification logic. This document guides you in implementing the classification logic and configuring the required elements within your Mendix application. For details on the available classification logic options, see the [Configuring Classification Logic](#configure-classification-logic) section below. the Using this module, organizations can ensure reliable user classification and maintain accurate metering within their Mendix environment. +The [User Classification]() module enables efficient categorization of users based on customer-defined [user roles](/refguide/user-roles/) or custom classification logic. This document guides you in implementing the classification logic and configuring the required elements within your Mendix application. For details on the available classification logic options, see the [Configuring Classification Logic](#configure-classification-logic) section below. Using this module, organizations can ensure reliable user classification and maintain accurate metering within their Mendix environment. {{% alert color="info" %}} If external users are not classified, Mendix user metering will consider them as internal users. @@ -20,7 +20,7 @@ The User Classification module supports the following use cases: * Custom classification logic: automatically classifies users as internal or external using a custom-configured microflow. -* Classification of new users: Classifies users created after the User Classification module is implemented. This is triggered by the After Commit Event (ACO_EVT) on the user entity used for provisioning. +* Classification of new users: classifies users created after the User Classification module is implemented. This is triggered by the After Commit Event (ACO_EVT) on the user entity used for provisioning. * Classification of previously provisioned users: allows classification of users from non-SSO modules who were provisioned earlier but do not yet have a defined user type. These users require a one-time admin action for classification. From db3cce6f3b856ad8cc586f490e06a457c9e1e0b9 Mon Sep 17 00:00:00 2001 From: Karuna-Mendix Date: Mon, 4 Aug 2025 13:28:29 +0530 Subject: [PATCH 13/18] corrected the file name --- .../modules/{unit-classification.md => user-classification.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename content/en/docs/marketplace/platform-supported-content/modules/{unit-classification.md => user-classification.md} (100%) diff --git a/content/en/docs/marketplace/platform-supported-content/modules/unit-classification.md b/content/en/docs/marketplace/platform-supported-content/modules/user-classification.md similarity index 100% rename from content/en/docs/marketplace/platform-supported-content/modules/unit-classification.md rename to content/en/docs/marketplace/platform-supported-content/modules/user-classification.md From 5c7f7102912f3dcb2bd2b0dea6efeb86099c0209 Mon Sep 17 00:00:00 2001 From: Karuna-Mendix Date: Wed, 6 Aug 2025 15:26:29 +0530 Subject: [PATCH 14/18] Improved introduction --- .../platform-supported-content/modules/user-classification.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/content/en/docs/marketplace/platform-supported-content/modules/user-classification.md b/content/en/docs/marketplace/platform-supported-content/modules/user-classification.md index 803013ca8eb..4b1695fa4e9 100644 --- a/content/en/docs/marketplace/platform-supported-content/modules/user-classification.md +++ b/content/en/docs/marketplace/platform-supported-content/modules/user-classification.md @@ -6,7 +6,9 @@ description: "Describes the configuration and usage of the User Classification m ## Introduction -The [User Classification]() module enables efficient categorization of users based on customer-defined [user roles](/refguide/user-roles/) or custom classification logic. This document guides you in implementing the classification logic and configuring the required elements within your Mendix application. For details on the available classification logic options, see the [Configuring Classification Logic](#configure-classification-logic) section below. Using this module, organizations can ensure reliable user classification and maintain accurate metering within their Mendix environment. +The [User Classification]() module allows your Mendix application to accurately classify end-users—an essential capability for ensuring compliance with the Mendix Pricing Plan. The module provides logic to set the user type as external or internal based on the user roles in your app. If needed, you can implement custom logic instead. Keep in mind that Mendix’s user metering processes will count users as internal unless their user type is explicitly set to external, which may impact licensing calculations. + +This document guides you in implementing the classification logic and configuring the required elements within your Mendix application. For details on the available classification logic options, see the [Configuring Classification Logic](#configure-classification-logic) section below. Using this module, organizations can ensure reliable user classification and maintain accurate metering within their Mendix environment. {{% alert color="info" %}} If external users are not classified, Mendix user metering will consider them as internal users. From f167821ce8c829d6e68f2be1c7c3d6f6bd9b9646 Mon Sep 17 00:00:00 2001 From: Karuna-Mendix Date: Wed, 6 Aug 2025 16:03:43 +0530 Subject: [PATCH 15/18] Cross-link --- .../platform-supported-content/modules/user-classification.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/docs/marketplace/platform-supported-content/modules/user-classification.md b/content/en/docs/marketplace/platform-supported-content/modules/user-classification.md index 4b1695fa4e9..c94d3f06250 100644 --- a/content/en/docs/marketplace/platform-supported-content/modules/user-classification.md +++ b/content/en/docs/marketplace/platform-supported-content/modules/user-classification.md @@ -6,7 +6,7 @@ description: "Describes the configuration and usage of the User Classification m ## Introduction -The [User Classification]() module allows your Mendix application to accurately classify end-users—an essential capability for ensuring compliance with the Mendix Pricing Plan. The module provides logic to set the user type as external or internal based on the user roles in your app. If needed, you can implement custom logic instead. Keep in mind that Mendix’s user metering processes will count users as internal unless their user type is explicitly set to external, which may impact licensing calculations. +The [User Classification]() module allows your Mendix application to accurately classify end-users—an essential capability for ensuring compliance with the [Mendix Pricing Plan](/developerportal/deploy/mendix-cloud-deploy/#plans). The module provides logic to set the user type as external or internal based on the user roles in your app. If needed, you can implement custom logic instead. Keep in mind that Mendix’s user metering processes will count users as internal unless their user type is explicitly set to external, which may impact licensing calculations. This document guides you in implementing the classification logic and configuring the required elements within your Mendix application. For details on the available classification logic options, see the [Configuring Classification Logic](#configure-classification-logic) section below. Using this module, organizations can ensure reliable user classification and maintain accurate metering within their Mendix environment. From 0fe28dba462ce877bbfe69e40e016d3b3209c2dc Mon Sep 17 00:00:00 2001 From: Karuna-Mendix Date: Thu, 7 Aug 2025 11:05:38 +0530 Subject: [PATCH 16/18] MP links --- content/en/docs/deployment/general/populate-user-type.md | 2 +- .../platform-supported-content/modules/user-classification.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/content/en/docs/deployment/general/populate-user-type.md b/content/en/docs/deployment/general/populate-user-type.md index 619214cbbd2..a39fd007944 100644 --- a/content/en/docs/deployment/general/populate-user-type.md +++ b/content/en/docs/deployment/general/populate-user-type.md @@ -100,4 +100,4 @@ Therefore, the approach we take is to create a new non-persistable entity, `User ## Read More -* [User Classification Module](/appstore/modules/unit-classification/) +* [User Classification Module](/appstore/modules/user-classification/) diff --git a/content/en/docs/marketplace/platform-supported-content/modules/user-classification.md b/content/en/docs/marketplace/platform-supported-content/modules/user-classification.md index c94d3f06250..e7cf15847cd 100644 --- a/content/en/docs/marketplace/platform-supported-content/modules/user-classification.md +++ b/content/en/docs/marketplace/platform-supported-content/modules/user-classification.md @@ -6,7 +6,7 @@ description: "Describes the configuration and usage of the User Classification m ## Introduction -The [User Classification]() module allows your Mendix application to accurately classify end-users—an essential capability for ensuring compliance with the [Mendix Pricing Plan](/developerportal/deploy/mendix-cloud-deploy/#plans). The module provides logic to set the user type as external or internal based on the user roles in your app. If needed, you can implement custom logic instead. Keep in mind that Mendix’s user metering processes will count users as internal unless their user type is explicitly set to external, which may impact licensing calculations. +The [User Classification](https://marketplace.mendix.com/link/component/245015) module allows your Mendix application to accurately classify end-users—an essential capability for ensuring compliance with the [Mendix Pricing Plan](/developerportal/deploy/mendix-cloud-deploy/#plans). The module provides logic to set the user type as external or internal based on the user roles in your app. If needed, you can implement custom logic instead. Keep in mind that Mendix’s user metering processes will count users as internal unless their user type is explicitly set to external, which may impact licensing calculations. This document guides you in implementing the classification logic and configuring the required elements within your Mendix application. For details on the available classification logic options, see the [Configuring Classification Logic](#configure-classification-logic) section below. Using this module, organizations can ensure reliable user classification and maintain accurate metering within their Mendix environment. @@ -36,7 +36,7 @@ To use the User Classification module, your app must be running on one of the fo ## Installation -Download the [User Classification]() module from the Marketplace. Follow the instructions in [How to Use Marketplace Content](/appstore/use-content/) to import the module into your app. +Download the [User Classification](https://marketplace.mendix.com/link/component/245015) module from the Marketplace. Follow the instructions in [How to Use Marketplace Content](/appstore/use-content/) to import the module into your app. ## Configuration From 798ebc4a83fa70a46a525366b5bb3411cfe62191 Mon Sep 17 00:00:00 2001 From: Karuna-Mendix Date: Thu, 7 Aug 2025 11:18:17 +0530 Subject: [PATCH 17/18] URL Correction --- .../platform-supported-content/modules/user-classification.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/docs/marketplace/platform-supported-content/modules/user-classification.md b/content/en/docs/marketplace/platform-supported-content/modules/user-classification.md index e7cf15847cd..f40827d234d 100644 --- a/content/en/docs/marketplace/platform-supported-content/modules/user-classification.md +++ b/content/en/docs/marketplace/platform-supported-content/modules/user-classification.md @@ -1,6 +1,6 @@ --- title: "User Classification" -url: /appstore/modules/unit-classification/ +url: /appstore/modules/user-classification/ description: "Describes the configuration and usage of the User Classification module, which is available in the Mendix Marketplace." --- From 4ed4e0d76e3efd995af46a425387cb07995383b0 Mon Sep 17 00:00:00 2001 From: Karuna-Mendix Date: Thu, 7 Aug 2025 11:29:39 +0530 Subject: [PATCH 18/18] small fix --- .../docs/deployment/mendix-cloud-deploy/environments-details.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/docs/deployment/mendix-cloud-deploy/environments-details.md b/content/en/docs/deployment/mendix-cloud-deploy/environments-details.md index e0ed1f25df0..3e5dbe04bc3 100644 --- a/content/en/docs/deployment/mendix-cloud-deploy/environments-details.md +++ b/content/en/docs/deployment/mendix-cloud-deploy/environments-details.md @@ -493,7 +493,7 @@ Click **Add** and select **Supported** to choose from the following variables: * The value of this variable is in the format `Module.Entity.Attribute`, where `Module` is the module of your app that contains the `Entity` that is a specialization of `System.User` and `Attribute` is the attribute that contains the email address of the user. * If you have multiple specializations of `System.User`, you can specify the values in comma-separated format (that is, `Module1.Entity1.Attribute1,Module2.Entity2.Attribute2,…,ModuleN.EntityN.AttributeN`). In the following example, there are two specializations identified: `Administration.Account.Email,MendixSSO.MendixSSOUser.EmailAddress`. - To ensure accurate user metering, it is important to distinguish external users from internal users. The recommended approach is to implement logic in your app to classify users (see [Populate User Types](/developerportal/deploy/populate-user-type/) and the [User Classification](/appstore/modules/unit-classification/) module). A previous method relied on using email domains via the `USAGE_METRICS_EMAIL_FIELDS` constant, as described above. However, this method has now been deprecated. + To ensure accurate user metering, it is important to distinguish external users from internal users. The recommended approach is to implement logic in your app to classify users (see [Populate User Types](/developerportal/deploy/populate-user-type/) and the [User Classification](/appstore/modules/user-classification/) module). A previous method relied on using email domains via the `USAGE_METRICS_EMAIL_FIELDS` constant, as described above. However, this method has now been deprecated. To support features that are in beta, click **Add** and select **Unsupported**. Then, you can add an unsupported environment variable. Unsupported environment variables can only be used for controlling Mendix beta features. If you are involved in using a beta feature, you will be informed what **Name** and **Value** to enter.