Understanding licensing management
How does it work?
The SDK V3 package that you receive from Binah.ai includes a unique License Key and Product ID.
The License Key is in the format: XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX
The License Key is used to activate any new device.
It is integrated into your application layer and takes part in the activation process. The SDK looks for this value and will not activate our main core if it does not exist or has expired.
Any end-user device that activates the application for the first time sends its device's unique identifier to our license service, and the activation counter is increased by 1.
When the activations counter reaches the maximum limit, the SDK will not work with any additional devices.
When your contract expires, the SDK will not work with any end-user device.
Does activation require an Internet connection?
- Activation requires an Internet connection to validate a new device and to setup our SDK.
- Also, the SDK syncs with our license service every 4 days.
Which layer activates the device?
Our SDK layer triggers an Internet connection, activates new devices, and syncs with the devices every 4 days.
Is it a one-time activation?
A one-time activation is performed for each new device. All devices sync with the license service every 4 days. The synch keeps the devices aligned with our license service and your SDK features.
What about the expiration date?
Our SDK also periodically checks the expiration date of your contract expiration date. When the license expires, our SDK stops working with the devices.
How does a session license work?
A session is a measurement that yields a report or a partial report.
Each session includes more time after generating the report in case you want to perform additional measurements during the same session (in case you are not satisfied enough with the result).
Deep understanding of the session license. (Since SDK V3.0.10)
Based on the agreement, we will allocate a "measurements" value – that is, the maximum number of measurements that can be performed under the license. The number of consumed measurements can also be monitored on the license service dashboard under the metadata, which is further explained here.
- A session will be consumed when measurement starts.
- The total time allowance can be defined using the seconds_per_measurement metadata. (e.g 9 minutes or 540 seconds).
- The timer starts as soon as the user begins the measurement. This will be considered as the start time of the session.
- If the user performs another measurement within the time allowance or the span of time defined in the seconds_per_measurement attribute, it will be counted as the same session.
- For example, the time allowance is set to 10 minutes and the user performs another measurement after 9 minutes and 59 seconds since the beginning of the first test and it took 3 minutes to get the result, it will still be considered as the same session.
- offline_measurements - How sessions will be consumed for each device (In order to work offline).
- offline_measurements_threshold - the amount of license that when reached, the client will pull more measurements (offline_measurements).
- Knowing the remaining time of the session - you can send a request to the SDK for the remaining time of a session - if this time is above 0, then you are on the same session.
What is the flow of activations and sessions?
- When a new user installs the app, the user will consume 1 device activation count and a certain number of sessions (say, 50) which can be used to perform measurements offline.
- Every time the user initiates a test or measurement, the SDK will look for the Product ID and License key to activate our main core. The core algorithm will not activate if the License key is either expired, invalid, or has already reached its maximum number of allocated sessions or activations.
- If a user reaches the allocated number of offline sessions, that user will not be able to perform any measurements offline and will need to connect online in order to allocate additional offline sessions - which will then be deducted from the license's "Total Session" count allocation.
What happens when I uninstall the app, or move it to the background, or receive a phone call?
In case the user tries to clear the application's cache or uninstall the app (in an attempt to erase consumption records), the user will lose all of his/her allocated sessions. When accessing the home page or another application (thereby moving the app to the background) or making a phone call, the session will remain open and will continue to track the time remaining until the session ends.
How can I know my current license status?
You can log in to our license service dashboard with the credentials that you received when you signed your contract, as explained here.
More information about data, storage, and services.
Where is your service hosted?
Our services are hosted on AWS and are being managed by Heroku.
What data is transferred by the SDK?
As part of using the SDK, some data is gathered from a device and is used for license verification and access control only.
Binah licensing service data is not used by Binah.ai, and does not collect any vital information!
We use Binah licensing service only to enforce the specific license that was acquired.
The data collected are
- Token (HashRSA256) - access token to gain access to our API
- Hostname - device model
- "android", "windows" or “ios” string - a flag that indicates if the SDK is used on Android, Windows, or iOS
- SDK version (e.g 3.0.5) - the version of the SDK being used
- User hash - currently set as “user”
- License key - The license key used to access the SDK
Currently, this is global for all SDKs.