You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: 13/umbraco-forms/installation/the-licensing-model.md
+19-15Lines changed: 19 additions & 15 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,7 +9,7 @@ Version 13 supports both the one-off purchase and (in 13.6+) subscription licens
9
9
Licenses are sold per domain and will also work on all subdomains. With every license, you will be able to configure two development/testing domains.
10
10
11
11
{% hint style="info" %}
12
-
The licenses are not bound to a specific product version. They will work for all versions of the related product, but version 17+ will only be available through a subscriptionbased license (see [announcement](https://github.com/umbraco/Announcements/issues/25)).
12
+
The licenses are not bound to a specific product version. They will work for all versions of the related product, but version 17+ will only be available through a subscription-based license (see [announcement](https://github.com/umbraco/Announcements/issues/25)).
13
13
{% endhint %}
14
14
15
15
Let's say that you have a license configured for your domain, `mysite.com`, and you've configured two development domains, `devdomain.com` and `devdomain2.com`.
@@ -173,35 +173,39 @@ See the [Fixed Application URL](https://docs.umbraco.com/umbraco-cms/extending/h
173
173
174
174
#### Configuring `UmbracoApplicationUrl` on Umbraco Cloud
175
175
176
-
If you are hosting on Umbraco Cloud you will find the configuration described above won't be reflected in your environment. The reason for this is that Umbraco Cloud sets this value as an environment variable set to the Cloud project domain (`<your project>.umbraco.io`). This overrides what is set via the `appsettings.json` file.
176
+
If you are hosting on Umbraco Cloud, you can find that the configuration described above won't be reflected in your environment. The reason for this is that Umbraco Cloud sets this value as an environment variable set to the Cloud project domain (`<your project>.umbraco.io`). This overrides what is set via the `appsettings.json` file.
177
177
178
178
There are two options in this case:
179
+
179
180
- Either the domains for each of your Cloud environments can be added to your license.
180
-
- Or, for more control and to ensure this value is set correctly for other reasons, you can apply the configuration via code.
181
+
- Or, you can apply the configuration via code for more control and to ensure this value is set correctly for other reasons.
In practice, you will probably want to make this a bit more sophisticated. You can read the value from another configuration key, removing the need to hard-code it and have it set as appropriate in different environments. You can also move this code into a composer or an extension method if you prefer not to clutter up the `Program.cs` file.
189
+
In practice, make this more sophisticated. You can read the value from another configuration key, removing the need to hard-code it and have it set as appropriate in different environments. You can also move this code into a composer or an extension method if you prefer.
189
190
190
191
#### Validating a license without an outgoing Internet connection
191
192
192
-
Some Umbraco installations will have a highly locked down production environment, with firewall rules that prevent outgoing HTTP requests. This will interfere with the normal process of license validation.
193
+
Some Umbraco installations will have a highly locked-down production environment, with firewall rules that prevent outgoing HTTP requests. This will interfere with the normal process of license validation.
194
+
195
+
On start-up, and periodically whilst Umbraco is running, the license component will make an HTTP POST request to `https://license-validation.umbraco.com/api/ValidateLicense`.
193
196
194
-
On start-up, and periodically whilst Umbraco is running, the license component used by Umbraco Forms will make an HTTP POST request to `https://license-validation.umbraco.com/api/ValidateLicense`.
197
+
The firewall rules should be adjusted to allow this request.
195
198
196
-
If it's possible to do so, the firewall rules should be adjusted to allow this request.
199
+
If such a change is not feasible, there is another approach, which is outlined below.
197
200
198
-
If such a change is not feasible, there is another approach you can use.
201
+
You will need to have a server, or serverless function, that is running and can request the online license validation service. That needs to run on a daily schedule, making a request and relaying it to the restricted Umbraco environment.
199
202
200
-
You will need to have a server, or serverless function, that is running and can make a request to the online license validation service. That needs to run on a daily schedule, making a request and relaying it onto the restricted Umbraco environment.
203
+
To set this up, follow these steps:
201
204
202
-
To set this up, firstly ensure you have a reference to `Umbraco.Licenses` version 13.1 or higher. If the version of Forms you are using depends on an earlier version, you can add a direct package reference for `Umbraco.Licenses`.
205
+
1. Ensure you have a reference to `Umbraco.Licenses` version 13.1 or higher. If the version of Forms you are using depends on an earlier version, add a direct package reference for `Umbraco.Licenses`.
206
+
2. Configure a random string as an authorization key in the configuration. This is used as protection to ensure only valid requests are handled.
203
207
204
-
Then configure a random string as an authorization key in configuration. This is used as protection to ensure only valid requests are handled. You can also disable the normal regular license checks - as there is no point in these running if they will be blocked:
208
+
Alternatively, you can also disable the normal regular license checks, as there is no point in these running if they will be blocked:
205
209
206
210
```json
207
211
"Umbraco": {
@@ -214,7 +218,7 @@ Then configure a random string as an authorization key in configuration. This is
214
218
}
215
219
```
216
220
217
-
Your Internet-enabled server should make a request of the following form to the online license validation service:
221
+
Your Internet-enabled server requests the following form from the online license validation service:
218
222
219
223
```
220
224
POST https://license-validation.umbraco.com/api/ValidateLicense
@@ -225,12 +229,12 @@ POST https://license-validation.umbraco.com/api/ValidateLicense
225
229
}
226
230
```
227
231
228
-
The response should be relayed exactly via an HTTP request to your restricted Umbraco environment:
232
+
The response is relayed exactly via an HTTP request to your restricted Umbraco environment:
229
233
230
234
```
231
235
POST http://<your umbraco environment>/umbraco/licenses/validatedLicense/relay?productId=<product id>&licenseKey=<license key>
232
236
```
233
237
234
-
A header with a key of `X-AUTH-KEY` and the value of the authorization key you have configured should be provided.
238
+
A header with a key of `X-AUTH-KEY` and the value of the authorization key you have configured is provided.
235
239
236
-
This will trigger the same processes that occur when the normal scheduled validation completes ensuring your product is considered licensed.
240
+
This triggers the same processes that occur when the normal scheduled validation completes, ensuring your product is licensed.
0 commit comments