Count and monitor user licenses with the CloudBees User License Counting (ULC) system

2 minute read

CloudBees User License Counting (ULC) through the CloudBees License Tracker plugin (cloudbees-license-tracker-plugin) collects and tracks a selection of user activities to compute metrics of customer usage related to CloudBees CI. The CloudBees License Tracker plugin is installed by default on new CloudBees CI installations and upgrades. CloudBees takes the data from the ULC as reference for understanding the number of users of an instance.

User identity deduplication

When the system counts distinct users for ULC, the same person might appear with different identities. For example, a user may use different email addresses or aliases. The system deduplicates these identities into a single user record.

Causes of identity duplication

Duplication can happen in the following ways:

  • A user logs in with different credentials.

  • SCM activity uses various email addresses, including personal and professional accounts or aliases.

  • A single person appears under different identities in various tools.

The ULC deduplicates identities by analyzing user activity and merging related identity data.

Deduplication rules

The ULC system uses these rules to match new identities to existing entries.

Email addresses from external Identity Providers (IdP) may include unpredictable parts. The system may not deduplicate such emails.

Rule Description

Case-insensitive and locale-insensitive matching

The system compares usernames, email addresses, and SCM handles without case or locale sensitivity.

Examples:

  • Jim_Example matches jim_example

  • Léonie matches leonie

The system treats email addresses as case-insensitive.

Merge if username matches

If a new username matches a username in the buffer, the system merges the identities.

Example: tuna matches jim_example, who has tuna as a known username.

Merge if email matches

If a new email matches an email in the buffer, the system merges the identities.

Example: pam.sample@cloudbees.com matches pam_sample.

Merge if SCM handle matches

If a new SCM handle matches a handle in the buffer, the system merges the identities.

Example: assistant_to_the_regional_manager matches dwight_username.

Merge if SCM handle matches username

If a new SCM handle matches any username in the buffer, the system merges the identities.

Example: username_mike as SCM handle matches username username_mike.

Merge if username matches SCM handle

If a new username matches any SCM handle in the buffer, the system merges the identities.

Example: big_tuna matches SCM handle big_tuna.

Merge if email prefix matches another email prefix

If the part before the @ in a new email matches an email prefix in the buffer, merge the identities.

Example: kelly.example@cloudbees.com matches prefix kelly.example.

Merge if email prefix matches username or SCM handle

If the email prefix matches any username or SCM handle in the buffer, the system merges the identities.

Example: pam_artist@cloudbees.com matches username or SCM handle pam_artist.

Normalize separator characters for matching

The system treats ., -, and _ as equivalent when comparing usernames, email prefixes, emails, and SCM handles.

Example: michael_username matches michael.username and michael-username.

The system sees different separators as equivalent, but does not ignore them completely. Therefore, michael_username does not match michaelusername.

Customer data rights

CloudBees respectfully uses appropriate personal data (name, username, email address, SCM handle) collected automatically via ULC. This data is used by CloudBees to help us understand how CloudBees CI is being used and support licensing discussions. CloudBees does not have any access to any other customer confidential data / records as a general matter. Refer to the CloudBees Privacy Policy for more information.