This document describes the workflow and the protocol for retrieving and managing license keys for ISV applications used with Plesk.
The document uses the following terminology:
Independent Software Vendor (ISV) - an organization specializing in making and selling software designed for mass or niche markets.
Key Administrator (KA) - the system for inventory and management of Plesk and third-party software licenses.
Plesk instance - an individual installation of Plesk.
License key (or simply license) - a unique key that certifies that a particular user is permitted to use a service or a program with a specific set of pre-defined options. Each third-party license is stored as a record in the Key Administrator system with the following attributes:
license number and activation code
license creation and expiration dates
The exact format of a license body should be defined by ISV (can be binary or any kind of textual data). An ISV application should be able to recognize this body as a valid key to unlock certain functionality for the end user. Typically, license body contains information about (but not limited to) the edition of the product, the limitations by number of domains or mailboxes, additional features, etc.
License number - a unique identifier of a license key in Key Administrator. Can be recorded as prefix.number.version (example: EXT.12345678.0001), where only the unique number part has sense.
License key file (or license file) - representation of a license as a file. A license file can be obtained by exporting a license from Key Administrator. A license file contains a signed XML document, that holds the information about the licensed product and the license dates. Also a license file contains the license body wrapped in BASE64. A license file can be installed to Plesk by uploading it at Tools & Settings > License Management in the Plesk user interface. You can find an example of a license file in License File Structure.
License activation code (or shortly activation code) - a human-readable string consisting of 34 characters that can be used as a handy reference for a particular license. Can include the hyphen “-“, digits, and capital English alphabet letters. Example: AXQW00-N46A21-HBFH08-HGZX84-28TP35. You can write down an activation code on the paper, spell it over the phone, type it to someone via your messenger, easily copy & paste, and finally enter it at Tools & Settings > License Management in the Plesk user interface. Plesk will connect to KA with the entered activation code to download the actual license file.
License expiration date - the date when the license becomes expired (invalid) if it has not been renewed on time. Each time when the license is renewed, its expiration date is shifted ahead by 1 month.
License owner - a person or a company who formally owns the license according to records in Key Administrator. Often a license owner and a Plesk instance owner are not the same entity: a license owner might be a big reseller company that runs their business on selling Plesk to smaller hosting companies, while a Plesk instance owner might be a hosting company.
ISV endpoint - a web service running on an ISV server that implements the protocol described in ISV Protocol. The goal of the ISV endpoint is to process calls from Key Administrator for creation, modification, and termination of third-party licenses.
Plesk extension - a third-party software that adds new functionality to Plesk. On one hand, an extension accesses information about Plesk entities, and on the other hand, it provides integration with third-party tools or services to Plesk administrators and customers.