Cryptlex Documentation
  • Welcome to Cryptlex!
  • Getting Started
    • Overview
    • Licensing Models
  • License Management
    • License Templates
    • Implementing License Models
    • Creating Licenses
    • License Subscriptions
    • Custom License Fields
    • Meter Attributes
    • Suspending Licenses
    • Revoking Licenses
    • Maintenance Policies
  • Feature Management
    • Overview
    • Features and Entitlement Sets
    • License Feature Entitlements
    • Accessing Feature Entitlements
    • Use Cases
  • User Management
    • Roles
    • Creating Users
    • Authenticating Users
    • Organizations
    • Resellers
    • Customer Portal
    • Reseller Portal
    • Google SSO
    • SAML SSO
  • Release Management
    • Overview
    • Creating Releases
    • Distributing Releases
  • Node Locked Licenses
    • Overview
    • Using LexActivator
      • Using LexActivator with C, C++ and Objective C
      • Using LexActivator with C#
      • Using LexActivator with VB.NET
      • Using LexActivator with Java
      • Using LexActivator with Delphi
      • Using LexActivator with Python
      • Using LexActivator with Go
      • Using LexActivator with Node.js
      • Using LexActivator with Ruby
      • Using LexActivator with Android
      • Using LexActivator with iOS
      • Using LexActivator with Flutter
    • Using Web API
    • Offline Activations
    • Proxies and Firewall
  • Floating Licenses
    • Overview
    • Hosted Floating License Server
    • On-Premise Floating Licenses
      • LexFloatServer
      • Using LexFloatClient
        • Using LexFloatClient with C, C++ & Objective C
        • Using LexFloatClient with C#
        • Using LexFloatClient with VB.NET
        • Using LexFloatClient with Java
        • Using LexFloatClient with Delphi
        • Using LexFloatClient with Python
        • Using LexFloatClient with Node.js
        • Using LexFloatClient with Go
        • Using LexFloatClient with Android
        • Using LexFloatClient with iOS
      • Offline Floating License
  • Named User Licenses
  • Timed Trials
    • Verified Trials
    • Unverified Trials
  • Licensing Docker Apps
  • Webhooks
  • Automated Emails
  • Web Integration
    • Personal Access Tokens
    • Using Web API
    • Using Zapier
    • Using FastSpring
    • Custom Development
  • Changelog
    • Web API
    • LexActivator
    • LexFloatClient
    • LexFloatServer
  • Legal
    • Terms of Service
    • Privacy Policy
    • Subprocessors
    • Data Processing Addendum
    • Service Level Agreement
    • Security, Privacy, and Compliance
    • Open Source Licenses
  • Cryptlex On-Premise
    • Overview
    • System Requirements
    • Server Layout
    • Installation Guide
      • Docker Compose
      • Kubernetes
    • Configuring Client Libraries
    • Monitoring and Error Reporting
Powered by GitBook
On this page
  • Maintenance policy properties
  • Name
  • Validity
  • Expiration Strategy
  • Allow Major Version Updates
  • Allow Minor Version Updates
  • Using maintenance policies
  • Using max allowed release version
  • Renewing maintenance
  • Possible use cases
  • 1- Lifetime free updates
  • 2- Lifetime minor version updates
  • 3- One-year major version updates
  • 4- One-year minor version updates
  • 5- No updates
  1. License Management

Maintenance Policies

PreviousRevoking LicensesNextFeature Management

Last updated 5 months ago

A maintenance policy can be used to configure how the end-user can update the software (product). You can add restrictions on the major version, minor version and duration for which the updates will be available. The maintenance policy once created can be linked to the licenses.

NOTE: Maintenance policies do not require using our service.

Maintenance policy properties

The maintenance policy has the following properties:

Name

Name of the maintenance policy.

Validity

The duration (in seconds) after which the maintenance for the software updates of a license will expire.

In order to allow a lifetime duration set the validity to zero.

Expiration Strategy

The expiration strategy determines the expiration start date of the maintenance. It allows for the following strategies:

Immediate:

The license maintenance starts expiring right after it is created.

Delayed:

The license maintenance starts expiring after the license is activated the first time.

Allow Major Version Updates

If set to true then all the major version updates will be allowed till the license maintenance expires.

Allow Minor Version Updates

If set to true then all the minor version updates will be allowed till the license maintenance expires.

Using maintenance policies

After you have created a maintenance policy and linked it with the license, you need to call the following LexActivator functions in your code after calling SetProductId() function:

SetReleaseVersion("1.2.3");

SetReleasePublishedDate();

The allowed version format syntax is $MAJOR.$MINOR.$PATCH.$BUILD. So, only the following three formats are allowed:

  • x.x - $MAJOR.$MINOR

  • x.x.x - $MAJOR.$MINOR.$PATCH

  • x.x.x.x - $MAJOR.$MINOR.$PATCH.$BUILD

It must only contain dot-separated digits e.g. 1.2, 1.2.3, 1.2.3.4, etc.

The version set in this function is stored in the license as "CurrentReleaseVersion" property and in the activation as "ReleaseVersion" property. If the license has more than one activation the "CurrentReleaseVersion" property of the license will store the max release version.

Using max allowed release version

In case your use case is simple and you want to allow updates up to a particular max version, then you don't need to create any maintenance policy. Just set the "MaxAllowedReleaseVersion" property of the license to the max version up to which you want to allow updates. And in your application just call SetReleaseVersion("x.x.x") the function.

Renewing maintenance

Whenever you create a license and link a maintenance policy with validity say 365 days, you will see a property in the license resource named maintenanceExpiresAt. It is a read-only, computed property and determines the time when the license maintenance will expire.

If the license maintenance policy expiration strategy is set to immediate, the maintenanceExpiresAt property will be populated with the date on which the license maintenance will expire starting from the time when the license was created.

If the license maintenance policy expiration strategy is set to delayed, the maintenanceExpiresAt property will be null till the license is activated, as the license maintenance will start expiring after it is used.

Possible use cases

1- Lifetime free updates

Don’t create any policy or create the policy with the following values:

Validity

0

AllowMajorVersionUpdates

true

AllowMinorVersionUpdates

true

2- Lifetime minor version updates

Validity

0

AllowMajorVersionUpdates

false

AllowMinorVersionUpdates

true

3- One-year major version updates

Validity

365 Days

AllowMajorVersionUpdates

true

AllowMinorVersionUpdates

true

4- One-year minor version updates

Validity

365 Days

AllowMajorVersionUpdates

false

AllowMinorVersionUpdates

true

5- No updates

Validity

0 (or any value)

AllowMajorVersionUpdates

false

AllowMinorVersionUpdates

false

To renew the license maintenance you need to invoke the or renew it through the license page on the Dashboard. It extends the license maintenance expiry by its maintenance policy's validity.

Release Management
license maintenance renew endpoint