Entitlements, usage logging, and feature tracking
User Licensing and Analytics Service (ULAS) enables comprehensive tracking of user interactions and feature utilization, providing valuable insights into usage patterns. This service facilitates data-driven decision-making, enhances user experience, and supports licensing compliance by offering detailed analytics on engagement and feature adoption.
iTwinStudio and ULAS
Section titled “iTwinStudio and ULAS”User Licensing and Analytics Service (ULAS) is integrated into iTwinStudio via the @bentley/licensing-native package. iTwinStudio manages all backend operations, ensuring seamless license tracking and analytics processing. It exposes well-defined APIs, enabling application developers to efficiently send licensing data and user insights without handling complex backend logic. This streamlined approach simplifies implementation while maintaining accuracy, compliance, and scalability.
User Usage
Section titled “User Usage”iTwinStudio automatically tracks user activity at the time of app activation, ensuring precise and reliable usage monitoring. This built-in functionality eliminates the need for manual integration or additional configuration by app developers. By seamlessly capturing usage data, iTwinStudio enhances compliance, optimizes resource allocation, and provides accurate insights without requiring any developer intervention.
Feature Usage
Section titled “Feature Usage”iTwinStudio provides postFeatureUsage api from @bentley/studio-startup-apps-backend-api and @bentley/studio-startup-apps-frontend-api. Startup apps can utilize this api to post feature usages through their registered feature GUIDs.
Studio now expose feature usage method from its apis. In order to post feature usage to ULAS, apps can post the feature usage by calling StudioStartupHost.postFeatureUsage(<Feature_GUID>) in the backend and StudioStartupApp.postFeatureUsage(<Feature_Guid>) in the frontend.
Registering Features in GFR
Section titled “Registering Features in GFR”In order to register any feature in Global Feature Registry (GFR) you need to have permissions. To gain permission to access these sites, you must use the feature registry access request form (click on the Global Feature Registry tile). After being granted access, view the User Guide for the sites to learn the format to upload a list of feature GUIDs and their descriptions.
After getting permission, you can visit
https://qa-registry.bentley.com/FeatureRegistry/ for qa and
https://registry.bentley.com/FeatureRegistry/ for prod related features.
Tracking Usages
Section titled “Tracking Usages”User Usage
Section titled “User Usage”User usages can be tracked through snowflake. Please visit QA or PROD site. Once there click on New Sql Worksheet and then select REPORTING_DB > EDW see attached image.
Query that retrieves user usages against a product id:
select * from USER_USAGE_REPORTING where PRODUCTID=<YOUR_GPRID> limit 100;Feature Usage
Section titled “Feature Usage”Feature usages can be tracked through Azure Databricks. Please visit Bentley data workspace. Once there click on SQL Editor.
Query that retrieves feature usages against a product id:
Select * from analysis.product_usage.fct_feature_usage_daily where PRODUCTID=<YOUR_GPRID>Entitlements
Section titled “Entitlements”iTwinStudio now supports entitlement verification, ensuring that only authorized users can access the application. Entitlements are validated immediately after sign-in, restricting access for users without the necessary permissions. In headless mode, entitlements are checked before activating the backend, preventing unauthorized usage at an early stage. This enhancement strengthens security and ensures compliance with access policies across all usage scenarios.
For entitlement verification to function correctly in iTwinStudio, ensure that your product supports entitlements. Entitlements are managed through Global Product Registry (GPR), and you will need to contact the GPR team to enable them for your product. Once entitlements are enabled, iTwinStudio will enforce access control, blocking any unauthorized users from accessing the product.
Enabling Entitlements
Section titled “Enabling Entitlements”Use this document as a reference and contact the individuals mentioned in it. Request them to update the isEval attribute to true to enable entitlements for your product.
For entitlements to be enabled for production, the product needs to have few releases first. Please refer to this document. For QA, just reach out to Andrea Halpin and have the same request of changing isEval attribute to true. You can then contact Daniel Bishop to have your product added to the evaluation list from where you can assign the entitlements.
To validate entitlement enforcement, refer to the FAQ for testing guidelines and best practices.