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: 16/umbraco-forms/developer/configuration/README.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -239,7 +239,7 @@ If you want to ensure form creators always have to provide a caption, you can se
239
239
240
240
### UseViewEngineFormThemeResolver
241
241
242
-
Forms introduced an alternative `IFormThemeResolver`in 16.1 that uses the View Engine (`ICompositeViewEngine`) to resolve theme views, instead of relying on physical files to exist (and doing I/O lookups via the Partial Views file system abstraction). To take advantage of this new resolver, you can set the value of this setting to `true`.
242
+
Switches the `IFormThemeResolver`to use the View Engine (`ICompositeViewEngine`) to resolve theme views. This is done instead of relying on physical files to exist and doing I/O lookups via the `PartialViews`file system abstraction. To take advantage of this new resolver (available since 16.1), you can set the value of this setting to `true`.
Copy file name to clipboardExpand all lines: 16/umbraco-forms/installation/the-licensing-model.md
+19-16Lines changed: 19 additions & 16 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,7 +9,7 @@ Version 16 supports both the one-off purchase and (in 16.1+) 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`.
@@ -69,7 +69,7 @@ You can configure either the one-off purchase license file or when using version
69
69
70
70
Once you've configured your license with the correct domains, you are ready to install the license on your Umbraco installation.
71
71
72
-
1. Obtain the license from the sales team, they will send you a `.lic` file
72
+
1. Obtain the license (a `.lic` file) from the sales team
73
73
2. Place the file in the `/umbraco/Licenses` directory in your Umbraco installation
74
74
75
75
The `.lic` file must be placed in the `/umbraco/Licenses` directory to be registered by Umbraco Forms. If the file isn't placed correctly, the application will automatically switch to trial mode.
@@ -149,7 +149,7 @@ You can verify that your license is successfully installed by logging into your
149
149
150
150
If you are running on a single domain for both your frontend and backend environments, it's not necessary to configure a `UmbracoApplicationUrl`.
151
151
152
-
If you have different domains for your frontend and backend, then it's advised that you configure an `UmbracoApplicationUrl` set to your backoffice URL. This helps the licensing engine know which URL should be used for validation checks. Without this configuration setting, the licensing engine will try and work out the domain to validate from the HTTP request object. This can lead to errors when switching between domains.
152
+
If you have different domains for your frontend and backend, it's advised to configure an `UmbracoApplicationUrl` set to your backoffice URL. This helps the licensing engine know which domain should be used for validation checks. Without this configuration setting, the licensing engine will use the domain from the HTTP request object. This can lead to errors when switching between domains.
153
153
154
154
An `UmbracoApplicationUrl` can be configured in your `appSettings.json` file like so:
155
155
@@ -169,33 +169,36 @@ See the [Fixed Application URL](https://docs.umbraco.com/umbraco-cms/extending/h
169
169
170
170
#### Configuring `UmbracoApplicationUrl` on Umbraco Cloud
171
171
172
-
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.
172
+
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.
173
173
174
174
There are two options in this case:
175
+
175
176
- Either the domains for each of your Cloud environments can be added to your license.
176
-
- Or, for more control and to ensure this value is set correctly for other reasons, you can apply the configuration via code.
177
+
- 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.
185
+
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.
185
186
186
187
#### Validating a license without an outgoing Internet connection
187
188
188
-
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.
189
+
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.
190
+
191
+
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`.
189
192
190
-
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`.
193
+
The firewall rules should be adjusted to allow this request.
191
194
192
-
If it's possible to do so, the firewall rules should be adjusted to allow this request.
195
+
If such a change is not feasible, there is another approach, which is outlined below.
193
196
194
-
If such a change is not feasible, there is another approach you can use.
197
+
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.
195
198
196
-
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.
199
+
Then configure a random string as an authorization key in the configuration. This is used as protection to ensure only valid requests are handled.
197
200
198
-
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:
201
+
Alternatively, you can also disable the normal regular license checks, as there is no point in these running if they will be blocked:
199
202
200
203
```json
201
204
"Umbraco": {
@@ -208,7 +211,7 @@ Then configure a random string as an authorization key in configuration. This is
208
211
}
209
212
```
210
213
211
-
Your Internet-enabled server should make a request of the following form to the online license validation service:
214
+
Your Internet-enabled server requests the following form from the online license validation service:
212
215
213
216
```
214
217
POST https://license-validation.umbraco.com/api/ValidateLicense
@@ -219,12 +222,12 @@ POST https://license-validation.umbraco.com/api/ValidateLicense
219
222
}
220
223
```
221
224
222
-
The response should be relayed exactly via an HTTP request to your restricted Umbraco environment:
225
+
The response is relayed exactly via an HTTP request to your restricted Umbraco environment:
223
226
224
227
```
225
228
POST http://<your umbraco environment>/umbraco/licenses/validatedLicense/relay?productId=<product id>&licenseKey=<license key>
226
229
```
227
230
228
-
A header with a key of `X-AUTH-KEY` and the value of the authorization key you have configured should be provided.
231
+
A header with a key of `X-AUTH-KEY` and the value of the authorization key you have configured is provided.
229
232
230
-
This will trigger the same processes that occur when the normal scheduled validation completes ensuring your product is considered licensed.
233
+
This triggers the same processes that occur when the normal scheduled validation completes, ensuring your product is licensed.
0 commit comments