DevExtreme React - Licensing

Table of Contents


You must purchase a license to use DevExtreme UI components/libraries within a software project. If you are ready to incorporate DevExtreme UI components/libraries in your project, please visit the DevExtreme Purchase page for pricing options.

NOTE
For more information on product licensing and the terms that govern use of DevExtreme UI component/libraries, visit the following webpage: DevExtreme Licensing.

Please remember that Developer Express Inc licenses DevExtreme on a per developer basis. Each developer using DevExtreme must purchase/acquire a license. If your organization owns multiple licenses, you can assign individual licenses to different developers. By assigning available licenses to developers within your organization, each developer will have access to their own personal license key within the DevExpress Download Manager (under their personal DevExpress account).

If a developer leaves or stops using DevExtreme, you can revoke their license and re-assign it to another individual.

v23.2+

With the release of v23.2, DevExpress checks the license status to determine whether a valid DevExtreme license exists. If you do not have a valid DevExtreme license, an error message is displayed on-screen. To complete the license verification process, you must supply a valid license key.

The process involves two steps:

  1. Obtain your DevExpress license key from the Download Manager and register it on your machine.
  2. Use the devextreme-license CLI tool to generate a DevExtreme-compatible runtime key and register it in your application.
NOTE

Regardless of the distribution channel you use — NuGet, npm, yarn, CDN — you must complete both steps above.

For complete setup instructions, refer to: License Key for DevExpress Products

Should you require purchase assistance or more information on our license verification process, please contact a member of the DevExpress Client Services Team.

Evaluation (Trial)

Per the terms of the End User License Agreement (EULA), you are permitted to evaluate DevExtreme components for 30-days.

During the 30-day trial period, an on-screen message and console warning indicate that you are using an unlicensed version of DevExtreme. To remove these messages and use DevExtreme components in production projects, purchase a commercial license. To purchase a license and obtain your DevExpress license key, contact the DevExpress Client Services Team for assistance or visit the DevExtreme Purchase page. After you register the DevExpress license key, generate a DevExtreme-compatible runtime key with the devextreme-license CLI.

Obtain Your License Key

Log in to the DevExpress Download Manager to obtain your DevExpress license key. For full step-by-step instructions (including how to register the key on your machine and configure DevExtreme to use it), refer to the following article:

License Key for DevExpress Products

NOTE
Every developer on your team must obtain and use their own key. Your DevExpress account manager should Assign Licenses to developers.

Validate Your License Key

To use DevExtreme in a licensed project, register a valid license key in your application. The process involves two steps:

  1. Obtain your DevExpress license key from the DevExpress Download Manager and register it on your machine.
  2. Use the devextreme-license CLI tool to generate a DevExtreme-compatible runtime key and register it in your application.

For complete instructions for all supported frameworks and environments, refer to the following article:

License Key for DevExpress Products — Additional Step for JS/TS Developers (DevExtreme)

Manual Configuration

After you obtain your DevExpress license key and register it on your machine, use the devextreme-license CLI tool to generate a DevExtreme-compatible runtime key and register it in your application. The configuration differs depending on whether your project is modular (files added with import or require) or non-modular (files referenced with <script> tags):

Storing the License Key in a Global Window Object

If the config method is unsuitable, store a license key in a global window object:

Code
if (typeof window !== "undefined") {
    (window as any).DevExpress = (window as any).DevExpress || {};
    (window as any).DevExpress.config = {
        licenseKey: 'DEVELOPER_LICENSE_KEY'
    };
}
NOTE
This approach is applicable starting with v24.1+ and requires this code before a component's constructor is called.

Next.js Specifics

DevExtreme components function on the client side, which requires a license check during client-side code execution. Create a ClientComponent that registers the assigned license key, and run it in the RootLayout section before rendering any content.

For full instructions on setting up the license key in a Next.js application, refer to the following article:

License Key for DevExpress Products — React Apps that Use Next.js

If the config() method cannot be called, store the license key in a global window object.

Deployment and Continuous Integration (CI)

To add DevExtreme license verification to your CI/CD processes, run the devextreme-license CLI tool in a pre-build step. The tool reads your DevExpress license key from an environment variable and generates a DevExtreme-compatible runtime key file.

For full instructions, including an example for GitHub Actions and Secrets, refer to the following article:

License Key for DevExpress Products — CI/CD Systems

NOTE
If your organization owns multiple DevExpress license keys, you can use any valid DevExpress license key issued to you or your employees in CI/CD processes. The CI/CD process uses that DevExpress license key from the environment variable, and the devextreme-license CLI generates the runtime key file separately. If you prefer not to associate build servers with a specific employee key, you can purchase a dedicated CI license. However, a dedicated key is not required if you have purchased a license for each developer who uses DevExtreme.

Updating License Keys

A license key is linked to each major version of DevExtreme. If you update a project to a new version of DevExtreme, the license key used must be updated to one linked to this new major version.

A license key will work for all minor versions released within a given major release cycle - regardless of publication date. When you upgrade to a new major version, the license key must also be updated. For example:

  • v23.1.3 and v23.1.5 are two minors within the v23.1 major release cycle. If you upgrade from v23.1.3 to v23.1.5, you will not need to update license key info.

  • v23.1 and v23.2 are two different major versions. If you upgrade from v23.1.x to v23.2.x, you will need to update license key info.

DevExtreme license keys do not expire. While license keys never expire, please remember, they are linked to major versions (v23.2, v24.1, ...). If you do not have a valid license for a given major version, you will not be authorized to use DevExtreme UI components/libraries for production projects. Visit Renewals to renew your license.

License keys issued for newer versions of DevExtreme (such as v23.2) can be used for older versions (such as v23.1).

NOTE
We do not provide license keys for early access previews (EAP), community tech previews (CTP), and betas. These pre-release versions may contain deficiencies and as such, should not be considered for production use or integrated into any mission critical application.

Information Security

The DevExtreme license key does not contain secret or private information. During license validation, Developer Express Inc does not access any personal data/resources, nor do we collect information about individual users/devices. DevExtreme license validation does not send any data to Developer Express Inc servers, does not collect information about users, and does not send any information to third parties.

License key validation is performed on the client and is not machine-based. Since DevExtreme does not send any HTTP requests during validation, no network connection is required to validate a given license.

License key validation is the same for both a local development machine or a CI/CD system.

IMPORTANT
Though keys may be published and included in application source code/bundle, you must not actively advertise, publish, or distribute license keys. Should you advertise, publish, or distribute license key information in an effort to circumvent DevExpress licensing requirements, your DevExtreme license may be subject to revocation.

Validation

NOTE
DevExtreme’s license verification process does not impact app functionality nor affect app performance.

When creating the first component, DevExtreme checks the license key specified in the config() method. If license key verification is successful, additional license-related messages are not shown within the browser console or on-screen.

If license key validation fails, DevExtreme will display one of the following messages within the browser console.

Case Message
Valid license key not found. W0019 - DevExtreme: Unable to Locate a Valid License Key

If you are using a 30-day trial version of DevExtreme, you must uninstall all copies of DevExtreme once your 30-day trial period expires. For terms and conditions that govern use of DevExtreme UI components/libraries, please refer to the DevExtreme End User License Agreement.

To use DevExtreme in a commercial project, you must purchase a license. For pricing/licensing options, please visit DevExtreme Purchase page.

If you have licensing-related questions or need help with a purchase, please email clientservices@devexpress.com. For additional information on this error message, see: W0019.
The license key has expired. W0020 - DevExtreme: License Key Has Expired

A mismatch exists between the license key used and the DevExtreme version referenced in this project.

To proceed, you can:
  • use a version of DevExtreme linked to your license key (visit the DevExpress Download Manager to validate license/version information)
  • renew your DevExpress Subscription (once you renew your subscription, you will be entitled to product updates and support services as defined in the DevExtreme End User License Agreement)
If you have licensing-related questions or need help with a renewal, please email clientservices@devexpress.com. For additional information on this error message, see: W0020.
License key verification failed. W0021 - DevExtreme: License Key Verification Has Failed

To verify your DevExtreme license, specify a correct key in the GlobalConfig. If you continue to encounter this error, please visit DevExpress Download Manager to obtain a valid license key.

If you have a valid license key and this problem persists, please submit a support ticket with the DevExpress Support Center. We will be happy to follow-up.

For additional information on this error message, see: W0021.

Redistribution

Our End User License Agreement (EULA) lists the resources and files that can be redistributed to your application users. You must have a valid license to distribute applications that use DevExtreme components.