Skip to content

Commit c9cccef

Browse files
Apply suggestions to version 16
1 parent 463ec56 commit c9cccef

File tree

2 files changed

+20
-17
lines changed

2 files changed

+20
-17
lines changed

16/umbraco-forms/developer/configuration/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -239,7 +239,7 @@ If you want to ensure form creators always have to provide a caption, you can se
239239

240240
### UseViewEngineFormThemeResolver
241241

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`.
243243

244244
### Form default settings configuration
245245

16/umbraco-forms/installation/the-licensing-model.md

Lines changed: 19 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ Version 16 supports both the one-off purchase and (in 16.1+) subscription licens
99
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.
1010

1111
{% 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 subscription based 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)).
1313
{% endhint %}
1414

1515
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
6969

7070
Once you've configured your license with the correct domains, you are ready to install the license on your Umbraco installation.
7171

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
7373
2. Place the file in the `/umbraco/Licenses` directory in your Umbraco installation
7474

7575
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
149149

150150
If you are running on a single domain for both your frontend and backend environments, it's not necessary to configure a `UmbracoApplicationUrl`.
151151

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.
153153

154154
An `UmbracoApplicationUrl` can be configured in your `appSettings.json` file like so:
155155

@@ -169,33 +169,36 @@ See the [Fixed Application URL](https://docs.umbraco.com/umbraco-cms/extending/h
169169

170170
#### Configuring `UmbracoApplicationUrl` on Umbraco Cloud
171171

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.
173173

174174
There are two options in this case:
175+
175176
- 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.
177178

178179
For example, in your `Program.cs`:
179180

180181
```csharp
181182
services.Configure<WebRoutingSettings>(o => o.UmbracoApplicationUrl = "<your application URL>");
182183
```
183184

184-
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.
185186

186187
#### Validating a license without an outgoing Internet connection
187188

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`.
189192

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.
191194

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.
193196

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.
195198

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.
197200

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:
199202

200203
```json
201204
"Umbraco": {
@@ -208,7 +211,7 @@ Then configure a random string as an authorization key in configuration. This is
208211
}
209212
```
210213

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:
212215

213216
```
214217
POST https://license-validation.umbraco.com/api/ValidateLicense
@@ -219,12 +222,12 @@ POST https://license-validation.umbraco.com/api/ValidateLicense
219222
}
220223
```
221224

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:
223226

224227
```
225228
POST http://<your umbraco environment>/umbraco/licenses/validatedLicense/relay?productId=<product id>&licenseKey=<license key>
226229
```
227230

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.
229232

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

Comments
 (0)