Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve description in several documents. #17445

Draft
wants to merge 5 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
97 changes: 54 additions & 43 deletions docs/getting-started/licensing/license-key-and-activation.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
category: licensing
order: 20
order: 10
meta-title: License key and activation | CKEditor 5 Documentation
meta-description: Managing your license keys and activating the editor.
menu-title: License key and activation
Expand All @@ -9,52 +9,43 @@ modified_at: 2024-10-28

# License key and activation

This article explains how to activate a commercial license for CKEditor 5 and the CKEditor premium features.

There are two types of premiums: standalone features and services. Standalone ones require a simple license key and include:

* Asynchronous collaboration features, including:
* {@link features/track-changes Track changes}
* {@link features/comments Comments}
* {@link features/revision-history Revision history}
* {@link features/ai-assistant-overview AI Assistant}
* {@link features/case-change Case change}
* {@link features/document-outline Document outline}
* {@link features/format-painter Format painter}
* {@link features/multi-level-lists Multi-level list}
* {@link features/pagination Pagination}
* {@link features/paste-from-office-enhanced Paste from Office enhanced}
* {@link features/slash-commands Slash commands}
* {@link features/table-of-contents Table of contents}
* {@link features/template Templates}

Other premium features such as {@link features/real-time-collaboration real-time collaboration}, {@link features/export-word export to Word}, {@link features/export-pdf export to PDF}, or {@link features/import-word import from Word} are authenticated on the server side.
This article explains how to obtain a commercial license for CKEditor 5 and the CKEditor premium features.

<info-box>
CKEditor&nbsp;5 (without premium features listed above) can be used without activation as {@link getting-started/licensing/license-and-legal open source software under the GPL license}. It will then {@link getting-started/licensing/managing-ckeditor-logo display a small "Powered by CKEditor" logo} in the editor area.
CKEditor&nbsp;5 without premium features can be used as {@link getting-started/licensing/license-and-legal open source software under the GPL license}. It will then {@link getting-started/licensing/managing-ckeditor-logo display a small "Powered by CKEditor" logo} in the editor area.

For commercial purposes, there are {@link getting-started/licensing/license-and-legal trial, development and production license keys} are available.
If you are not meeting the criteria of the GPL license, you need to obtain a commercial one.
</info-box>

## Obtaining a license

To activate CKEditor&nbsp;5 and the premium features listed above, you will need either an active commercial license or a trial license.

### Purchasing a commercial license

If you wish to purchase a commercial CKEditor 5 license, use our [pricing page](https://ckeditor.com/pricing/). You can choose from predefined plans that will allow you to use the editor immediately or you can contact our sales team if you have some specific needs.
If you wish to purchase a commercial CKEditor 5 license there are two options to do that.

1. Use our [pricing page](https://ckeditor.com/pricing/). You can choose from predefined plans that will allow you to use the editor with our Cloud CDN.
2. [Contact our sales team](https://ckeditor.com/contact/) if you have some specific needs, and you want to use the self-hosted editor.

### Choosing a distribution method

When you choose the editor license you need to decide how the editor will be distributed, via cloud or self-hosted. Key differences are:

- **Cloud-hosted**: Served via our CDN, globally distributed access, no hosting setup required. Subject to {@link getting-started/licensing/usage-based-billing usage-based billing}.
- **Self-hosted**: Setup with npm or ZIP download, offers more flexibility in hosting. This type requires contact with our sales team and a custom plan.

### Subscribing to the CKEditor Premium Features free trial

If you wish to test our offer, you can create an account by [signing up for CKEditor Premium Features 14-day free trial](https://portal.ckeditor.com/signup). After signing up, you will receive access to the Customer Portal.
If you wish to test our offer, you can create an account by [signing up for CKEditor Premium Features 14-day free trial](https://portal.ckeditor.com/checkout?plan=free). After signing up, you will receive access to the Customer Portal.

The trial is commitment-free, and you do not need to provide credit card details to start it. The Premium Features free trial allows you to test all paid CKEditor Ecosystem products at no cost.

Trial allows testing both self-hosted and cloud distributions. When the trial finishes, you will need to use the distribution according to your plan details.

### Using the GPL license key

CKEditor&nbsp;5 (without the premium features listed above) can be used in an open-source, GPL-compliant setup with:

* a [free account using the Cloud distribution](https://arc.net/l/quote/jyhmkuob). You will be granted a license key and free editor loads.
* a [free account using the Cloud distribution](https://ckeditor.com/pricing). You will be granted a license key and free editor loads.
* without account setup as open-source software under the GPL license. Use the `'GPL'` value in the `licenseKey` field in your configuration.

In both cases, the editor will {@link getting-started/licensing/managing-ckeditor-logo display a small “Powered by CKEditor” logo} in the editor area.
Expand All @@ -63,17 +54,17 @@ If you are running an Open Source project under an OSS license incompatible with

For commercial purposes, {@link getting-started/licensing/license-and-legal trial, development, and production license keys} are available.

## License key usage
## License key set up

Follow this guide to get the license key necessary to create an account and use premium features.

### Create an account

Create an account by [signing up for the CKEditor Premium Features free trial](https://portal.ckeditor.com/checkout?plan=free). After signing up, you will receive access to the customer dashboard (CKEditor Ecosystem dashboard). During the process, you will see a list of features available from the 14-day free trial. You may check the ones you are the most interested in. However, this will not affect the trial package &ndash; all of them will be available.
Create an account by [signing up for the CKEditor Premium Features free trial](https://portal.ckeditor.com/checkout?plan=free). After signing up, you will receive access to the customer portal.

### Log in to the Customer Portal

Log in to the [CKEditor Ecosystem dashboard](https://dashboard.ckeditor.com/). During the first login, you will receive a confirmation email with a link to create a password for your account.
Log in to the [customer portal](https://portal.ckeditor.com/). During the first login, you will receive a confirmation email with a link to create a password for your account.

Keep the password safe, as this trial account will be converted into a commercial account if you decide to buy the license after the trial period is over.

Expand Down Expand Up @@ -106,9 +97,9 @@ This key grants access to **all features**. It is valid for **14 days**. It does
* **Features**: Grants access to all features and add-ons.
* **Duration**: Valid for 14 days (until 12th May 2024).
* **Functionality**: The editor is limited functionally, such as session time and the number of changes allowed.
* **Intended Use**: Ideal for evaluating the platform and all its features.
* **Usage Limitation**: Can only be used for evaluation purposes and not for production.
* **Editor Loads**: Does not consume editor loads.
* **Intended use**: Ideal for evaluating the platform and all its features.
* **Usage limitation**: Can only be used for evaluation purposes and not for production.
* **Editor loads**: Does not consume editor loads.

You can sign up for the [CKEditor Premium Features 14-day free trial](https://portal.ckeditor.com/checkout?plan=free) to test the editor.

Expand All @@ -119,23 +110,32 @@ This key grants access to your subscription features. It does not consume editor
* **Features**: Grants access to subscription features.
* **Functionality**:
* Similar to the trial license, the editor is limited functionally, including session time and the number of changes allowed.
* Additionally, there are limitations on development domains. The editor can be used in the following domains: `localhost`, `*.test`, `*.localhost`, `*.local`, and IP addresses: `127.0.0.1`, `192.168.*.*`, `10.*.*.*`, `172.*.*.*` .
* Additionally, there are limitations on development domains. The editor can be used in the following domains: `localhost`, `*.test`, `*.localhost`, `*.local`, and IP addresses: `127.0.0.1`, `192.168.*.*`, `10.*.*.*`, `172.*.*.*` .
* The editor will show a banner informing it was launched for development purposes.
* **Intended Use**: Designed for development environments such as local work, continuous integration (CI), and end-to-end (E2E) tests.
* **Usage Limitation**: Must not be used for production environments.
* **Editor Loads**: Does not consume editor loads.

[Contact us](https://ckeditor.com/contact/?sales=true#contact-form) for more details
* **Intended use**: Designed for development environments such as local work, continuous integration (CI), and end-to-end (E2E) tests.
* **Usage limitation**: Must not be used for production environments.
* **Editor loads**: Does not consume editor loads.

### Production license key

This key grants access to your subscription features without imposing any limitations. It **consumes editor loads** (after the 14 days trial period ends).

* **Features**: Grants access to subscription features.
* **Functionality**: The editor functions without any restrictions.
* **Intended Use**: Meant for production environments where the software is actively used by end-users.
* **Usage Limitation**: None specified.
* **Editor Loads**: Consumes editor loads, especially after the 14-day trial period ends.
* **Intended use**: Meant for production environments where the software is actively used by end-users.
* **Usage limitation**: None specified.
* **Editor loads**: Consumes editor loads, especially after the 14-day trial period ends.

### Evaluation license key

This license key is a temporary, evaluation-only key generated by our team to support short-term testing and demonstration purposes. It is intended for use in events, sample code, or brief evaluations, allowing limited access to essential platform features.

* **Features**: Grants access to open-source features only.
* **Duration**: Typically valid for 24 hours to accommodate short-term needs.
* **Functionality**: The editor is limited functionally, such as session time and the number of changes allowed.
* **Intended use**: Ideal for quick evaluations, demos, or inclusion in code samples.
* **Usage limitation**: Issued solely for evaluation purposes by our team; not authorized for production use.
* **Editor loads**: This license does not consume editor loads, ensuring it’s lightweight for temporary testing.

## Using the license key

Expand All @@ -160,3 +160,14 @@ ClassicEditor
To use premium features, you need to add the relevant plugins to your CKEditor&nbsp;5. You can use the [CKEditor&nbsp;5 Builder](https://ckeditor.com/ckeditor-5/builder/?redirect=docs) to generate a CKEditor&nbsp;5 preset with the plugins enabled.

Alternatively, refer to the installation sections in the plugin documentation to do it on your own. You can read more about {@link getting-started/setup/configuration installing plugins} and {@link getting-started/setup/toolbar toolbar configuration} in dedicated guides.

## License key regeneration


License keys may be regenerated and you will always be informed when this occurs. Regeneration may happen under the following circumstances:

- **Upon request**: You can request a license key regeneration .
- **Feature updates**: Keys will be regenerated if new features are added to your subscription, either through a plan upgrade or additions to your current plan.

Your current license keys will remain functional even after regeneration, ensuring you have sufficient time to migrate to the updated keys without disruption.

14 changes: 13 additions & 1 deletion docs/getting-started/licensing/usage-based-billing.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ category: licensing
menu-title: Usage-based billing
meta-title: Usage-based billing | CKEditor 5 documentation
meta-description: Learn how usage-based billing works in CKEditor 5.
order: 40
order: 20
modified_at: 2024-10-28
---

Expand Down Expand Up @@ -38,6 +38,12 @@ Alternatively, if you prefer to use only the free, open-source version of CKEdit

An editor load occurs each time CKEditor is initialized in your application. For example, if 100 users load CKEditor 10 times each, it results in 1,000 editor loads.

The editor initializes as follows:

1. The integrator creates one or more editors on a page, typically using a method like `ClassicEditor.create(sourceElementOrData, configuration)`.
2. Depending on the setup, the editor will either initialize with the selected DOM element or, if provided with data, initialize in a detached mode to be added to the DOM on demand.
3. Upon the `ready` event, the editor sends usage information to the server to confirm the license. [Read more about the license check](#license-check-and-usage-data).

Each individual editor instance on a page is counted as one editor load. For example, if a page contains ten editors, a single refresh of that page will result in ten editor loads.

Several factors can contribute to a high number of editor loads, with one of the most significant being the use of multiple editors on a single page. For example:
Expand All @@ -47,6 +53,12 @@ Several factors can contribute to a high number of editor loads, with one of the

By understanding these scenarios, you can better anticipate and manage your editor loads to align with your usage plan.

### License check and usage data

When the editor is ready, a license check request is sent to our server, along with non-personalized data that helps us understand editor usage. This information also assists us when we work on support requests.

The server’s response confirms whether the license is valid. If invalid, the editor will switch to read-only mode.

## How usage-based billing works

Each pricing plan includes a specific number of editor loads. If you exceed this limit, you can either upgrade to a higher plan or pay for additional editor loads in blocks of 1,000.
Expand Down
14 changes: 11 additions & 3 deletions docs/getting-started/setup/csp.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,17 @@ order: 110

CKEditor&nbsp;5 is compatible with applications that use [<abbr title="Content Security Policy">CSP</abbr> rules](https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP) and helps developers build a secure web.

## Recommended CSP configuration
## Recommended CSP configuration for Cloud deployments

The recommended CSP configuration that allows the rich-text editor to run out–of–the–box with all standard features using the content like images or media from external hosts looks as follows:
The recommended CSP configuration for {@link getting-started/licensing/usage-based-billing#cloud-hosted Cloud deployments} that allows the rich-text editor to run out–of–the–box with all standard features using the content like images or media from external hosts looks as follows:

```
default-src 'none'; connect-src 'self'; script-src 'self' https://cdn.ckeditor.com https://proxy-event.ckeditor.com ; img-src * data:; style-src 'self' 'unsafe-inline'; frame-src *
```

## Recommended CSP configuration for self-hosted deployments

The recommended CSP configuration for self-hosted deployments (npm/ZIP) that allows the rich-text editor to run out–of–the–box with all standard features using the content like images or media from external hosts looks as follows:

```
default-src 'none'; connect-src 'self'; script-src 'self'; img-src * data:; style-src 'self' 'unsafe-inline'; frame-src *
Expand All @@ -29,7 +37,7 @@ Some CSP directives have an impact on certain rich-text editor features. Here is
**Note**: To use [CKEditor Cloud Services](https://ckeditor.com/ckeditor-cloud-services/), include the `http://*.cke-cs.com` domain in the `connect-src` directive, for instance: `connect-src 'self' http://*.cke-cs.com`.
* `script-src 'self'`: Allows the execution of JavaScript from the current host only and can be applied only if the CKEditor&nbsp;5 script file (`<script src="[ckeditor-build-path]/ckeditor.js"></script>`) is also served from that host.

**Note**: If CKEditor&nbsp;5 is served from another host, for example the official CDN, make sure the value of `script-src` includes that host (`script-src 'self' https://cdn.ckeditor.com`).
**Note**: If CKEditor&nbsp;5 is served from {@link getting-started/licensing/usage-based-billing#cloud-hosted Cloud}, make sure the value of `script-src` includes the required hosts, one for the CDN, and one for the {@link getting-started/licensing/usage-based-billing#license-check-and-usage-data license check server}: `script-src 'self' https://cdn.ckeditor.com https://proxy-event.ckeditor.com`.
* `img-src * data:`
* The `*` directive value allows images in the editor content to come from any hosts.
* The `data:` value allows:
Expand Down
2 changes: 1 addition & 1 deletion docs/support/license-and-legal.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

category: support
meta-title: License and legal | CKEditor 5 Documentation
order: 20
order: 30
---

# License and legal
Expand Down
1 change: 1 addition & 0 deletions packages/ckeditor5-core/src/editor/editor.ts
Original file line number Diff line number Diff line change
Expand Up @@ -961,6 +961,7 @@ export default abstract class Editor extends /* #__PURE__ */ ObservableMixin() {
/**
* You have exceeded the editor operation limit available for your evaluation license key.
* Please restart the editor to continue using it.
* {@glink getting-started/licensing/license-key-and-activation#license-key-types Read more about license key types}.
*
* @error license-key-evaluation-limit
*/
Expand Down