Skip to content

User Metering#10789

Open
Karuna-Mendix wants to merge 13 commits intodevelopmentfrom
kv-user-metering
Open

User Metering#10789
Karuna-Mendix wants to merge 13 commits intodevelopmentfrom
kv-user-metering

Conversation

@Karuna-Mendix
Copy link
Collaborator

@Karuna-Mendix Karuna-Mendix commented Feb 23, 2026

@Karuna-Mendix Karuna-Mendix marked this pull request as draft February 23, 2026 08:10

Mendix recommends storing the user’s email address in the `UserCommons.NamedUserIdentifier.value`; this ensures usage of a pairwise unique identifier in the `system.user.name` does not affect metering.

Within your application portfolio, the possibility to prevent cross-app user correlation is probably not needed; instead, you do want the Mendix metering system to correlate users and recognize multi-app users. Microsoft’s Entra ID uses pairwise identifiers in the OIDC `sub` claim. It is, however, possible to include the `oid` claim, which contains the same value for a given multi-app user across all applications; Entra ID’s `object-id`. Mendix recommends storing the `oid` claim in the `system.user.name` if you are using the OIDC SSO module with Entra ID.
Copy link
Collaborator Author

@Karuna-Mendix Karuna-Mendix Feb 25, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Jaap, which one is correct? object-id or objectId? I believe 'objectId'.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Karuna-Mendix Karuna-Mendix marked this pull request as ready for review February 25, 2026 07:00

## Introduction

End-user metering is the process Mendix uses to determine the number and type of users accessing applications in accordance with license agreements. Proper user classification ensures accurate reporting, optimal licensing costs, and transparency for both customers and Mendix. Customers can access Usage Report through the Control Center application on the Mendix Platform. <!-- Link Usage Report from the Control Center doc -->
Copy link

@JaapF JaapF Feb 27, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"transparency for both customers and Mendix. Custpomers can ...platform." - if we decide to postpone the availability of the usage report for customers, this sentence needs to be in seperate PR for later publication. See also my remark in our slack channel.

End-user metering is the process Mendix uses to determine the number and type of users accessing applications in accordance with license agreements. Proper user classification ensures accurate reporting, optimal licensing costs, and transparency for both customers and Mendix. Customers can access Usage Report through the Control Center application on the Mendix Platform. <!-- Link Usage Report from the Control Center doc -->

{{% alert color="info" %}}
End-user metering is currently available for applications deployed to Mendix Cloud and Mendix Cloud Dedicated environments.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe say "End-user metering is currently applied to applications..."
Especially given the decision on the report, customers may not 'get' metering. It's something Mendix applies.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe this restriction should not be here at all.
This is the top-level document that describes metering principles.
Even though we may not (yet) apply on all deployments, the principles and mechanisms still apply from contrcatual perspective.

### Key Features

* Automatic tracking – User consumption is automatically tracked from the moment your app is deployed to production and becomes functional, ensuring real-time tracking.
* Monthly reporting – Usage data is collected regularly, processed monthly, and is available in the Control Center.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As per my previous comment - maybe not yet in Control Center - 2nd PR?


* Automatic tracking – User consumption is automatically tracked from the moment your app is deployed to production and becomes functional, ensuring real-time tracking.
* Monthly reporting – Usage data is collected regularly, processed monthly, and is available in the Control Center.
* Application-level visibility – you get the detailed insights into named user counts for each application, helping you to identify optimization opportunities.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

?!>?
As far as i know we don't have visibility on application level.
Please check with Satyam.

* Automatic tracking – User consumption is automatically tracked from the moment your app is deployed to production and becomes functional, ensuring real-time tracking.
* Monthly reporting – Usage data is collected regularly, processed monthly, and is available in the Control Center.
* Application-level visibility – you get the detailed insights into named user counts for each application, helping you to identify optimization opportunities.
* License type classification – Users are classified by license type as External, Multi-App Internal, or Single-App Internal. This classification gives you accurate license tracking and helps optimize licensing costs.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"gives you" --> "yields" if we don't make the report available yet.

* Application-level visibility – you get the detailed insights into named user counts for each application, helping you to identify optimization opportunities.
* License type classification – Users are classified by license type as External, Multi-App Internal, or Single-App Internal. This classification gives you accurate license tracking and helps optimize licensing costs.
* Historical data – User metering provides you with access to usage data for all months since user metering was enabled.

Copy link

@JaapF JaapF Feb 27, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe the remark about deployments should be added here.

"End-user metering is currently applied to applications deployed to Mendix Cloud and Mendix Cloud Dedicated environments."

## How User Metering Works

User metering in the Mendix cloud operates through a three-stage automated process, and it is enabled by default for apps deployed in Mendix Cloud environments.

Copy link

@JaapF JaapF Feb 27, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since this is the top-level document, I think the additional step "in-app data generation" should be added here as well.
I know we discussed this before and may have decided to not include that step here, I find myself disagreeing (again).


### Data Collection

Once users are classified as `Internal` or `External`, all applications on the Mendix Cloud and Mendix Cloud Dedicated automatically send user data back to the Mendix platform. The data is collected throughout the month from the production environment only. PII information (username and other user identifiers) is hashed at source before transmission to ensure data privacy.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Once ...." - this kinda strange since this page hasn't m,entioned that before - also because the data generation section is currently lacking.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggestion:

"All applications on the Mendix Cloud and Mendix Cloud Dedicated automatically send user data back to the Mendix platform. The data is collected throughout the month from the production environment only. PII information (username and other user identifiers) is hashed at source before transmission to ensure data privacy."


End-of-month usage reports are generated at the beginning of each month and are made available via the Control Center dashboard. The reports are generally available on the 1st of each month and reflect the previous month's usage.

## How User Aggregation and Deduplication Work
Copy link

@JaapF JaapF Feb 27, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this should say "How user classification and deduplication works".
Not sure if Satyam agrees, but the scope of what this section describes includes classification definiately.

## How User Aggregation and Deduplication Work

The user aggregation and deduplication process determines which user pack is consumed when a user accesses one or more of your applications. The process evaluates users in a sequence so that each user is counted according to the correct license pack without duplication. The classification follows the steps below:

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The headings says "deduplication" but the contents don't say anything about deduplication. I think it should be added as a first step.

Suggestion:
"Users are deduplicated based on common identifier values. A real-life person who has different identifier values in the aggregated data cannot be recognized as same user, so will be counted as multiple users. The deduplication mechanism evaluates 2 user attributes, see [section xyz]" (the section where we talk about system.user.name and userCommons.nameduseridentifier.value, etc,..


Once classified, the user is licensed under the External User Pack and excluded from further classification steps. For more information, see the [User classification](/developerportal/deploy/implementing-user-metering/#user-classification) section of *Implementing Metering*.

All remaining users are classified as `Internal` Users and further classified as described in the sections below.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's add:
"A multi-app user that is marked as internal in one app and is marked as external in another app will be counted as an internal user."

If the application is associated with a Single-App Internal User Pack, the user of the app will be classified as a single-app internal user. This user will be counted against the single-app internal user pack for that application.

For more details on how to assign single-app user packs to your apps, refer to the Assigning Single-App Internal User Packs section of the Control Center. <!-- Link from the Control Center doc -->

Copy link

@JaapF JaapF Feb 27, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we should add:
"An internal user that is using multiple apps, one of which being an app with a single-app user pack, will be counted as a single-app user and will be counted as another user for the other apps as well."

Satyam to confirm.


User metering is automatically enabled for all Mendix Cloud and Mendix Cloud Dedicated applications without requiring any configuration or setup for usage data collection. Data collection begins as soon as your application is deployed to a production environment.

### Where Can I View My User Consumption Data?
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Move this one to 2nd PR.

Navigate to the **Control Center** > **Entitlements** > **End-Users** > **Usage Report**.
For more information, refer to the Usage Report Tab section of *End-Users*. <!-- Link from the Control Center doc -->

### When Can I See My Monthly Usage Data?
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

move to 2nd PR.

If you exceed your licensed entitlements:

* No immediate service disruption: Your applications continue to run normally.
* Alert displayed: A warning icon appears in the end-of-month Usage Report on the Control Center.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This sentnce should go to 2nd PR.

* Optimizing user classification
* Adjusting your license agreement

Mendix recommends that you monitor your usage regularly and purchase additional capacity before reaching your limit.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Move this sentence to 2nd PR.


Mendix recommends that you monitor your usage regularly and purchase additional capacity before reaching your limit.

### Can I View Usage Data From Previous Months?
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

2nd PR


## Questions on User Classification

### How Are Users Classified If I Do Not Configure User Classification?
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Both question and answer are fuzzy to me - as it doesn't mention external users.

Maybe the question should be "How are users classified If I don't assign single-user license to an app?"

### I Have External Users in My Applications. How Do I Ensure They Are Counted Correctly?

Explicitly mark users as `External` in your application to ensure they are counted correctly under your External User pack. If you do not have an External User pack, these users will be classified as `Internal`, even if they are marked as `External` users.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also a multi-app user that is marked as internal in one app, but as external in another app, will be counted as an internal multi-app user.


Technically, you can deactivate or remove users to optimize license costs.

To optimise license cost, you may choose to delete records in the `system.user` object, while maintaining data in custom user objects.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please add:

"You may also choose to deactivate users by using SCIM integration between your app and your IdP. This requires you to include the SCIM module in your application. See [link to SCIM]"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants