Licensefile Setup and Usage
To use licensefile inside a python SDK you should first setup your key and IV. Key and IV are used inside Python SDK for encryption and decryption process inside licensefile. This process is only required once at the setup.
After you have successfully setup your key and IV you should setup your Configuration.
- product (str): product short code.
- api_key (str): Your unique API key used for authentication with the licensing server.
- shared_key (str): A shared secret key used alongside the API key for enhanced security during the license verification process.
- file_key (str): The encryption key used for securing license files on the client side.
- file_iv (str): The initialization vector for the encryption algorithm. This complements the file_key for encrypting and decrypting license files.
- hardware_id_provider (object, optional): The provider class used for generating a unique hardware ID. This ID helps in binding the license to specific hardware. Defaults to HardwareIdProvider.
- verify_license_signature (bool, optional): A boolean flag indicating whether the license's digital signature should be verified. Defaults to True for enhanced security.
- signature_verifier (object, optional): The class responsible for verifying the digital signature of licenses. Defaults to SignatureVerifier.
- api_domain (str, optional): The domain name of the API server with which the licensing operations are performed. Defaults to "api.licensespring.com".
- api_version (str, optional): The version of the API to use for requests. This allows for compatibility with different versions of the licensing API. Defaults to "v4".
- filename (str, optional): The default filename for saved license files. This can be customized as needed. Defaults to "License".
- file_path (str, optional): The path where license files should be saved on the client system. If not specified, a default location is used.
- grace_period_conf (int, optional): The number of hours to allow as a grace period for Defaults to 24 hours.
Represents a mechanism for license identification and activation, supporting both key-based and user-based activations.
- from_key(cls, key) - Class method to create a LicenseID instance for key-based activation
- from_user(cls, username, password) - Class method to create a LicenseID instance for user-based activation.
Manages license activations, supporting a variety of parameters to accommodate different licensing scenarios.
- conf (Configuration): A configuration object
Activates a license with the license server and updates local license data.Returns an instance of the License
Key-based
User-based
Loads the license file and sets attributes for the LicenseData instance. Returns an instance of the License class reflecting the loaded license.
Checks if the licensing server is accessible. Returns True if online, False otherwise.
Object responsible for license operations
Determines whether the license's validity period has expired
Return (bool): True if license expired;False if license is valid
Verifies the current status of the license. It raises exceptions if the license is not enabled, not active, or expired
Raises:
LicenseStateException: Raised if the license fails one of the following checks:
- License is not enabled.
- License is not active.
- License validity period has expired.
Return: None
Performs an online check to synchronize the license data with the backend. This includes syncing consumptions for consumption-based licenses.
Parameters:
- include_expired_features (bool, optional): Includes expired license features in the check.
Raises:
ClientError: Raised if there's an issue with the API client's request, such as invalid credentials or unauthorized access.
RequestException: Raised if there's a problem with the request to the licensing server, such as network issues or server unavailability.
Return (dict): The updated license cache.
Deactivates the license and optionally deletes the local license file.
Parameters:
- delete_license (bool, optional): If True, deletes the local license file upon deactivation.
Return: None
This method ensures the integrity and consistency of the licensing information by comparing the data stored in the local license file with the predefined configurations in the Configuration object.
Raises:
ConfigurationMismatch: Raised if the product code or hardware ID in the license file does not match the expected values provided in the Configuration
VMIsNotAllowedException: Raised if the license is used in a VM environment when the license explicitly disallows it.
TimeoutExpiredException: Raised if a floating license has expired. This is more relevant if is_floating_expired is later implemented to perform actual checks.
ClockTamperedException: Raised if there is evidence of tampering with the system's clock, detected by comparing the system's current time with the last usage time recorded in the license file.
Return: None
Adds local consumption records for consumption-based licenses.
Parameters:
- consumptions (int, optional): The number of consumptions to add locally.
Raises:
LicenseSpringTypeError: Raised if the license type does not support consumption (i.e., not a consumption-based license).
ConsumptionError: Raised if adding the specified number of consumptions would exceed the allowed maximum for the license.
Return: None
Synchronizes local consumption data with the server, adjusting for overages if specified.
Parameters:
- req_overages (int, optional): Specifies behavior for consumption overages.
Raises:
RequestException: Raised if the request to synchronize consumption data with the server fails, for instance, due to network issues or server unavailability.
Return (bool): True if the consumption data was successfully synchronized; False otherwise.
Determines if the current license state is within its grace period following a specific exception.
Return (bool): True if the license is within its grace period, False otherwise
Changes password of a user
Return (str): "password_changed"
Adds local consumption to the feature.
Parameters:
- feature (str): feature code.
- consumptions (int,optional): Number of consumptions.
Raises:
ItemNotFoundError: If the feature specified by `feature_code` does not exist.
LicenseSpringTypeError: If the identified feature is not of the "consumption" type.
ConsumptionError: If adding the specified number of consumptions would exceed the feature's consumption limits.
Return: None
Synchronizes local consumption data with the server.
Parameters:
- feature (str): feature code.
Raises:
RequestException: Raised if the request to synchronize consumption data with the server fails, for instance, due to network issues or server unavailability.
Return (bool): True if the consumption data was successfully synchronized; False otherwise.
Attempts to borrow a floating license until the specified date.
Parameters:
- borrow_until(str): A string representing the date until which the license should be borrowed.
Return: None
Releases a borrowed floating license and updates the license status accordingly.
Parameters:
- throw_e(bool): A boolean indicating whether to raise an exception on failure.
Raises:
Exception
Return: None
Checks for a specific license feature and updates the license cache accordingly.
Parameters:
- feature(str): feature code.
Raises:
Exception
Return: None
Releases a borrowed license feature and updates the license cache accordingly.
Parameters:
- feature(str): feature code.
Raises:
Exception
Return: None