Templates
Last updated
Last updated
The License Templates view in Babel Licensing provides a comprehensive interface for managing license templates that serve as the foundation for creating and issuing licenses to your customers. These templates define the standard parameters and configurations that will be applied to new licenses.
Note: For more detailed information on the conceptual framework and technical implementation of License Templates, including their role in the licensing architecture, please refer to the chapter of this manual.
The Templates view displays a tabular list of all available license templates in your Babel Licensing system. Each row represents a single template with its key properties displayed across multiple columns.
At the top of the Templates view, you'll find several important action buttons:
ADD: Creates a new license template
Search: Allows you to search for specific templates
Refresh: Updates the template list to reflect the latest changes
Import/Export: Enables importing or exporting templates (button with document icon)
The template grid displays the following information for each template:
Name: The descriptive name of the template (e.g., "ACME Charting 11.0.0")
Issue Date: Whether the template includes an issue date (indicated by a checkbox)
Support Days: The number of days of support included with licenses based on this template (typically 365)
Expire Days: The number of days until licenses created from this template will expire
Type: The license type category (Server, Corporate, Basic, Enterprise, Cloud)
Format: The format in which licenses will be generated (XML DSig, XML)
Mode: The operational mode of the license (File, Activation)
User Key: The format for user keys generated with this template
Each template row includes action buttons:
Edit (pencil icon): Opens the template editor to modify the template
Delete (trash can icon): Removes the template from the system
Additional Options (three dots menu): Provides access to more actions
The templates can be configured for different license modes:
File: Generates downloadable license files
Activation: Creates licenses that require activation on specific machines
Floating: Enables a pool of licenses to be shared among multiple users or machines, with a limit on concurrent usage
Templates define the format for generated licenses:
XML DSig: XML format with digital signature for enhanced security
XML: Standard XML format
ASCII: Plain text format using standard ASCII character encoding including common character symbols like parentheses and punctuation.
BASE32: Encoded format using Base32 encoding scheme, which produces license strings using alphanumeric characters
Click the ADD button at the top of the template list
Fill in the template details, including name, type, expiration, and format
Configure any additional properties or restrictions
Save the template
Use the search functionality to locate specific templates
Click the edit (pencil) icon to modify a template
Use the delete (trash) icon to remove templates that are no longer needed
The Edit Template screen in Babel Licensing allows you to create or modify license templates. This comprehensive interface is divided into several sections, each controlling different aspects of the license template.
At the top of the screen, you'll find options to import an existing template:
SELECT XML TEMPLATE: Button to select an existing XML template file
Drop XML file here: Area where you can drag and drop a template XML file
This section contains the basic information about the template:
Name: The descriptive name of the template
License Type: The category of license (e.g., "Premium")
Mode: The deployment method for licenses created with this template:
Activation: For licenses activated on specific machines
Floating: For licenses shared among multiple users
File: For downloadable license files
User Key: The format for generating user activation keys (e.g., "{TOKEN:5}-{TOKEN:5}-{TOKEN:5}-{TOKEN:5}")
Issue Date: Checkbox to include the issue date in licenses generated from this template
Expire Days: Number of days until licenses created from this template will expire
Support Days: Duration of support provided with licenses (e.g., "365" days)
License File Name: Default filename for generated license files (e.g., "babel.licenses")
Format: Output format for licenses (e.g., "Ascii", "XML", "XML DSig", "BASE32")
Description: Optional field for additional information about the template
This section associates the template with specific products and signing keys:
Product: The software product this template is for (e.g., "ACME TradeSphere")
Sign Keys: Cryptographic keys used to sign licenses generated from this template
Select a sign key pair: Dropdown to choose from available signing keys
This tabbed section defines the properties included in licenses created from this template:
Lists the software assemblies covered by licenses created from this template:
Name: Assembly name (e.g., "TradeSphere")
Version: Software version (e.g., "1.8.0.0")
Culture: Localization setting (e.g., "neutral")
Public Key Token: Cryptographic identifier (e.g., "45cd27cb2b21cf6")
Additional tabs include:
COMPONENTS: For managing software components
FIELDS: For custom license fields
FEATURES: For controlling feature access
The "+" button allows adding new assemblies, components, fields, or features.
This section defines limitations and conditions for licenses generated from this template:
ADD RESTRICTION: Button to add various types of restrictions: BETA, DOMAIN, HARDWARE TRIAL, USAGE, CUSTOM
Custom restrictions in Babel Licensing provide powerful flexibility when standard restriction types don't meet your specific licensing requirements. With custom restrictions, you can create tailor-made constraints for your software licenses based on unique parameters or conditions.
The Custom Restrictions panel allows you to define your own restriction logic through three main components:
Restriction Name: A unique identifier for your custom restriction
Properties: Key-value pairs that define the parameters of your restriction
Property Name: The name of the parameter (e.g., "totalMemory")
Property Value: The value associated with the parameter (e.g., "4096")
Use the ADD PROPERTY button to include additional parameters
Custom XML Content: Advanced configuration using XML syntax to define complex restriction logic that is represented by XML elements children of the custom Restriction element.
This section allows you to include custom XML elements that will be embedded in the license
In the example, <Cpu architecture="arm" />
restricts the license to ARM-based processors
To create a custom restriction:
Click the ADD RESTRICTION button and select "CUSTOM" from the dropdown menu
Enter a meaningful name for your restriction that reflects its purpose
Add properties that define the parameters for your restriction
If needed, include custom XML elements to implement more complex restriction logic
Save your changes to apply the custom restriction to the license template
Custom restrictions are particularly useful for hardware-specific limitations (like CPU architecture or memory requirements), feature-based licensing, or any specialized licensing scenarios unique to your application.
At the bottom of the screen, you'll find:
SAVE: Saves all changes to the template
CANCEL: Discards changes and returns to the previous screen
Create separate templates for different product versions and license types
Use consistent naming conventions for templates to make them easily identifiable
Regularly review and update templates to reflect changes in your licensing strategy
The License Templates view serves as the foundation of your licensing system, allowing you to standardize license generation while maintaining flexibility for different products and license types.
When licenses are generated from templates with custom restrictions, your application code must include logic to interpret and enforce these custom restrictions by checking the license properties against the runtime environment. To see full code exnaple please refer to the paragraph.