diff --git a/10/umbraco-commerce/installation/licensing-model.md b/10/umbraco-commerce/installation/licensing-model.md index dea4a4e3f10..97988b72468 100644 --- a/10/umbraco-commerce/installation/licensing-model.md +++ b/10/umbraco-commerce/installation/licensing-model.md @@ -43,7 +43,7 @@ If you have multiple backoffice domains pointing at the same installation, you h This is an add-on domain for existing licenses. Refunds will not be given for this product. {% endhint %} -## Configuring your license +## Purchasing your license You can look at the pricing, features, and purchase a license on the [Umbraco Commerce](https://umbraco.com/products/add-ons/commerce/) page. A member of the sales team will manage this process. You will need to provide all domains you wish to have covered by the license such as primary and development/staging/QA domains. You should then receive a license code to be installed in your solution. @@ -51,119 +51,10 @@ You can look at the pricing, features, and purchase a license on the [Umbraco Co If you require to add addition domains to the license, [reach out the sales team](https://umbraco.com/products/add-ons/commerce/) with your request and they will manage this process. -## Installing your license - -Once you have received your license code it needs to be installed on your site. - -1. Open the root directory for your project files. -2. Locate and open the `appSettings.json` file. -3. Add your Umbraco Commerce license key to `Umbraco:Licenses:Umbraco.Commerce`: - -```json -"Umbraco": { - "Licenses": { - "Umbraco.Commerce": "YOUR_LICENSE_KEY" - } -} -``` - -{% hint style="info" %} -You might run into issues when using a period in the product name when using environment variables. Use an underscore in the product name instead, to avoid problems. - -```json -"Umbraco_Commerce": "YOUR_LICENSE_KEY" -``` -{% endhint %} - -### Verify the license installation - -You can verify that your license is successfully installed by logging into your project's backoffice and navigating to the settings section. Here you will see a licenses dashboard which should display the status of your license. - -![Umbraco Commerce License Dashboard](../media/license-dashboard.png) - -### When and how to configure an `UmbracoApplicationUrl` - -If you are running on a single domain for both your frontend and backend environments, it's not necessary to configure a `UmbracoApplicationUrl`. - -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. - - -An `UmbracoApplicationUrl` can be configured in your `appSettings.json` file like so: - -```json -{ - "Umbraco": { - "CMS": { - "WebRouting": { - "UmbracoApplicationUrl": "https://admin.my-custom-domain.com/" - } - } - } -} -``` - -See the [Fixed Application URL](https://docs.umbraco.com/umbraco-cms/extending/health-check/guides/fixedapplicationurl) documentation for more details about this setting. - -#### Configuring `UmbracoApplicationUrl` on Umbraco Cloud - -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 (`.umbraco.io`). This overrides what is set via the `appSettings.json` file. - -There are two options in this case: -- Either the domains for each of your Cloud environments can be added to your license. -- Or, for more control and to ensure this value is set correctly for other reasons, you can apply the configuration via code. - -For example, in your `Startup.cs` file, you can add the following to the `ConfigureServices` method: - -```csharp -services.Configure(o => o.UmbracoApplicationUrl = ""); -``` - -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 `Startup.ConfigureServices` method. - -### Validating a license without an outgoing Internet connection - -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. - -On start-up, and periodically whilst Umbraco is running, the license component used by Umbraco Commerce will make an HTTP POST request to `https://license-validation.umbraco.com/api/ValidateLicense`. - -If it's possible to do so, the firewall rules should be adjusted to allow this request. - -If such a change is not feasible, there is another approach you can use. - -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. - -To set this up, firstly ensure you have a reference to `Umbraco.Licenses` version 10.1 or higher. If the version of Commerce you are using depends on an earlier version, you can add a direct package reference for `Umbraco.Licenses`. - -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: - -```json - "Umbraco": { - "Licenses": { - "Umbraco.Commerce": "" - }, - "LicensesOptions": { - "EnableScheduledValidation": false, - "ValidatedLicenseRelayAuthKey": "" - } -``` - -Your Internet enabled server should make a request of the following form to the online license validation service: - -``` -POST https://license-validation.umbraco.com/api/ValidateLicense -{ - "ProductId": "Umbraco.Commerce", - "LicenseKey": "", - "Domain": "" -} -``` - -The response should be relayed exactly via an HTTP request to your restricted Umbraco environment: +## Configuring your license -``` -POST http:///umbraco/licenses/validatedLicense/relay?productId=&licenseKey= -``` +Once you've purchased your license with the correct domains, you are ready to configure the license key on your Umbraco installation. -A header with a key of `X-AUTH-KEY` and value of the authorization key you have configured should be provided. +The license key should be added to your configuration using product ID: `Umbraco.Commerce`. -This will trigger the same processes that occur when the normal scheduled validation completes ensuring your product is considered licensed. +For detailed instructions on how to install and configure your license, including version-specific examples and additional configuration options, see the [Configure Licenses](https://docs.umbraco.com/umbraco-dxp/commercial-products/configure-licenses) article. diff --git a/10/umbraco-ui-builder/installation/licensing-model.md b/10/umbraco-ui-builder/installation/licensing-model.md index e6354300144..8d048b39155 100644 --- a/10/umbraco-ui-builder/installation/licensing-model.md +++ b/10/umbraco-ui-builder/installation/licensing-model.md @@ -43,7 +43,7 @@ If you have multiple backoffice domains pointing at the same installation, you c This is an add-on domain for existing licenses. Refunds will not be given for this product. {% endhint %} -## Configuring your license +## Purchasing your license You can look at the pricing, features, and purchase a license on the [Umbraco UI Builder](https://umbraco.com/products/add-ons/ui-builder/) page. On this page, you can fill out the form with your project details and requirements. A member of the Sales team will manage this process. In the process, you will need to provide all domains you wish to have covered by the license such as primary and staging/QA domains. You should then receive a license code to be installed in your solution. @@ -51,78 +51,10 @@ You can look at the pricing, features, and purchase a license on the [Umbraco UI If you require to add additional domains to the license, [reach out to the sales team](https://umbraco.com/products/add-ons/ui-builder/). They will manage your request and take care of the process. -## Installing your license - -Once you have received your license code it needs to be installed on your site. - -1. Open the root directory for your project files. -2. Locate and open the `appSettings.json` file. -3. Add your Umbraco Commerce license key to `Umbraco:Licenses:Umbraco.UIBuilder`: - -```json -"Umbraco": { - "Licenses": { - "Umbraco.UIBuilder": "YOUR_LICENSE_KEY" - } -} -``` - -{% hint style="info" %} -You might run into issues when using a period in the product name when using environment variables. Use an underscore in the product name instead, to avoid problems. - -```json -"Umbraco_UIBuilder": "YOUR_LICENSE_KEY" -``` -{% endhint %} - -### Verify the license installation - -You can verify that your license is successfully installed by logging into your project's backoffice and navigating to the settings section. Here you will see a license dashboard which should display the status of your license. - -### Validating a license without an outgoing Internet connection - -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. - -On start-up, and periodically whilst Umbraco is running, the license component used by Umbraco UIBuilder will make an HTTP POST request to `https://license-validation.umbraco.com/api/ValidateLicense`. - -If it's possible to do so, the firewall rules should be adjusted to allow this request. - -If such a change is not feasible, there is another approach you can use. - -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. - -To set this up, firstly ensure you have a reference to `Umbraco.Licenses` version 10.1 or higher. If the version of UIBuilder you are using depends on an earlier version, you can add a direct package reference for `Umbraco.Licenses`. - -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: - -```json - "Umbraco": { - "Licenses": { - "Umbraco.UIBulder": "" - }, - "LicensesOptions": { - "EnableScheduledValidation": false, - "ValidatedLicenseRelayAuthKey": "" - } -``` - -Your Internet enabled server should make a request of the following form to the online license validation service: - -``` -POST https://license-validation.umbraco.com/api/ValidateLicense -{ - "ProductId": "Umbraco.UIBulder", - "LicenseKey": "", - "Domain": "" -} -``` - -The response should be relayed exactly via an HTTP request to your restricted Umbraco environment: +## Configuring your license -``` -POST http:///umbraco/licenses/validatedLicense/relay?productId=&licenseKey= -``` +Once you've purchased your license with the correct domains, you are ready to configure the license key on your Umbraco installation. -A header with a key of `X-AUTH-KEY` and value of the authorization key you have configured should be provided. +The license key should be added to your configuration using product ID: `Umbraco.UIBuilder`. -This will trigger the same processes that occur when the normal scheduled validation completes ensuring your product is considered licensed. +For detailed instructions on how to install and configure your license, including version-specific examples and additional configuration options, see the [Configure Licenses](https://docs.umbraco.com/umbraco-dxp/commercial-products/configure-licenses) article. diff --git a/10/umbraco-workflow/installation/licensing.md b/10/umbraco-workflow/installation/licensing.md index 7a352c4964e..01908b1b9fc 100644 --- a/10/umbraco-workflow/installation/licensing.md +++ b/10/umbraco-workflow/installation/licensing.md @@ -24,73 +24,13 @@ In the free version, the following features are disabled: In the free version, a maximum of five approval groups can be created. -## Installing your license +## Configuring your license -Once you have received your license code it needs to be installed on your site. +Once you've purchased your license, you are ready to configure the license key on your Umbraco installation. -1. Open the root directory for your project files. -2. Locate and open the `appSettings.json` file. -3. Add your Umbraco Workflow license key to `Umbraco:Licenses:Umbraco.Workflow`: +The license key should be added to your configuration using product ID: `Umbraco.Workflow`. -```json -"Umbraco": { - "Licenses": { - "Umbraco.Workflow": "YOUR_LICENSE_KEY" - } -} -``` - -{% hint style="info" %} -You might run into issues when using a period in the product name when using environment variables. Use an underscore in the product name instead, to avoid problems. - -```json -"Umbraco_Workflow": "YOUR_LICENSE_KEY" -``` -{% endhint %} - -### Verify the license installation - -You can verify that your license is successfully installed by logging into your project's backoffice and navigating to the settings section. Here you will see a licenses dashboard which should display the status of your license. - -### When and how to configure an `UmbracoApplicationUrl` - -The website domain used for validating the license is determined from your Umbraco instance. To ensure the correct one is used, you can configure the `UmbracoApplicationUrl`. - -If you are running on a single domain for both your frontend and backend environments, it's not necessary to configure a `UmbracoApplicationUrl`. - -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. - -An `UmbracoApplicationUrl` can be configured in your `appSettings.json` file like so: - -```json -{ - "Umbraco": { - "CMS": { - "WebRouting": { - "UmbracoApplicationUrl": "https://admin.my-custom-domain.com/" - } - } - } -} -``` - -See the [Fixed Application URL](https://docs.umbraco.com/umbraco-cms/extending/health-check/guides/fixedapplicationurl) documentation for more details about this setting. - -#### Configuring `UmbracoApplicationUrl` on Umbraco Cloud - -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 (`.umbraco.io`). This overrides what is set via the `appSettings.json` file. - -There are two options in this case: -- Either the domains for each of your Cloud environments can be added to your license. -- Or, for more control and to ensure this value is set correctly for other reasons, you can apply the configuration via code. - -For example, in your `Startup.cs` file, you can add the following to the `ConfigureServices` method: - -```csharp -services.Configure(o => o.UmbracoApplicationUrl = ""); -``` - -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 `Startup.ConfigureServices` method. +For detailed instructions on how to install and configure your license, including version-specific examples and additional configuration options, see the [Configure Licenses](https://docs.umbraco.com/umbraco-dxp/commercial-products/configure-licenses) article. ### Using a Trial License @@ -111,51 +51,3 @@ To impersonate the full license on a local site, set `EnableTestLicense` to `tru {% hint style="info" %} The test license is restricted to sites running in a development environment with a debugger attached. Hit F5 in Visual Studio, in Debug mode to enable the test license. {% endhint %} - -### Validating a license without an outgoing Internet connection - -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. - -On start-up, and periodically whilst Umbraco is running, the license component used by Umbraco Workflow will make an HTTP POST request to `https://license-validation.umbraco.com/api/ValidateLicense`. - -If it's possible to do so, the firewall rules should be adjusted to allow this request. - -If such a change is not feasible, there is another approach you can use. - -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. - -To set this up, firstly ensure you have a reference to `Umbraco.Licenses` version 10.1 or higher. If the version of Workflow you are using depends on an earlier version, you can add a direct package reference for `Umbraco.Licenses`. - -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: - -```json - "Umbraco": { - "Licenses": { - "Umbraco.Workflow": "" - }, - "LicensesOptions": { - "EnableScheduledValidation": false, - "ValidatedLicenseRelayAuthKey": "" - } -``` - -Your Internet enabled server should make a request of the following form to the online license validation service: - -``` -POST https://license-validation.umbraco.com/api/ValidateLicense -{ - "ProductId": "Umbraco.Workflow", - "LicenseKey": "", - "Domain": "" -} -``` - -The response should be relayed exactly via an HTTP request to your restricted Umbraco environment: - -``` -POST http:///umbraco/licenses/validatedLicense/relay?productId=&licenseKey= -``` - -A header with a key of `X-AUTH-KEY` and value of the authorization key you have configured should be provided. - -This will trigger the same processes that occur when the normal scheduled validation completes ensuring your product is considered licensed. diff --git a/13/umbraco-commerce/installation/the-licensing-model.md b/13/umbraco-commerce/installation/the-licensing-model.md index f1b08d70ba8..793f4da31e3 100644 --- a/13/umbraco-commerce/installation/the-licensing-model.md +++ b/13/umbraco-commerce/installation/the-licensing-model.md @@ -43,7 +43,7 @@ If you have multiple backoffice domains pointing at the same installation, you h This is an add-on domain for existing licenses. Refunds will not be given for this product. {% endhint %} -## Configuring your license +## Purchasing your license You can look at the pricing, features, and purchase a license on the [Umbraco Commerce](https://umbraco.com/products/add-ons/commerce/) page. A member of the sales team will manage this process. You will need to provide all domains you wish to have covered by the license such as primary and development/staging/QA domains. You should then receive a license code to be installed in your solution. @@ -51,119 +51,10 @@ You can look at the pricing, features, and purchase a license on the [Umbraco Co If you require to add addition domains to the license, [reach out the sales team](https://umbraco.com/products/add-ons/commerce/) with your request and they will manage this process. -## Installing your license - -Once you have received your license code it needs to be installed on your site. - -1. Open the root directory for your project files. -2. Locate and open the `appSettings.json` file. -3. Add your Umbraco Commerce license key to `Umbraco:Licenses:Umbraco.Commerce`: - -```json -"Umbraco": { - "Licenses": { - "Umbraco.Commerce": "YOUR_LICENSE_KEY" - } -} -``` - -{% hint style="info" %} -You might run into issues when using a period in the product name when using environment variables. Use an underscore in the product name instead, to avoid problems. - -```json -"Umbraco_Commerce": "YOUR_LICENSE_KEY" -``` -{% endhint %} - -### Verify the license installation - -You can verify that your license is successfully installed by logging into your project's backoffice and navigating to the settings section. Here you will see a license dashboard which should display the status of your license. - -![Umbraco Commerce License Dashboard](../media/license-dashboard.png) - -### When and how to configure an `UmbracoApplicationUrl` - -If you are running on a single domain for both your frontend and backend environments, it's not necessary to configure a `UmbracoApplicationUrl`. - -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. - - -An `UmbracoApplicationUrl` can be configured in your `appSettings.json` file like so: - -```json -{ - "Umbraco": { - "CMS": { - "WebRouting": { - "UmbracoApplicationUrl": "https://admin.my-custom-domain.com/" - } - } - } -} -``` - -See the [Fixed Application URL](https://docs.umbraco.com/umbraco-cms/extending/health-check/guides/fixedapplicationurl) documentation for more details about this setting. - -#### Configuring `UmbracoApplicationUrl` on Umbraco Cloud - -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 (`.umbraco.io`). This overrides what is set via the `appSettings.json` file. - -There are two options in this case: -- Either the domains for each of your Cloud environments can be added to your license. -- Or, for more control and to ensure this value is set correctly for other reasons, you can apply the configuration via code. - -For example, in your `Program.cs`: - -```csharp -services.Configure(o => o.UmbracoApplicationUrl = ""); -``` - -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. - -### Validating a license without an outgoing Internet connection - -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. - -On start-up, and periodically whilst Umbraco is running, the license component used by Umbraco Commerce will make an HTTP POST request to `https://license-validation.umbraco.com/api/ValidateLicense`. - -If it's possible to do so, the firewall rules should be adjusted to allow this request. - -If such a change is not feasible, there is another approach you can use. - -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. - -To set this up, firstly ensure you have a reference to `Umbraco.Licenses` version 13.1 or higher. If the version of Commerce you are using depends on an earlier version, you can add a direct package reference for `Umbraco.Licenses`. - -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: - -```json - "Umbraco": { - "Licenses": { - "Umbraco.Commerce": "" - }, - "LicensesOptions": { - "EnableScheduledValidation": false, - "ValidatedLicenseRelayAuthKey": "" - } -``` - -Your Internet-enabled server should make a request of the following form to the online license validation service: - -``` -POST https://license-validation.umbraco.com/api/ValidateLicense -{ - "ProductId": "Umbraco.Commerce", - "LicenseKey": "", - "Domain": "" -} -``` - -The response should be relayed exactly via an HTTP request to your restricted Umbraco environment: +## Configuring your license -``` -POST http:///umbraco/licenses/validatedLicense/relay?productId=&licenseKey= -``` +Once you've purchased your license with the correct domains, you are ready to configure the license key on your Umbraco installation. -A header with a key of `X-AUTH-KEY` and the value of the authorization key you have configured should be provided. +The license key should be added to your configuration using product ID: `Umbraco.Commerce`. -This will trigger the same processes that occur when the normal scheduled validation completes ensuring your product is considered licensed. +For detailed instructions on how to install and configure your license, including version-specific examples and additional configuration options, see the [Configure Licenses](https://docs.umbraco.com/umbraco-dxp/commercial-products/configure-licenses) article. diff --git a/13/umbraco-deploy/installation/the-licensing-model.md b/13/umbraco-deploy/installation/the-licensing-model.md index 33bcdf31174..e1a1d176a7f 100644 --- a/13/umbraco-deploy/installation/the-licensing-model.md +++ b/13/umbraco-deploy/installation/the-licensing-model.md @@ -46,113 +46,10 @@ The license for Umbraco Deploy comes with a recurring yearly fee. Learn more abo You can look at the pricing, plans, features, and purchase the license on the [Umbraco Deploy On-premises](https://umbraco.com/products/add-ons/deploy/umbraco-deploy-on-premises/) page. -## Installing your license +## Configuring your license -Once you've configured your license with the correct domains, you are ready to install the license on your Umbraco installation. +Once you've purchased your license with the correct domains, you are ready to configure the license key on your Umbraco installation. -For Umbraco Deploy On-Premise 12 and above, this will be a key provided to you when taking out your subscription to the product. It should be added to your configuration at the key `Umbraco:Licenses:Umbraco.Deploy.OnPrem`. +The license key should be added to your configuration using product ID: `Umbraco.Deploy.OnPrem`. -For example, in `appsettings.json`: - -```json - "Umbraco": { - "CMS": { - ... - }, - "Licenses": { - "Umbraco.Deploy.OnPrem": "" - }, - "Deploy": { - ... - } -``` - -{% hint style="info" %} -You might run into issues when using a period in the product name when using environment variables. Use an underscore in the product name instead, to avoid problems. - -```json -"Umbraco_Deploy_OnPrem": "YOUR_LICENSE_KEY" -``` -{% endhint %} - -Umbraco Cloud projects use a license file placed in the `/umbraco/Licenses` folder that is provided automatically when your project is created. - -## Validating the license - -On start-up and on a schedule, Umbraco running Deploy On-premise will call out to a service. It will pass the configured license key to determine its validity. The response triggers a notification that the Umbraco Deploy will handle. It will amend the available functionality as appropriate to a valid, invalid or expired license. - -You can view the status of the Umbraco Deploy On-premise license in the backoffice. This is available via the _Settings_ section, listed along with any other products using the same licensing service. - -![Licenses screen in Umbraco backoffice](../images/licenses-screen.png) - -### When and how to configure an `UmbracoApplicationUrl` - -The website domain used for validating the license is determined from your Umbraco instance. To ensure the correct one is used, you can configure the `UmbracoApplicationUrl`. - -If you are running on a single domain for both your frontend and backend environments, it's not necessary to configure a `UmbracoApplicationUrl`. - -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. - -An `UmbracoApplicationUrl` can be configured in your `appSettings.json` file like so: - -```json -{ - "Umbraco": { - "CMS": { - "WebRouting": { - "UmbracoApplicationUrl": "https://admin.my-custom-domain.com/" - } - } - } -} -``` - -See the [Fixed Application URL](https://docs.umbraco.com/umbraco-cms/extending/health-check/guides/fixedapplicationurl) documentation for more details about this setting. - -### Validating a license without an outgoing Internet connection - -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. - -On start-up, and periodically whilst Umbraco is running, the license component used by Umbraco Deploy will make an HTTP POST request to `https://license-validation.umbraco.com/api/ValidateLicense`. - -If it's possible to do so, the firewall rules should be adjusted to allow this request. - -If such a change is not feasible, there is another approach you can use. - -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. - -To set this up, firstly ensure you have a reference to `Umbraco.Licenses` version 13.1 or higher. This will be the case if you are running Umbraco Deploy 13.1 or higher. If you are on an earlier version, you can add a direct package reference for `Umbraco.Licenses`. - -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: - -```json - "Umbraco": { - "Licenses": { - "Umbraco.Deploy.OnPrem": "" - }, - "LicensesOptions": { - "EnableScheduledValidation": false, - "ValidatedLicenseRelayAuthKey": "" - } -``` - -Your Internet enabled server should make a request of the following form to the online license validation service: - -``` -POST https://license-validation.umbraco.com/api/ValidateLicense -{ - "ProductId": "Umbraco.Deploy.OnPrem", - "LicenseKey": "", - "Domain": "" -} -``` - -The response should be relayed exactly via an HTTP request to your restricted Umbraco environment: - -``` -POST http:///umbraco/licenses/validatedLicense/relay?productId=&licenseKey= -``` - -A header with a key of `X-AUTH-KEY` and value of the authorization key you have configured should be provided. - -This will trigger the same processes that occur when the normal scheduled validation completes ensuring your product is considered licensed. +For detailed instructions on how to install and configure your license, including version-specific examples and additional configuration options, see the [Configure Licenses](https://docs.umbraco.com/umbraco-dxp/commercial-products/configure-licenses) article. diff --git a/13/umbraco-engage/installation/licensing.md b/13/umbraco-engage/installation/licensing.md index 9f5f0220c36..68defbc5348 100644 --- a/13/umbraco-engage/installation/licensing.md +++ b/13/umbraco-engage/installation/licensing.md @@ -49,7 +49,7 @@ If multiple backoffice domains share the same installation, you have to purchase This is an add-on domain for existing licenses. Refunds will not be given for this product. {% endhint %} -## Configuring your license +## Purchasing your license You can look at the pricing, features, and purchase a license on the [Umbraco Engage](https://umbraco.com/products/add-ons/engage/) page. A member of the sales team will manage this process. You will need to provide all domains you wish to have covered by the license such as primary and development/staging/QA domains. You should then receive a license code to be installed in your solution. @@ -57,55 +57,10 @@ You can look at the pricing, features, and purchase a license on the [Umbraco En To add additional domains to your license, [reach out to the sales team](https://umbraco.com/products/add-ons/engage/) with your request and they will manage this process. -## Installing your license - -Once you have received your license code it needs to be installed on your site. - -1. Open the root directory for your project files. -2. Locate and open the `appSettings.json` file. -3. Add your Umbraco Engage license key to `Umbraco:Licenses:Umbraco.Engage`: - -```json -"Umbraco": { - "Licenses": { - "Umbraco.Engage": "YOUR_LICENSE_KEY" - } -} -``` - -{% hint style="info" %} -You might run into issues when using a period in the product name when using environment variables. Use an underscore in the product name instead, to avoid problems. - -```json -"Umbraco_Engage": "YOUR_LICENSE_KEY" -``` -{% endhint %} - - -### Verify the license installation - -You can verify that your license is successfully installed by logging into your project's backoffice and navigating to the settings section. Here you will see a license dashboard which should display the status of your license. - -![Umbraco Engage License Dashboard](../.gitbook/assets/engage-license-installed.png) - -### When and how to configure an `UmbracoApplicationUrl` - -If you are running on a single domain for both your frontend and backend environments, it's not necessary to configure a `UmbracoApplicationUrl`. - -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. +## Configuring your license -An `UmbracoApplicationUrl` can be configured in your `appSettings.json` file like so: +Once you've purchased your license with the correct domains, you are ready to configure the license key on your Umbraco installation. -```json -{ - "Umbraco": { - "CMS": { - "WebRouting": { - "UmbracoApplicationUrl": "https://admin.my-custom-domain.com/" - } - } - } -} -``` +The license key should be added to your configuration using product ID: `Umbraco.Engage`. -See the [Fixed Application URL](https://docs.umbraco.com/umbraco-cms/extending/health-check/guides/fixedapplicationurl) documentation for more details about this setting. +For detailed instructions on how to install and configure your license, including version-specific examples and additional configuration options, see the [Configure Licenses](https://docs.umbraco.com/umbraco-dxp/commercial-products/configure-licenses) article. diff --git a/13/umbraco-forms/installation/the-licensing-model.md b/13/umbraco-forms/installation/the-licensing-model.md index 37ec26cc1ba..6f1d0a06e7e 100644 --- a/13/umbraco-forms/installation/the-licensing-model.md +++ b/13/umbraco-forms/installation/the-licensing-model.md @@ -123,118 +123,8 @@ Apply the following configuration with the appropriate algorithm - `DES` (the de ### Installing subscription license product key -Once you have received your license code it needs to be installed on your site. +Once you've purchased your subscription license with the correct domains, you are ready to configure the license key on your Umbraco installation. -1. Open the root directory for your project files. -2. Locate and open the `appsettings.json` file. -3. Add your Umbraco Forms license key to `Umbraco:Licenses:Umbraco.Forms`: +The license key should be added to your configuration using product ID: `Umbraco.Forms`. -```json -"Umbraco": { - "Licenses": { - "Umbraco.Forms": "YOUR_LICENSE_KEY" - } -} -``` - -{% hint style="info" %} -You might run into issues when using a period in the product name when using environment variables. Use an underscore in the product name instead, to avoid problems. - -```json -"Umbraco_Forms": "YOUR_LICENSE_KEY" -``` -{% endhint %} - -#### Verify the license installation - -You can verify that your license is successfully installed by logging into your project's backoffice and navigating to the settings section. Here you will see a license dashboard which should display the status of your license. - -### When and how to configure an `UmbracoApplicationUrl` - -If you are running on a single domain for both your frontend and backend environments, it's not necessary to configure a `UmbracoApplicationUrl`. - -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. - -An `UmbracoApplicationUrl` can be configured in your `appSettings.json` file like so: - -```json -{ - "Umbraco": { - "CMS": { - "WebRouting": { - "UmbracoApplicationUrl": "https://admin.my-custom-domain.com/" - } - } - } -} -``` - -See the [Fixed Application URL](https://docs.umbraco.com/umbraco-cms/extending/health-check/guides/fixedapplicationurl) documentation for more details about this setting. - -#### Configuring `UmbracoApplicationUrl` on Umbraco Cloud - -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 (`.umbraco.io`). This overrides what is set via the `appsettings.json` file. - -There are two options in this case: - -- Either the domains for each of your Cloud environments can be added to your license. -- Or, you can apply the configuration via code for more control and to ensure this value is set correctly for other reasons. - -For example, in your `Program.cs`: - -```csharp -services.Configure(o => o.UmbracoApplicationUrl = ""); -``` - -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. - -#### Validating a license without an outgoing Internet connection - -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. - -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`. - -The firewall rules should be adjusted to allow this request. - -If such a change is not feasible, there is another approach, which is outlined below. - -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. - -To set this up, follow these steps: - -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`. -2. Configure a random string as an authorization key in the configuration. This is used as protection to ensure only valid requests are handled. - -Alternatively, you can also disable the normal regular license checks, as there is no point in these running if they will be blocked: - -```json - "Umbraco": { - "Licenses": { - "Umbraco.Forms": "" - }, - "LicensesOptions": { - "EnableScheduledValidation": false, - "ValidatedLicenseRelayAuthKey": "" - } -``` - -Your Internet-enabled server requests the following form from the online license validation service: - -``` -POST https://license-validation.umbraco.com/api/ValidateLicense -{ - "ProductId": "Umbraco.Forms", - "LicenseKey": "", - "Domain": "" -} -``` - -The response is relayed exactly via an HTTP request to your restricted Umbraco environment: - -``` -POST http:///umbraco/licenses/validatedLicense/relay?productId=&licenseKey= -``` - -A header with a key of `X-AUTH-KEY` and the value of the authorization key you have configured is provided. - -This triggers the same processes that occur when the normal scheduled validation completes, ensuring your product is licensed. +For detailed instructions on how to install and configure your license, including version-specific examples and additional configuration options, see the [Configure Licenses](https://docs.umbraco.com/umbraco-dxp/commercial-products/configure-licenses) article. diff --git a/13/umbraco-ui-builder/installation/licensing-model.md b/13/umbraco-ui-builder/installation/licensing-model.md index e2847238d24..8d048b39155 100644 --- a/13/umbraco-ui-builder/installation/licensing-model.md +++ b/13/umbraco-ui-builder/installation/licensing-model.md @@ -43,7 +43,7 @@ If you have multiple backoffice domains pointing at the same installation, you c This is an add-on domain for existing licenses. Refunds will not be given for this product. {% endhint %} -## Configuring your license +## Purchasing your license You can look at the pricing, features, and purchase a license on the [Umbraco UI Builder](https://umbraco.com/products/add-ons/ui-builder/) page. On this page, you can fill out the form with your project details and requirements. A member of the Sales team will manage this process. In the process, you will need to provide all domains you wish to have covered by the license such as primary and staging/QA domains. You should then receive a license code to be installed in your solution. @@ -51,78 +51,10 @@ You can look at the pricing, features, and purchase a license on the [Umbraco UI If you require to add additional domains to the license, [reach out to the sales team](https://umbraco.com/products/add-ons/ui-builder/). They will manage your request and take care of the process. -## Installing your license - -Once you have received your license code it needs to be installed on your site. - -1. Open the root directory for your project files. -2. Locate and open the `appSettings.json` file. -3. Add your Umbraco UI builder license key to `Umbraco:Licenses:Umbraco.UIBuilder`: - -```json -"Umbraco": { - "Licenses": { - "Umbraco.UIBuilder": "YOUR_LICENSE_KEY" - } -} -``` - -{% hint style="info" %} -You might run into issues when using a period in the product name when using environment variables. Use an underscore in the product name instead, to avoid problems. - -```json -"Umbraco_UIBuilder": "YOUR_LICENSE_KEY" -``` -{% endhint %} - -### Verify the license installation - -You can verify that your license is successfully installed by logging into your project's backoffice and navigating to the settings section. Here you will see a license dashboard which should display the status of your license. - -### Validating a license without an outgoing Internet connection - -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. - -On start-up, and periodically whilst Umbraco is running, the license component used by Umbraco UIBuilder will make an HTTP POST request to `https://license-validation.umbraco.com/api/ValidateLicense`. - -If it's possible to do so, the firewall rules should be adjusted to allow this request. - -If such a change is not feasible, there is another approach you can use. - -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. - -To set this up, firstly ensure you have a reference to `Umbraco.Licenses` version 13.1 or higher. If the version of UIBuilder you are using depends on an earlier version, you can add a direct package reference for `Umbraco.Licenses`. - -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: - -```json - "Umbraco": { - "Licenses": { - "Umbraco.UIBuilder": "" - }, - "LicensesOptions": { - "EnableScheduledValidation": false, - "ValidatedLicenseRelayAuthKey": "" - } -``` - -Your Internet enabled server should make a request of the following form to the online license validation service: - -``` -POST https://license-validation.umbraco.com/api/ValidateLicense -{ - "ProductId": "Umbraco.UIBuilder", - "LicenseKey": "", - "Domain": "" -} -``` - -The response should be relayed exactly via an HTTP request to your restricted Umbraco environment: +## Configuring your license -``` -POST http:///umbraco/licenses/validatedLicense/relay?productId=&licenseKey= -``` +Once you've purchased your license with the correct domains, you are ready to configure the license key on your Umbraco installation. -A header with a key of `X-AUTH-KEY` and value of the authorization key you have configured should be provided. +The license key should be added to your configuration using product ID: `Umbraco.UIBuilder`. -This will trigger the same processes that occur when the normal scheduled validation completes ensuring your product is considered licensed. +For detailed instructions on how to install and configure your license, including version-specific examples and additional configuration options, see the [Configure Licenses](https://docs.umbraco.com/umbraco-dxp/commercial-products/configure-licenses) article. diff --git a/13/umbraco-workflow/installation/licensing.md b/13/umbraco-workflow/installation/licensing.md index 8410dbca4e6..7bffeb69c20 100644 --- a/13/umbraco-workflow/installation/licensing.md +++ b/13/umbraco-workflow/installation/licensing.md @@ -4,7 +4,7 @@ Umbraco Workflow is a licensed product that does not require a purchase. New ins ## Purchasing an Umbraco Workflow License -If you want to buy an Umbraco Workflow license, use [the contact form to get in touch](https://umbraco.com/products/add-ons/workflow#order). +If you want to buy an Umbraco Workflow license, use [the contact form to get in touch](https://umbraco.com/products/add-ons/workflow#order). ### Free vs licensed versions @@ -22,75 +22,13 @@ In the free version, the following features are disabled: In the free version, a maximum of five approval groups can be created. -## Installing your license +## Configuring your license -Once you have received your license code it needs to be installed on your site. +Once you've purchased your license, you are ready to configure the license key on your Umbraco installation. -1. Open the root directory for your project files. -2. Locate and open the `appSettings.json` file. -3. Add your Umbraco Workflow license key to `Umbraco:Licenses:Umbraco.Workflow`: +The license key should be added to your configuration using product ID: `Umbraco.Workflow`. -```json -"Umbraco": { - "Licenses": { - "Umbraco.Workflow": "YOUR_LICENSE_KEY" - } -} -``` - -{% hint style="info" %} -You might run into issues when using a period in the product name when using environment variables. Use an underscore in the product name instead, to avoid problems. - -```json -"Umbraco_Workflow": "YOUR_LICENSE_KEY" -``` -{% endhint %} - -### Verify the license installation - -You can verify that your license is successfully installed by logging into your project's backoffice and navigating to the settings section. Here you will see a licenses dashboard which should display the status of your license. - -If you have upgraded from an earlier v13 release and encounter license validation issues, ensure the product is `Umbraco.Workflow`, not `UmbracoWorkflow`. - -### When and how to configure an `UmbracoApplicationUrl` - -The website domain used for validating the license is determined from your Umbraco instance. To ensure the correct one is used, you can configure the `UmbracoApplicationUrl`. - -If you are running on a single domain for both your frontend and backend environments, it's not necessary to configure a `UmbracoApplicationUrl`. - -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. - -An `UmbracoApplicationUrl` can be configured in your `appSettings.json` file like so: - -```json -{ - "Umbraco": { - "CMS": { - "WebRouting": { - "UmbracoApplicationUrl": "https://admin.my-custom-domain.com/" - } - } - } -} -``` - -See the [Fixed Application URL](https://docs.umbraco.com/umbraco-cms/extending/health-check/guides/fixedapplicationurl) documentation for more details about this setting. - -#### Configuring `UmbracoApplicationUrl` on Umbraco Cloud - -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 (`.umbraco.io`). This overrides what is set via the `appSettings.json` file. - -There are two options in this case: -- Either the domains for each of your Cloud environments can be added to your license. -- Or, for more control and to ensure this value is set correctly for other reasons, you can apply the configuration via code. - -For example, in your `Program.cs` file: - -```csharp -builder.Services.Configure(o => o.UmbracoApplicationUrl = ""); -``` - -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. +For detailed instructions on how to install and configure your license, including version-specific examples and additional configuration options, see the [Configure Licenses](https://docs.umbraco.com/umbraco-dxp/commercial-products/configure-licenses) article. ### Using a Trial License @@ -111,51 +49,3 @@ To impersonate the full license on a local site, set `EnableTestLicense` to `tru {% hint style="info" %} The test license is restricted to sites running in a development environment with a debugger attached. Hit F5 in Visual Studio, in Debug mode to enable the test license. {% endhint %} - -### Validating a license without an outgoing Internet connection - -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. - -On start-up, and periodically whilst Umbraco is running, the license component used by Umbraco Workflow will make an HTTP POST request to `https://license-validation.umbraco.com/api/ValidateLicense`. - -If it's possible to do so, the firewall rules should be adjusted to allow this request. - -If such a change is not feasible, there is another approach you can use. - -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. - -To set this up, firstly ensure you have a reference to `Umbraco.Licenses` version 13.1 or higher. If the version of Workflow you are using depends on an earlier version, you can add a direct package reference for `Umbraco.Licenses`. - -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: - -```json - "Umbraco": { - "Licenses": { - "Umbraco.Workflow": "" - }, - "LicensesOptions": { - "EnableScheduledValidation": false, - "ValidatedLicenseRelayAuthKey": "" - } -``` - -Your Internet enabled server should make a request of the following form to the online license validation service: - -``` -POST https://license-validation.umbraco.com/api/ValidateLicense -{ - "ProductId": "Umbraco.Workflow", - "LicenseKey": "", - "Domain": "" -} -``` - -The response should be relayed exactly via an HTTP request to your restricted Umbraco environment: - -``` -POST http:///umbraco/licenses/validatedLicense/relay?productId=&licenseKey= -``` - -A header with a key of `X-AUTH-KEY` and value of the authorization key you have configured should be provided. - -This will trigger the same processes that occur when the normal scheduled validation completes ensuring your product is considered licensed. diff --git a/15/umbraco-commerce/getting-started/the-licensing-model.md b/15/umbraco-commerce/getting-started/the-licensing-model.md index 9359750ab1f..793f4da31e3 100644 --- a/15/umbraco-commerce/getting-started/the-licensing-model.md +++ b/15/umbraco-commerce/getting-started/the-licensing-model.md @@ -43,7 +43,7 @@ If you have multiple backoffice domains pointing at the same installation, you h This is an add-on domain for existing licenses. Refunds will not be given for this product. {% endhint %} -## Configuring your license +## Purchasing your license You can look at the pricing, features, and purchase a license on the [Umbraco Commerce](https://umbraco.com/products/add-ons/commerce/) page. A member of the sales team will manage this process. You will need to provide all domains you wish to have covered by the license such as primary and development/staging/QA domains. You should then receive a license code to be installed in your solution. @@ -51,124 +51,10 @@ You can look at the pricing, features, and purchase a license on the [Umbraco Co If you require to add addition domains to the license, [reach out the sales team](https://umbraco.com/products/add-ons/commerce/) with your request and they will manage this process. -## Installing your license - -Once you have received your license code it needs to be installed on your site. - -1. Open the root directory for your project files. -2. Locate and open the `appsettings.json` file. -3. Add your Umbraco Commerce license key to `Umbraco:Licenses:Products:Umbraco.Commerce`: - -```json -{ - "Umbraco": { - "Licenses": { - "Products": { - "Umbraco.Commerce": "YOUR_LICENSE_KEY" - } - } - } -} -``` - -{% hint style="info" %} -You might run into issues when using a period in the product name when using environment variables. Use an underscore in the product name instead, to avoid problems. - -```json -"Umbraco_Commerce": "YOUR_LICENSE_KEY" -``` -{% endhint %} - -### Verify the license installation - -You can verify that your license is successfully installed by logging into your project's backoffice and navigating to the settings section. Here you will see a license dashboard which should display the status of your license. - -![Umbraco Commerce License Dashboard](../media/license-dashboard.png) - -### When and how to configure an `UmbracoApplicationUrl` - -If you are running on a single domain for both your frontend and backend environments, it's not necessary to configure a `UmbracoApplicationUrl`. - -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. - - -An `UmbracoApplicationUrl` can be configured in your `appsettings.json` file like so: - -```json -{ - "Umbraco": { - "CMS": { - "WebRouting": { - "UmbracoApplicationUrl": "https://admin.my-custom-domain.com/" - } - } - } -} -``` - -See the [Fixed Application URL](https://docs.umbraco.com/umbraco-cms/extending/health-check/guides/fixedapplicationurl) documentation for more details about this setting. - -#### Configuring `UmbracoApplicationUrl` on Umbraco Cloud - -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 (`.umbraco.io`). This overrides what is set via the `appsettings.json` file. - -There are two options in this case: -- Either the domains for each of your Cloud environments can be added to your license. -- Or, for more control and to ensure this value is set correctly for other reasons, you can apply the configuration via code. - -For example, in your `Program.cs`: - -```csharp -services.Configure(o => o.UmbracoApplicationUrl = ""); -``` - -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. - -### Validating a license without an outgoing Internet connection - -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. - -On start-up, and periodically whilst Umbraco is running, the license component used by Umbraco Commerce will make an HTTP POST request to `https://license-validation.umbraco.com/api/ValidateLicense`. - -If it's possible to do so, the firewall rules should be adjusted to allow this request. - -If such a change is not feasible, there is another approach you can use. - -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. - -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: - -```json -{ - "Umbraco": { - "Licenses": { - "Products": { - "Umbraco.Commerce": "" - }, - "EnableScheduledValidation": false, - "ValidatedLicenseRelayAuthKey": "" - } - } -} -``` - -Your Internet-enabled server should make a request of the following form to the online license validation service: - -``` -POST https://license-validation.umbraco.com/api/ValidateLicense -{ - "ProductId": "Umbraco.Commerce", - "LicenseKey": "", - "Domain": "" -} -``` - -The response should be relayed exactly via an HTTP request to your restricted Umbraco environment: +## Configuring your license -``` -POST http:///umbraco/licenses/validatedLicense/relay?productId=&licenseKey= -``` +Once you've purchased your license with the correct domains, you are ready to configure the license key on your Umbraco installation. -A header with a key of `X-AUTH-KEY` and the value of the authorization key you have configured should be provided. +The license key should be added to your configuration using product ID: `Umbraco.Commerce`. -This will trigger the same processes that occur when the normal scheduled validation completes ensuring your product is considered licensed. +For detailed instructions on how to install and configure your license, including version-specific examples and additional configuration options, see the [Configure Licenses](https://docs.umbraco.com/umbraco-dxp/commercial-products/configure-licenses) article. diff --git a/15/umbraco-deploy/installation/the-licensing-model.md b/15/umbraco-deploy/installation/the-licensing-model.md index 8169467ca3b..412bbac66b5 100644 --- a/15/umbraco-deploy/installation/the-licensing-model.md +++ b/15/umbraco-deploy/installation/the-licensing-model.md @@ -46,116 +46,10 @@ The license for Umbraco Deploy comes with a recurring yearly fee. Learn more abo You can look at the pricing, plans, features, and purchase the license on the [Umbraco Deploy On-premises](https://umbraco.com/products/add-ons/deploy/umbraco-deploy-on-premises/) page. -## Installing your license +## Configuring your license -Once you've configured your license with the correct domains, you are ready to install the license on your Umbraco installation. +Once you've purchased your license with the correct domains, you are ready to configure the license key on your Umbraco installation. -For Umbraco Deploy On-Premise 12 and above, this will be a key provided to you when taking out your subscription to the product. It should be added to your configuration at the key `Umbraco:Licenses:Products:Umbraco.Deploy.OnPrem`. +The license key should be added to your configuration using product ID: `Umbraco.Deploy.OnPrem`. -For example, in `appsettings.json`: - -```json - "Umbraco": { - "CMS": { - ... - }, - "Licenses": { - "Products": { - "Umbraco.Deploy.OnPrem": "" - } - }, - "Deploy": { - ... - } -``` - -{% hint style="info" %} -You might run into issues when using a period in the product name when using environment variables. Use an underscore in the product name instead, to avoid problems. - -```json -"Umbraco_Deploy_OnPrem": "YOUR_LICENSE_KEY" -``` -{% endhint %} - -Umbraco Cloud projects use a license file placed in the `/umbraco/Licenses` folder that is provided automatically when your project is created. - -## Validating the license - -On start-up and on a schedule, Umbraco running Deploy On-premise will call out to a service. It will pass the configured license key to determine its validity. The response triggers a notification that the Umbraco Deploy will handle. It will amend the available functionality as appropriate to a valid, invalid or expired license. - -You can view the status of the Umbraco Deploy On-premise license in the backoffice. This is available via the _Settings_ section, listed along with any other products using the same licensing service: - -![Licenses screen in Umbraco backoffice](images/licenses-screen.png) - -### When and how to configure an `UmbracoApplicationUrl` - -The website domain used for validating the license is determined from your Umbraco instance. To ensure the correct one is used, you can configure the `UmbracoApplicationUrl`. - -If you are running on a single domain for both your frontend and backend environments, it's not necessary to configure a `UmbracoApplicationUrl`. - -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. - -An `UmbracoApplicationUrl` can be configured in your `appsettings.json` file like so: - -```json -{ - "Umbraco": { - "CMS": { - "WebRouting": { - "UmbracoApplicationUrl": "https://admin.my-custom-domain.com/" - } - } - } -} -``` - -See the [Fixed Application URL](https://docs.umbraco.com/umbraco-cms/extending/health-check/guides/fixedapplicationurl) documentation for more details about this setting. - -### Validating a license without an outgoing Internet connection - -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. - -On start-up, and periodically whilst Umbraco is running, the license component used by Umbraco Deploy will make an HTTP POST request to `https://license-validation.umbraco.com/api/ValidateLicense`. - -If it's possible to do so, the firewall rules should be adjusted to allow this request. - -If such a change is not feasible, there is another approach you can use. - -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. - -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: - -```json -{ - "Umbraco": { - "Licenses": { - "Products": { - "Umbraco.Deploy.OnPrem": "" - }, - "EnableScheduledValidation": false, - "ValidatedLicenseRelayAuthKey": "" - } - } -} -``` - -Your Internet enabled server should make a request of the following form to the online license validation service: - -``` -POST https://license-validation.umbraco.com/api/ValidateLicense -{ - "ProductId": "Umbraco.Deploy.OnPrem", - "LicenseKey": "", - "Domain": "" -} -``` - -The response should be relayed exactly via an HTTP request to your restricted Umbraco environment: - -``` -POST http:///umbraco/licenses/validatedLicense/relay?productId=&licenseKey= -``` - -A header with a key of `X-AUTH-KEY` and value of the authorization key you have configured should be provided. - -This will trigger the same processes that occur when the normal scheduled validation completes ensuring your product is considered licensed. +For detailed instructions on how to install and configure your license, including version-specific examples and additional configuration options, see the [Configure Licenses](https://docs.umbraco.com/umbraco-dxp/commercial-products/configure-licenses) article. diff --git a/15/umbraco-ui-builder/getting-started/licensing-model.md b/15/umbraco-ui-builder/getting-started/licensing-model.md index 03490ec8504..b8a5348a094 100644 --- a/15/umbraco-ui-builder/getting-started/licensing-model.md +++ b/15/umbraco-ui-builder/getting-started/licensing-model.md @@ -47,7 +47,7 @@ If you have multiple backoffice domains pointing at the same installation, you c This is an add-on domain for existing licenses. Refunds will not be given for this product. {% endhint %} -## Configuring Your License +## Purchasing your license You can look at the pricing, features, and purchase a license on the [Umbraco UI Builder](https://umbraco.com/products/add-ons/ui-builder/) page. On this page, you can fill out the form with your project details and requirements. @@ -57,88 +57,10 @@ A member of the Sales team will manage this process. In the process, you will ne If you require to add additional domains to the license, [reach out to the sales team](https://umbraco.com/products/add-ons/ui-builder/). They will manage your request and take care of the process. -## Installing your license +## Configuring your license -Once you have received your license code it needs to be installed on your site. +Once you've purchased your license with the correct domains, you are ready to configure the license key on your Umbraco installation. -1. Open the root directory of your project files. -2. Locate and open the `appsettings.json` file. -3. Add your Umbraco UI builder license key under `Umbraco:Licenses:Products:Umbraco.UIBuilder`: +The license key should be added to your configuration using product ID: `Umbraco.UIBuilder`. -```json -{ - "Umbraco": { - "Licenses": { - "Products": { - "Umbraco.UIBuilder": "YOUR_LICENSE_KEY" - } - } - } -} -``` - -{% hint style="info" %} -You might run into issues when using a period in the product name when using environment variables. Use an underscore in the product name instead, to avoid problems. - -```json -"Umbraco_UIBuilder": "YOUR_LICENSE_KEY" -``` - -{% endhint %} - -### Verifying the License - -To verify that your license is successfully installed: - -1. Log into Umbraco Backoffice. -2. Navigate to the **Settings** > **License** dashboard. -3. Verify the license status displayed on the dashboard. - -### Validating a License Without an Internet connection - -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. - -On start-up, and periodically whilst Umbraco is running, the license component used by Umbraco UIBuilder will make an HTTP POST request to `https://license-validation.umbraco.com/api/ValidateLicense`. - -If it's possible to do so, the firewall rules should be adjusted to allow this request. - -If such a change is not feasible, there is another approach you can use. - -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. - -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: - -```json -{ - "Umbraco": { - "Licenses": { - "Products": { - "Umbraco.UIBuilder": "" - }, - "EnableScheduledValidation": false, - "ValidatedLicenseRelayAuthKey": "" - } - } -} -``` - -Your Internet enabled server should make a request of the following form to the online license validation service: - -``` -POST https://license-validation.umbraco.com/api/ValidateLicense -{ - "ProductId": "Umbraco.UIBuilder", - "LicenseKey": "", - "Domain": "" -} -``` - -The response should be relayed exactly via an HTTP request to your restricted Umbraco environment: - -``` -POST http:///umbraco/licenses/validatedLicense/relay?productId=&licenseKey= -``` - -A header with a key of `X-AUTH-KEY` and value of the authorization key you have configured should be provided. - -This will trigger the same processes that occur when the normal scheduled validation completes ensuring your product is considered licensed. +For detailed instructions on how to install and configure your license, including version-specific examples and additional configuration options, see the [Configure Licenses](https://docs.umbraco.com/umbraco-dxp/commercial-products/configure-licenses) article. diff --git a/15/umbraco-workflow/installation/licensing.md b/15/umbraco-workflow/installation/licensing.md index 8f01f5346c9..dce6fda9fcf 100644 --- a/15/umbraco-workflow/installation/licensing.md +++ b/15/umbraco-workflow/installation/licensing.md @@ -4,7 +4,7 @@ Umbraco Workflow is a licensed product that does not require a purchase. New ins ## Purchasing an Umbraco Workflow License -If you want to buy an Umbraco Workflow license, use [the contact form to get in touch](https://umbraco.com/products/add-ons/workflow#order). +If you want to buy an Umbraco Workflow license, use [the contact form to get in touch](https://umbraco.com/products/add-ons/workflow#order). ### Free vs licensed versions @@ -21,77 +21,13 @@ In the free version, the following features are disabled: In the free version, a maximum of five approval groups can be created. -## Installing your license +## Configuring your license -Once you have received your license code it needs to be installed on your site. +Once you've purchased your license, you are ready to configure the license key on your Umbraco installation. -1. Open the root directory for your project files. -2. Locate and open the `appsettings.json` file. -3. Add your Umbraco Workflow license key to `Umbraco:Licenses:Products:Umbraco.Workflow`: +The license key should be added to your configuration using product ID: `Umbraco.Workflow`. -```json -{ - "Umbraco": { - "Licenses": { - "Products": { - "Umbraco.Workflow": "YOUR_LICENSE_KEY" - } - } - } -} -``` - -{% hint style="info" %} -You might run into issues when using a period in the product name when using environment variables. Use an underscore in the product name instead, to avoid problems. - -```json -"Umbraco_Workflow": "YOUR_LICENSE_KEY" -``` -{% endhint %} - -### Verify the license installation - -You can verify that your license is successfully installed by logging into your project's backoffice and navigating to the settings section. Here you will see a licenses dashboard which should display the status of your license. - -### When and how to configure an `UmbracoApplicationUrl` - -The website domain used for validating the license is determined from your Umbraco instance. To ensure the correct one is used, you can configure the `UmbracoApplicationUrl`. - -If you are running on a single domain for both your frontend and backend environments, it's not necessary to configure a `UmbracoApplicationUrl`. - -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. - -An `UmbracoApplicationUrl` can be configured in your `appsettings.json` file like so: - -```json -{ - "Umbraco": { - "CMS": { - "WebRouting": { - "UmbracoApplicationUrl": "https://admin.my-custom-domain.com/" - } - } - } -} -``` - -See the [Fixed Application URL](https://docs.umbraco.com/umbraco-cms/extending/health-check/guides/fixedapplicationurl) documentation for more details about this setting. - -#### Configuring `UmbracoApplicationUrl` on Umbraco Cloud - -If you are hosting on Umbraco Cloud, you will 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 (`.umbraco.io`). This overrides what is set via the `appsettings.json` file. - -There are two options in this case: -- Either the domains for each of your Cloud environments can be added to your license. -- Or, for more control and to ensure this value is set correctly for other reasons, you can apply the configuration via code. - -For example, in your `Program.cs` file: - -```csharp -builder.Services.Configure(o => o.UmbracoApplicationUrl = ""); -``` - -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. +For detailed instructions on how to install and configure your license, including version-specific examples and additional configuration options, see the [Configure Licenses](https://docs.umbraco.com/umbraco-dxp/commercial-products/configure-licenses) article. ### Using a Trial License @@ -112,52 +48,3 @@ To impersonate the full license on a local site, set `EnableTestLicense` to `tru {% hint style="info" %} The test license is restricted to sites running in a development environment with a debugger attached. Hit F5 in Visual Studio, in Debug mode to enable the test license. {% endhint %} - -### Validating a license without an outgoing Internet connection - -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. - -On start-up, and periodically whilst Umbraco is running, the license component used by Umbraco Workflow will make an HTTP POST request to `https://license-validation.umbraco.com/api/ValidateLicense`. - -If it's possible to do so, the firewall rules should be adjusted to allow this request. - -If such a change is not feasible, there is another approach you can use. - -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. - -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: - -```json -{ - "Umbraco": { - "Licenses": { - "Products": { - "Umbraco.Workflow": "" - }, - "EnableScheduledValidation": false, - "ValidatedLicenseRelayAuthKey": "" - } - } -} -``` - -Your Internet enabled server should make a request of the following form to the online license validation service: - -``` -POST https://license-validation.umbraco.com/api/ValidateLicense -{ - "ProductId": "Umbraco.Workflow", - "LicenseKey": "", - "Domain": "" -} -``` - -The response should be relayed exactly via an HTTP request to your restricted Umbraco environment: - -``` -POST http:///umbraco/licenses/validatedLicense/relay?productId=&licenseKey= -``` - -A header with a key of `X-AUTH-KEY` and value of the authorization key you have configured should be provided. - -This will trigger the same processes that occur when the normal scheduled validation completes ensuring your product is considered licensed. diff --git a/16/umbraco-commerce/getting-started/the-licensing-model.md b/16/umbraco-commerce/getting-started/the-licensing-model.md index 1d33c1da48a..793f4da31e3 100644 --- a/16/umbraco-commerce/getting-started/the-licensing-model.md +++ b/16/umbraco-commerce/getting-started/the-licensing-model.md @@ -43,7 +43,7 @@ If you have multiple backoffice domains pointing at the same installation, you h This is an add-on domain for existing licenses. Refunds will not be given for this product. {% endhint %} -## Configuring your license +## Purchasing your license You can look at the pricing, features, and purchase a license on the [Umbraco Commerce](https://umbraco.com/products/add-ons/commerce/) page. A member of the sales team will manage this process. You will need to provide all domains you wish to have covered by the license such as primary and development/staging/QA domains. You should then receive a license code to be installed in your solution. @@ -51,122 +51,10 @@ You can look at the pricing, features, and purchase a license on the [Umbraco Co If you require to add addition domains to the license, [reach out the sales team](https://umbraco.com/products/add-ons/commerce/) with your request and they will manage this process. -## Installing your license - -Once you have received your license code it needs to be installed on your site. - -1. Open the root directory for your project files. -2. Locate and open the `appsettings.json` file. -3. Add your Umbraco Commerce license key to `Umbraco:Licenses:Products:Umbraco.Commerce`: - -```json -"Umbraco": { - "Licenses": { - "Products": { - "Umbraco.Commerce": "YOUR_LICENSE_KEY" - } - } -} -``` - -{% hint style="info" %} -You might run into issues when using a period in the product name when using environment variables. Use an underscore in the product name instead, to avoid problems. - -```json -"Umbraco_Commerce": "YOUR_LICENSE_KEY" -``` -{% endhint %} - -### Verify the license installation - -You can verify that your license is successfully installed by logging into your project's backoffice and navigating to the settings section. Here you will see a license dashboard which should display the status of your license. - -![Umbraco Commerce License Dashboard](../media/license-dashboard.png) - -### When and how to configure an `UmbracoApplicationUrl` - -If you are running on a single domain for both your frontend and backend environments, it's not necessary to configure a `UmbracoApplicationUrl`. - -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. - - -An `UmbracoApplicationUrl` can be configured in your `appsettings.json` file like so: - -```json -{ - "Umbraco": { - "CMS": { - "WebRouting": { - "UmbracoApplicationUrl": "https://admin.my-custom-domain.com/" - } - } - } -} -``` - -See the [Fixed Application URL](https://docs.umbraco.com/umbraco-cms/extending/health-check/guides/fixedapplicationurl) documentation for more details about this setting. - -#### Configuring `UmbracoApplicationUrl` on Umbraco Cloud - -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 (`.umbraco.io`). This overrides what is set via the `appsettings.json` file. - -There are two options in this case: -- Either the domains for each of your Cloud environments can be added to your license. -- Or, for more control and to ensure this value is set correctly for other reasons, you can apply the configuration via code. - -For example, in your `Program.cs`: - -```csharp -services.Configure(o => o.UmbracoApplicationUrl = ""); -``` - -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. - -### Validating a license without an outgoing Internet connection - -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. - -On start-up, and periodically whilst Umbraco is running, the license component used by Umbraco Commerce will make an HTTP POST request to `https://license-validation.umbraco.com/api/ValidateLicense`. - -If it's possible to do so, the firewall rules should be adjusted to allow this request. - -If such a change is not feasible, there is another approach you can use. - -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. - -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: - -```json -{ - "Umbraco": { - "Licenses": { - "Products": { - "Umbraco.Commerce": "" - }, - "EnableScheduledValidation": false, - "ValidatedLicenseRelayAuthKey": "" - } - } -} -``` - -Your Internet-enabled server should make a request of the following form to the online license validation service: - -``` -POST https://license-validation.umbraco.com/api/ValidateLicense -{ - "ProductId": "Umbraco.Commerce", - "LicenseKey": "", - "Domain": "" -} -``` - -The response should be relayed exactly via an HTTP request to your restricted Umbraco environment: +## Configuring your license -``` -POST http:///umbraco/licenses/validatedLicense/relay?productId=&licenseKey= -``` +Once you've purchased your license with the correct domains, you are ready to configure the license key on your Umbraco installation. -A header with a key of `X-AUTH-KEY` and the value of the authorization key you have configured should be provided. +The license key should be added to your configuration using product ID: `Umbraco.Commerce`. -This will trigger the same processes that occur when the normal scheduled validation completes ensuring your product is considered licensed. +For detailed instructions on how to install and configure your license, including version-specific examples and additional configuration options, see the [Configure Licenses](https://docs.umbraco.com/umbraco-dxp/commercial-products/configure-licenses) article. diff --git a/16/umbraco-deploy/installation/the-licensing-model.md b/16/umbraco-deploy/installation/the-licensing-model.md index 9cb8dc1b66a..97ecfbab2af 100644 --- a/16/umbraco-deploy/installation/the-licensing-model.md +++ b/16/umbraco-deploy/installation/the-licensing-model.md @@ -46,116 +46,10 @@ The license for Umbraco Deploy comes with a recurring yearly fee. Learn more abo You can look at the pricing, plans, features, and purchase the license on the [Umbraco Deploy On-premises](https://umbraco.com/products/add-ons/deploy/umbraco-deploy-on-premises/) page. -## Installing your license +## Configuring your license -Once you've configured your license with the correct domains, you are ready to install the license on your Umbraco installation. +Once you've purchased your license with the correct domains, you are ready to configure the license key on your Umbraco installation. -For Umbraco Deploy On-Premise 12 and above, this will be a key provided to you when taking out your subscription to the product. It should be added to your configuration at the key `Umbraco:Licenses:Products:Umbraco.Deploy.OnPrem`. +The license key should be added to your configuration using product ID: `Umbraco.Deploy.OnPrem`. -For example, in `appsettings.json`: - -```json - "Umbraco": { - "CMS": { - ... - }, - "Licenses": { - "Products": { - "Umbraco.Deploy.OnPrem": "" - } - }, - "Deploy": { - ... - } -``` - -{% hint style="info" %} -You might run into issues when using a period in the product name when using environment variables. Use an underscore in the product name instead, to avoid problems. - -```json -"Umbraco_Deploy_OnPrem": "YOUR_LICENSE_KEY" -``` -{% endhint %} - -Umbraco Cloud projects use a license file placed in the `/umbraco/Licenses` folder that is provided automatically when your project is created. - -## Validating the license - -On start-up and on a schedule, Umbraco running Deploy On-premise will call out to a service. It will pass the configured license key to determine its validity. The response triggers a notification that the Umbraco Deploy will handle. It will amend the available functionality as appropriate to a valid, invalid or expired license. - -You can view the status of the Umbraco Deploy On-premise license in the backoffice. This is available via the _Settings_ section, listed along with any other products using the same licensing service: - -![Licenses screen in Umbraco backoffice](images/licenses-screen.png) - -### When and how to configure an `UmbracoApplicationUrl` - -The website domain used for validating the license is determined from your Umbraco instance. To ensure the correct one is used, you can configure the `UmbracoApplicationUrl`. - -If you are running on a single domain for both your frontend and backend environments, it's not necessary to configure a `UmbracoApplicationUrl`. - -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. - -An `UmbracoApplicationUrl` can be configured in your `appsettings.json` file like so: - -```json -{ - "Umbraco": { - "CMS": { - "WebRouting": { - "UmbracoApplicationUrl": "https://admin.my-custom-domain.com/" - } - } - } -} -``` - -See the [Fixed Application URL](https://docs.umbraco.com/umbraco-cms/extending/health-check/guides/fixedapplicationurl) documentation for more details about this setting. - -### Validating a license without an outgoing Internet connection - -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. - -On start-up, and periodically whilst Umbraco is running, the license component used by Umbraco Deploy will make an HTTP POST request to `https://license-validation.umbraco.com/api/ValidateLicense`. - -If it's possible to do so, the firewall rules should be adjusted to allow this request. - -If such a change is not feasible, there is another approach you can use. - -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. - -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: - -```json -{ - "Umbraco": { - "Licenses": { - "Products": { - "Umbraco.Deploy.OnPrem": "" - }, - "EnableScheduledValidation": false, - "ValidatedLicenseRelayAuthKey": "" - } - } -} -``` - -Your Internet enabled server should make a request of the following form to the online license validation service: - -``` -POST https://license-validation.umbraco.com/api/ValidateLicense -{ - "ProductId": "Umbraco.Deploy.OnPrem", - "LicenseKey": "", - "Domain": "" -} -``` - -The response should be relayed exactly via an HTTP request to your restricted Umbraco environment: - -``` -POST http:///umbraco/licenses/validatedLicense/relay?productId=&licenseKey= -``` - -A header with a key of `X-AUTH-KEY` and value of the authorization key you have configured should be provided. - -This will trigger the same processes that occur when the normal scheduled validation completes ensuring your product is considered licensed. +For detailed instructions on how to install and configure your license, including version-specific examples and additional configuration options, see the [Configure Licenses](https://docs.umbraco.com/umbraco-dxp/commercial-products/configure-licenses) article. diff --git a/16/umbraco-engage/installation/licensing.md b/16/umbraco-engage/installation/licensing.md index 906b021f39f..fddf12c6d4f 100644 --- a/16/umbraco-engage/installation/licensing.md +++ b/16/umbraco-engage/installation/licensing.md @@ -49,7 +49,7 @@ If multiple backoffice domains share the same installation, you have to purchase This is an add-on domain for existing licenses. Refunds will not be given for this product. {% endhint %} -## Configuring your license +## Purchasing your license You can look at the pricing, features, and purchase a license on the [Umbraco Engage](https://umbraco.com/products/add-ons/engage/) page. A member of the sales team will manage this process. You will need to provide all domains you wish to have covered by the license, such as primary and development/staging/QA domains. You should then receive a license code to be installed in your solution. @@ -57,60 +57,10 @@ You can look at the pricing, features, and purchase a license on the [Umbraco En To add additional domains to your license, [reach out to the sales team](https://umbraco.com/products/add-ons/engage/) with your request, and they will manage this process. -## Installing your license - -Once you have received your license code, it needs to be installed on your site. - -1. Open the root directory for your project files. -2. Locate and open the `appsettings.json` file. -3. Add your Umbraco Engage license key to `Umbraco:Licenses:Products:Umbraco.Engage`: - -```json -{ - "Umbraco": { - "Licenses": { - "Products": { - "Umbraco.Engage": "YOUR_LICENSE_KEY" - } - } - } -} -``` - -{% hint style="info" %} -You might run into issues when using a period in the product name when using environment variables. Use an underscore in the product name instead to avoid problems. - -```json -"Umbraco_Engage": "YOUR_LICENSE_KEY" -``` -{% endhint %} - -### Verify the license installation - -You can verify that your license is successfully installed by logging into your project's backoffice and navigating to the **Engage** section. Here, you will see a license dashboard in the right pane, which should display the status of your license (**Valid**). - -

Umbraco Engage start page with license information

- -If the license (status) is not correct, verify the license in **Umbraco** -> **Settings** -> **Licenses** tab, and (re)validate if necessary. - -### When and how to configure an `UmbracoApplicationUrl` - -If you are running on a single domain for both your frontend and backend environments, it's not necessary to configure a `UmbracoApplicationUrl`. - -If you have different domains for your frontend and backend, then it's advised that you configure `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. +## Configuring your license -An `UmbracoApplicationUrl` can be configured in your `appsettings.json` file like so: +Once you've purchased your license with the correct domains, you are ready to configure the license key on your Umbraco installation. -```json -{ - "Umbraco": { - "CMS": { - "WebRouting": { - "UmbracoApplicationUrl": "https://admin.my-custom-domain.com/" - } - } - } -} -``` +The license key should be added to your configuration using product ID: `Umbraco.Engage`. -See the [Fixed Application URL](https://docs.umbraco.com/umbraco-cms/extending/health-check/guides/fixedapplicationurl) documentation for more details about this setting. +For detailed instructions on how to install and configure your license, including version-specific examples and additional configuration options, see the [Configure Licenses](https://docs.umbraco.com/umbraco-dxp/commercial-products/configure-licenses) article. diff --git a/16/umbraco-forms/installation/the-licensing-model.md b/16/umbraco-forms/installation/the-licensing-model.md index 391802211a6..c9e8b599965 100644 --- a/16/umbraco-forms/installation/the-licensing-model.md +++ b/16/umbraco-forms/installation/the-licensing-model.md @@ -119,120 +119,9 @@ Apply the following configuration with the appropriate algorithm - `DES` (the de ### Installing subscription license product key -Once you have received your license code it needs to be installed on your site. +Once you've purchased your subscription license with the correct domains, you are ready to configure the license key on your Umbraco installation. -1. Open the root directory for your project files. -2. Locate and open the `appsettings.json` file. -3. Add your Umbraco Forms license key to `Umbraco:Licenses:Products:Umbraco.Forms`: +The license key should be added to your configuration using product ID: `Umbraco.Forms`. -```json -"Umbraco": { - "Licenses": { - "Products": { - "Umbraco.Forms": "YOUR_LICENSE_KEY" - } - } -} -``` - -{% hint style="info" %} -You might run into issues when using a period in the product name when using environment variables. Use an underscore in the product name instead, to avoid problems. - -```json -"Umbraco_Forms": "YOUR_LICENSE_KEY" -``` -{% endhint %} - -#### Verify the license installation - -You can verify that your license is successfully installed by logging into your project's backoffice and navigating to the settings section. Here you will see a license dashboard which should display the status of your license. - -### When and how to configure an `UmbracoApplicationUrl` - -If you are running on a single domain for both your frontend and backend environments, it's not necessary to configure a `UmbracoApplicationUrl`. - -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. - -An `UmbracoApplicationUrl` can be configured in your `appsettings.json` file like so: - -```json -{ - "Umbraco": { - "CMS": { - "WebRouting": { - "UmbracoApplicationUrl": "https://admin.my-custom-domain.com/" - } - } - } -} -``` - -See the [Fixed Application URL](https://docs.umbraco.com/umbraco-cms/extending/health-check/guides/fixedapplicationurl) documentation for more details about this setting. - -#### Configuring `UmbracoApplicationUrl` on Umbraco Cloud - -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 (`.umbraco.io`). This overrides what is set via the `appsettings.json` file. - -There are two options in this case: - -- Either the domains for each of your Cloud environments can be added to your license. -- Or, you can apply the configuration via code for more control and to ensure this value is set correctly for other reasons. - -For example, in your `Program.cs`: - -```csharp -services.Configure(o => o.UmbracoApplicationUrl = ""); -``` - -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. - -#### Validating a license without an outgoing Internet connection - -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. - -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`. - -The firewall rules should be adjusted to allow this request. - -If such a change is not feasible, there is another approach, which is outlined below. - -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. - -Then configure a random string as an authorization key in the configuration. This is used as protection to ensure only valid requests are handled. - -Alternatively, you can also disable the normal regular license checks, as there is no point in these running if they will be blocked: - -```json -{ - "Umbraco": { - "Licenses": { - "Products": { - "Umbraco.Forms": "" - }, - "EnableScheduledValidation": false, - "ValidatedLicenseRelayAuthKey": "" - } - } -} -``` - -Your Internet-enabled server requests the following form from the online license validation service: - -``` -POST https://license-validation.umbraco.com/api/ValidateLicense -{ - "ProductId": "Umbraco.Forms", - "LicenseKey": "", - "Domain": "" -} -``` - -The response is relayed exactly via an HTTP request to your restricted Umbraco environment: - -``` -POST http:///umbraco/licenses/validatedLicense/relay?productId=&licenseKey= -``` - -A header with a key of `X-AUTH-KEY` and the value of the authorization key you have configured is provided. +For detailed instructions on how to install and configure your license, including version-specific examples and additional configuration options, see the [Configure Licenses](https://docs.umbraco.com/umbraco-dxp/commercial-products/configure-licenses) article. -This triggers the same processes that occur when the normal scheduled validation completes, ensuring your product is licensed. diff --git a/16/umbraco-ui-builder/getting-started/licensing-model.md b/16/umbraco-ui-builder/getting-started/licensing-model.md index 03490ec8504..8595be2b8bd 100644 --- a/16/umbraco-ui-builder/getting-started/licensing-model.md +++ b/16/umbraco-ui-builder/getting-started/licensing-model.md @@ -47,9 +47,9 @@ If you have multiple backoffice domains pointing at the same installation, you c This is an add-on domain for existing licenses. Refunds will not be given for this product. {% endhint %} -## Configuring Your License +## Purchasing your license -You can look at the pricing, features, and purchase a license on the [Umbraco UI Builder](https://umbraco.com/products/add-ons/ui-builder/) page. On this page, you can fill out the form with your project details and requirements. +You can look at the pricing, features, and purchase a license on the [Umbraco UI Builder](https://umbraco.com/products/add-ons/ui-builder/) page. On this page, you can fill out the form with your project details and requirements. A member of the Sales team will manage this process. In the process, you will need to provide all domains you wish to have covered by the license such as primary and staging/QA domains. You should then receive a license code to be installed in your solution. @@ -57,88 +57,10 @@ A member of the Sales team will manage this process. In the process, you will ne If you require to add additional domains to the license, [reach out to the sales team](https://umbraco.com/products/add-ons/ui-builder/). They will manage your request and take care of the process. -## Installing your license +## Configuring your license -Once you have received your license code it needs to be installed on your site. +Once you've purchased your license with the correct domains, you are ready to configure the license key on your Umbraco installation. -1. Open the root directory of your project files. -2. Locate and open the `appsettings.json` file. -3. Add your Umbraco UI builder license key under `Umbraco:Licenses:Products:Umbraco.UIBuilder`: +The license key should be added to your configuration using product ID: `Umbraco.UIBuilder`. -```json -{ - "Umbraco": { - "Licenses": { - "Products": { - "Umbraco.UIBuilder": "YOUR_LICENSE_KEY" - } - } - } -} -``` - -{% hint style="info" %} -You might run into issues when using a period in the product name when using environment variables. Use an underscore in the product name instead, to avoid problems. - -```json -"Umbraco_UIBuilder": "YOUR_LICENSE_KEY" -``` - -{% endhint %} - -### Verifying the License - -To verify that your license is successfully installed: - -1. Log into Umbraco Backoffice. -2. Navigate to the **Settings** > **License** dashboard. -3. Verify the license status displayed on the dashboard. - -### Validating a License Without an Internet connection - -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. - -On start-up, and periodically whilst Umbraco is running, the license component used by Umbraco UIBuilder will make an HTTP POST request to `https://license-validation.umbraco.com/api/ValidateLicense`. - -If it's possible to do so, the firewall rules should be adjusted to allow this request. - -If such a change is not feasible, there is another approach you can use. - -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. - -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: - -```json -{ - "Umbraco": { - "Licenses": { - "Products": { - "Umbraco.UIBuilder": "" - }, - "EnableScheduledValidation": false, - "ValidatedLicenseRelayAuthKey": "" - } - } -} -``` - -Your Internet enabled server should make a request of the following form to the online license validation service: - -``` -POST https://license-validation.umbraco.com/api/ValidateLicense -{ - "ProductId": "Umbraco.UIBuilder", - "LicenseKey": "", - "Domain": "" -} -``` - -The response should be relayed exactly via an HTTP request to your restricted Umbraco environment: - -``` -POST http:///umbraco/licenses/validatedLicense/relay?productId=&licenseKey= -``` - -A header with a key of `X-AUTH-KEY` and value of the authorization key you have configured should be provided. - -This will trigger the same processes that occur when the normal scheduled validation completes ensuring your product is considered licensed. +For detailed instructions on how to install and configure your license, including version-specific examples and additional configuration options, see the [Configure Licenses](https://docs.umbraco.com/umbraco-dxp/commercial-products/configure-licenses) article. diff --git a/16/umbraco-workflow/installation/licensing.md b/16/umbraco-workflow/installation/licensing.md index 8f01f5346c9..dce6fda9fcf 100644 --- a/16/umbraco-workflow/installation/licensing.md +++ b/16/umbraco-workflow/installation/licensing.md @@ -4,7 +4,7 @@ Umbraco Workflow is a licensed product that does not require a purchase. New ins ## Purchasing an Umbraco Workflow License -If you want to buy an Umbraco Workflow license, use [the contact form to get in touch](https://umbraco.com/products/add-ons/workflow#order). +If you want to buy an Umbraco Workflow license, use [the contact form to get in touch](https://umbraco.com/products/add-ons/workflow#order). ### Free vs licensed versions @@ -21,77 +21,13 @@ In the free version, the following features are disabled: In the free version, a maximum of five approval groups can be created. -## Installing your license +## Configuring your license -Once you have received your license code it needs to be installed on your site. +Once you've purchased your license, you are ready to configure the license key on your Umbraco installation. -1. Open the root directory for your project files. -2. Locate and open the `appsettings.json` file. -3. Add your Umbraco Workflow license key to `Umbraco:Licenses:Products:Umbraco.Workflow`: +The license key should be added to your configuration using product ID: `Umbraco.Workflow`. -```json -{ - "Umbraco": { - "Licenses": { - "Products": { - "Umbraco.Workflow": "YOUR_LICENSE_KEY" - } - } - } -} -``` - -{% hint style="info" %} -You might run into issues when using a period in the product name when using environment variables. Use an underscore in the product name instead, to avoid problems. - -```json -"Umbraco_Workflow": "YOUR_LICENSE_KEY" -``` -{% endhint %} - -### Verify the license installation - -You can verify that your license is successfully installed by logging into your project's backoffice and navigating to the settings section. Here you will see a licenses dashboard which should display the status of your license. - -### When and how to configure an `UmbracoApplicationUrl` - -The website domain used for validating the license is determined from your Umbraco instance. To ensure the correct one is used, you can configure the `UmbracoApplicationUrl`. - -If you are running on a single domain for both your frontend and backend environments, it's not necessary to configure a `UmbracoApplicationUrl`. - -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. - -An `UmbracoApplicationUrl` can be configured in your `appsettings.json` file like so: - -```json -{ - "Umbraco": { - "CMS": { - "WebRouting": { - "UmbracoApplicationUrl": "https://admin.my-custom-domain.com/" - } - } - } -} -``` - -See the [Fixed Application URL](https://docs.umbraco.com/umbraco-cms/extending/health-check/guides/fixedapplicationurl) documentation for more details about this setting. - -#### Configuring `UmbracoApplicationUrl` on Umbraco Cloud - -If you are hosting on Umbraco Cloud, you will 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 (`.umbraco.io`). This overrides what is set via the `appsettings.json` file. - -There are two options in this case: -- Either the domains for each of your Cloud environments can be added to your license. -- Or, for more control and to ensure this value is set correctly for other reasons, you can apply the configuration via code. - -For example, in your `Program.cs` file: - -```csharp -builder.Services.Configure(o => o.UmbracoApplicationUrl = ""); -``` - -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. +For detailed instructions on how to install and configure your license, including version-specific examples and additional configuration options, see the [Configure Licenses](https://docs.umbraco.com/umbraco-dxp/commercial-products/configure-licenses) article. ### Using a Trial License @@ -112,52 +48,3 @@ To impersonate the full license on a local site, set `EnableTestLicense` to `tru {% hint style="info" %} The test license is restricted to sites running in a development environment with a debugger attached. Hit F5 in Visual Studio, in Debug mode to enable the test license. {% endhint %} - -### Validating a license without an outgoing Internet connection - -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. - -On start-up, and periodically whilst Umbraco is running, the license component used by Umbraco Workflow will make an HTTP POST request to `https://license-validation.umbraco.com/api/ValidateLicense`. - -If it's possible to do so, the firewall rules should be adjusted to allow this request. - -If such a change is not feasible, there is another approach you can use. - -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. - -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: - -```json -{ - "Umbraco": { - "Licenses": { - "Products": { - "Umbraco.Workflow": "" - }, - "EnableScheduledValidation": false, - "ValidatedLicenseRelayAuthKey": "" - } - } -} -``` - -Your Internet enabled server should make a request of the following form to the online license validation service: - -``` -POST https://license-validation.umbraco.com/api/ValidateLicense -{ - "ProductId": "Umbraco.Workflow", - "LicenseKey": "", - "Domain": "" -} -``` - -The response should be relayed exactly via an HTTP request to your restricted Umbraco environment: - -``` -POST http:///umbraco/licenses/validatedLicense/relay?productId=&licenseKey= -``` - -A header with a key of `X-AUTH-KEY` and value of the authorization key you have configured should be provided. - -This will trigger the same processes that occur when the normal scheduled validation completes ensuring your product is considered licensed. diff --git a/marketplace-and-integrations/SUMMARY.md b/marketplace-and-integrations/SUMMARY.md index 65bc0cf29e5..f844fa42ed3 100644 --- a/marketplace-and-integrations/SUMMARY.md +++ b/marketplace-and-integrations/SUMMARY.md @@ -5,12 +5,13 @@ ## Commercial products -* [Umbraco Forms](https://docs.umbraco.com/umbraco-forms/) -* [Umbraco Deploy](https://docs.umbraco.com/umbraco-deploy/) -* [Umbraco Workflow](https://docs.umbraco.com/umbraco-workflow/) * [Umbraco Commerce](https://docs.umbraco.com/umbraco-commerce) -* [Umbraco UI Builder](https://docs.umbraco.com/umbraco-ui-builder/) +* [Umbraco Deploy](https://docs.umbraco.com/umbraco-deploy/) * [Umbraco Engage](https://docs.umbraco.com/umbraco-engage) +* [Umbraco Forms](https://docs.umbraco.com/umbraco-forms/) +* [Umbraco UI Builder](https://docs.umbraco.com/umbraco-ui-builder/) +* [Umbraco Workflow](https://docs.umbraco.com/umbraco-workflow/) +* [Configure Licenses](configure-licenses.md) * [Commercial Products, Relations and dependencies](commercial-product-dependencies.md) ## Marketplace diff --git a/marketplace-and-integrations/configure-licenses.md b/marketplace-and-integrations/configure-licenses.md new file mode 100644 index 00000000000..363ad10207b --- /dev/null +++ b/marketplace-and-integrations/configure-licenses.md @@ -0,0 +1,217 @@ +# Configure Licenses + +Commercial Umbraco products require a valid license to run in production environments. This article covers how to install, configure, and validate licenses for Umbraco's commercial products. + +## Product-Specific License Information + +For product-specific information including what a license covers, pricing, and how to purchase: + +* [Umbraco Commerce Licensing](https://docs.umbraco.com/umbraco-commerce/getting-started/the-licensing-model) +* [Umbraco Deploy Licensing](https://docs.umbraco.com/umbraco-deploy/installation/the-licensing-model) +* [Umbraco Engage Licensing](https://docs.umbraco.com/umbraco-engage/installation/licensing) +* [Umbraco Forms Licensing](https://docs.umbraco.com/umbraco-forms/installation/the-licensing-model) +* [Umbraco UI Builder Licensing](https://docs.umbraco.com/umbraco-ui-builder/getting-started/licensing-model) +* [Umbraco Workflow Licensing](https://docs.umbraco.com/umbraco-workflow/installation/licensing) + +## Installing Your License + +Umbraco commercial products use configuration-based licenses. These are installed by adding your license key to the `appsettings.json` file. + +{% hint style="info" %} +Umbraco Forms also supports file-based licenses, but starting from version 17, it will only support license keys. For more information, see the [announcement](https://github.com/umbraco/Announcements/issues/25). +{% endhint %} + +{% tabs %} +{% tab title="Version 14+" %} + +For version 14 and above, licenses are configured under `Umbraco:Licenses:Products`: + +1. Open the root directory for your project. +2. Locate and open the `appsettings.json` file. +3. Add your license key to `Umbraco:Licenses:Products:`: + +```json +{ + "Umbraco": { + "Licenses": { + "Products": { + "Umbraco.Commerce": "YOUR_LICENSE_KEY", + "Umbraco.Deploy.OnPrem": "YOUR_LICENSE_KEY", + "Umbraco.Engage": "YOUR_LICENSE_KEY", + "Umbraco.Forms": "YOUR_LICENSE_KEY", + "Umbraco.UIBuilder": "YOUR_LICENSE_KEY", + "Umbraco.Workflow": "YOUR_LICENSE_KEY" + } + } + } +} +``` + +{% endtab %} + +{% tab title="Version 10-13" %} + +For versions 10-13, licenses are configured under `Umbraco:Licenses`: + +1. Open the root directory for your project files. +2. Locate and open the `appsettings.json` file. +3. Add your license key to `Umbraco:Licenses:`: + +```json +{ + "Umbraco": { + "Licenses": { + "Umbraco.Commerce": "YOUR_LICENSE_KEY", + "Umbraco.Deploy.OnPrem": "YOUR_LICENSE_KEY", + "Umbraco.Engage": "YOUR_LICENSE_KEY", + "Umbraco.Forms": "YOUR_LICENSE_KEY", + "Umbraco.UIBuilder": "YOUR_LICENSE_KEY", + "Umbraco.Workflow": "YOUR_LICENSE_KEY" + } + } +} +``` + +{% endtab %} +{% endtabs %} + +{% hint style="info" %} +You might run into issues when using a period in the product name when using environment variables. Use an underscore in the product name instead, to avoid problems. + +```json +"Umbraco_Commerce": "YOUR_LICENSE_KEY" +``` + +{% endhint %} + +## Verifying the License Installation + +You can verify that your license is successfully installed by logging into your project's backoffice: + +1. Navigate to the **Settings** section. +2. Look for the **Licenses** dashboard. +3. Verify the license status displayed on the dashboard. + +The dashboard will show the status of all installed commercial product licenses. + +## Configuring UmbracoApplicationUrl + +The website domain used for validating the license is determined from your Umbraco instance. To ensure the correct one is used, you can configure the `UmbracoApplicationUrl`. + +### When to Configure UmbracoApplicationUrl + +If you are running on a single domain for both your frontend and backend environments, it's not necessary to configure a `UmbracoApplicationUrl`. + +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. + +### How to Configure UmbracoApplicationUrl + +An `UmbracoApplicationUrl` can be configured in your `appsettings.json` file: + +```json +{ + "Umbraco": { + "CMS": { + "WebRouting": { + "UmbracoApplicationUrl": "https://admin.my-custom-domain.com/" + } + } + } +} +``` + +See the [Fixed Application URL](https://docs.umbraco.com/umbraco-cms/extending/health-check/guides/fixedapplicationurl) documentation for more details about this setting. + +### Configuring UmbracoApplicationUrl on Umbraco Cloud + +If you are hosting on Umbraco Cloud, you will 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 (`.umbraco.io`). This overrides what is set via the `appsettings.json` file. + +There are two options in this case: + +* Either the domains for each of your Cloud environments can be added to your license. +* Or, for more control and to ensure this value is set correctly for other reasons, you can apply the configuration via code. + +For example, in your `Program.cs`: + +```csharp +builder.Services.Configure(o => o.UmbracoApplicationUrl = ""); +``` + +In practice, you may want to make this configuration more flexible. 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. + +## Validating a License Without an Outgoing Internet Connection + +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. + +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`. + +If it's possible to do so, the firewall rules should be adjusted to allow this request. + +If such a change is not feasible, there is another approach you can use. + +### Setting Up License Relay + +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. + +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: + +{% tabs %} +{% tab title="Version 14+" %} + +```json +{ + "Umbraco": { + "Licenses": { + "Products": { + "Umbraco.Commerce": "" + }, + "EnableScheduledValidation": false, + "ValidatedLicenseRelayAuthKey": "" + } + } +} +``` + +{% endtab %} + +{% tab title="Version 13.1" %} + +Ensure you use the latest product version, so the package dependency on `Umbraco.Licenses` is updated to 13.1.0 or later. + +```json +{ + "Umbraco": { + "Licenses": { + "Umbraco.Commerce": "" + }, + "LicensesOptions": { + "EnableScheduledValidation": false, + "ValidatedLicenseRelayAuthKey": "" + } + } +} +``` + +{% endtab %} +{% endtabs %} + +Your Internet-enabled server should make a request of the following form to the online license validation service: + +```http +POST https://license-validation.umbraco.com/api/ValidateLicense +{ + "ProductId": "Umbraco.Commerce", + "LicenseKey": "", + "Domain": "" +} +``` + +The response should be relayed exactly via an HTTP request to your restricted Umbraco environment: + +```http +POST http:///umbraco/licenses/validatedLicense/relay?productId=&licenseKey= +``` + +A header with a key of `X-AUTH-KEY` and the value of the authorization key you have configured should be provided. + +This will trigger the same processes that occur when the normal scheduled validation completes ensuring your product is considered licensed.