Implementing License Models

Once you have chosen a licensing model, you can implement it using license templates, or by overriding the properties of the license template when creating a license. The latter allows you to create a variant without creating a new template.

License template configuration for different licensing models

The sections below list the properties that implement each model. These properties are combinable, not mutually exclusive: a single license can be, for example, node-locked, subscription-based, and named-user all at once. Set the properties for each dimension your model needs.

Perpetual

A perpetual (lifetime) license does not have a subscription interval or an expiration date set.

PropertyValue
subscriptionIntervalnull

Subscription

A subscription expires after a specific duration of time. When a license expires, LexActivator returns the LA_EXPIRED status code.

PropertyValue
subscriptionIntervalP1M

Node-locked

A node-locked license is locked to the machines on which it is activated, up to its allowedActivations limit. Set the license type to node-locked.

PropertyValue
typenode-locked

OS user-locked

An OS user-locked license is a node-locked license that additionally prevents different users (OS users) on the same machine from re-using the same license.

PropertyValue
typenode-locked
userLockedtrue

Hosted-floating

The hosted-floating type implements a floating licensing model without requiring your customer to install a license server, with Cryptlex's servers acting as the license server.

PropertyValue
typehosted-floating
leaseDuration>0, or 0/-1 for an unlimited lease
leasingStrategyper-machine

Hosted-floating (instance-locked)

Instead of locking a floating license to a machine, you can lock it to the application instance (process) by setting the leasing strategy to per-instance. Each running instance consumes a seat, regardless of whether instances share the same device fingerprint. This is what makes floating licenses work inside cloned VMs, Docker containers, and Kubernetes workloads (see Containers and Virtual Machines), and it lets you charge your customer per running instance.

PropertyValue
typehosted-floating
leaseDuration>0, or 0/-1 for an unlimited lease
leasingStrategyper-instance

On-premise-floating

The on-premise-floating type implements a floating licensing model in environments which may or may not be connected to the internet. Your customer installs LexFloatServer in their network. The allowedFloatingClients property sets how many application instances the server can serve concurrently.

PropertyValue
typeon-premise-floating
leaseDuration0, >0
allowedFloatingClients>0

Single-seat

The number of machines a license key can be used on is determined by the allowedActivations property.

PropertyValue
allowedActivations1
typenode-locked, hosted-floating

Multi-seat

A single key can be used on multiple machines if the value of the allowedActivations property is greater than one.

PropertyValue
allowedActivations>1
typenode-locked, hosted-floating

Unlimited-seat

You can allow an unlimited number of seats for a license (site license), and restrict the site using an IP address or location.

PropertyValue
allowedActivations0, -1
typenode-locked, hosted-floating
allowedIpAddresses[125.67.123.43]

Named-user

A named-user license has no dedicated license type. You assign the license to a specific individual, typically identified by an email address, by linking the user to it at creation time, on top of any node-locked or floating configuration. The user logs in with their credentials to retrieve their license key, after which activation proceeds like any other license. To learn more, refer to Named User Licenses.

Usage-based

A usage-based (metered) license has no dedicated license type. Instead, you add meter attributes to any license type defined above to track and enforce usage counts. To make specific meter attributes mandatory for every license, add them to the requiredMeterAttributes property of the license template. To learn more, refer to Usage-Based Licensing.

Choosing a Licensing ModelSubscription Licensing
Last updated: