From 39a8eb393532c10d4dbd55cc5ae087a029599c83 Mon Sep 17 00:00:00 2001 From: Karuna-Mendix Date: Fri, 8 Aug 2025 10:54:47 +0530 Subject: [PATCH 1/4] Additional ways of assigning user types --- .../deployment/general/populate-user-type.md | 49 ++++++++++++------- 1 file changed, 31 insertions(+), 18 deletions(-) diff --git a/content/en/docs/deployment/general/populate-user-type.md b/content/en/docs/deployment/general/populate-user-type.md index 0da00603ef6..6840dcb14ce 100644 --- a/content/en/docs/deployment/general/populate-user-type.md +++ b/content/en/docs/deployment/general/populate-user-type.md @@ -28,24 +28,6 @@ The *Mendix Metering* module relies on this attribute to ascertain the end-user {{< figure src="/attachments/deployment/general/populate-user-type/user-type-enumeration.png" class="no-border" >}} -## Assigning UserType for Existing Users of IAM Modules - -The simplest method to set the user type is by using the Identity and Access Management (IAM) modules, which require only configuration without the need to develop a microflow. Mendix offers you the following IAM modules: - -* [OIDC](https://docs.mendix.com/appstore/modules/oidc/) -* [SCIM](https://docs.mendix.com/appstore/modules/scim/) -* [SAML](https://docs.mendix.com/appstore/modules/saml/) - -Alternatively, you can build a custom microflow as described in the [Populating UserType for Existing Users of an App](#using-microflow) section below. - -When connecting your app with an IdP, set up the user type through the capabilities of the OIDC SSO, SCIM, or SAML module. The user type is now configured in the User Provisioning, which is integrated into the OIDC SSO, SCIM, and SAML modules. This means you can directly configure end-users of your application as `internal` or `external` in the **User Provisioning** tab of your app. Based on this configuration, users are updated each time they log in. These modules allow you to set the user type per IdP as the source of your end-users, assuming that separate IdPs are used for `internal` and `external` users. - -For more information, refer to the User Provisioning section of the following modules: - -* [OIDC SSO](/appstore/modules/oidc/#custom-provisioning-rt) -* [SCIM](/appstore/modules/scim/#user-provisioning) -* [SAML](/appstore/modules/saml/#custom-provisioning-rt) - ## Assigning UserType Using a Microflow {{% alert color="info" %}} @@ -97,3 +79,34 @@ 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. + +## Assigning User Type based on User roles + +Instead of checking email domains or writing microflows, you can classify users as Internal or External using roles in the User Classification module. To do this: + +1. Define roles like InternalRole (for employees) and ExternalRole (for partners/customers). +2. Use the [User Classification]() module to map these roles to the UserType field in UserReportInfo. +3. When a role is assigned to a user, the UserType updates automatically. +4. This approach is simpler, more consistent, and easier to maintain than attribute-based logic. + +## Assigning UserType for Existing Users of IAM Modules + +The simplest method to set the user type is by using the Identity and Access Management (IAM) modules, which require only configuration without the need to develop a microflow. Mendix offers you the following IAM modules: + +* [OIDC](https://docs.mendix.com/appstore/modules/oidc/) +* [SCIM](https://docs.mendix.com/appstore/modules/scim/) +* [SAML](https://docs.mendix.com/appstore/modules/saml/) + +Alternatively, you can build a custom microflow as described in the [Populating UserType for Existing Users of an App](#using-microflow) section below. + +When connecting your app with an IdP, set up the user type through the capabilities of the OIDC SSO, SCIM, or SAML module. The user type is now configured in the User Provisioning, which is integrated into the OIDC SSO, SCIM, and SAML modules. This means you can directly configure end-users of your application as `internal` or `external` in the **User Provisioning** tab of your app. Based on this configuration, users are updated each time they log in. These modules allow you to set the user type per IdP as the source of your end-users, assuming that separate IdPs are used for `internal` and `external` users. + +For more information, refer to the User Provisioning section of the following modules: + +* [OIDC SSO](/appstore/modules/oidc/#custom-provisioning-rt) +* [SCIM](/appstore/modules/scim/#user-provisioning) +* [SAML](/appstore/modules/saml/#custom-provisioning-rt) + +## Assigning user types using Custom logic + +You can classify users as Internal or External using your own business rules instead of only roles or IAM settings. With the User Classification module and a microflow, you can combine conditions like email domains, roles, SSO/IAM attributes, or contract status. This gives maximum flexibility to handle complex or unique scenarios and ensures accurate Mendix user metering. \ No newline at end of file From cc560503b270fd48ca471a91ce8078afb3cc5d71 Mon Sep 17 00:00:00 2001 From: Karuna-Mendix Date: Fri, 8 Aug 2025 16:31:55 +0530 Subject: [PATCH 2/4] Proofreading --- .../deployment/general/populate-user-type.md | 23 ++++++++++--------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/content/en/docs/deployment/general/populate-user-type.md b/content/en/docs/deployment/general/populate-user-type.md index 1c53d76b1fe..a2427c90f3c 100644 --- a/content/en/docs/deployment/general/populate-user-type.md +++ b/content/en/docs/deployment/general/populate-user-type.md @@ -22,7 +22,7 @@ In your Mendix Pricing Plan there is a distinction between Internal and External ## Background -Every Mendix app has a system module containing an entity `UserReportInfo`. This entity has an attribute `UserType` that is used to classify end-users as External or Internal Users. This attribute needs to be maintained for all existing and new end-users of a Mendix app. If this attribute is not set, the end-user is classified as an Internal User. +Every Mendix app has a system module containing an entity `UserReportInfo`. This entity has an attribute `UserType` that is used to classify end-users as `External` or `Internal` Users. This attribute needs to be maintained for all existing and new end-users of a Mendix app. If this attribute is not set, the end-user is classified as an Internal User. The *Mendix Metering* module relies on this attribute to ascertain the end-user type and report it back to us. @@ -45,7 +45,7 @@ Therefore, the approach we take is to create a new non-persistable entity, `User {{< figure src="/attachments/deployment/general/populate-user-type/usertypereport-properties.png" class="no-border" >}} -### Populating **UserType** for Existing Users of an App {#using-microflow} +### Populating `UserType` for Existing Users of an App {#using-microflow} 1. Create a microflow `User_RetrieveOrCreateUserReportInfo` which will ensure that a `UserReportInfo` object exists for a given `User`. @@ -80,16 +80,18 @@ Therefore, the approach we take is to create a new non-persistable entity, `User 7. The report can be exported into an Excel file. -## Assigning User Type based on User roles +## Assigning `UserType` based on User roles -Instead of checking email domains or writing microflows, you can classify users as Internal or External using roles in the User Classification module. To do this: +Instead of writing microflows, you can classify users as Internal or External using roles in the User Classification module. To do this: -1. Define roles like InternalRole (for employees) and ExternalRole (for partners/customers). -2. Use the [User Classification]() module to map these roles to the UserType field in UserReportInfo. +1. Define roles like `ExternalRole` or other custom roles. +2. Use the [User Classification](/appstore/modules/user-classification/) module to map these roles to the `UserType` field in the `UserReportInfo`. 3. When a role is assigned to a user, the UserType updates automatically. 4. This approach is simpler, more consistent, and easier to maintain than attribute-based logic. -## Assigning UserType for Existing Users of IAM Modules +For more information, see the [Role-based Classification](/appstore/modules/user-classification/#role-based-classification) section of *User Classification*. + +## Assigning `UserType` for Existing Users of IAM Modules The simplest method to set the user type is by using the Identity and Access Management (IAM) modules, which require only configuration without the need to develop a microflow. Mendix offers you the following IAM modules: @@ -99,7 +101,7 @@ The simplest method to set the user type is by using the Identity and Access Man Alternatively, you can build a custom microflow as described in the [Populating UserType for Existing Users of an App](#using-microflow) section below. -When connecting your app with an IdP, set up the user type through the capabilities of the OIDC SSO, SCIM, or SAML module. The user type is now configured in the User Provisioning, which is integrated into the OIDC SSO, SCIM, and SAML modules. This means you can directly configure end-users of your application as `internal` or `external` in the **User Provisioning** tab of your app. Based on this configuration, users are updated each time they log in. These modules allow you to set the user type per IdP as the source of your end-users, assuming that separate IdPs are used for `internal` and `external` users. +When connecting your app with an IdP, set up the user type through the capabilities of the OIDC SSO, SCIM, or SAML module. The user type is now configured in the User Provisioning, which is integrated into the OIDC SSO, SCIM, and SAML modules. This means you can directly configure end-users of your application as `Internal` or `External` in the **User Provisioning** tab of your app. Based on this configuration, users are updated each time they log in. These modules allow you to set the user type per IdP as the source of your end-users, assuming that separate IdPs are used for `internal` and `external` users. For more information, refer to the User Provisioning section of the following modules: @@ -107,11 +109,10 @@ For more information, refer to the User Provisioning section of the following mo * [SCIM](/appstore/modules/scim/#user-provisioning) * [SAML](/appstore/modules/saml/#custom-provisioning-rt) -## Assigning user types using Custom logic +## Assigning `UserTypes` Using Custom logic -You can classify users as Internal or External using your own business rules instead of only roles or IAM settings. With the User Classification module and a microflow, you can combine conditions like email domains, roles, SSO/IAM attributes, or contract status. This gives maximum flexibility to handle complex or unique scenarios and ensures accurate Mendix user metering. +You can classify users as `Internal` or `External` using your own business rules instead of only roles or IAM settings. With the User Classification module and a microflow, you can combine conditions like email domains. This gives maximum flexibility to handle complex or unique scenarios and ensures accurate Mendix user metering. For more information, see the [Custom Classification](/appstore/modules/user-classification/#custom-classification) section of *User Classification*. ## Read More * [User Classification Module](/appstore/modules/user-classification/) - From d46242a37db8a6c98f2dc41ac2ec929a10b3e0be Mon Sep 17 00:00:00 2001 From: Karuna-Mendix Date: Tue, 12 Aug 2025 11:36:10 +0530 Subject: [PATCH 3/4] Proofreading --- content/en/docs/deployment/general/populate-user-type.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/content/en/docs/deployment/general/populate-user-type.md b/content/en/docs/deployment/general/populate-user-type.md index a2427c90f3c..4027c0add62 100644 --- a/content/en/docs/deployment/general/populate-user-type.md +++ b/content/en/docs/deployment/general/populate-user-type.md @@ -74,7 +74,7 @@ Therefore, the approach we take is to create a new non-persistable entity, `User {{< figure src="/attachments/deployment/general/populate-user-type/grid-data-source.png" class="no-border" >}} 5. Add the page to the **Navigation**. -6. When you go to that page it will set the `UserType` as per your logic and show you the UserType report. +6. When you go to that page it will set the `UserType` as per your logic and show you the user type report. {{< figure src="/attachments/deployment/general/populate-user-type/user-type-report.png" class="no-border" >}} @@ -82,12 +82,13 @@ Therefore, the approach we take is to create a new non-persistable entity, `User ## Assigning `UserType` based on User roles -Instead of writing microflows, you can classify users as Internal or External using roles in the User Classification module. To do this: +Instead of writing microflows, you can classify users as `Internal` or `External` using roles in the [User Classification](https://marketplace.mendix.com/link/component/245015) module. To do this: 1. Define roles like `ExternalRole` or other custom roles. 2. Use the [User Classification](/appstore/modules/user-classification/) module to map these roles to the `UserType` field in the `UserReportInfo`. -3. When a role is assigned to a user, the UserType updates automatically. -4. This approach is simpler, more consistent, and easier to maintain than attribute-based logic. +3. When a role is assigned to a user in your Mendix app, the User Classification module automatically updates the `UserType` field in the `UserReportInfo` entity for that user. + +This approach is simpler, more consistent, and easier to maintain than attribute-based logic. For more information, see the [Role-based Classification](/appstore/modules/user-classification/#role-based-classification) section of *User Classification*. From d0535167f7d51bcdaf4c39a9e6e3eece45562c13 Mon Sep 17 00:00:00 2001 From: Karuna-Mendix Date: Tue, 12 Aug 2025 11:41:59 +0530 Subject: [PATCH 4/4] cross-link User type --- .../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 f40827d234d..93a0b624fa3 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](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. +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](/developerportal/deploy/populate-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.