Skip to content

Commit f1adf74

Browse files
kemister85ltroutontiny-ben-trantjdett
authored
DOC-3226: Update licensing information and examples for TinyMCE 8 (#3753)
* DOC-3226: Update licensing information and examples for TinyMCE 8, including T8LK: prefix requirements for self-hosted deployments across various integrations and documentation. * Enhance license key documentation for TinyMCE 8, clarifying T8LK prefix usage and client-side JWT validation across various integration references and examples. * DOC-3226: Update license key format across documentation and examples to include T8LK prefix for TinyMCE 8 compatibility and included release notes entry. * Update Blazor integration example to include T8LK prefix in LicenseKey for compliance with TinyMCE 8. * Update Blazor integration example to include T8LK prefix in LicenseKey for TinyMCE 8 compliance. * DOC-3226: Technical and readabilty adjustments * DOC-3226: Enhance license key documentation for TinyMCE 8, clarifying T8LK prefix requirements and updating integration references across various frameworks. * DOC-3226: Update license key documentation for TinyMCE 8, clarifying API key usage, T8LK prefix requirements, and adding common error messages with solutions. * Update modules/ROOT/pages/8.0-release-notes.adoc * Update modules/ROOT/partials/integrations/webcomponent-tech-ref.adoc * Update modules/ROOT/partials/integrations/webcomponent-quick-start.adoc Co-authored-by: tiny-ben-tran <[email protected]> * Update modules/ROOT/partials/integrations/webcomponent-tech-ref.adoc Co-authored-by: tiny-ben-tran <[email protected]> * Update modules/ROOT/partials/integrations/webcomponent-tech-ref.adoc Co-authored-by: tiny-ben-tran <[email protected]> * Update modules/ROOT/partials/integrations/webcomponent-tech-ref.adoc Co-authored-by: tiny-ben-tran <[email protected]> * DOC-3226: Change readonly to disabled. Add new messages. * Update modules/ROOT/partials/integrations/common/license-key-property.adoc * Update modules/ROOT/partials/integrations/vue-quick-start.adoc Co-authored-by: Tim Dettrick <[email protected]> * Update modules/ROOT/partials/integrations/vue-quick-start.adoc Co-authored-by: Tim Dettrick <[email protected]> * Update modules/ROOT/partials/integrations/blazor-postinstall.adoc * Update modules/ROOT/partials/integrations/blazor-tech-ref.adoc Co-authored-by: Tim Dettrick <[email protected]> * Update modules/ROOT/partials/integrations/react-bundling.adoc * Update modules/ROOT/partials/integrations/svelte-quick-start.adoc Co-authored-by: tiny-ben-tran <[email protected]> * Update modules/ROOT/partials/module-loading/bundling-vite-es6-npm_editor.adoc * Update modules/ROOT/partials/integrations/react-quick-start.adoc * Apply suggestions from code review * DOC-3147: Update key information for self-hosted for licensekeymanager addon. --------- Co-authored-by: ltrouton <[email protected]> Co-authored-by: tiny-ben-tran <[email protected]> Co-authored-by: Tim Dettrick <[email protected]>
1 parent 3afd211 commit f1adf74

19 files changed

+563
-100
lines changed

modules/ROOT/pages/8.0-release-notes.adoc

Lines changed: 61 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,10 @@ include::partial$misc/admon-releasenotes-for-stable.adoc[]
2626
* xref:deprecated[Deprecated]
2727
* xref:known-issues[Known issues]
2828

29-
[NOTE]
30-
For additional details on {productname} {release-version} breaking changes when considering upgrading, see xref:migration-from-7x.adoc[Migrating from {productname} 7 to {productname} {release-version}].
29+
[IMPORTANT]
30+
====
31+
This release includes breaking changes to the license key system. All commercial self-hosted deployments must update their license keys to use the new `T8LK:` prefix format. For details on this and other breaking changes when considering upgrading, see xref:migration-from-7x.adoc[Migrating from {productname} 7 to {productname} {release-version}].
32+
====
3133

3234
[[new-premium-plugin<s>]]
3335
New Premium plugin<s>
@@ -416,7 +418,62 @@ For comprehensive documentation and examples, see: xref:userlookup.adoc[User Loo
416418
[[changes]]
417419
== Changes
418420

419-
{productname} {release-version} also includes the following change<s>:
421+
{productname} {release-version} includes the following changes:
422+
423+
=== Enhanced license key system with T8LK prefix
424+
425+
The license key system in {productname} 8 has been enhanced to provide improved subscription access control and streamlined renewal processes. This change primarily affects self-hosted deployments, as cloud users ({cloudname}) do not require a license key.
426+
427+
[IMPORTANT]
428+
====
429+
* If you use {cloudname}, no license key is required - your cloud subscription automatically includes the commercial license.
430+
* For self-hosted deployments, all commercial license keys must use the new `T8LK:` prefix format.
431+
* Existing TinyMCE 7 license keys cannot be made compatible with TinyMCE 8 by adding the T8LK prefix.
432+
====
433+
434+
Key changes for self-hosted deployments:
435+
436+
* New `T8LK:` prefix requirement for all commercial license keys.
437+
* No server communication or "phone home" checks required
438+
* Support for both date-based and version-locked keys
439+
* Streamlined hybrid deployment configuration
440+
* Improved support for air-gapped and offline environments
441+
442+
[IMPORTANT]
443+
====
444+
*Cloud Deployments:*
445+
446+
* When using {cloudname}, only an API key is required - no license key needed
447+
* Your cloud subscription automatically includes the commercial license
448+
449+
*Self-hosted Deployments:*
450+
451+
* Commercial use: Contact your account manager or visit link:https://www.tiny.cloud/my-account[Tiny Cloud Account] to obtain a T8LK-prefixed license key
452+
* GPL use: Set `license_key: 'gpl'` (case insensitive)
453+
* Open source projects using premium features: Use the combined format `license_key: 'GPL+T8LK:...'`
454+
455+
*Required License Key Manager Setup for Self-hosted Commercial Deployments:*
456+
457+
For commercial license keys to function, the license key manager must be properly configured. **The editor will not work without this setup.**
458+
459+
* **Standalone hosting** (e.g., in a `/public` folder): The `+licensekeymanager+` folder is **required** to be located within the `+plugins+` folder alongside all other plugins.
460+
* **Bundled applications**: The `+licensekeymanager/index.js+` file is **required** to be imported, otherwise the editor will result in a disabled state.
461+
462+
.Example: Importing the License Key Manager in a bundled application
463+
[source,javascript]
464+
----
465+
import 'tinymce/plugins/licensekeymanager';
466+
----
467+
468+
====
469+
470+
=== Upgrading from TinyMCE 7
471+
472+
* *Cloud Users ({cloudname})*: No license key changes needed - simply update your {productname} version.
473+
* *Self-hosted Users*: Contact your account manager to obtain a new T8LK-prefixed license key.
474+
475+
For more information on the new license key system, see: xref:license-key.adoc[License Key].
476+
420477

421478
// === <TINY-vwxyz 1 changelog entry>
422479
// #TINY-vwxyz1
@@ -649,4 +706,4 @@ There <is one | are <number> known issue<s> in {productname} {release-version}.
649706
// #TINY-vwxyz1
650707

651708
// CCFR here.
652-
// **Status**: This issue is currently being investigated.
709+
// **Status**: This issue is currently being investigated.

modules/ROOT/pages/license-key.adoc

Lines changed: 320 additions & 13 deletions
Large diffs are not rendered by default.

modules/ROOT/pages/vite-es6-npm.adoc

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,18 @@ This guide requires the following:
1515

1616
* Node.js and npm.
1717
* Basic knowledge of how to use https://vitejs.dev[Vite].
18+
* For self-hosted deployments: A valid license key starting with `T8LK:` from your link:{accountpageurl}/[{accountpage}]
1819
* (Optional: For premium features) The latest premium .zip bundle of TinyMCE that includes premium plugins.
1920

21+
[IMPORTANT]
22+
====
23+
When self-hosting TinyMCE 8:
24+
25+
* A license key is required for commercial deployments
26+
* Keys must start with the `T8LK:` prefix
27+
* For hybrid deployments that need both cloud features and local fallback, you can use both `license_key` and `api_key`
28+
====
29+
2030
== Procedures
2131

2232
:is_zip_install: vite
@@ -72,4 +82,6 @@ npx vite preview
7282
----
7383
:!is_zip_install:
7484

85+
86+
7587
include::partial$module-loading/bundling-next-steps.adoc[]

modules/ROOT/partials/install/basic-quickstart-base.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ ifeval::["{productSource}" != "cloud"]
182182
<script>
183183
tinymce.init({
184184
selector: '#mytextarea',
185-
license_key: 'gpl|<your-license-key>'
185+
license_key: 'gpl' // gpl for open source, T8LK:... for commercial
186186
});
187187
</script>
188188
</head>

modules/ROOT/partials/integrations/angular-tech-ref.adoc

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -130,21 +130,18 @@ include::partial$misc/get-an-api-key.adoc[]
130130
[[licensekey]]
131131
=== `+licenseKey+`
132132

133-
{cloudname} License key.
133+
include::partial$integrations/common/license-key-property.adoc[]
134134

135-
Use this when self-hosting {productname} instead of loading from {cloudname}. For more information, see: xref:license-key.adoc[License Key].
136-
137-
*Type:* `+String+`
138-
139-
*Default value:* `+undefined+`
140-
141-
*Possible values:* `undefined`, `'gpl'` or a valid {productname} license key
142-
143-
==== Example: using `+licenseKey+`
135+
==== Example: Commercial license
136+
[source,html]
137+
----
138+
<editor licenseKey="T8LK:..." />
139+
----
144140

145-
[source,jsx]
141+
==== Example: using `+licenseKey+` with GPL
142+
[source,html]
146143
----
147-
<editor licenseKey='your-license-key' />
144+
<editor licenseKey="gpl" />
148145
----
149146

150147
[[cloudchannel]]

modules/ROOT/partials/integrations/blazor-postinstall.adoc

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
. Verify the installation by checking the `+ItemGroup+` references in the project file. For example, if the project is named _BlazorApp_, the relevant file would be `+BlazorApp.csproj+` with the dependency referenced as follows:
1+
. Verify the installation by checking the `+ItemGroup+` references in the project file. For example, if the project is named _BlazorApp_, the relevant file would be `+BlazorApp.csproj+` with the dependency referenced as follows:
22
+
33
[source,xml]
44
----
@@ -16,9 +16,9 @@
1616
+
1717
[NOTE]
1818
====
19-
The location of the script depends on the type of Blazor app, including Blazor Server and Blazor WebAssembly (WASM) which are not covered in this guide.
19+
The location of the script depends on the type of Blazor app, including Blazor Server and Blazor WebAssembly (WASM) which are not covered in this guide.
2020
21-
* If using Blazor Server, add the script in `+Pages/_Host.cshtml+`, for example:
21+
* If using Blazor Server, add the script in `+Pages/_Host.cshtml+`, for example:
2222
+
2323
[source,html]
2424
----
@@ -35,16 +35,16 @@ The location of the script depends on the type of Blazor app, including Blazor S
3535
====
3636
+
3737
38-
. Add the `+Editor+` component to a page by either:
39-
* Using the `+using+` directive:
38+
. Add the `+Editor+` component to a page by either:
39+
* Using the `+using+` directive:
4040
+
4141
[source,cs]
4242
----
4343
@using TinyMCE.Blazor
4444
<Editor />
4545
----
4646
+
47-
For example:
47+
For example:
4848
+
4949
_File:_ `+Pages/Index.razor+`
5050
+
@@ -58,7 +58,7 @@ _File:_ `+Pages/Index.razor+`
5858
<h2>Welcome to your new app.</h2>
5959
<Editor />
6060
----
61-
* Using the component with its namespace:
61+
* Using the component with its namespace:
6262
+
6363
[source,cs]
6464
----
@@ -78,10 +78,10 @@ _File:_ `+Pages/Index.razor+`
7878
<h1>Hello, world!</h1>
7979
<h2>Welcome to your new app.</h2>
8080
<Editor />
81-
----
81+
----
8282
+
8383
[IMPORTANT]
84-
In a Blazor Web App, different render modes determine how components are rendered and how interactivity is handled. To enable JavaScript interactivity, ensure that `+@rendermode InteractiveServer+` is specified in a page component.
84+
In a Blazor Web App, different render modes determine how components are rendered and how interactivity is handled. To enable JavaScript interactivity, ensure that `+@rendermode InteractiveServer+` is specified in a page component.
8585
+
8686

8787
ifeval::["{productSource}" == "cloud"]
@@ -91,7 +91,7 @@ ifeval::["{productSource}" == "cloud"]
9191
[source,cs]
9292
----
9393
<Editor ApiKey="no-api-key" />
94-
----
94+
----
9595
+
9696
endif::[]
9797

@@ -101,8 +101,8 @@ ifeval::["{productSource}" != "cloud"]
101101
+
102102
[source,cs]
103103
----
104-
<Editor LicenseKey="your-license-key" />
105-
----
104+
<Editor LicenseKey="gpl" />
105+
----
106106
+
107107
108108
. To load {productname} from the self-hosted package instead of the {cloudname}, configure the `+ScriptSrc+` property:

modules/ROOT/partials/integrations/blazor-tech-ref.adoc

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ The `+TinyMCE.Blazor+` `+Editor+` component accepts the following properties:
1919
JsConfSrc="path_to_jsObj"
2020
Conf="@yourConf"
2121
ApiKey="no-api-key"
22-
LicenseKey="your-license-key"
22+
LicenseKey="gpl"
2323
ScriptSrc="/path/to/tinymce.min.js"
2424
ClassName="tinymce-wrapper"
2525
/>
@@ -188,19 +188,29 @@ In your component:
188188

189189
=== `LicenseKey`
190190

191-
Specifies the {productname} license key. Required for self-hosted deployments of {productname}. This property is not required for deployments using the {cloudname}. For more information on licensing, see: xref:license-key.adoc[License key].
192191

193-
*Type:* `+String+`
192+
include::partial$integrations/common/license-key-property.adoc[]
193+
194+
==== Example: Commercial license (TinyMCE 8+)
195+
[source,cs]
196+
----
197+
<Editor
198+
LicenseKey="T8LK:..."
199+
/>
200+
----
194201

195-
==== Example using LicenseKey
202+
Use this example when you have a commercial license for TinyMCE 8 or newer. The T8LK prefix is required.
196203

204+
==== Example: Open source GPL license
197205
[source,cs]
198206
----
199207
<Editor
200-
LicenseKey="your-license-key"
208+
LicenseKey="gpl"
201209
/>
202210
----
203211

212+
Use this example when you're using TinyMCE under the open source GPL license in a self-hosted environment.
213+
204214
=== `ScriptSrc`
205215

206216
Use the `+ScriptSrc+` property to specify the location of {productname} to lazy load when the application is not using {cloudname}. This setting is required if the application uses a self-hosted version of {productname}, such as the https://www.nuget.org/packages/TinyMCE/[{productname} NuGet package] or a .zip package of {productname}.
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
Specifies the {productname} license key. Required for self-hosted deployments of {productname}. This property is **not required** for cloud-only deployments using the {cloudname} as your cloud subscription automatically includes the commercial license. For more information, see: xref:license-key.adoc[License Key].
2+
3+
*Type:* `+String+`
4+
5+
*Default value:* `+undefined+`
6+
7+
*Possible values:*
8+
* `undefined` - Use this when loading from {cloudname} with an API key
9+
* `'gpl'` - For open source projects using GPL license
10+
* `'T8LK:...'` - For commercial {productname} installations (must use this prefix for version 8+)
11+
* `'GPL+T8LK:'` - For open source projects that require premium features while maintaining GPL compliance.
12+
13+
[NOTE]
14+
====
15+
In hybrid deployments (using both cloud and self-hosted features):
16+
17+
* You can provide both an API key and a license key
18+
* The editor will use cloud services when available
19+
* It will automatically fall back to the local license key if cloud services are not contactable
20+
====

modules/ROOT/partials/integrations/jquery-quick-start.adoc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ ifeval::["{productSource}" == "package-manager"]
119119
<script>
120120
$('textarea#tiny').tinymce({
121121
height: 500,
122-
license_key: '<your license key>',
122+
license_key: 'gpl'
123123
/* other settings... */,
124124
});
125125
</script>
@@ -149,7 +149,7 @@ ifeval::["{productSource}" == "package-manager"]
149149
<script>
150150
$('textarea#tiny').tinymce({
151151
height: 500,
152-
license_key: '<your-license-key>',
152+
license_key: 'gpl'
153153
menubar: false,
154154
plugins: [
155155
'advlist', 'autolink', 'lists', 'link', 'image', 'charmap', 'preview',
@@ -219,4 +219,4 @@ $(document).on('focusin', function(e) {
219219
});
220220
----
221221

222-
This code is required because jQuery blocks all `focusin` calls from elements outside the dialog. For a working example, http://fiddle.tiny.cloud/ZZhaab/4[try this {productname} fiddle].
222+
This code is required because jQuery blocks all `focusin` calls from elements outside the dialog. For a working example, http://fiddle.tiny.cloud/ZZhaab/4[try this {productname} fiddle].

modules/ROOT/partials/integrations/react-bundling.adoc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,9 @@ import 'tinymce/skins/ui/oxide/content.js';
4141
export default function TinyEditorComponent(props) {
4242
return (
4343
<Editor
44-
licenseKey='your-license-key'
44+
licenseKey='gpl'
4545
{...props}
4646
/>
4747
);
4848
}
49-
----
49+
----

0 commit comments

Comments
 (0)