marketplace development guide
PDF

Marketplace application licensing

Glossary Item Box

Introduction

Paid Marketplace applications must be licensed to monitor their use. The main license types are:

  • Named licenses - grant application access for specific users. These licenses are linked to user profiles and can not be utilized by other users. The system administrator can redistribute registered licenses at any time. The process of distributing licenses among Creatio users is described in the License distribution article.
  • Server licenses - do not provide for the need to license individual users. All Creatio users with the appropriate access rights will be able to access the licensed functionality.

Regardless of license type, it may include:

  • Licensing objects – the names of custom objects added to the Marketplace application. This list can include any custom objects, such as a section, detail or lookup objects.
  • Licensing operations – the names of operations added to the application logic to see whether a license is available for the use of certain functionality. For example, an additional action that requires the connection to the licensing operation has been added to one of the base system sections. When this action is triggered in the application, the license must be checked first, and based on that the functionality should either be continued or interrupted.

A Marketplace developer may learn about the amount of purchased and distributed user licenses by contacting Marketplace support (marketplace@creatio.com).

Licensing methods

Possible methods of licensing depend on the license type and the subject of licensing (table. 1).

Table 1. Possible licensing methods

License type The subject of licensing Business cases
Nominal Objects The Marketplace application is a new Creatio section. The developer would like to receive a fee for every user working in their section.
Nominal Operations

The Marketplace application is a connector to a third-party service. The developer would like to receive a fee for every user with the access to the service.

For example, a telephony connector with a single user subscription model.

Server-based Objects The Marketplace application is a new Creatio section. The developer would like to receive a fixed fee, regardless of how many users work with the section.
Server-based Operations

The Marketplace application is a connector to a third-party service. The developer would like to receive a fixed fee, regardless of how many users work with the section.

For example, a web-chat connector, used to register leads / cases in Creatio. The client purchases license regardless of the quantity of users.

Nominal Objects and / or operations

The Marketplace application is a section with records that are created based on the data from third-party connectors to external services. The developer would like to receive a fee for every user with the access to the service. Additionally, the developer would like to receive a fee for every connector to the service.

For example, the [Cases] section is modified in the vertical solution framework. It integrates with the external system used to register cases. The client pays for access to the section functionality for each user.

ATTENTION

It is prohibited to use both nominal and server-based licenses that encompass the same objects and operations.

What is the validity period of a license

Every license includes the period of its validity. The Creatio platform monitors the validity of licenses. If the date has expired, the work of the licensed object or operation will be blocked.

Depending on the validity period, the licenses can be of two types:

  • Annual - designed for Marketplace applications distributed with an annual subscription. The license is valid for one year. Upon expiration, the client must renew the annual subscription and get a new license.
  • Unlimited – designed for Marketplace applications with a single payment method. The license is unlimited.

The process of issuing a license for a new product

1. When creating a Marketplace application, the developer must decide:

a) What will be included in the license - licensing objects or operations (both options are possible). They must also create a list of licensed objects and / or operations.

B) Determine the type of license - nominal or server-based. The main types of Creatio licenses and their usage options are listed in the “Creatio licensing“ article.

c) Determine the license validity period – the license is annual or unlimited. 

NOTE

If the license includes licensing operations, it is necessary to implement a license validation in the program code of the application. The verification logic for object licensing is already implemented in the base version of Creatio.

ATTENTION

The names of the licensed objects must contain the prefix specified the developer profile settings. Developer prefix – unique ID added to the names of custom schemas, packages and custom columns in the objects inherited from the base objects. The prefix identifies the functions added or modified by the developer. The prefix must be at least 3 characters long. The developer prefix cannot be changed after the registration.

2. Upon successful verification of the application by Marketplace employees, the developer must provide a list of licensed objects and operations, as well as the information about the type and duration of the license to the Marketplace support team (marketplace@creatio.com).

3. Based on the provided list, the Marketplace support service generates licenses for this application.

4. In the future, after ordering and paying for the Marketplace application, the user will have the necessary licenses installed by the Marketplace support service.

How to implement the license checking mechanism in a product

Checking licensing objects

If the license application includes only licensing objects, then no improvements in the Marketplace application are required. The license for licensing objects is checked by the base Creatio tools.

Checking licensing operations

If the application license includes a licensing operation, provide a license verification mechanism in the source code of the application to perform this operation.

To do this, use one of the methods of the LicHelper class of the Terrasoft.Core library:

  • GetHasOperationLicense - returns true if the license is found, and false if the license is missing.
  • CheckHasOperationLicense - returns true if the license is found. If there is no license, it generates the LicException exception.

Method signatures:

public bool GetHasOperationLicense(string sysPackageOperationCode);
public bool CheckHasOperationLicense(string sysPackageOperationCode);

The sysPackageOperationCode string parameter must contain the name of the licensed operation passed to the Marketplace support service.

Examples of method use:

UserConnection.LicHelper.GetHasOperationLicense("MyMarketplaceApplication.Use");
UserConnection.LicHelper.CheckHasOperationLicense("MyMarketplaceApplication.Use");

ATTENTION

You can check the existence of an operation license only on the server side of the application. If the Marketplace application works only with the client’s part of Creatio, you need to:

  • Create a custom configuration service to implement a license validation;
  • Add the program logic to the application to connect to the created service.

ATTENTION

We do not recommend verifying the existence of an operation license directly in custom schemas since the source code of a custom schema configuration packages is read/replace-only. Therefore, we recommend using licensing objects.

Application demo version

If the Creatio application does not have any downloaded licenses for any of the products, the application's demo mode is enabled by default. In demo mode, all Creatio functionality is available to the user, but not more than 1000 records may be added to each database table.

© Creatio 2002-2020.

Did you find this information useful?

How can we improve it?